/* ============================================================
   SUNDAMENTALS — design system v3 "Golden Hour"
   Brand #FFC400 · Type: Bricolage Grotesque only · Warm dusk-to-daylight palette
   ============================================================ */
:root{
  --sun:#FFC400;
  --sun-deep:#F2A900;
  --amber:#FF9F1C;
  --coral:#FF6B4A;
  --rose:#C2416B;
  --dusk:#2A1535;
  --dusk-2:#3B1F4A;
  --plum:#5B2459;
  --ink:#24142C;
  --ink-soft:#5E4E66;
  --paper:#FFFFFF;
  --butter:#FFF6DA;
  --peach:#FFEDE3;
  --sky:#EAF1FF;
  --mint:#E6F6EE;
  --leaf:#24804F;
  --line:#F0E4D2;
  --r-xl:28px; --r-lg:22px; --r-md:14px; --r-sm:10px;
  --max:1180px;
  --shadow:0 24px 60px -18px rgba(91,36,89,.28);
  --shadow-sm:0 10px 30px -12px rgba(91,36,89,.22);
  --sunset:linear-gradient(180deg,#2A1535 0%,#4A1E55 26%,#8E2F62 48%,#E0563F 70%,#FF9A1F 86%,#FFC400 100%);
  --glow:linear-gradient(120deg,#FFC400 0%,#FF9F1C 55%,#FF6B4A 100%);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:96px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
h1,h2,h3,.stat b,.calc .big,.quiz .score{font-variation-settings:'opsz' 96}
body{font-family:'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);line-height:1.68;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:clip}
html{overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:6px}
::selection{background:var(--sun);color:var(--ink)}

/* ---------------- header ---------------- */
.topbar{background:var(--dusk);color:#D8C6DE;font-size:13px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;padding:8px 24px;gap:16px}
.topbar a{color:var(--sun);text-decoration:none;font-weight:600}
.topbar a:hover{text-decoration:underline}
header.site{position:sticky;top:0;z-index:80;background:rgba(255,252,244,.9);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(240,228,210,.8)}
header.site .wrap{display:flex;align-items:center;gap:26px;height:76px}
.brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.brand img{height:36px;width:auto}
nav.main{margin-left:auto;display:flex;align-items:center;gap:2px}
nav.main>div{position:relative}
.navtop{background:none;border:0;font:inherit;font-weight:600;font-size:14.5px;color:var(--ink);padding:10px 14px;border-radius:999px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px;transition:background .15s}
.navtop:hover{background:var(--butter)}
.navtop .car{width:7px;height:7px;border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(45deg) translateY(-2px)}
.menu{position:absolute;top:calc(100% + 6px);left:0;min-width:250px;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:10px;display:none;flex-direction:column;max-height:72vh;overflow:auto}
.menu::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.menu.wide{min-width:440px;grid-template-columns:1fr 1fr}
nav.main div:hover>.menu,nav.main div:focus-within>.menu{display:flex}
nav.main div:hover>.menu.wide,nav.main div:focus-within>.menu.wide{display:grid}
.menu a{padding:9px 13px;border-radius:10px;font-size:14px;text-decoration:none;font-weight:500;color:var(--ink);white-space:nowrap;transition:background .12s,padding .12s}
.menu a:hover{background:var(--butter);padding-left:17px}
.menu .mhead{font-size:11.5px;font-weight:700;color:var(--coral);padding:10px 13px 3px;grid-column:1/-1}

.btn{display:inline-block;background:var(--sun);color:var(--ink);font-weight:700;font-size:15px;padding:14px 26px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;white-space:nowrap;box-shadow:0 10px 26px -8px rgba(255,159,28,.65)}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px -10px rgba(255,107,74,.6);background:#FFCE2E}
.btn:active{transform:translateY(0)}
.btn.ghost{background:transparent;border:2px solid var(--ink);color:var(--ink);box-shadow:none}
.btn.ghost:hover{background:var(--ink);color:var(--sun)}
.btn.ghost.light{border-color:rgba(255,255,255,.85);color:#fff}
.btn.ghost.light:hover{background:#fff;color:var(--dusk)}
.btn.sm{padding:10px 20px;font-size:14px}
#menuToggle{display:none;margin-left:auto;background:var(--butter);border:0;border-radius:999px;padding:9px 18px;font:inherit;font-weight:700;cursor:pointer}

/* ---------------- heroes (sunset sky + illustrated landscape) ---------------- */
.hero{position:relative;overflow:hidden;background:var(--sunset);color:#fff;isolation:isolate}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(1000px 420px at 50% 115%,rgba(255,214,90,.45),transparent 70%);z-index:0;pointer-events:none}
.hero .scene{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:300px;z-index:1;pointer-events:none;overflow:visible}
.hero .wrap{position:relative;z-index:2;padding-top:76px;padding-bottom:300px}
.hero .wrap>*{max-width:760px}
.hero .crumb{font-size:13.5px;color:#FFD86B;font-weight:700;margin-bottom:16px}
.hero .crumb a{color:#FFD86B;text-decoration:none}
.hero .crumb a:hover{text-decoration:underline}
.hero h1{font-size:clamp(34px,5.4vw,62px);line-height:1.04;letter-spacing:-.035em;font-weight:800;text-shadow:0 2px 30px rgba(42,21,53,.35)}
.hero h1 .y{color:var(--sun)}
.hero p.lead{margin-top:20px;font-size:clamp(16px,1.9vw,19px);color:#F6E3EC;max-width:58ch;font-weight:400}
.hero .actions{margin-top:32px;display:flex;gap:14px;flex-wrap:wrap}
.hero.home .scene{height:380px}
.hero.home .wrap{padding-top:96px;padding-bottom:360px;text-align:center}
.hero.home .wrap>*{margin-left:auto;margin-right:auto}
.hero.home h1{font-size:clamp(38px,6.6vw,80px);max-width:15ch}
.hero.home .actions{justify-content:center}
.scene .win{animation:flicker 7s ease-in-out infinite}
.scene .layer:nth-child(odd) .win{animation-delay:-3s}
@keyframes flicker{0%,100%{opacity:1}48%{opacity:.82}50%{opacity:1}}
.scene .glint{animation:glint 5s ease-in-out infinite}
@keyframes glint{0%,70%,100%{opacity:0}80%{opacity:.75}}
.scene .wave{animation:drift 6s linear infinite}
.scene .w1{animation-duration:8s;animation-direction:reverse}
.scene .w2{animation-duration:10s}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(60px)}}
.scene .beam{animation:beam 6s ease-in-out infinite;transform-origin:right center;transform-box:fill-box}
@keyframes beam{0%,100%{opacity:.25}50%{opacity:.85}}
.scene.night{}
.hero:has(.scene.night){background:linear-gradient(180deg,#0E0A26 0%,#1B1340 40%,#3B1F5A 72%,#7A3A6A 92%,#C2566A 100%)}
.lander-hero:has(.scene.night){background:linear-gradient(180deg,#0E0A26 0%,#1B1340 40%,#3B1F5A 72%,#7A3A6A 92%,#C2566A 100%)}

/* ticker */
.ticker{background:var(--sun);overflow:hidden;white-space:nowrap;border-top:3px solid var(--dusk);position:relative;z-index:3}
.ticker .track{display:inline-flex;gap:48px;padding:15px 0;animation:marquee 60s linear infinite}
.ticker span{display:inline-flex;align-items:center;gap:12px;font-weight:700;font-size:15px;color:var(--dusk)}
.ticker img{width:20px;height:20px}
.ticker:hover .track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------------- sections ---------------- */
section.band{padding:92px 0;position:relative}
section.band.washed{background:linear-gradient(180deg,var(--butter),#FFFBEF)}
section.band.dark{background:radial-gradient(900px 500px at 100% 0%,rgba(255,107,74,.22),transparent 60%),radial-gradient(800px 500px at 0% 100%,rgba(255,196,0,.14),transparent 60%),var(--dusk);color:#EADCEF;overflow:hidden}
section.band.sunny{background:var(--glow);overflow:hidden}
section.band.sunny::after{content:"";position:absolute;right:-120px;top:50%;width:520px;height:640px;transform:translateY(-50%) rotate(-12deg);background:url('img/sun-icon.png') center/contain no-repeat;opacity:.18;filter:brightness(0) saturate(100%) invert(12%) sepia(30%) saturate(2000%) hue-rotate(260deg);pointer-events:none}
section.band.sunny .wrap{position:relative;z-index:1}
section.band.tight{padding:60px 0}
.kicker{display:inline-flex;align-items:center;gap:9px;color:var(--coral);font-weight:700;font-size:14px;margin-bottom:14px}
.kicker::before{content:"";width:22px;height:22px;background:url('img/favicon.png') center/contain no-repeat;flex:0 0 auto}
.band.dark .kicker{color:var(--sun)}
.band.sunny .kicker{color:var(--dusk)}
.band.sunny .kicker::before{filter:brightness(0)}
h2.title{font-size:clamp(28px,3.9vw,46px);letter-spacing:-.032em;line-height:1.08;max-width:24ch;font-weight:800}
h2.title.center{margin-inline:auto;text-align:center}
.band.dark h2.title{color:#fff}
p.sub{margin-top:18px;color:var(--ink-soft);max-width:66ch;font-size:17.5px}
.band.dark p.sub{color:#CDB9D4}
.band.sunny p.sub{color:#4A2A10}
.center-block{text-align:center}
.center-block .sub{margin-inline:auto}
.center-block .kicker{justify-content:center}

.grid{display:grid;gap:22px;margin-top:48px}
.grid.c2{grid-template-columns:repeat(2,1fr)}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c4{grid-template-columns:repeat(4,1fr)}

/* cards — tinted, warm, alive */
.card{background:var(--butter);border:0;border-radius:var(--r-lg);padding:30px 28px;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s;position:relative;display:block;text-decoration:none;overflow:hidden}
.grid>.card:nth-child(4n+2){background:var(--peach)}
.grid>.card:nth-child(4n+3){background:var(--sky)}
.grid>.card:nth-child(4n+4){background:var(--mint)}
.card::after{content:"";position:absolute;right:-60px;bottom:-60px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(255,196,0,.35),transparent 70%);opacity:0;transition:opacity .25s,transform .25s;transform:scale(.6)}
a.card:hover::after{opacity:1;transform:scale(1.4)}
a.card:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:var(--shadow)}
.card h3{font-size:19px;letter-spacing:-.015em;margin-bottom:9px;font-weight:700;position:relative;z-index:1}
.card p{font-size:14.8px;color:var(--ink-soft);position:relative;z-index:1}
.card .icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--glow);color:var(--dusk);margin-bottom:18px;font-size:24px;box-shadow:0 10px 22px -10px rgba(255,107,74,.7);transition:transform .25s}
.card .icon svg{width:27px;height:27px}
a.card:hover .icon{transform:rotate(-8deg) scale(1.06)}
.card .more{display:inline-flex;gap:6px;align-items:center;margin-top:18px;font-weight:700;font-size:14px;color:var(--ink);position:relative;z-index:1;background:rgba(255,255,255,.7);padding:7px 14px;border-radius:999px;transition:background .2s}
a.card:hover .more{background:var(--sun)}
.band.dark .card,.band.dark .grid>.card:nth-child(n){background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(4px)}
.band.dark .card h3{color:#fff}
.band.dark .card p{color:#CDB9D4}
.band.dark .card .more{background:rgba(255,196,0,.15);color:var(--sun)}
.band.dark a.card:hover .more{background:var(--sun);color:var(--dusk)}
.band.washed .grid>.card:nth-child(n){background:#fff;box-shadow:var(--shadow-sm)}
.band.washed .grid>.card:nth-child(n) .icon{background:var(--glow)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:50px}
.stats.s3{grid-template-columns:repeat(3,1fr)}
.stat{padding:24px 24px 22px;border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--glow)}
.stat b{font-size:clamp(32px,3.9vw,50px);font-weight:800;letter-spacing:-.04em;display:block;line-height:1.02;background:linear-gradient(120deg,var(--coral),var(--amber) 70%);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{font-size:13.8px;color:var(--ink-soft);display:block;margin-top:9px}
.band.dark .stat{background:rgba(255,255,255,.06);box-shadow:none;border:1px solid rgba(255,255,255,.1)}
.band.dark .stat b{background:linear-gradient(120deg,var(--sun),var(--amber));-webkit-background-clip:text;background-clip:text}
.band.dark .stat span{color:#CDB9D4}

/* callout */
.didyouknow{margin-top:48px;background:linear-gradient(110deg,#FFF3C4,#FFE3D3);border-radius:var(--r-lg);padding:28px 32px;display:flex;gap:22px;align-items:flex-start;position:relative;overflow:hidden}
.didyouknow::after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;background:url('img/sun-icon.png') center/contain no-repeat;opacity:.18;transform:rotate(20deg)}
.didyouknow img{width:46px;flex:0 0 auto;animation:wob 6s ease-in-out infinite}
@keyframes wob{0%,100%{transform:rotate(0)}50%{transform:rotate(14deg)}}
.didyouknow b{display:block;margin-bottom:5px;font-size:16px;color:var(--ink)}
.didyouknow p{color:#5A3B28;font-size:15.3px;position:relative;z-index:1}

/* accordions */
details.faq{border:0;border-radius:var(--r-md);background:#fff;margin-top:12px;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .2s}
details.faq[open]{box-shadow:var(--shadow)}
details.faq summary{cursor:pointer;list-style:none;padding:20px 24px;font-weight:600;font-size:15.8px;display:flex;justify-content:space-between;align-items:center;gap:16px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";width:30px;height:30px;border-radius:50%;background:var(--butter);color:var(--coral);display:grid;place-items:center;font-size:20px;font-weight:600;transition:transform .25s,background .2s;flex:0 0 auto}
details.faq[open] summary::after{transform:rotate(45deg);background:var(--sun);color:var(--dusk)}
details.faq .body{padding:0 24px 22px;color:var(--ink-soft);font-size:15.2px}
details.faq .body a{color:var(--ink);font-weight:600;text-decoration-color:var(--amber)}
.band.dark details.faq{background:rgba(255,255,255,.07);box-shadow:none}
.band.dark details.faq summary{color:#fff}
.band.dark details.faq .body{color:#CDB9D4}
.band.dark details.faq summary::after{background:rgba(255,196,0,.15);color:var(--sun)}

/* chips + program finder */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.chip{border:0;background:var(--butter);border-radius:999px;padding:10px 19px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;color:var(--ink)}
.chip:hover{background:#FFE9A8;transform:translateY(-1px)}
.chip.active{background:var(--dusk);color:var(--sun);box-shadow:0 8px 18px -8px rgba(42,21,53,.6)}
.searchbar{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap}
.searchbar input{flex:1;min-width:250px;font:inherit;font-size:15.5px;padding:16px 22px;border:2px solid var(--line);border-radius:999px;background:#fff}
.searchbar input:focus{outline:0;border-color:var(--amber);box-shadow:0 0 0 5px rgba(255,196,0,.25)}
.result-count{margin-top:18px;font-size:14px;color:var(--ink-soft);font-weight:600}
.prog{border:0;border-radius:var(--r-md);background:#fff;padding:24px 26px;margin-top:14px;box-shadow:var(--shadow-sm);border-left:5px solid var(--sun);transition:transform .15s}
.prog:hover{transform:translateX(4px)}
.prog .tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.tag{font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:999px;background:#F5EEF6;color:var(--plum)}
.tag.amt{background:var(--mint);color:var(--leaf)}
.tag.yellow{background:var(--butter);color:#8A5A00}
.prog h3{font-size:17px;margin-bottom:6px;letter-spacing:-.01em}
.prog p{font-size:14.5px;color:var(--ink-soft)}
.prog a{display:inline-block;margin-top:12px;font-weight:700;font-size:14px;color:var(--ink);text-decoration:none;background:var(--butter);padding:6px 14px;border-radius:999px}
.prog a:hover{background:var(--sun)}
.prog.hide{display:none}

/* calculator panels */
.calc{background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.12);color:#EADCEF;border-radius:var(--r-xl);padding:42px;display:grid;grid-template-columns:1fr 1fr;gap:44px;margin-top:48px;backdrop-filter:blur(6px)}
.calc label{font-size:14.5px;font-weight:600;display:block;margin-bottom:12px;color:#fff}
.calc label span{color:var(--sun)}
.calc input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:10px;border-radius:999px;background:linear-gradient(90deg,var(--sun),var(--coral));outline:0}
.calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:#fff;border:5px solid var(--sun);box-shadow:0 4px 14px rgba(0,0,0,.35);cursor:grab}
.calc input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:5px solid var(--sun);cursor:grab}
.calc select{width:100%;font:inherit;padding:14px;border-radius:12px;border:0;margin-top:6px;background:#fff;color:var(--ink)}
.calc .readout{font-size:15px;margin-top:18px;color:#CDB9D4}
.calc .big{font-size:clamp(46px,6vw,76px);font-weight:800;letter-spacing:-.045em;line-height:1;background:linear-gradient(120deg,var(--sun),var(--amber) 60%,var(--coral));-webkit-background-clip:text;background-clip:text;color:transparent}
.calc .fine{font-size:12px;color:#A78FB0;margin-top:18px}
.calc .row{margin-top:26px}
.calc>div:last-child{background:rgba(42,21,53,.55);border-radius:var(--r-lg);padding:30px;border:1px solid rgba(255,196,0,.18)}

/* forms */
form.panel{background:#fff;border:0;border-radius:var(--r-xl);padding:38px;margin-top:44px;display:grid;grid-template-columns:1fr 1fr;gap:18px;box-shadow:var(--shadow);position:relative}
form.panel::before{content:"";position:absolute;inset:0 0 auto 0;height:7px;border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--glow)}
form.panel h3{grid-column:1/-1;font-size:24px;letter-spacing:-.025em}
form.panel p.note{grid-column:1/-1;color:var(--ink-soft);font-size:14.5px;margin-top:-8px}
form.panel label{font-size:13.5px;font-weight:600;display:block;margin-bottom:6px}
form.panel input,form.panel select{width:100%;font:inherit;font-size:15px;padding:14px 16px;border:2px solid var(--line);border-radius:12px;background:#FFFDF8;transition:border-color .15s,box-shadow .15s}
form.panel input:focus,form.panel select:focus{outline:0;border-color:var(--amber);box-shadow:0 0 0 5px rgba(255,196,0,.22)}
form.panel .full{grid-column:1/-1}
form.panel button{grid-column:1/-1;justify-self:start}
.form-ok{grid-column:1/-1;background:var(--mint);color:var(--leaf);border-radius:12px;padding:15px 18px;font-weight:600;display:none}

/* quiz */
.quiz{margin-top:48px;border-radius:var(--r-xl);overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.quiz .qhead{background:var(--dusk);color:#fff;padding:22px 32px;display:flex;justify-content:space-between;align-items:center;gap:18px}
.quiz .qhead .qlabel{font-weight:700;font-size:14px;white-space:nowrap;color:var(--sun)}
.quiz .qhead .track{flex:1;height:9px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}
.quiz .qhead .track i{display:block;height:100%;background:var(--glow);width:0;transition:width .4s cubic-bezier(.2,.8,.2,1);border-radius:999px}
.quiz .qbody{padding:34px}
.quiz h3{font-size:21px;margin-bottom:20px;letter-spacing:-.015em}
.quiz .opt{display:block;width:100%;text-align:left;font:inherit;font-size:15.5px;padding:17px 20px;border:2px solid var(--line);border-radius:var(--r-md);background:#FFFDF8;cursor:pointer;margin-top:10px;transition:all .15s}
.quiz .opt:hover{border-color:var(--sun);background:var(--butter);transform:translateX(4px)}
.quiz .opt.right{border-color:var(--leaf);background:var(--mint);font-weight:600}
.quiz .opt.wrong{border-color:var(--coral);background:var(--peach)}
.quiz .explain{margin-top:16px;font-size:14.8px;color:var(--ink-soft);background:var(--butter);border-radius:12px;padding:16px 18px;display:none}
.quiz .qfoot{padding:0 34px 32px;display:flex;justify-content:flex-end}
.quiz .score{font-size:clamp(52px,7vw,84px);font-weight:800;letter-spacing:-.045em;background:var(--glow);-webkit-background-clip:text;background-clip:text;color:transparent}

/* lessons */
.lesson{background:#fff;border-radius:var(--r-lg);padding:30px 32px 30px 96px;margin-top:20px;box-shadow:var(--shadow-sm);position:relative;counter-increment:lesson}
.lesson::before{content:counter(lesson);position:absolute;left:28px;top:28px;width:46px;height:46px;border-radius:14px;background:var(--glow);display:grid;place-items:center;font-weight:800;font-size:20px;color:var(--dusk)}
#lessons .wrap{counter-reset:lesson}
.lesson .num{font-weight:700;font-size:12.5px;color:var(--coral);margin-bottom:6px}
.lesson h3{font-size:20.5px;letter-spacing:-.018em;margin-bottom:10px}
.lesson p{color:var(--ink-soft);font-size:15.8px}

/* tabs */
.tabs{display:inline-flex;gap:6px;margin-top:36px;flex-wrap:wrap;background:var(--butter);padding:6px;border-radius:999px}
.tab{font:inherit;font-weight:700;font-size:14.5px;padding:11px 22px;border-radius:999px;border:0;background:transparent;cursor:pointer;color:var(--ink-soft);transition:all .15s}
.tab:hover{color:var(--ink)}
.tab.active{background:var(--dusk);color:var(--sun);box-shadow:0 8px 18px -8px rgba(42,21,53,.55)}
.tabpanel{border-radius:var(--r-xl);background:#fff;padding:38px;display:none;margin-top:20px;box-shadow:var(--shadow)}
.tabpanel.active{display:block;animation:rise .35s ease}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tabpanel h3{font-size:23px;letter-spacing:-.022em;margin-bottom:12px}
.tabpanel p{color:var(--ink-soft);max-width:72ch}
.tabpanel ul{margin:20px 0 0;list-style:none;color:var(--ink-soft)}
.tabpanel li{margin-top:12px;font-size:15.2px;padding-left:30px;position:relative}
.tabpanel li::before{content:"";position:absolute;left:0;top:4px;width:18px;height:18px;background:url('img/favicon.png') center/contain no-repeat}
.tabpanel a{color:var(--ink);font-weight:600;text-decoration-color:var(--amber);text-underline-offset:3px}

/* prose */
.prose{max-width:780px;margin-top:44px}
.prose h3{font-size:24px;letter-spacing:-.022em;margin:42px 0 12px}
.prose h3:first-child{margin-top:0}
.prose p{color:var(--ink-soft);margin-top:14px;font-size:16.8px}
.prose ul,.prose ol{margin:14px 0 0 24px;color:var(--ink-soft)}
.prose li{margin-top:7px}
.prose a{color:var(--ink);font-weight:600;text-decoration-color:var(--amber);text-underline-offset:3px}
.prose strong{color:var(--ink)}

/* ticks */
.ticks{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:30px;max-width:780px}
.ticks div{display:flex;gap:12px;align-items:flex-start;font-weight:600;font-size:15.2px}
.ticks div::before{content:"✓";flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--glow);color:var(--dusk);display:grid;place-items:center;font-size:13px;font-weight:800;margin-top:1px}
.center-block .ticks{margin-inline:auto;text-align:left}

/* video slot */
.video{margin-top:46px;border-radius:var(--r-xl);overflow:hidden;background:var(--sunset);aspect-ratio:16/9;position:relative;box-shadow:var(--shadow)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video .placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#F6E3EC;text-align:center;padding:24px;background:radial-gradient(circle at 50% 60%,rgba(255,214,90,.35),transparent 60%)}
.video .playbtn{width:92px;height:92px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 16px rgba(255,255,255,.18),0 0 0 32px rgba(255,255,255,.08);animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 14px rgba(255,255,255,.18),0 0 0 28px rgba(255,255,255,.07)}50%{box-shadow:0 0 0 20px rgba(255,255,255,.12),0 0 0 40px rgba(255,255,255,.04)}}
.video .playbtn::after{content:"";border-left:28px solid var(--coral);border-top:17px solid transparent;border-bottom:17px solid transparent;margin-left:8px}
.video .placeholder b{color:#fff;font-size:20px;letter-spacing:-.01em}
.video .placeholder span{font-size:13px;max-width:46ch;opacity:.8}

/* grid-mix bar (province pages) */
.mixbar{display:flex;height:40px;border-radius:999px;overflow:hidden;margin-top:26px;box-shadow:var(--shadow-sm)}
.mixbar span{display:block;height:100%;transition:filter .15s}
.mixbar span:hover{filter:brightness(1.1)}
.mixkey{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px;font-size:13.8px;color:var(--ink-soft);font-weight:500}
.mixkey i{display:inline-block;width:13px;height:13px;border-radius:4px;margin-right:7px;vertical-align:-1px}
.c-hydro{background:#4A86E8}.c-wind{background:#38C1A0}.c-nuclear{background:#9B7BE6}.c-gas{background:#E9B3A0}.c-coal{background:#7A6470}.c-solar{background:var(--sun)}.c-bio{background:#B9925A}.c-oil{background:#A04A3A}

/* facts strip */
.factrow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:42px}
.fact{background:#fff;border-radius:var(--r-lg);padding:22px 22px 20px;box-shadow:var(--shadow-sm);border-top:5px solid var(--sun)}
.fact:nth-child(2){border-top-color:var(--amber)}.fact:nth-child(3){border-top-color:var(--coral)}.fact:nth-child(4){border-top-color:var(--rose)}
.fact b{font-size:25px;font-weight:800;letter-spacing:-.025em;display:block;line-height:1.15}
.fact span{font-size:12.8px;color:var(--ink-soft);display:block;margin-top:6px}

/* province grid */
.provgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:46px}
.provgrid a{border:0;border-radius:var(--r-md);padding:20px 20px 18px;text-decoration:none;font-weight:700;font-size:15.5px;transition:all .18s;background:#fff;display:flex;flex-direction:column;gap:5px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.provgrid a::before{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:var(--glow);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.provgrid a:hover::before{transform:scaleX(1)}
.provgrid a small{font-weight:500;font-size:12.8px;color:var(--ink-soft)}
.provgrid a:hover{transform:translateY(-3px);box-shadow:var(--shadow)}

/* steps */
.steps{counter-reset:s;margin-top:52px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.step{background:#fff;border-radius:var(--r-lg);padding:34px 26px 28px;counter-increment:s;position:relative;box-shadow:var(--shadow-sm)}
.step::before{content:counter(s);position:absolute;top:-20px;left:24px;width:44px;height:44px;border-radius:14px;background:var(--glow);color:var(--dusk);font-weight:800;display:grid;place-items:center;font-size:19px;box-shadow:0 10px 20px -8px rgba(255,107,74,.7)}
.step h3{font-size:18px;margin:10px 0 8px}
.step p{font-size:14.6px;color:var(--ink-soft)}

/* glossary */
.glossary dt{font-weight:700;font-size:17px;margin-top:28px;display:flex;gap:10px;align-items:center}
.glossary dt::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--glow);flex:0 0 auto}
.glossary dd{color:var(--ink-soft);font-size:15.3px;margin-top:6px;max-width:72ch;padding-left:20px}
.alpha{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}
.alpha a{width:40px;height:40px;display:grid;place-items:center;background:var(--butter);border-radius:12px;font-weight:700;font-size:14px;text-decoration:none;transition:all .15s}
.alpha a:hover{background:var(--sun);transform:translateY(-2px)}

/* news */
.newscard{display:flex;flex-direction:column}
.grid>.newscard:nth-child(n){background:#fff;box-shadow:var(--shadow-sm)}
.newscard .thumb{height:170px;border-radius:16px;margin-bottom:20px;background:var(--sunset);position:relative;overflow:hidden}
.newscard .thumb::after{content:"";position:absolute;right:-20px;bottom:-30px;width:140px;height:170px;background:url('img/sun-icon.png') center/contain no-repeat;opacity:.9;transition:transform .5s}
a.newscard:hover .thumb::after{transform:rotate(25deg) scale(1.08)}
.newscard .thumb.warm{background:linear-gradient(135deg,#FF6B4A,#FFC400)}
.newscard .thumb.green{background:linear-gradient(135deg,#1F6B47,#38C1A0 70%,#FFD54A)}
.newscard time{font-size:12.5px;color:var(--coral);margin-bottom:6px;display:block;font-weight:700}

/* comparison table */
table.cmp{width:100%;border-collapse:separate;border-spacing:0;margin-top:46px;font-size:14.8px;background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
table.cmp th{background:var(--dusk);color:var(--sun);text-align:left;padding:17px 20px;font-size:13.5px}
table.cmp td{padding:16px 20px;border-top:1px solid var(--line);color:var(--ink-soft);vertical-align:top}
table.cmp td:first-child{font-weight:700;color:var(--ink)}
table.cmp tr:nth-child(1) td{background:#FFF8DE}
table.cmp tr:hover td{background:var(--butter)}

/* landing pages */
.lander-hero{background:var(--sunset);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.lander-hero .scene{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:260px;z-index:0;pointer-events:none;overflow:visible}
.lander-hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;padding-top:70px;padding-bottom:200px;align-items:start}
.lander-hero h1{font-size:clamp(32px,4.6vw,56px);line-height:1.05;letter-spacing:-.035em;font-weight:800}
.lander-hero h1 .y{color:var(--sun)}
.lander-hero p.lead{margin-top:20px;color:#F6E3EC;font-size:17.5px;max-width:52ch}
.lander-hero .ticks div{color:#fff}
.lander-hero form.panel{margin-top:0;box-shadow:0 40px 90px -20px rgba(20,8,30,.7);color:var(--ink)}
.trustbar{background:var(--sun);border-top:3px solid var(--dusk)}
.trustbar .wrap{display:flex;justify-content:space-between;gap:20px;padding:18px 24px;flex-wrap:wrap;font-weight:700;font-size:14.2px;color:var(--dusk)}

/* footer */
section.band:has(+ footer),section.band:has(+ script + footer),section.band:has(+ script + script + footer){padding-bottom:190px}
footer.site{background:#22112C;color:#BFA9C7;padding:0 0 34px;position:relative;margin-top:0}
footer.site .footscene{display:block;width:100%;height:170px;margin-top:-120px;position:relative;pointer-events:none}
footer.site .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:34px;padding-top:30px}
footer.site img.flogo{width:220px;margin-bottom:18px}
footer.site h4{color:var(--sun);font-size:14px;margin-bottom:15px;font-weight:700}
footer.site a{display:block;color:#BFA9C7;text-decoration:none;font-size:14px;margin-top:9px;transition:color .15s,transform .15s}
footer.site a:hover{color:#fff;transform:translateX(3px)}
footer.site p{font-size:14px;max-width:36ch}
footer.site .fine{border-top:1px solid rgba(255,255,255,.08);margin-top:50px;padding-top:26px;font-size:12.8px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.newsletter{display:flex;gap:8px;margin-top:20px;max-width:380px;background:rgba(255,255,255,.07);padding:6px;border-radius:999px}
.newsletter input{flex:1;font:inherit;font-size:14px;padding:11px 16px;border-radius:999px;border:0;background:transparent;color:#fff;min-width:0}
.newsletter input::placeholder{color:#9C86A6}
.newsletter input:focus{outline:0}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.grid>.reveal:nth-child(2),.stats>.reveal:nth-child(2),.factrow>.reveal:nth-child(2),.steps>.reveal:nth-child(2){transition-delay:.08s}
.grid>.reveal:nth-child(3),.stats>.reveal:nth-child(3),.factrow>.reveal:nth-child(3),.steps>.reveal:nth-child(3){transition-delay:.16s}
.grid>.reveal:nth-child(4),.stats>.reveal:nth-child(4),.factrow>.reveal:nth-child(4),.steps>.reveal:nth-child(4){transition-delay:.24s}

@media(max-width:1020px){
  .grid.c4{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .provgrid{grid-template-columns:repeat(3,1fr)}
  .factrow{grid-template-columns:repeat(2,1fr)}
  .lander-hero .wrap{grid-template-columns:1fr;padding-bottom:180px}
  footer.site .cols{grid-template-columns:1fr 1fr 1fr}
  nav.main{display:none;position:absolute;top:76px;left:0;right:0;background:#FFFCF4;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:12px 20px 22px;gap:2px;max-height:calc(100vh - 76px);overflow:auto;box-shadow:var(--shadow)}
  nav.main.open{display:flex}
  nav.main .menu,nav.main .menu.wide{position:static;display:flex;grid-template-columns:1fr;box-shadow:none;border:0;padding:0 0 8px 14px;max-height:none;background:transparent}
  nav.main div:hover>.menu.wide{display:flex}
  #menuToggle{display:block}
  header.site .btn{display:none}
  .steps[style]{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:640px){
  .grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}
  .stats,.stats.s3{grid-template-columns:1fr 1fr}
  .steps,.steps[style]{grid-template-columns:1fr!important}
  .ticks{grid-template-columns:1fr}
  .calc{grid-template-columns:1fr;padding:24px}
  .calc>div:last-child{padding:22px}
  form.panel{grid-template-columns:1fr;padding:26px}
  .provgrid{grid-template-columns:1fr 1fr}
  .factrow{grid-template-columns:1fr 1fr}
  footer.site .cols{grid-template-columns:1fr 1fr}
  .hero .scene{height:200px}
  .hero .wrap{padding-top:56px;padding-bottom:200px}
  .hero.home .scene{height:240px}
  .hero.home .wrap{padding-top:64px;padding-bottom:230px}
  .lesson{padding:80px 22px 24px}
  .lesson::before{left:22px;top:22px}
  .tabpanel{padding:24px}
  .tabs{border-radius:20px}
  table.cmp{display:block;overflow-x:auto}
  section.band{padding:68px 0}
  .topbar .wrap>span:first-child{display:none}
}

/* form states */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-err{grid-column:1/-1;background:var(--peach);color:#A1361F;border-radius:12px;padding:13px 16px;font-weight:600;font-size:14px;display:none}
form.panel .fine-print{font-size:12px;color:var(--ink-soft);margin-top:-4px}
form.panel button[disabled]{opacity:.7;cursor:default;transform:none}

/* ---------------- EV charging map ---------------- */
.evtools{display:grid;grid-template-columns:1fr auto auto;gap:12px;margin-top:34px}
.evtools input,.evtools select{font:inherit;font-size:15.5px;padding:15px 20px;border:2px solid var(--line);border-radius:999px;background:#fff;min-width:0}
.evtools input:focus,.evtools select:focus{outline:0;border-color:var(--amber);box-shadow:0 0 0 5px rgba(255,196,0,.22)}
.evtools button{white-space:nowrap}
.evfilters{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}
.evfilters .lbl{font-size:13px;font-weight:700;color:var(--ink-soft);margin-right:4px}
.evfilters .sep{width:1px;height:24px;background:var(--line);margin:0 8px}
#evcities{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
#evcities button{font:inherit;font-size:13px;font-weight:600;border:0;background:var(--butter);padding:7px 14px;border-radius:999px;cursor:pointer}
#evcities button:hover{background:var(--sun)}
.evwrap{display:grid;grid-template-columns:1.35fr 1fr;gap:0;margin-top:22px;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow);background:#fff;height:680px}
#evmap{height:100%;position:relative;background:var(--butter)}
#evarea{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:500}
.evside{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line)}
.evstatus{padding:16px 20px;font-size:13.5px;font-weight:600;background:var(--butter);color:var(--ink)}
.evstatus.err{background:var(--peach);color:#A1361F}
#evlist{overflow:auto;padding:12px;flex:1}
.evcard{padding:16px 18px;border-radius:14px;cursor:pointer;transition:background .15s;border:2px solid transparent}
.evcard+.evcard{margin-top:6px}
.evcard:hover{background:#FFFBEF}
.evcard.on{border-color:var(--sun);background:#FFFBEF}
.evtop{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.evcard h3{font-size:15.5px;letter-spacing:-.01em}
.evdist{font-size:12.5px;font-weight:700;color:var(--coral);white-space:nowrap}
.evaddr{font-size:13px;color:var(--ink-soft);margin-top:3px}
.evbadges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.evb{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;background:#F5EEF6;color:var(--plum)}
.evb.dc{background:#FFE9C7;color:#9A5B00}
.evb.l2{background:#EFE6F7;color:var(--plum)}
.evmeta{font-size:12.5px;color:var(--ink-soft);margin-top:8px;line-height:1.55}
.evdir{display:inline-block;margin-top:8px;font-size:13px;font-weight:700;color:var(--ink);background:var(--butter);padding:5px 12px;border-radius:999px;text-decoration:none}
.evdir:hover{background:var(--sun)}
.evempty{padding:30px 20px;text-align:center;color:var(--ink-soft);font-size:14.5px}
.evskel{height:96px;border-radius:14px;margin:6px 0;background:linear-gradient(90deg,#FFF6DA 25%,#FFFBEF 50%,#FFF6DA 75%);background-size:200% 100%;animation:skel 1.2s linear infinite}
@keyframes skel{to{background-position:-200% 0}}
.evpop{font-family:inherit;font-size:13px;line-height:1.5}
.evlegend{display:flex;gap:18px;margin-top:14px;font-size:13px;color:var(--ink-soft)}
.evlegend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}
@media(max-width:900px){.evwrap{grid-template-columns:1fr;height:auto}#evmap{height:380px}.evside{border-left:0;border-top:1px solid var(--line)}#evlist{max-height:520px}.evtools{grid-template-columns:1fr 1fr}.evtools input{grid-column:1/-1}}
#evarea[hidden]{display:none}

/* ---------------- blog ---------------- */
.post-card{display:flex;flex-direction:column;background:#fff;border-radius:var(--r-lg);overflow:hidden;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.post-card.hide{display:none}
.pthumb{height:150px;position:relative;overflow:hidden;display:grid;place-items:center}
.pthumb::after{content:"";position:absolute;right:-24px;bottom:-34px;width:120px;height:150px;background:url('img/sun-icon.png') center/contain no-repeat;opacity:.35;transition:transform .5s}
.post-card:hover .pthumb::after{transform:rotate(22deg) scale(1.08)}
.pthumb .icon{width:62px;height:62px;border-radius:18px;background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--dusk);position:relative;z-index:1;box-shadow:0 12px 26px -10px rgba(0,0,0,.35)}
.pthumb .icon svg{width:30px;height:30px}
.t-solar{background:linear-gradient(135deg,#FF9F1C,#FFC400)}.t-wind{background:linear-gradient(135deg,#38C1A0,#9BE5C9)}
.t-hydro{background:linear-gradient(135deg,#3A6FD8,#7FB2FF)}.t-heat{background:linear-gradient(135deg,#E0563F,#FF9F1C)}
.t-bio{background:linear-gradient(135deg,#6B8F2A,#C9D96A)}.t-ocean{background:linear-gradient(135deg,#1F5F8B,#4FC3D9)}
.t-ev{background:linear-gradient(135deg,#5B2459,#C2416B)}.t-batt{background:linear-gradient(135deg,#2A1535,#6A3B8F)}
.t-home{background:linear-gradient(135deg,#C2416B,#FF8A6B)}.t-money{background:linear-gradient(135deg,#24804F,#7CCB8E)}
.t-climate{background:linear-gradient(135deg,#3B2A6B,#8E6BD6)}
.pbody{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.pcat{font-size:12px;font-weight:700;color:var(--coral)}
.post-card h3{font-size:18px;letter-spacing:-.015em;line-height:1.28;margin:6px 0 8px}
.post-card p{font-size:14px;color:var(--ink-soft);flex:1}
.pmeta{font-size:12.5px;color:var(--ink-soft);margin-top:14px;font-weight:600}
.featured .post-card.big{flex-direction:row;min-height:300px}
.featured .post-card.big .pthumb{width:42%;height:auto}
.featured .post-card.big .pthumb .icon{width:90px;height:90px;border-radius:26px}
.featured .post-card.big .pthumb .icon svg{width:44px;height:44px}
.featured .post-card.big .pbody{padding:38px;justify-content:center}
.featured .post-card.big h3{font-size:clamp(24px,2.6vw,32px)}
.featured .post-card.big p{font-size:16px;flex:0}
.chip .cnt{opacity:.55;font-weight:500;margin-left:3px}
.hero.post-hero .wrap>*{max-width:840px}
.hero.post-hero h1{font-size:clamp(30px,4.4vw,52px)}
.postmeta{margin-top:18px;font-size:13.5px;color:#FFD86B;font-weight:600}
.postband{padding-top:64px}
.postgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start}
.post{font-size:17.5px;line-height:1.78;color:#3B2C42;max-width:740px}
.post>p:first-child{font-size:19.5px;line-height:1.65;color:var(--ink)}
.post h2{font-size:clamp(24px,2.6vw,31px);letter-spacing:-.025em;line-height:1.18;margin:52px 0 14px;color:var(--ink);scroll-margin-top:100px}
.post h3{font-size:20px;letter-spacing:-.015em;margin:32px 0 8px;color:var(--ink)}
.post p{margin-top:16px}
.post ul,.post ol{margin:16px 0 0 4px;padding-left:22px}
.post li{margin-top:8px}
.post li::marker{color:var(--amber)}
.post a{color:var(--ink);font-weight:600;text-decoration-color:var(--amber);text-decoration-thickness:2px;text-underline-offset:3px}
.post strong{color:var(--ink)}
.post h2#key-takeaways{display:none}
.post h2#key-takeaways+ul{background:var(--butter);border-radius:var(--r-lg);padding:24px 28px 24px 48px;margin-top:30px}
.post h2#key-takeaways+ul::before{content:"Key takeaways";display:block;font-weight:800;margin:0 0 6px -20px;color:var(--ink)}
.tablewrap{overflow-x:auto;margin-top:22px;border-radius:var(--r-md);box-shadow:var(--shadow-sm)}
.post table{width:100%;border-collapse:collapse;font-size:15px;background:#fff}
.post th{background:var(--dusk);color:var(--sun);text-align:left;padding:12px 14px;font-size:13.5px}
.post td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:top}
.post tr:nth-child(even) td{background:#FFFBEF}
.posttags{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px}
.postnote{font-size:13.5px;color:var(--ink-soft);margin-top:26px;border-top:1px solid var(--line);padding-top:18px}
.nudge{display:flex;gap:14px;align-items:center;background:linear-gradient(110deg,#FFF6DA,#FFEDE3);border-radius:14px;padding:14px 18px;margin:36px 0 0}
.nudge img{width:28px;flex:0 0 auto}
.nudge p{margin:0;font-size:15px}
.postside{position:sticky;top:100px;display:flex;flex-direction:column;gap:18px}
.sidebox{background:#fff;border-radius:var(--r-lg);padding:20px 22px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:2px}
.sidebox b{font-size:13px;color:var(--coral);margin-bottom:8px}
.sidebox a{font-size:14px;text-decoration:none;color:var(--ink-soft);padding:5px 0;line-height:1.35;border-left:2px solid transparent;padding-left:10px;margin-left:-12px;transition:all .15s}
.sidebox a:hover,.sidebox a.on{color:var(--ink);border-left-color:var(--sun)}
.toc{max-height:46vh;overflow:auto}
/* soft lead capture */
.lead-form.soft{background:#fff;border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-sm);border:1.5px solid #FFE6A3;position:relative}
.lead-form.soft.end{margin-top:46px;padding:30px;background:linear-gradient(120deg,#FFFBEF,#FFF3E8)}
.lf-head{display:flex;gap:12px;align-items:flex-start}
.lf-head img{width:30px;flex:0 0 auto;margin-top:2px}
.lf-head b{font-size:15.5px;display:block;line-height:1.3}
.lf-head p{font-size:13.5px;color:var(--ink-soft);margin-top:4px;line-height:1.5}
.lead-form.end .lf-head b{font-size:20px}
.lead-form.end .lf-head p{font-size:15px}
.lf-step1{display:flex;gap:8px;margin-top:14px}
.lf-step1 input,.lf-step2 input,.lf-step2 select{font:inherit;font-size:14.5px;padding:11px 14px;border:2px solid var(--line);border-radius:10px;background:#FFFDF8;min-width:0;width:100%}
.lf-step1 input:focus,.lf-step2 input:focus,.lf-step2 select:focus{outline:0;border-color:var(--amber)}
.lf-step1 input{flex:1}
.lf-step2{display:none;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.lead-form.open .lf-step2{display:grid}
.lead-form.open .lf-step1 button{display:none}
.lf-step2 button,.lf-step2 .fine-print,.lf-step2 select,.lf-step2 [name=email]{grid-column:1/-1}
.lead-form.side .lf-step2{grid-template-columns:1fr}
.lead-form.side .lf-step1{flex-direction:column}
.lead-form .fine-print{font-size:11.5px;color:var(--ink-soft)}
.lead-form.soft .form-err,.lead-form.soft .form-ok{margin-top:10px}
@media(max-width:1020px){.postgrid{grid-template-columns:1fr}.postside{position:static}.toc{display:none}.featured .post-card.big{flex-direction:column}.featured .post-card.big .pthumb{width:100%;height:180px}}

/* ---------------- address finder ---------------- */
.addrbox{background:#fff;border-radius:var(--r-xl);padding:34px;box-shadow:var(--shadow);position:relative;margin-top:-140px;z-index:5}
.addrbox::before{content:"";position:absolute;inset:0 0 auto 0;height:7px;border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--glow)}
.addrbox label b{display:block;font-size:22px;letter-spacing:-.02em}
.addrbox label span{display:block;color:var(--ink-soft);font-size:15px;margin-top:4px}
.addrrow{display:flex;gap:10px;margin-top:18px}
.addrrow input{flex:1;font:inherit;font-size:17px;padding:17px 24px;border:2px solid var(--line);border-radius:999px;background:#FFFDF8;min-width:0}
.addrrow input:focus{outline:0;border-color:var(--amber);box-shadow:0 0 0 5px rgba(255,196,0,.22)}
.addrmsg{font-size:14px;margin-top:10px;color:var(--ink-soft);min-height:1px}
.addrmsg.err{color:#A1361F;font-weight:600}
.provpick{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;align-items:center}
.provpick span{font-size:13px;font-weight:700;color:var(--ink-soft);margin-right:4px}
.provpick .chip{font-size:13px;padding:7px 14px}
.where{display:flex;align-items:center;gap:14px;margin-top:46px;background:var(--dusk);color:#fff;border-radius:var(--r-lg);padding:18px 22px}
.where .pin{font-size:24px}
.where b{display:block;font-size:20px;color:var(--sun)}
.where small{color:#CDB9D4;font-size:13px}
.where .chip{margin-left:auto;background:rgba(255,255,255,.12);color:#fff}
.title.sm{font-size:clamp(22px,2.4vw,28px);margin-top:48px}
.gsub{color:var(--ink-soft);font-size:14.5px;margin-top:6px}
.gempty{color:var(--ink-soft);font-size:14.5px;margin-top:12px}
.rgroup[hidden]{display:none}
.closedbox{margin-top:46px;background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:6px 22px}
.closedbox summary{cursor:pointer;font-weight:700;padding:14px 0;color:var(--ink-soft)}
.closedbox .prog{opacity:.75}
.prog .tag.status{background:var(--mint);color:var(--leaf)}
.prog.st-upcoming .tag.status{background:var(--sky);color:#2C55A8}
.prog.st-waitlist .tag.status,.prog.st-paused .tag.status{background:#FFE9C7;color:#9A5B00}
.prog.st-closed .tag.status{background:#EEE6EE;color:#6B5A70}
.prog.st-closed,.prog.st-paused{border-left-color:#D8CCD9}
.prog .tag.warn{background:#FFF0E8;color:#B0461F}
.prog .checked{font-size:12px;color:var(--ink-soft);margin-left:12px}
#allprogs[hidden]{display:none}
@media(max-width:640px){.addrbox{padding:24px;margin-top:-100px}.addrrow{flex-direction:column}.where{flex-wrap:wrap}}

/* ---------------- courses v2 ---------------- */
.cinfo{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start}
.cinfo .prose{margin-top:34px}
.cfacts{background:#fff;border-radius:var(--r-xl);padding:30px;box-shadow:var(--shadow);position:sticky;top:100px}
.cfi .icon{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--glow);color:var(--dusk)}
.cfi .icon svg{width:32px;height:32px}
.cfacts dl{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;margin:22px 0 18px;font-size:14.5px}
.cfacts dt{font-weight:700;color:var(--coral)}
.cfacts dd{color:var(--ink)}
.cfor{font-size:14px;color:var(--ink-soft);margin-bottom:20px}
.cfacts .btn{width:100%;text-align:center}
.cprogress{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.ctrack{flex:1;height:10px;background:#fff;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}
.ctrack i{display:block;height:100%;width:0;background:var(--glow);border-radius:999px;transition:width .5s cubic-bezier(.2,.8,.2,1)}
#cpct{font-size:13.5px;font-weight:700;color:var(--ink-soft);white-space:nowrap}
.cplayer{display:grid;grid-template-columns:290px minmax(0,1fr);gap:28px;align-items:start}
.cnav{background:#fff;border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-sm);position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto}
.cmod{padding:8px 0}
.cmod+.cmod{border-top:1px solid var(--line)}
.cmod>b{display:block;font-size:12px;color:var(--coral);padding:4px 10px 0}
.cmod>span{display:block;font-size:14px;font-weight:700;padding:0 10px 6px}
.cnav a{display:flex;gap:10px;align-items:flex-start;font-size:13.8px;text-decoration:none;color:var(--ink-soft);padding:8px 10px;border-radius:10px;line-height:1.35}
.cnav a::before{content:"";flex:0 0 auto;width:16px;height:16px;border-radius:50%;border:2px solid var(--line);margin-top:1px;background:#fff}
.cnav a.done::before{background:var(--leaf);border-color:var(--leaf);box-shadow:inset 0 0 0 3px #fff}
.cnav a:hover{background:var(--butter);color:var(--ink)}
.cnav a.on{background:var(--butter);color:var(--ink);font-weight:700}
.cmod.exam a{font-weight:700;color:var(--ink)}
.cmod.exam a::before{display:none}
.cstage{background:#fff;border-radius:var(--r-xl);padding:42px 46px;box-shadow:var(--shadow);min-height:520px}
.cl h3,.cl-exam h3{font-size:clamp(24px,2.6vw,30px);letter-spacing:-.025em;line-height:1.15;margin-bottom:16px}
.clmeta{font-size:13px;font-weight:700;color:var(--coral);margin-bottom:8px}
.cl p{font-size:17px;line-height:1.75;color:#3B2C42;margin-top:14px;max-width:70ch}
.cl ul{margin:16px 0 0 22px;color:#3B2C42;font-size:16.5px}
.cl li{margin-top:7px}
.cl li::marker{color:var(--amber)}
.clnav{display:flex;justify-content:space-between;gap:12px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.clnav button[disabled]{visibility:hidden}
.kc{margin-top:40px;background:var(--butter);border-radius:var(--r-lg);padding:26px 28px}
.kq+.kq{margin-top:22px}
.kq h4{font-size:17px;margin-bottom:6px}
.kc .opt,.xq label{display:block;width:100%;text-align:left;font:inherit;font-size:15px;padding:13px 16px;border:2px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;margin-top:8px;transition:all .15s}
.kc .opt:hover,.xq label:hover{border-color:var(--sun)}
.kc .opt.right,.xq label.right{border-color:var(--leaf);background:var(--mint);font-weight:600}
.kc .opt.wrong,.xq label.wrong{border-color:var(--coral);background:var(--peach)}
.kc .explain,.xq .explain{display:none;margin-top:10px;font-size:14.5px;color:var(--ink-soft);background:#fff;border-radius:10px;padding:12px 14px}
.xq{border:0;margin-top:26px}
.xq legend{font-weight:600;font-size:16.5px;margin-bottom:6px;line-height:1.45}
.xq label{display:flex;gap:12px;align-items:flex-start}
.xq input{margin-top:5px;accent-color:var(--amber);flex:0 0 auto}
.xq .explain{background:var(--butter)}
#cexamform>.btn{margin-top:30px}
.certmsg{font-size:14px;margin-top:12px;font-weight:600}
.certmsg.err{color:#A1361F}.certmsg.ok{color:var(--leaf)}
#cresult{margin-top:36px;text-align:center;background:var(--butter);border-radius:var(--r-lg);padding:30px}
#cresult .score{font-size:64px;font-weight:800;letter-spacing:-.04em;background:var(--glow);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
#cresult h3{margin:10px 0 6px}
#cresult p{color:var(--ink-soft)}
#cresult .btn{margin-top:18px}
.certbox{margin-top:26px;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:2px solid var(--sun)}
.certprev{display:flex;gap:18px;align-items:center;background:var(--dusk);color:#fff;padding:22px 26px}
.certprev img{width:46px}
.certprev b{display:block;color:var(--sun);font-size:13px}
.certprev span{font-size:20px;font-weight:700}
#certform{padding:24px 26px;display:grid;gap:14px}
#certform label{font-size:13.5px;font-weight:600;display:grid;gap:6px}
#certform input[type=text],#certform input[name=name],#certform input[type=email]{font:inherit;font-size:15px;padding:13px 15px;border:2px solid var(--line);border-radius:12px}
#certform input:focus{outline:0;border-color:var(--amber)}
#certform .chk{display:flex;gap:10px;align-items:center;font-weight:500}
#certform .btn{justify-self:start}
.cnext{padding:0 26px 22px;font-size:14.5px}
.cnext a{font-weight:700;color:var(--ink)}
.ccard .icon svg{width:27px;height:27px}
@media(max-width:1020px){.cinfo{grid-template-columns:1fr}.cfacts{position:static}.cplayer{grid-template-columns:1fr}.cnav{position:static;max-height:none}.cstage{padding:28px 22px}}

/* ---------------- petitions ---------------- */
.pet-hero .wrap{padding-bottom:230px}
.pet-hero .scene{height:230px}
.pet-hero h1{font-size:clamp(30px,4.4vw,54px);max-width:22ch}
.petband{padding-top:56px}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:56px;align-items:start}
.pt-img{width:100%;border-radius:var(--r-xl);aspect-ratio:16/9;object-fit:cover;box-shadow:var(--shadow)}
.pt-art{aspect-ratio:16/8;border-radius:var(--r-xl);background:var(--glow);position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:22px}
.pt-art img{position:absolute;right:-30px;top:-20px;width:46%;opacity:.55}
.pt-art span{background:rgba(255,255,255,.9);border-radius:999px;padding:6px 14px;font-weight:700;font-size:13px;position:relative}
.pstarter{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--ink-soft);margin:18px 0 10px}
.pstarter img{width:22px}
.pstory .post{max-width:none}
.pshare{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.pshare b{margin-right:8px}
.pshare a,.pshare button{font:inherit;font-size:13.5px;font-weight:700;text-decoration:none;color:var(--ink);background:var(--butter);border:0;padding:8px 14px;border-radius:999px;cursor:pointer}
.pshare a:hover,.pshare button:hover{background:var(--sun)}
.pshare.small{border:0;margin-top:14px;padding-top:0}
.precent{margin-top:44px}
.precent h2{font-size:22px;letter-spacing:-.02em;margin-bottom:10px}
.psig{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.pav{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--glow);display:grid;place-items:center;font-weight:800;color:var(--dusk)}
.psig small{color:var(--ink-soft)}
.psig p{font-size:14.5px;color:var(--ink-soft);margin-top:4px}
.pmuted{color:var(--ink-soft);font-size:14.5px}
.pside{position:sticky;top:100px}
.pbox{background:#fff;border-radius:var(--r-xl);padding:28px;box-shadow:var(--shadow);position:relative}
.pbox::before{content:"";position:absolute;inset:0 0 auto 0;height:7px;border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--glow)}
.pcount{font-size:15px;color:var(--ink-soft)}
.pcount b{font-size:34px;letter-spacing:-.03em;color:var(--ink);display:block;line-height:1.1}
.pbar{height:12px;border-radius:999px;background:var(--butter);overflow:hidden;margin:14px 0 22px}
.pbar i{display:block;height:100%;width:1.5%;background:var(--glow);border-radius:999px;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.psign{display:grid;gap:10px}
.psign input,.psign select,.psign textarea{font:inherit;font-size:15px;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:#FFFDF8;width:100%;min-width:0}
.psign input:focus,.psign select:focus,.psign textarea:focus{outline:0;border-color:var(--amber)}
.prow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pchk{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink-soft);cursor:pointer}
.pchk input{width:auto;margin-top:3px;accent-color:var(--amber)}
.psign .btn{width:100%;font-size:16px;padding:16px}
.psign .fine-print{font-size:11.5px;color:var(--ink-soft)}
.pthanks h3{font-size:21px;margin-bottom:6px}
.pthanks p{color:var(--ink-soft);font-size:14.5px}
.pvictory{background:var(--mint);color:var(--leaf);border-radius:14px;padding:16px 18px;font-weight:600;font-size:14.5px;margin-bottom:16px}
.pcard{display:flex;flex-direction:column;background:#fff;border-radius:var(--r-lg);overflow:hidden;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}
.pcard:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.pcard .pt-art,.pcard .pt-img{border-radius:0;aspect-ratio:16/8;box-shadow:none}
.pc-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.pc-badge{align-self:flex-start;font-size:11.5px;font-weight:800;padding:4px 11px;border-radius:999px;background:var(--mint);color:var(--leaf)}
.pcard.st-victory .pc-badge{background:var(--sun);color:var(--dusk)}
.pcard.st-closed .pc-badge{background:#EEE6EE;color:#6B5A70}
.pcard h3{font-size:18.5px;line-height:1.28;margin:10px 0 8px;letter-spacing:-.015em}
.pcard p{font-size:14px;color:var(--ink-soft);flex:1}
.pc-bar{height:8px;border-radius:999px;background:var(--butter);overflow:hidden;margin-top:16px}
.pc-bar i{display:block;height:100%;width:1.5%;background:var(--glow)}
.pc-count{font-size:12.5px;font-weight:700;color:var(--ink-soft);margin-top:8px}
@media(max-width:1020px){.pgrid{grid-template-columns:1fr}.pside{position:static;order:-1}}

/* video-first course parts */
.cvideo{margin:-8px 0 34px}
.cpart{font-size:clamp(20px,2.2vw,26px);letter-spacing:-.02em;text-align:center;margin-bottom:16px}
.cvideo .video{margin-top:0;background:#000}
.cvideo video,.cvideo iframe,.cvideo .ytslot{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.cvcta{text-align:center;margin-top:18px}
.qpop{position:fixed;inset:0;background:rgba(20,10,28,.72);backdrop-filter:blur(4px);z-index:200;display:grid;place-items:center;padding:20px}
.qpop[hidden]{display:none}
.qpopbox{background:#fff;border-radius:var(--r-xl);padding:34px;max-width:620px;width:100%;box-shadow:0 40px 90px rgba(0,0,0,.4);text-align:center;animation:rise .3s ease}
.qlogo{height:34px;margin:0 auto 16px}
.qpopbox h3{font-size:clamp(20px,2.4vw,26px);letter-spacing:-.02em;margin-bottom:16px}
.qopts{text-align:left;display:grid;gap:8px}
.qopts label{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;font-size:15px}
.qopts label:hover{border-color:var(--sun)}
.qopts input{margin-top:4px;accent-color:var(--amber)}
.qopts label.right{border-color:var(--leaf);background:var(--mint);font-weight:600}
.qopts label.wrong{border-color:var(--coral);background:var(--peach)}
.qexp{font-size:14.5px;color:var(--ink-soft);margin-top:14px;min-height:1px}
.qact{margin-top:18px;display:flex;justify-content:center;gap:10px}
.pthumb[style*="background-image"]{background-size:cover;background-position:center}
.pthumb[style*="background-image"]::after{display:none}
.pcover{width:100%;border-radius:var(--r-lg);margin-bottom:28px;box-shadow:var(--shadow-sm)}
[hidden]{display:none!important}
