:root {
    --planner-navy: #102b4e;
    --planner-blue: #164978;
    --planner-gold: #f2bd4b;
    --planner-cream: #fffaf0;
    --planner-ink: #17243a;
    --planner-muted: #617085;
    --planner-green: #19704f;
}

html { scroll-behavior: smooth; }
.planner-hero { background: radial-gradient(circle at 82% 15%, rgba(242,189,75,.18), transparent 24rem), linear-gradient(135deg,#102b4e,#173e69); color:#fff; overflow:hidden; padding:calc(7.35rem + clamp(3.5rem,6vw,5.5rem)) 0 clamp(3.5rem,6vw,5.5rem); position:relative; }
.planner-hero::after { border:1px solid rgba(255,255,255,.08); border-radius:50%; content:""; height:34rem; position:absolute; right:-12rem; top:-15rem; width:34rem; }
.planner-hero-grid { align-items:center; display:grid; gap:clamp(2rem,6vw,5rem); grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); position:relative; z-index:1; }
.planner-hero-grid>* { min-width:0; }
.planner-eyebrow { align-items:center; color:#f7d889; display:flex; font-size:.82rem; font-weight:800; gap:.55rem; letter-spacing:.15em; margin-bottom:1rem; text-transform:uppercase; }
.planner-hero h1 { color:#fff; font:700 clamp(3rem,6vw,5.25rem)/1 'Cormorant Garamond',Georgia,serif; letter-spacing:-.03em; margin:0; max-width:100%; overflow-wrap:normal; }
.planner-hero h1 span { color:var(--planner-gold); }
.planner-hero>div>div>p { color:rgba(255,255,255,.82); font-size:clamp(1rem,2vw,1.2rem); line-height:1.65; margin:1.5rem 0; max-width:680px; }
.hero-actions,.result-actions { align-items:center; display:flex; flex-wrap:wrap; gap:.75rem; }
.planner-btn { align-items:center; border:0; border-radius:.45rem; cursor:pointer; display:inline-flex; font:700 .92rem 'Source Sans 3',sans-serif; gap:.55rem; justify-content:center; padding:.82rem 1.15rem; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.planner-btn:hover { box-shadow:0 9px 22px rgba(8,26,49,.17); transform:translateY(-2px); }
.planner-btn-gold { background:var(--planner-gold); color:var(--planner-navy); }
.planner-btn-ghost { background:transparent; border:1px solid rgba(255,255,255,.48); color:#fff; }
.planner-btn-primary { background:var(--planner-navy); color:#fff; }
.planner-btn-light { background:#fff; border:1px solid #cad4df; color:var(--planner-navy); }
.planner-hero .hero-privacy { align-items:center; display:flex; font-size:.82rem; gap:.45rem; margin:.9rem 0 0; opacity:.82; }
.hero-card { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:1rem; box-shadow:0 24px 60px rgba(0,0,0,.18); padding:2rem; backdrop-filter:blur(10px); }
.hero-card-icon { align-items:center; background:var(--planner-gold); border-radius:50%; color:var(--planner-navy); display:flex; font-size:1.35rem; height:3.5rem; justify-content:center; margin-bottom:1.15rem; width:3.5rem; }
.hero-card h2 { color:#fff; font:700 1.7rem 'Cormorant Garamond',Georgia,serif; margin:0 0 1rem; }
.hero-card ul { display:grid; gap:.85rem; list-style:none; margin:0; padding:0; }
.hero-card li { align-items:center; color:rgba(255,255,255,.9); display:flex; gap:.7rem; }
.hero-card li i { color:var(--planner-gold); }

.planner-trust { background:#fff; border-bottom:1px solid #e3e8ed; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.trust-grid>div { align-items:center; border-right:1px solid #e3e8ed; display:flex; flex-direction:column; padding:1.5rem 1rem; text-align:center; }
.trust-grid>div:last-child { border-right:0; }
.trust-grid strong { color:var(--planner-navy); font:700 1.8rem 'Cormorant Garamond',Georgia,serif; }
.trust-grid span { color:var(--planner-muted); font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }

.planner-section { background:#f4f7fa; padding:5rem 0; }
.planner-shell { align-items:start; display:grid; gap:2rem; grid-template-columns:minmax(0,1fr) 330px; }
.planner-builder { background:#fff; border:1px solid #dce3ea; border-radius:1rem; box-shadow:0 14px 40px rgba(16,43,78,.08); padding:clamp(1.25rem,4vw,2.5rem); }
.planner-builder>.section-kicker,.resource-section .section-kicker,.results-head .section-kicker { text-align:left; }
.planner-builder h2,.results-head h2,.resource-section h2 { color:var(--planner-navy); font:700 clamp(2rem,4vw,2.7rem) 'Cormorant Garamond',Georgia,serif; margin:.15rem 0 .35rem; }
.builder-intro,.resource-intro { color:var(--planner-muted); line-height:1.65; margin:0 0 2rem; }
.planner-form fieldset { border:0; margin:0 0 2rem; min-width:0; padding:0; }
.planner-form legend,.field-label { color:var(--planner-ink); display:block; font-size:1rem; font-weight:800; margin-bottom:.8rem; }
.planner-form legend>span,.field-label>span { align-items:center; background:var(--planner-gold); border-radius:50%; color:var(--planner-navy); display:inline-flex; height:1.75rem; justify-content:center; margin-right:.45rem; width:1.75rem; }
.planner-form legend small,.field-label small { color:var(--planner-muted); font-size:.76rem; font-weight:500; margin-left:.25rem; }
.choice-grid { display:grid; gap:.8rem; }
.journey-grid { grid-template-columns:repeat(3,1fr); }
.choice-card { cursor:pointer; position:relative; }
.choice-card input { opacity:0; position:absolute; }
.choice-body { border:2px solid #dce3ea; border-radius:.7rem; display:flex; flex-direction:column; height:100%; min-height:145px; padding:1.15rem; transition:.2s ease; }
.choice-body>i { color:var(--planner-blue); font-size:1.35rem; margin-bottom:auto; }
.choice-body strong { color:var(--planner-ink); margin:.85rem 0 .2rem; }
.choice-body small { color:var(--planner-muted); line-height:1.35; }
.choice-card input:checked+.choice-body { background:#f5f9fd; border-color:var(--planner-blue); box-shadow:inset 0 0 0 1px var(--planner-blue); }
.choice-card input:focus-visible+.choice-body,.need-chip input:focus-visible+span { outline:3px solid rgba(22,73,120,.28); outline-offset:2px; }
.form-row { display:grid; gap:1rem; grid-template-columns:1fr 1fr; margin-bottom:2rem; }
.field-label input,.field-label select { appearance:none; background:#fff; border:2px solid #dce3ea; border-radius:.55rem; color:var(--planner-ink); display:block; font:500 1rem 'Source Sans 3',sans-serif; margin-top:.65rem; min-height:3.15rem; padding:.65rem .8rem; width:100%; }
.field-label input:focus,.field-label select:focus { border-color:var(--planner-blue); box-shadow:0 0 0 3px rgba(22,73,120,.12); outline:0; }
.field-label .calendar-aware-note { align-items:center; color:var(--planner-green); display:flex; font-size:.76rem; font-weight:700; gap:.35rem; margin:.45rem 0 0; }
.needs-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.need-chip { cursor:pointer; position:relative; }
.need-chip input { opacity:0; position:absolute; }
.need-chip span { align-items:center; border:2px solid #dce3ea; border-radius:2rem; color:var(--planner-ink); display:flex; font-size:.88rem; font-weight:700; gap:.45rem; justify-content:center; min-height:3rem; padding:.55rem .75rem; text-align:center; }
.need-chip input:checked+span { background:var(--planner-navy); border-color:var(--planner-navy); color:#fff; }
.need-chip i { color:#b67c05; }
.need-chip input:checked+span i { color:var(--planner-gold); }
.planner-submit { font-size:1rem; min-height:3.25rem; width:100%; }
.form-status { font-weight:700; margin:.75rem 0 0; min-height:1.2rem; text-align:center; }
.form-status.is-ready { color:var(--planner-green); }
.form-status.is-adjusted { color:#8a5b00; }

.planner-help { display:grid; gap:1rem; position:sticky; top:105px; }
.help-card { background:#fff; border:1px solid #dce3ea; border-radius:.8rem; display:flex; gap:1rem; padding:1.35rem; }
.help-card>i { color:#b67c05; font-size:1.3rem; margin-top:.2rem; }
.help-card span { color:var(--planner-blue); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.help-card h3 { color:var(--planner-navy); font:700 1.3rem 'Cormorant Garamond',Georgia,serif; margin:.15rem 0 .35rem; }
.help-card p { color:var(--planner-muted); font-size:.86rem; line-height:1.5; margin:0 0 .75rem; }
.help-card a { color:var(--planner-blue); display:block; font-size:.84rem; font-weight:800; margin-top:.45rem; text-decoration:none; }
.help-card-primary { background:var(--planner-navy); border-color:var(--planner-navy); }
.help-card-primary>i,.help-card-primary span,.help-card-primary a { color:var(--planner-gold); }
.help-card-primary h3 { color:#fff; }
.help-card-primary p { color:rgba(255,255,255,.75); }

.plan-results { background:#fff; padding:5rem 0; scroll-margin-top:90px; }
.results-head { align-items:end; display:flex; gap:2rem; justify-content:space-between; }
.results-head p { color:var(--planner-muted); margin:.3rem 0 0; }
.text-button { background:transparent; border:0; color:var(--planner-blue); cursor:pointer; font-weight:800; padding:.7rem .2rem; }
.progress-card { background:var(--planner-cream); border:1px solid #efdfba; border-radius:.75rem; margin:2rem 0; padding:1.2rem 1.4rem; }
.progress-copy { display:flex; justify-content:space-between; margin-bottom:.65rem; }
.progress-copy strong { color:var(--planner-navy); }
.progress-copy span { color:var(--planner-muted); font-size:.86rem; }
.progress-track { background:#e5dac1; border-radius:10rem; height:.7rem; overflow:hidden; }
.progress-track span { background:linear-gradient(90deg,var(--planner-gold),#d69413); display:block; height:100%; transition:width .35s ease; width:0; }
.task-groups { display:grid; gap:1.25rem; }
.task-group { border:1px solid #dce3ea; border-radius:.85rem; overflow:hidden; }
.task-group-head { align-items:center; background:#f4f7fa; border-bottom:1px solid #dce3ea; display:flex; gap:.9rem; padding:1rem 1.2rem; }
.task-group-head>i { align-items:center; background:var(--planner-navy); border-radius:50%; color:var(--planner-gold); display:flex; height:2.4rem; justify-content:center; width:2.4rem; }
.task-group-head h3 { color:var(--planner-navy); font:700 1.35rem 'Cormorant Garamond',Georgia,serif; margin:0; }
.task-group-head span { color:var(--planner-muted); font-size:.78rem; margin-left:auto; }
.task-list { list-style:none; margin:0; padding:0; }
.task-item { border-bottom:1px solid #edf0f3; }
.task-item:last-child { border-bottom:0; }
.task-label { cursor:pointer; display:grid; gap:.8rem; grid-template-columns:auto 1fr auto; padding:1.1rem 1.2rem; }
.task-label input { height:1.25rem; margin:.2rem 0 0; width:1.25rem; accent-color:var(--planner-green); }
.task-title { color:var(--planner-ink); display:block; font-weight:800; }
.task-detail { color:var(--planner-muted); display:block; font-size:.87rem; line-height:1.5; margin-top:.22rem; }
.task-link { color:var(--planner-blue); display:inline-block; font-size:.82rem; font-weight:800; margin-top:.35rem; text-decoration:none; }
.task-date { color:var(--planner-blue); font-size:.76rem; font-weight:800; text-align:right; white-space:nowrap; }
.task-date.overdue { color:#a23a2a; }
.task-item.is-complete .task-title { color:#6d7887; text-decoration:line-through; }
.task-item.is-complete { background:#f7fbf8; }

.school-dates { background:var(--planner-navy); border-radius:.85rem; color:#fff; margin-top:2rem; padding:1.5rem; }
.school-dates-head { align-items:end; display:flex; justify-content:space-between; }
.school-dates-head span { color:var(--planner-gold); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.school-dates-head h3 { color:#fff; font:700 1.55rem 'Cormorant Garamond',Georgia,serif; margin:.15rem 0 0; }
.school-dates-head a { color:var(--planner-gold); font-weight:800; text-decoration:none; }
.school-dates-list { display:grid; gap:.75rem; grid-template-columns:repeat(3,1fr); margin-top:1rem; }
.school-date { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); border-radius:.6rem; padding:1rem; }
.school-date time { color:var(--planner-gold); display:block; font-size:.76rem; font-weight:800; margin-bottom:.25rem; text-transform:uppercase; }
.school-date strong { font-size:.92rem; line-height:1.35; }

.resource-section { background:#f4f7fa; padding:4.5rem 0; }
.resource-section .section-kicker,.resource-section>div>h2,.resource-intro { text-align:center; }
.resource-intro { margin-left:auto; margin-right:auto; max-width:670px; }
.resource-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); margin-top:2rem; }
.resource-card { align-items:center; background:#fff; border:1px solid #dce3ea; border-radius:.75rem; color:var(--planner-navy); display:grid; gap:1rem; grid-template-columns:auto 1fr auto; padding:1.25rem; text-decoration:none; transition:.2s ease; }
.resource-card:hover { border-color:var(--planner-gold); box-shadow:0 10px 25px rgba(16,43,78,.08); transform:translateY(-2px); }
.resource-card>i:first-child { align-items:center; background:var(--planner-cream); border-radius:50%; color:#a66c00; display:flex; height:2.75rem; justify-content:center; width:2.75rem; }
.resource-card>i:last-child { color:#8692a0; font-size:.75rem; }
.resource-card strong,.resource-card small { display:block; }
.resource-card small { color:var(--planner-muted); margin-top:.2rem; }

.planner-cta { background:linear-gradient(120deg,#12345b,#0d2948); color:#fff; padding:3.5rem 0; }
.planner-cta .container { align-items:center; display:flex; gap:2rem; justify-content:space-between; }
.planner-cta span { color:var(--planner-gold); font-size:.76rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.planner-cta h2 { color:#fff; font:700 clamp(1.8rem,4vw,2.6rem) 'Cormorant Garamond',Georgia,serif; margin:.35rem 0 0; max-width:680px; }
.planner-cta .container>div:last-child { display:flex; flex-wrap:wrap; gap:.75rem; }

@media(max-width:1080px){.planner-hero{padding-top:calc(9.2rem + 3.5rem)}}
@media(max-width:1000px){.planner-shell{grid-template-columns:1fr}.planner-help{grid-template-columns:1fr 1fr;position:static}.school-dates-list{grid-template-columns:repeat(2,1fr)}.resource-grid{grid-template-columns:1fr}.results-head{align-items:flex-start;flex-direction:column}.planner-cta .container{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.planner-hero{padding:calc(7.9rem + 2.75rem) 0 3.5rem}.planner-hero-grid{grid-template-columns:1fr}.planner-hero h1{font-size:clamp(3rem,11vw,4.2rem);letter-spacing:-.025em}.planner-hero>div>div>p{font-size:1rem;line-height:1.55;margin:1.25rem 0}.planner-eyebrow{font-size:.74rem;letter-spacing:.12em}.hero-card{display:none}.hero-actions{align-items:stretch}.hero-actions .planner-btn{flex:1 1 12rem}.trust-grid{grid-template-columns:repeat(2,1fr)}.trust-grid>div:nth-child(2){border-right:0}.trust-grid>div:nth-child(-n+2){border-bottom:1px solid #e3e8ed}.journey-grid,.needs-grid,.form-row,.planner-help,.school-dates-list{grid-template-columns:1fr}.choice-body{min-height:105px}.planner-section,.plan-results,.resource-section{padding:3.5rem 0}.progress-copy{align-items:flex-start;flex-direction:column;gap:.25rem}.task-label{grid-template-columns:auto 1fr}.task-date{grid-column:2;text-align:left}.school-dates-head{align-items:flex-start;flex-direction:column;gap:.7rem}.planner-cta .container>div:last-child,.planner-cta .planner-btn{width:100%}}
@media(max-width:480px){.planner-hero{padding-top:calc(8.35rem + 2.25rem)}.planner-hero h1{font-size:clamp(2.65rem,14vw,3.5rem)}.planner-hero .hero-privacy{align-items:flex-start}.hero-actions .planner-btn{flex-basis:100%}}

@media print {
    .header,.planner-hero,.planner-trust,.planner-section,.resource-section,.planner-cta,.footer,.result-actions,.school-dates { display:none!important; }
    .plan-results { display:block!important; padding:0; }
    .plan-results .container { max-width:none; }
    .task-group { break-inside:avoid; }
    .task-label { padding:.7rem; }
    .progress-card { background:#fff; }
}
