/* ==================== RESET + TOKENS ==================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cr: #fdfbf7;
  --espresso: #1a1c19;
  --green: #1a5a2a;
  --green-l: #2d8a42;
  --gold: #b8862a;
  --gold-l: #d4a84a;
  --cream: #fdfbf7;
  --cream-darker: #f5f0e6;
  --border-warm: rgba(26,28,25,0.08);
  --font-disp: 'Lora', Georgia, serif;
  --font-sans: 'Outfit', system-ui, sans-serif;
  --font-body: 'DM Sans', system-ui, sans-serif;
  --ease-out-expo: cubic-bezier(0.16,1,0.3,1);
  --ease-snap: cubic-bezier(0.32,0.72,0,1);
  --radius-xl: 2rem;
  --radius-lg: 1.25rem;
}

html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-body);color:var(--espresso);background:var(--cr);line-height:1.6;-webkit-font-smoothing:antialiased}

/* ==================== FILM GRAIN ==================== */
.grain-overlay{position:fixed;inset:0;z-index:10000;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px}
@media(prefers-reduced-motion:reduce){.grain-overlay{display:none}}

/* ==================== MACRO SPACING ==================== */
section{padding:7rem 1.5rem}
@media(min-width:768px){section{padding:8rem 2rem}}
@media(min-width:1024px){section{padding:9rem 2rem}}
.wrap{max-width:1200px;margin:0 auto;width:100%}

/* ==================== FLUID ISLAND NAV ==================== */
.fluid-island{
  position:fixed;top:0;left:0;right:0;z-index:5000;
  display:flex;justify-content:center;
  padding-top:.75rem;pointer-events:none;
}
.island-inner{
  pointer-events:auto;
  display:flex;align-items:center;gap:2rem;
  padding:.6rem 1.5rem .6rem 2rem;
  border-radius:9999px;
  background:rgba(253,251,247,.82);
  backdrop-filter:blur(24px) saturate(1.3);
  -webkit-backdrop-filter:blur(24px) saturate(1.3);
  border:1px solid rgba(26,28,25,.06);
  box-shadow:0 8px 40px rgba(26,28,25,.06),inset 0 1px 0 rgba(255,255,255,.5);
  transition:transform .5s var(--ease-out-expo);
  width:auto;min-width:0;
}
.island-inner.scrolled{transform:scale(.92)}
.nav-logo{
  font-family:var(--font-sans);font-weight:700;font-size:1rem;
  text-decoration:none;color:var(--espresso);letter-spacing:-.02em;white-space:nowrap;
}
.nav-logo em{font-style:normal;color:var(--green)}
.nav-links{display:none;align-items:center;gap:1.5rem}
@media(min-width:960px){.nav-links{display:flex}}
.nav-links a{
  text-decoration:none;color:var(--espresso);font-family:var(--font-sans);
  font-size:.85rem;font-weight:500;opacity:.65;transition:opacity .3s var(--ease-out-expo);
  white-space:nowrap;
}
.nav-links a:hover,.nav-links a[aria-current="page"]{opacity:1}
.nav-links a[aria-current="page"]{color:var(--green)}
.nav-actions{display:none;align-items:center;gap:.75rem;margin-left:auto}
@media(min-width:960px){.nav-actions{display:flex}}
.nav-actions .btn-ghost{
  text-decoration:none;color:var(--espresso);font-family:var(--font-sans);
  font-size:.85rem;font-weight:500;padding:.4rem 1rem;border-radius:9999px;
  transition:background .3s var(--ease-out-expo);
}
.nav-actions .btn-ghost:hover{background:rgba(26,28,25,.06)}
.nav-actions .btn-primary{
  text-decoration:none;background:var(--green);color:#fff;
  font-family:var(--font-sans);font-size:.85rem;font-weight:600;
  padding:.5rem 1.25rem;border-radius:9999px;
  transition:transform .3s var(--ease-out-expo),box-shadow .3s var(--ease-out-expo);
}
.nav-actions .btn-primary:hover{transform:scale(.96);box-shadow:0 4px 20px rgba(26,90,42,.3)}

/* ==================== HAMBURGER ==================== */
.hamburger{
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  width:36px;height:36px;border:none;background:rgba(26,28,25,.06);border-radius:50%;
  cursor:pointer;position:relative;transition:background .3s var(--ease-out-expo);
  margin-left:auto;
}
@media(min-width:960px){.hamburger{display:none}}
.hamburger span{
  display:block;width:16px;height:1.5px;background:var(--espresso);
  border-radius:2px;position:absolute;
  transition:all .4s var(--ease-snap);
}
.hamburger span:nth-child(1){transform:translateY(-5px)}
.hamburger span:nth-child(2){transform:translateY(0)}
.hamburger span:nth-child(3){transform:translateY(5px)}
.hamburger.open span:nth-child(1){transform:translateY(0) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0;transform:translateY(0) scaleX(0)}
.hamburger.open span:nth-child(3){transform:translateY(0) rotate(-45deg)}

/* ==================== NAV OVERLAY ==================== */
.nav-overlay{
  position:fixed;inset:0;z-index:4000;
  background:rgba(26,28,25,.88);backdrop-filter:blur(48px) saturate(1.5);
  -webkit-backdrop-filter:blur(48px) saturate(1.5);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .5s var(--ease-out-expo);
}
.nav-overlay.open{opacity:1;pointer-events:auto}
.overlay-inner{display:flex;flex-direction:column;align-items:center;gap:1rem;max-height:100vh;overflow-y:auto;padding:5rem 1.5rem 2rem}
.overlay-inner a{
  color:#fdfbf7;text-decoration:none;
  font-family:var(--font-disp);font-size:clamp(1.5rem,6vw,2rem);font-weight:500;
  opacity:0;transform:translateY(32px);
  transition:all .6s var(--ease-out-expo);
}
.nav-overlay.open .overlay-inner a{
  opacity:1;transform:translateY(0);
}
.nav-overlay.open .overlay-inner a:nth-child(1){transition-delay:.1s}
.nav-overlay.open .overlay-inner a:nth-child(2){transition-delay:.15s}
.nav-overlay.open .overlay-inner a:nth-child(3){transition-delay:.2s}
.nav-overlay.open .overlay-inner a:nth-child(4){transition-delay:.25s}
.nav-overlay.open .overlay-inner a:nth-child(5){transition-delay:.3s}
.nav-overlay.open .overlay-inner a:nth-child(n+6){transition-delay:.35s}
.overlay-inner .overlay-cta{font-family:var(--font-sans);font-size:1rem;font-weight:600;background:var(--green);padding:.75rem 1.75rem;border-radius:9999px;margin-top:.5rem}
.overlay-close{
  position:absolute;top:1.5rem;right:1.5rem;
  width:44px;height:44px;border:none;border-radius:50%;
  background:rgba(255,255,255,.1);color:#fdfbf7;
  font-size:1.5rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s var(--ease-out-expo);
}
.overlay-close:hover{background:rgba(255,255,255,.18)}

/* ==================== HERO ==================== */
.hero{padding-top:8rem;padding-bottom:5rem;overflow:hidden}
@media(min-width:768px){.hero{padding-top:9rem;padding-bottom:6rem}}
@media(min-width:1024px){.hero{padding-top:10rem;padding-bottom:7rem}}
.hero .wrap{display:flex;flex-direction:column;gap:3rem}
@media(min-width:768px){.hero .wrap{flex-direction:row;align-items:center;gap:4rem}}
.hero-left{flex:1 1 55%}
.hero-right{flex:1 1 45%;display:flex;justify-content:center}
.hero-badge{
  display:inline-flex;align-items:center;gap:.4rem;
  background:rgba(26,90,42,.08);color:var(--green);
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  padding:.35rem .85rem;border-radius:9999px;
  margin-bottom:1.5rem;
}
.hero h1{
  font-family:var(--font-disp);font-weight:600;
  font-size:clamp(2.5rem,6vw,4.25rem);
  line-height:1.15;letter-spacing:-.02em;
  color:var(--espresso);
}
.hero h1 em{font-style:italic;color:var(--green)}
.hero-sub{
  margin-top:1.25rem;
  font-family:var(--font-body);font-size:clamp(1rem,2vw,1.15rem);
  color:rgba(26,28,25,.65);max-width:52ch;line-height:1.7;
}
.hero-cta{margin-top:2rem;display:flex;gap:.75rem;flex-wrap:wrap}
.hero-visual{
  width:100%;max-width:480px;aspect-ratio:4/3;
}
/* Double-Bezel hero visual */
.hero-bezel-outer{
  padding:.5rem;border-radius:2.25rem;
  background:rgba(26,28,25,.04);
  border:1px solid rgba(26,28,25,.06);
  box-shadow:0 24px 80px rgba(26,90,42,.06);
}
.hero-bezel-inner{
  border-radius:calc(2.25rem - .375rem);
  background:linear-gradient(135deg,#1a5a2a,#0d3315);
  padding:2rem;min-height:300px;
  display:flex;flex-direction:column;justify-content:center;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.12);
  position:relative;overflow:hidden;
}
.hero-bezel-inner::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 20% 30%,rgba(255,255,255,.08),transparent 60%);
  pointer-events:none;
}
.hero-bezel-inner::after{
  content:'';position:absolute;inset:1px;
  border-radius:inherit;border:1px solid rgba(255,255,255,.08);
  pointer-events:none;
}
.hero-visual-content{position:relative;z-index:1;color:#fdfbf7}
.hero-visual-content .stat-row{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}
.hero-visual-content .stat{text-align:center}
.hero-visual-content .stat-num{font-family:var(--font-disp);font-size:2rem;font-weight:600;line-height:1}
.hero-visual-content .stat-label{font-family:var(--font-sans);font-size:.7rem;opacity:.7;letter-spacing:.05em;text-transform:uppercase;margin-top:.25rem}
.hero-visual-content .verse-box{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:1rem;padding:1rem 1.25rem;
  font-family:var(--font-disp);font-weight:500;font-style:italic;font-size:.9rem;line-height:1.5;
}

/* ==================== BUTTON-IN-BUTTON ==================== */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-sans);font-weight:600;font-size:.85rem;
  padding:.65rem 1.25rem;border-radius:9999px;
  text-decoration:none;border:none;cursor:pointer;
  transition:all .4s var(--ease-out-expo);
}
.btn-primary{
  background:var(--green);color:#fff;
  padding:.65rem 1.25rem .65rem 1.5rem;
}
.btn-primary:hover{background:var(--green-l);transform:scale(.97)}
.btn-icon-wrap{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.75rem;height:1.75rem;border-radius:50%;
  background:rgba(255,255,255,.15);
  transition:transform .4s var(--ease-out-expo);
}
.btn-primary:hover .btn-icon-wrap{transform:translateX(2px) scale(1.05)}
.btn-icon{font-size:.75rem;line-height:1}
.btn-outline{
  background:transparent;color:var(--espresso);
  border:1px solid rgba(26,28,25,.12);
  padding:.65rem 1.5rem;
}
.btn-outline:hover{background:rgba(26,28,25,.04);border-color:rgba(26,28,25,.25)}
.btn-dark{
  background:var(--espresso);color:var(--cream);
  padding:.65rem 1.25rem .65rem 1.5rem;
}
.btn-dark:hover{background:#2a2d28;transform:scale(.97)}
.btn-dark .btn-icon-wrap{background:rgba(255,255,255,.12)}

/* ==================== ENTRY ANIMATIONS ==================== */
.reveal{opacity:0;transform:translateY(24px);transition:all .8s var(--ease-out-expo)}
.reveal.in-view{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
.reveal-delay-4{transition-delay:.4s}
.reveal-delay-5{transition-delay:.5s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ==================== SECTION HEADERS ==================== */
.section-eyebrow{
  display:inline-flex;align-items:center;
  font-family:var(--font-sans);font-size:.65rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--green);margin-bottom:1rem;
  border-radius:9999px;background:rgba(26,90,42,.06);
  padding:.25rem .75rem;
}
.section-h2{
  font-family:var(--font-disp);font-weight:600;
  font-size:clamp(1.75rem,4vw,2.75rem);
  line-height:1.2;letter-spacing:-.02em;
  color:var(--espresso);max-width:20ch;
}
.section-h2.light{color:var(--cream)}
.section-sub{
  font-family:var(--font-body);font-size:1.05rem;
  color:rgba(26,28,25,.55);max-width:48ch;line-height:1.7;
  margin-top:.75rem;
}

/* ==================== DOUBLE-BEZEL CARD ==================== */
.double-bezel{height:100%}
.bezel-outer{
  padding:.5rem;border-radius:var(--radius-xl);
  background:rgba(26,28,25,.035);
  border:1px solid rgba(26,28,25,.06);
  height:100%;transition:all .4s var(--ease-out-expo);
}
.bezel-outer:hover{background:rgba(26,90,42,.04);border-color:rgba(26,90,42,.12)}
.bezel-inner{
  border-radius:calc(var(--radius-xl) - .375rem);
  background:var(--cream);
  padding:2rem;height:100%;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 2px rgba(26,28,25,.04);
  position:relative;
}
.bezel-inner h3{
  font-family:var(--font-sans);font-weight:600;
  font-size:1.1rem;letter-spacing:-.02em;margin-bottom:.6rem;
  color:var(--espresso);
}
.bezel-inner p{
  font-family:var(--font-body);font-size:.9rem;
  color:rgba(26,28,25,.6);line-height:1.65;
}
.bezel-icon{
  width:2.5rem;height:2.5rem;border-radius:50%;
  background:rgba(26,90,42,.08);color:var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;margin-bottom:1rem;
  font-family:var(--font-sans);font-weight:600;
}
.bezel-arrow{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--font-sans);font-size:.8rem;font-weight:500;
  color:var(--green);margin-top:1rem;text-decoration:none;
  transition:gap .3s var(--ease-out-expo);
}
.bezel-arrow:hover{gap:.65rem}

/* ==================== FEATURES BENTO ==================== */
.features-bg{background:var(--cream-darker)}
.bento-grid{
  display:grid;grid-template-columns:1fr;gap:1rem;margin-top:3rem;
}
@media(min-width:640px){.bento-grid{grid-template-columns:repeat(6,1fr)}}
.bento-item{position:relative}
@media(min-width:640px){.bento-item:nth-child(1){grid-column:span 3;grid-row:span 2}}
@media(min-width:640px){.bento-item:nth-child(2){grid-column:span 3}}
@media(min-width:640px){.bento-item:nth-child(3){grid-column:span 3}}
@media(min-width:640px){.bento-item:nth-child(4){grid-column:span 2}}
@media(min-width:640px){.bento-item:nth-child(5){grid-column:span 2}}
@media(min-width:640px){.bento-item:nth-child(6){grid-column:span 2}}

/* ==================== CURRICULUM ==================== */
.curriculum-grid{
  display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:3rem;
}
@media(min-width:640px){.curriculum-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.curriculum-grid{grid-template-columns:repeat(3,1fr)}}

/* ==================== CTA DARK ==================== */
.cta-bg{background:linear-gradient(135deg,#0d3315,#1a5a2a);color:var(--cream);text-align:center}
.cta-bg .section-h2{color:var(--cream);margin:0 auto}
.cta-bg .section-sub{color:rgba(253,251,247,.65);margin:1rem auto 0}
.cta-buttons{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-top:2.5rem}


/* ==================== ACCESSIBILITY ==================== */
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:6000;background:var(--espresso);color:var(--cream);padding:.6rem 1rem;border-radius:.5rem;font-family:var(--font-sans);font-size:.85rem;text-decoration:none;transition:top .2s}
.skip-link:focus{top:1rem}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:.35rem}

/* ==================== FREE BADGE ==================== */
.free-pill{display:inline-flex;align-items:center;gap:.4rem;background:rgba(184,134,42,.12);color:#7a5614;font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .85rem;border-radius:9999px}
.hero-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}
.hero-badges .hero-badge{margin-bottom:0}

/* ==================== STAT STRIP ==================== */
.stat-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:3rem}
@media(min-width:768px){.stat-strip{grid-template-columns:repeat(4,1fr)}}
.stat-tile{border:1px solid var(--border-warm);border-radius:var(--radius-lg);padding:1.5rem;background:var(--cream)}
.stat-tile .num{font-family:var(--font-disp);font-weight:600;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1;color:var(--green);font-variant-numeric:tabular-nums}
.stat-tile .lbl{font-family:var(--font-sans);font-size:.8rem;color:rgba(26,28,25,.6);margin-top:.5rem}

/* ==================== STAGES + TRACK CARDS ==================== */
.stage{margin-top:3.5rem}
.stage-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-warm)}
.stage-head h3{font-family:var(--font-disp);font-weight:600;font-size:1.5rem;letter-spacing:-.01em}
.stage-head p{font-family:var(--font-body);font-size:.95rem;color:rgba(26,28,25,.6);flex:1 1 30ch}
.stage-num{font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.track-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1.5rem}
@media(min-width:640px){.track-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.track-grid{grid-template-columns:repeat(3,1fr)}}
.track-card{display:flex;flex-direction:column;gap:.5rem;height:100%;padding:1.5rem;border-radius:var(--radius-lg);background:var(--cream);border:1px solid var(--border-warm);text-decoration:none;color:inherit;transition:border-color .3s var(--ease-out-expo),transform .3s var(--ease-out-expo),box-shadow .3s var(--ease-out-expo)}
a.track-card:hover{border-color:rgba(26,90,42,.3);transform:translateY(-2px);box-shadow:0 12px 32px rgba(26,90,42,.08)}
.track-code{font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.1em;color:var(--green);background:rgba(26,90,42,.08);padding:.2rem .55rem;border-radius:9999px;align-self:flex-start}
.track-card h4{font-family:var(--font-sans);font-weight:600;font-size:1.05rem;letter-spacing:-.01em;line-height:1.35}
.track-card p{font-size:.9rem;color:rgba(26,28,25,.62);line-height:1.6;flex:1}
.track-meta{font-family:var(--font-sans);font-size:.75rem;color:rgba(26,28,25,.5);font-variant-numeric:tabular-nums}
.features-bg .track-card{background:#fffdf9}

/* ==================== PAGE HERO (SUBPAGES) ==================== */
.page-hero{padding-top:9rem;padding-bottom:3.5rem}
@media(min-width:768px){.page-hero{padding-top:10rem;padding-bottom:4.5rem}}
.page-hero h1{font-family:var(--font-disp);font-weight:600;font-size:clamp(2.1rem,5vw,3.5rem);line-height:1.15;letter-spacing:-.02em;max-width:22ch}
.page-hero h1 em{font-style:italic;color:var(--green)}
.page-hero .lead{margin-top:1.25rem;font-size:clamp(1rem,2vw,1.15rem);color:rgba(26,28,25,.65);max-width:60ch;line-height:1.7}
.page-hero + section{padding-top:0}
.section-tight{padding-top:4rem;padding-bottom:4rem}
@media(min-width:768px){.section-tight{padding-top:5rem;padding-bottom:5rem}}

/* ==================== PROSE ==================== */
.prose{max-width:72ch}
.prose h2{font-family:var(--font-disp);font-weight:600;font-size:1.6rem;line-height:1.25;letter-spacing:-.01em;margin:2.75rem 0 .75rem}
.prose h2:first-child{margin-top:0}
.prose h3{font-family:var(--font-sans);font-weight:600;font-size:1.05rem;margin:1.75rem 0 .5rem}
.prose p,.prose li{font-size:1rem;color:rgba(26,28,25,.78);line-height:1.75}
.prose p+p{margin-top:1rem}
.prose ul,.prose ol{margin:.75rem 0 1rem 1.25rem}
.prose li+li{margin-top:.35rem}
.prose a{color:var(--green);text-underline-offset:3px}
.prose blockquote{margin:1.5rem 0;padding:1rem 1.25rem;border-left:3px solid var(--gold);background:var(--cream-darker);border-radius:0 .75rem .75rem 0;font-family:var(--font-disp);font-style:italic;color:var(--espresso)}
.prose .updated{font-family:var(--font-sans);font-size:.8rem;color:rgba(26,28,25,.5);margin-bottom:2rem}

/* ==================== SPLIT + STEPS ==================== */
.split{display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr;gap:4rem;align-items:start}}
.steps{list-style:none;counter-reset:step;display:grid;gap:1rem;margin-top:2.5rem}
@media(min-width:768px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{counter-increment:step;padding:1.75rem;border-radius:var(--radius-lg);border:1px solid var(--border-warm);background:var(--cream)}
.steps li::before{content:counter(step);display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--green);color:#fff;font-family:var(--font-sans);font-weight:600;font-size:.9rem;margin-bottom:1rem}
.steps h3{font-family:var(--font-sans);font-weight:600;font-size:1.05rem;margin-bottom:.4rem}
.steps p{font-size:.92rem;color:rgba(26,28,25,.62);line-height:1.65}
.check-list{list-style:none;display:grid;gap:.75rem;margin-top:1.5rem}
.check-list li{position:relative;padding-left:1.75rem;font-size:.98rem;color:rgba(26,28,25,.78);line-height:1.6}
.check-list li::before{content:'';position:absolute;left:0;top:.45rem;width:.9rem;height:.5rem;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}
.check-list strong{color:var(--espresso)}

/* ==================== TRACK DETAIL (CURRICULUM PAGE) ==================== */
.jump-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.jump-nav a{font-family:var(--font-sans);font-size:.78rem;font-weight:500;text-decoration:none;color:var(--espresso);border:1px solid var(--border-warm);padding:.35rem .8rem;border-radius:9999px;transition:background .3s var(--ease-out-expo)}
.jump-nav a:hover{background:rgba(26,90,42,.06)}
.track-detail{scroll-margin-top:6rem;padding:2rem 0;border-top:1px solid var(--border-warm)}
.track-detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}
.track-detail h3{font-family:var(--font-disp);font-weight:600;font-size:clamp(1.3rem,3vw,1.6rem);letter-spacing:-.01em;line-height:1.25;width:100%;margin-top:.5rem}
.track-detail .summary{margin-top:.6rem;color:rgba(26,28,25,.68);max-width:70ch}
.chip{font-family:var(--font-sans);font-size:.72rem;font-weight:500;color:rgba(26,28,25,.6);border:1px solid var(--border-warm);padding:.15rem .6rem;border-radius:9999px;font-variant-numeric:tabular-nums}
.track-cols{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:1.25rem}
@media(min-width:900px){.track-cols{grid-template-columns:1fr 1fr;gap:2.5rem}}
.track-cols h4{font-family:var(--font-sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:.6rem}
.track-cols ul{list-style:none;display:grid;gap:.45rem}
.track-cols li{font-size:.92rem;color:rgba(26,28,25,.75);line-height:1.55;padding-left:1rem;position:relative}
.track-cols li::before{content:'';position:absolute;left:0;top:.6rem;width:.35rem;height:.35rem;border-radius:50%;background:var(--gold)}
details.courses{border:1px solid var(--border-warm);border-radius:1rem;background:var(--cream)}
details.courses summary{cursor:pointer;list-style:none;padding:.9rem 1.1rem;font-family:var(--font-sans);font-weight:600;font-size:.88rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
details.courses summary::-webkit-details-marker{display:none}
details.courses summary::after{content:'+';font-size:1.1rem;color:var(--green);transition:transform .3s var(--ease-out-expo)}
details.courses[open] summary::after{transform:rotate(45deg)}
details.courses ol{list-style:none;padding:0 1.1rem 1rem;display:grid;gap:.4rem;counter-reset:c}
details.courses ol li{counter-increment:c;display:flex;gap:.75rem;justify-content:space-between;font-size:.88rem;padding:.4rem 0 0;border-top:1px solid var(--border-warm);color:rgba(26,28,25,.78)}
details.courses ol li::before{display:none}
details.courses ol li span:first-child::before{content:counter(c,decimal-leading-zero) '  ';font-family:var(--font-sans);font-size:.72rem;color:rgba(26,28,25,.4);font-variant-numeric:tabular-nums}
details.courses ol li span:last-child{white-space:nowrap;font-family:var(--font-sans);font-size:.75rem;color:rgba(26,28,25,.5);font-variant-numeric:tabular-nums}

/* ==================== FAQ ==================== */
.faq-group{margin-top:3rem}
.faq-group:first-child{margin-top:0}
.faq-group h2{font-family:var(--font-disp);font-weight:600;font-size:1.4rem;margin-bottom:1rem}
.faq-item{border-bottom:1px solid var(--border-warm)}
.faq-item summary{cursor:pointer;list-style:none;padding:1.1rem 0;font-family:var(--font-sans);font-weight:600;font-size:1rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-size:1.25rem;color:var(--green);flex:none;transition:transform .3s var(--ease-out-expo)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item .answer{padding:0 0 1.25rem;max-width:68ch}
.faq-item .answer p{color:rgba(26,28,25,.72);line-height:1.75}
.faq-item .answer p+p{margin-top:.75rem}
.faq-item .answer a{color:var(--green)}

/* ==================== CONTACT ==================== */
.contact-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:768px){.contact-grid{grid-template-columns:repeat(3,1fr)}}
.contact-card{padding:1.75rem;border-radius:var(--radius-lg);border:1px solid var(--border-warm);background:var(--cream);display:flex;flex-direction:column;gap:.5rem}
.contact-card h3{font-family:var(--font-sans);font-weight:600;font-size:1.05rem}
.contact-card p{font-size:.92rem;color:rgba(26,28,25,.62);line-height:1.65;flex:1}
.contact-card a.link{font-family:var(--font-sans);font-weight:600;font-size:.9rem;color:var(--green);text-decoration:none;word-break:break-word}
.contact-card a.link:hover{text-decoration:underline;text-underline-offset:3px}

/* ==================== FOOTER ==================== */
footer{padding:4rem 1.5rem 3rem;border-top:1px solid rgba(26,28,25,.06)}
@media(min-width:768px){footer{padding:5rem 2rem 3rem}}
.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem 1.5rem}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr 1fr}}
.footer-brand{grid-column:1/-1}
@media(min-width:768px){.footer-brand{grid-column:auto}}
.footer-logo{font-family:var(--font-sans);font-weight:700;font-size:1rem;color:var(--espresso)}
.footer-logo em{font-style:normal;color:var(--green)}
.footer-tag{font-size:.88rem;color:rgba(26,28,25,.55);margin-top:.5rem;max-width:34ch;line-height:1.6}
.footer-col h2{font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(26,28,25,.45);margin-bottom:.9rem}
.footer-col ul{list-style:none;display:grid;gap:.6rem}
.footer-col a{text-decoration:none;color:rgba(26,28,25,.65);font-family:var(--font-sans);font-size:.85rem;font-weight:500;transition:color .3s var(--ease-out-expo)}
.footer-col a:hover,.footer-col a[aria-current="page"]{color:var(--espresso)}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border-warm)}
.footer-copy{font-family:var(--font-body);font-size:.75rem;color:rgba(26,28,25,.45)}
