:root { --ink:#243c32; --muted:#5d6d65; --green:#294f3e; --accent:#a4384e; --line:#d9e3dd; --soft:#f0f5f2; --rose:#f1e2e8; }
* { box-sizing:border-box; letter-spacing:0; }
html { scroll-behavior:smooth; scroll-padding-top:92px; }
body { margin:0; font-family:Arial,sans-serif; line-height:1.6; color:var(--ink); background:#fff; }
img { max-width:100%; display:block; }
a { color:inherit; }
button,input,select,textarea { font:inherit; }
button,a { touch-action:manipulation; }
:focus-visible { outline:3px solid #c4657c; outline-offset:4px; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:50; background:#fff; padding:12px 18px; }
.skip-link:focus { top:12px; }
.container { width:min(1160px,calc(100% - 48px)); margin:0 auto; }
header { position:sticky; top:0; z-index:20; background:#fff; border-bottom:1px solid var(--line); }
.nav { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-size:16px; font-weight:700; }
.brand-mark { display:grid; place-items:center; width:42px; height:42px; color:#fff; background:var(--green); border-radius:6px; font-size:13px; }
.nav-links { display:flex; gap:26px; align-items:center; font-size:14px; }
.nav-links a { text-decoration:none; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:15px 24px; border:0; border-radius:6px; background:var(--accent); color:#fff; font-weight:700; font-size:16px; line-height:1.45; text-align:center; text-decoration:none; cursor:pointer; }
.button:hover { background:#872b3e; }
.button:disabled { cursor:wait; opacity:.7; }
.button.small { min-height:44px; padding:10px 20px; font-size:14px; }
.hero { position:relative; isolation:isolate; background:var(--ink); color:#fff; }
.hero-photo { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 27%; }
.hero::before { content:''; position:absolute; z-index:-1; inset:0; background:rgba(15,30,22,.35); }
.hero-inner { padding-block:56px; min-height:590px; display:flex; align-items:center; }
.hero-copy { width:44%; padding-right:14px; text-shadow:0 1px 8px #0008; }
.hero .button { text-shadow:none; background:#f5eee1; color:#233e32; }
.hero .button:hover { background:#fff; }
.eyebrow { margin:0 0 14px; color:var(--accent); font-size:13px; font-weight:700; }
.hero .eyebrow { color:#eff5d6; }
h1,h2,h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:54px; line-height:1.14; margin-bottom:24px; }
h2 { font-size:36px; line-height:1.22; margin-bottom:22px; }
.hero-lead { font-size:20px; line-height:1.5; margin-bottom:28px; }
.hero-note { font-size:13px; margin:20px 0 0; }
.opening-band { background:var(--rose); padding:24px 0; }
.opening-band .container { display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.opening-band p { margin:0; font-size:16px; }
.opening-band strong { font-family:Georgia,serif; font-weight:400; font-size:28px; }
.section { padding:72px 0; }
.editorial-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:70px; }
.prose { font-size:18px; }
.prose p:last-child { margin-bottom:0; }
.emphasis { padding-left:24px; border-left:3px solid var(--accent); }
.curriculum { background:var(--soft); }
.section-heading { margin-bottom:40px; }
.weeks { border-top:1px solid #bccdc1; }
.week { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:70px; border-bottom:1px solid #bccdc1; padding:32px 0; }
.week .eyebrow { margin-bottom:12px; }
.week h3 { font-size:30px; line-height:1.2; margin:0; max-width:310px; }
.week ul { margin:0; padding-left:20px; }
.week li { padding:3px 0; }
.curriculum-note { font-size:13px; color:var(--muted); max-width:720px; margin:28px 0 0; }
.audience { background:var(--green); color:#fff; }
.audience .eyebrow { color:#f3d6df; }
.audience-list { list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.audience-list li { border-top:1px solid #ffffff50; padding-top:22px; }
.audience-list span { color:#f3d6df; font-size:14px; }
.audience-list p { margin:14px 0 0; font-size:18px; }
.form-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:70px; }
.muted { color:var(--muted); }
.form-intro p { max-width:410px; }
.form-disclaimer { border-top:1px solid var(--line); padding-top:24px; margin-top:30px; color:var(--muted); font-size:13px; }
.form-area { min-width:0; }
form { display:grid; gap:18px; }
form label { display:grid; gap:7px; font-size:14px; font-weight:600; min-width:0; }
input,select,textarea { border:1px solid #9caf9f; border-radius:5px; background:#fff; color:var(--ink); padding:12px; min-width:0; width:100%; font-size:16px; min-height:48px; }
textarea { min-height:96px; resize:vertical; }
input::placeholder,textarea::placeholder { color:#69776e; opacity:1; }
input[type=hidden] { display:none; }
.field-hint { font-size:12px; font-weight:400; color:var(--muted); }
.region-panel { display:none; gap:18px; }
.region-panel.is-active { display:grid; }
.birth-fields { border:0; margin:0; padding:0; min-width:0; }
.birth-fields legend { font-size:14px; font-weight:600; padding:0; margin-bottom:7px; }
.date-row { display:grid; grid-template-columns:.8fr 1.25fr 1fr; gap:8px; }
.field-error,.submit-error { display:none; color:#a22c35; font-size:13px; }
.field-error.is-visible,.submit-error.is-visible { display:block; }
.form-note,.form-consent { font-size:12px; color:var(--muted); margin:0; }
.form-consent a { color:#963143; }
.iti { width:100%; --iti-border-color:#9caf9f; }
.iti__dropdown-content { max-width:calc(100vw - 40px); }
form.is-hidden,.success { display:none; }
.success.is-visible { display:block; border-top:3px solid var(--green); padding-top:28px; }
footer { background:var(--soft); border-top:1px solid var(--line); padding:32px 0; font-size:13px; color:var(--muted); }
footer p { max-width:740px; margin:12px 0; }
@media(min-width:1800px) { .hero-photo { object-position:50% 25%; } }
@media(max-width:980px) {
 .editorial-grid,.week,.form-layout { gap:36px; }
 .hero-copy { width:52%; }
 h1 { font-size:42px; } h2 { font-size:30px; }
 .hero-inner { padding-block:50px; min-height:510px; }
 .nav-links { gap:16px; } .audience-list { gap:24px; }
}
@media(max-width:680px) {
 .container { width:calc(100% - 32px); }
 .nav { min-height:66px; gap:12px; }
 .brand { font-size:14px; gap:8px; } .brand-mark { width:34px; height:34px; font-size:11px; }
 .nav-links > a:not(.button) { display:none; }
 .hero-photo { object-position:58% 0; } .hero::before { background:rgba(12,26,19,.28); }
 .hero-inner { padding:300px 0 28px; min-height:650px; align-items:flex-end; }
 .hero-copy { width:100%; padding-right:0; }
 h1 { font-size:38px; max-width:420px; }
 .hero-lead { font-size:18px; max-width:370px; }
 .hero .button { width:100%; }
 .opening-band .container { display:block; }
 .opening-band strong { display:block; font-size:23px; margin-top:6px; }
 .section { padding-block:46px; }
 .editorial-grid,.week,.audience-list,.form-layout { grid-template-columns:1fr; gap:24px; }
 h2 { font-size:28px; } .week h3 { font-size:28px; max-width:none; }
 .section-heading { margin-bottom:28px; } .prose { font-size:17px; }
 .form-disclaimer { margin-top:20px; padding-top:18px; }
}
@media(max-width:360px) { h1 { font-size:34px; } .date-row { grid-template-columns:1fr; } }
@media(max-width:680px) and (max-height:740px) {
 .hero-inner { min-height:0; padding-top:180px; padding-bottom:20px; }
 h1 { font-size:32px; margin-bottom:16px; }
 .hero-lead { font-size:16px; margin-bottom:20px; }
 .hero-note { font-size:12px; margin-top:14px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
