/* ============================================================
   Suds & Cents — shared design system
   Palette: Ink Navy #10243E · Deep Teal #0E7C7B · Suds Aqua #7FD8CC
            Warm Amber #F5A623 · Paper #FAF7F1 · Slate #5B6B7B
   Type: Fraunces (display) + Inter (body)
   ============================================================ */

:root{
  --ink:#10243E;
  --ink-2:#0B1B30;
  --ink-soft:#33465E;
  --teal:#0E7C7B;
  --teal-dark:#0A5F5E;
  --teal-ink:#0B4B4A;
  --aqua:#7FD8CC;
  --aqua-soft:#E3F5F1;
  --amber:#F5A623;
  --amber-soft:#FDF3DE;
  --paper:#FAF7F1;
  --card:#FFFFFF;
  --line:#E9E1D1;
  --slate:#5B6B7B;
  --muted:#8CA0B3;
  --on-dark:#C7D4E2;
  --on-dark-dim:#8FA0B3;
  --radius:18px;
  --shadow:0 10px 30px rgba(16,36,62,.08);
  --shadow-lg:0 24px 60px rgba(16,36,62,.14);
  --font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  font-size:1rem;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.serif{font-family:var(--font-display);line-height:1.18;letter-spacing:-.01em;}
img,svg{max-width:100%;}
a{color:var(--teal);}
a:hover{color:var(--teal-dark);}

.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
.wrap-narrow{max-width:760px;margin:0 auto;padding:0 24px;}

.skip-link{
  position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;
  padding:10px 18px;z-index:200;border-radius:0 0 10px 0;font-weight:600;
}
.skip-link:focus{left:0;}

/* ---------------- Buttons ---------------- */
.btn{
  display:inline-block;background:var(--teal);color:#fff;text-decoration:none;
  padding:14px 34px;border-radius:14px;font-weight:700;font-size:1rem;
  border:2px solid var(--teal);cursor:pointer;transition:transform .15s ease,background .15s ease,box-shadow .15s ease;
}
.btn:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow);}
.btn-amber{background:var(--amber);border-color:var(--amber);color:var(--ink);}
.btn-amber:hover{background:#e0941f;border-color:#e0941f;color:var(--ink);}
.btn-ghost{background:transparent;color:var(--teal);border-color:var(--teal);}
.btn-ghost:hover{background:var(--aqua-soft);color:var(--teal-ink);border-color:var(--teal);}
.btn-sm{padding:9px 20px;font-size:.9rem;border-radius:999px;}
.btn-light{background:#fff;border-color:#fff;color:var(--ink);}
.btn-light:hover{background:var(--paper);border-color:var(--paper);color:var(--ink);}

/* ---------------- Nav ---------------- */
.site-nav{
  position:sticky;top:0;z-index:100;
  background:rgba(250,247,241,.88);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .2s ease;
}
.site-nav.scrolled{box-shadow:0 6px 24px rgba(16,36,62,.10);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;max-width:1120px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);}
.brand-mark{width:34px;height:34px;flex-shrink:0;}
.brand-word{font-family:var(--font-display);font-weight:900;font-size:1.35rem;letter-spacing:-.5px;white-space:nowrap;}
.brand-word .amp{color:var(--amber);}
.nav-links{display:flex;align-items:center;gap:6px;list-style:none;}
.nav-links a{
  text-decoration:none;color:var(--ink-soft);font-weight:600;font-size:.95rem;
  padding:9px 14px;border-radius:999px;transition:background .15s ease,color .15s ease;
}
.nav-links a:hover{background:#fff;color:var(--ink);}
.nav-links a.active{background:var(--ink);color:#fff;}
.nav-cta-row{display:flex;align-items:center;gap:10px;}
.menu-toggle{display:none;background:none;border:2px solid var(--line);border-radius:10px;padding:8px 12px;cursor:pointer;color:var(--ink);font-weight:700;}

/* ---------------- Hero ---------------- */
.hero{
  background:var(--ink-2);color:#fff;position:relative;overflow:hidden;
  padding:96px 0 104px;
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(640px 340px at 12% 8%, rgba(127,216,204,.16), transparent 65%),
    radial-gradient(720px 380px at 88% 18%, rgba(245,166,35,.14), transparent 65%),
    radial-gradient(900px 500px at 50% 110%, rgba(14,124,123,.35), transparent 70%);
}
.hero-waves{position:absolute;left:0;right:0;bottom:-2px;width:100%;height:120px;opacity:.5;pointer-events:none;}
.hero .wrap{position:relative;z-index:1;text-align:center;}
.hero-mark{width:76px;height:76px;margin:0 auto 22px;color:var(--aqua);}
.kicker{
  display:inline-block;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);
  border-radius:999px;padding:7px 18px;font-size:.78rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--aqua);margin-bottom:26px;
}
.kicker.light{background:#fff;border-color:var(--line);color:var(--teal);}
.hero h1{
  font-size:clamp(2.5rem,5.6vw,4.2rem);font-weight:900;letter-spacing:-1.5px;
  line-height:1.05;max-width:860px;margin:0 auto 22px;color:#fff;
}
.hero h1 .amp{color:var(--amber);}
.hero .sub{font-size:clamp(1.05rem,2vw,1.28rem);color:var(--on-dark);max-width:660px;margin:0 auto 36px;}
.hero-signup{
  background:rgba(255,255,255,.97);border-radius:22px;padding:30px 30px 24px;
  max-width:560px;margin:0 auto;box-shadow:var(--shadow-lg);color:var(--ink);
}
.hero-signup h2{font-size:1.35rem;margin-bottom:4px;letter-spacing:-.3px;}
.hero-signup .fine{font-size:.85rem;color:var(--slate);margin-top:14px;}
.hero-signup .fine strong{color:var(--teal-dark);}
.beehiiv-embed{min-height:56px;}
.micro{font-size:.85rem;color:var(--on-dark-dim);margin-top:16px;}
.micro strong{color:var(--aqua);}

/* ---------------- Sections ---------------- */
section.block{padding:88px 0;}
.block.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.block-title{font-size:clamp(1.9rem,3.6vw,2.7rem);font-weight:900;letter-spacing:-.8px;text-align:center;margin-bottom:14px;}
.block-title .amp{color:var(--amber);}
.lede{color:var(--slate);text-align:center;max-width:680px;margin:0 auto 52px;font-size:1.12rem;}
.eyebrow{
  display:block;text-align:center;font-size:.78rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--teal);margin-bottom:14px;
}

/* ---------------- Stat band ---------------- */
.stat-band{background:var(--ink);color:#fff;padding:64px 0;position:relative;overflow:hidden;}
.stat-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:radial-gradient(700px 320px at 50% 120%, rgba(14,124,123,.4), transparent 70%);
}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;position:relative;}
.stat{text-align:center;padding:0 8px;}
.stat + .stat{border-left:1px solid rgba(255,255,255,.12);}
.stat .num{font-family:var(--font-display);font-size:clamp(2rem,3.4vw,2.9rem);font-weight:900;color:var(--aqua);letter-spacing:-1px;}
.stat .num .unit{font-size:.55em;color:var(--on-dark);}
.stat .lbl{color:var(--on-dark);font-size:.92rem;margin-top:8px;line-height:1.5;}
.stat .src{display:block;font-size:.75rem;color:var(--on-dark-dim);margin-top:6px;}

/* ---------------- Cards ---------------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:24px;}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:34px 30px;transition:transform .2s ease,box-shadow .2s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.icon-chip{
  width:52px;height:52px;border-radius:14px;background:var(--aqua-soft);color:var(--teal-dark);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;
}
.icon-chip svg{width:28px;height:28px;}
.icon-chip.amber{background:var(--amber-soft);color:#9a6a12;}
.card h3{font-size:1.3rem;font-weight:700;margin-bottom:10px;letter-spacing:-.2px;}
.card p{color:var(--slate);font-size:.97rem;}

/* ---------------- Issue preview ---------------- */
.issue-preview{
  background:#fff;border:1px solid var(--line);border-radius:24px;max-width:760px;margin:0 auto;
  overflow:hidden;box-shadow:var(--shadow);
}
.issue-preview-head{
  background:var(--ink);color:#fff;padding:22px 32px;display:flex;
  justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
}
.issue-preview-head .issue-name{font-family:var(--font-display);font-weight:700;font-size:1.05rem;}
.issue-preview-head .issue-name .amp{color:var(--amber);}
.pill{
  background:var(--amber);color:var(--ink);font-size:.72rem;font-weight:800;
  padding:5px 14px;border-radius:999px;text-transform:uppercase;letter-spacing:.07em;
}
.pill.teal{background:var(--teal);color:#fff;}
.issue-preview-body{padding:34px 34px 30px;}
.issue-preview-body h3{font-size:1.25rem;margin:26px 0 10px;display:flex;align-items:center;gap:10px;}
.issue-preview-body h3:first-child{margin-top:0;}
.issue-preview-body h3 svg{width:24px;height:24px;color:var(--teal);flex-shrink:0;}
.issue-preview-body p{color:var(--slate);margin-bottom:8px;font-size:.98rem;}
.chart-note{
  font-size:.8rem;color:var(--slate);background:var(--amber-soft);border:1px dashed var(--amber);
  border-radius:10px;padding:10px 14px;margin-bottom:14px;
}
.chart-note strong{color:#9a6a12;}
.chart{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;margin:6px 0 8px;}
.bar-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:.88rem;}
.bar-row:last-child{margin-bottom:0;}
.bar-row .region{width:104px;color:var(--slate);flex-shrink:0;font-weight:500;}
.bar-track{flex:1;background:#EFE7D6;border-radius:8px;height:16px;overflow:hidden;}
.bar-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,var(--teal),var(--aqua));width:0;transition:width 1.1s cubic-bezier(.22,.8,.3,1);}
.bar-row .val{font-weight:700;min-width:56px;text-align:right;}
.issue-links{text-align:center;margin-top:30px;color:var(--slate);font-size:.98rem;}
.issue-links a{color:var(--teal);font-weight:600;text-decoration:none;border-bottom:2px solid var(--aqua);}
.issue-links a:hover{border-bottom-color:var(--teal);}

/* ---------------- CTA band ---------------- */
.cta-band{background:linear-gradient(135deg,var(--teal-dark),var(--teal) 60%,#12908f);color:#fff;padding:72px 0;position:relative;overflow:hidden;}
.cta-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;
  background:radial-gradient(600px 300px at 85% 20%, #fff, transparent 70%);
}
.cta-band .wrap{position:relative;text-align:center;max-width:680px;}
.cta-band h2{color:#fff;font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:900;letter-spacing:-.6px;margin-bottom:14px;}
.cta-band p{color:#E7F4F2;margin-bottom:30px;font-size:1.08rem;}
.cta-band .meta{font-size:.85rem;color:#CDE7E4;margin-top:16px;}

/* ---------------- Pricing ---------------- */
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px;max-width:880px;margin:0 auto;align-items:stretch;}
.price{
  background:var(--card);border:1px solid var(--line);border-radius:22px;padding:40px 36px;
  text-align:center;position:relative;display:flex;flex-direction:column;
}
.price.pro{border:2px solid var(--teal);box-shadow:0 16px 48px rgba(14,124,123,.14);}
.price .badge{
  position:absolute;top:-15px;left:50%;transform:translateX(-50%);background:var(--amber);color:var(--ink);
  font-size:.72rem;font-weight:800;padding:5px 16px;border-radius:999px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;
}
.price h3{font-size:1.35rem;margin-bottom:6px;}
.price .amount{font-family:var(--font-display);font-size:3rem;font-weight:900;margin:14px 0 2px;letter-spacing:-1px;}
.price .per{color:var(--slate);font-size:.92rem;margin-bottom:24px;}
.price ul{list-style:none;text-align:left;margin:0 0 30px;flex:1;}
.price li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.95rem;color:var(--slate);padding-left:30px;position:relative;}
.price li:last-child{border-bottom:none;}
.price li::before{
  content:"";position:absolute;left:2px;top:14px;width:14px;height:8px;
  border-left:3px solid var(--teal);border-bottom:3px solid var(--teal);transform:rotate(-45deg) translateY(-3px);
}
.price li strong{color:var(--ink);}
.price .btn{align-self:center;}

/* ---------------- Pledge / methodology ---------------- */
.pledge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;counter-reset:pledge;}
.pledge{
  background:var(--ink);color:#fff;border-radius:var(--radius);padding:30px 26px;position:relative;overflow:hidden;
}
.pledge::before{counter-increment:pledge;content:"0" counter(pledge);position:absolute;top:14px;right:20px;font-family:var(--font-display);font-size:2.6rem;font-weight:900;color:rgba(127,216,204,.25);}
.pledge h3{color:var(--aqua);font-size:1.12rem;margin-bottom:10px;position:relative;}
.pledge p{color:var(--on-dark);font-size:.94rem;position:relative;}

/* ---------------- Checklist (lead magnet) ---------------- */
.checklist-card{
  background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;
  display:grid;grid-template-columns:1fr 1fr;box-shadow:var(--shadow);
}
.checklist-copy{padding:48px 44px;}
.checklist-copy .eyebrow{text-align:left;}
.checklist-copy h2{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:900;letter-spacing:-.6px;margin-bottom:14px;}
.checklist-copy p{color:var(--slate);margin-bottom:18px;}
.checklist-steps{list-style:none;margin:0 0 28px;counter-reset:step;}
.checklist-steps li{counter-increment:step;display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem;color:var(--ink-soft);}
.checklist-steps li:last-child{border-bottom:none;}
.checklist-steps li::before{
  content:counter(step);flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:var(--aqua-soft);color:var(--teal-dark);font-weight:800;font-size:.85rem;
  display:flex;align-items:center;justify-content:center;
}
.checklist-steps li strong{color:var(--ink);}
.checklist-visual{background:var(--ink);color:#fff;padding:48px 44px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;}
.checklist-visual::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(500px 300px at 80% 10%, rgba(245,166,35,.16), transparent 65%);
}
.checklist-visual h3{color:#fff;font-size:1.3rem;margin-bottom:16px;position:relative;}
.kill-list{list-style:none;position:relative;}
.kill-list li{color:var(--on-dark);font-size:.93rem;padding:9px 0 9px 30px;position:relative;border-bottom:1px solid rgba(255,255,255,.1);}
.kill-list li:last-child{border-bottom:none;}
.kill-list li::before{
  content:"";position:absolute;left:4px;top:15px;width:12px;height:12px;border-radius:50%;
  border:3px solid var(--amber);
}
.kill-list li strong{color:#fff;}

/* ---------------- FAQ ---------------- */
.faq{max-width:760px;margin:0 auto;}
.faq details{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 26px;margin-bottom:14px;transition:box-shadow .15s ease;}
.faq details[open]{box-shadow:var(--shadow);}
.faq summary{font-weight:700;cursor:pointer;font-size:1.04rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+";flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--aqua-soft);color:var(--teal-dark);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:400;line-height:1;
}
.faq details[open] summary::after{content:"–";background:var(--teal);color:#fff;}
.faq .answer{color:var(--slate);margin-top:12px;font-size:.97rem;}
.faq .answer p + p{margin-top:10px;}

/* ---------------- Footer ---------------- */
.site-footer{background:var(--ink-2);color:var(--on-dark);padding:72px 0 0;font-size:.94rem;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:52px;}
.footer-brand .brand-word{color:#fff;font-size:1.5rem;}
.footer-brand p{margin:14px 0 20px;color:var(--on-dark-dim);max-width:300px;}
.footer-col h4{color:#fff;font-family:var(--font-body);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px;}
.footer-col ul{list-style:none;}
.footer-col li{margin-bottom:10px;}
.footer-col a{color:var(--on-dark);text-decoration:none;}
.footer-col a:hover{color:var(--aqua);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:24px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--on-dark-dim);}
.social-row{display:flex;gap:10px;margin-top:4px;}
.social-row a{
  width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;color:var(--on-dark);transition:background .15s ease,color .15s ease;
}
.social-row a:hover{background:rgba(255,255,255,.1);color:#fff;}
.social-row svg{width:20px;height:20px;}

/* ---------------- Reveal animations ---------------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.8,.3,1);}
.reveal.in{opacity:1;transform:none;}
.reveal-d1{transition-delay:.1s;}.reveal-d2{transition-delay:.2s;}.reveal-d3{transition-delay:.3s;}

/* ---------------- Reading progress ---------------- */
.read-progress{
  position:fixed;top:0;left:0;height:4px;width:0;z-index:120;
  background:linear-gradient(90deg,var(--teal),var(--aqua));
}

/* ---------------- Article ---------------- */
.article-hero{background:var(--ink-2);color:#fff;padding:72px 0 64px;position:relative;overflow:hidden;}
.article-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(600px 300px at 15% 10%, rgba(127,216,204,.14), transparent 65%),
    radial-gradient(700px 340px at 90% 30%, rgba(245,166,35,.10), transparent 65%);
}
.article-hero .wrap-narrow{position:relative;}
.article-hero h1{color:#fff;font-size:clamp(2rem,4.4vw,3.1rem);font-weight:900;letter-spacing:-1px;margin:0 0 16px;}
.article-hero .subject{color:var(--on-dark);font-size:1.15rem;font-style:italic;margin-bottom:28px;}
.byline{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.byline-mark{width:46px;height:46px;border-radius:50%;background:rgba(127,216,204,.14);display:flex;align-items:center;justify-content:center;color:var(--aqua);flex-shrink:0;}
.byline-mark svg{width:30px;height:30px;}
.byline-meta{font-size:.9rem;color:var(--on-dark);}
.byline-meta strong{display:block;color:#fff;font-size:.98rem;}
.byline-sep{color:rgba(255,255,255,.25);}

.article-body{padding:56px 0 24px;}
.article-body .wrap-narrow{font-size:1.06rem;line-height:1.78;}
.article-body p{margin-bottom:1.35em;color:#2E3D52;}
.article-body p.lede-p{font-size:1.28rem;line-height:1.65;color:var(--ink);font-weight:500;}
.article-body strong{color:var(--ink);}
.article-body h2{font-size:1.75rem;font-weight:900;margin:2.2em 0 .7em;letter-spacing:-.4px;scroll-margin-top:96px;}
.article-body h3{font-size:1.32rem;margin:1.8em 0 .6em;scroll-margin-top:96px;}
.article-body ul,.article-body ol{margin:0 0 1.35em 1.4em;color:#2E3D52;}
.article-body li{margin-bottom:.55em;}
.article-body li::marker{color:var(--teal);font-weight:700;}
.article-body hr{border:none;border-top:1px solid var(--line);margin:2.6em 0;}
.article-body table{width:100%;border-collapse:collapse;margin:1.8em 0;font-size:.92rem;background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:block;overflow-x:auto;}
.article-body thead{display:table-header-group;}
.article-body tbody{display:table-row-group;}
.article-body tr{display:table-row;}
.article-body th,.article-body td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);display:table-cell;}
.article-body th{background:var(--ink);color:#fff;font-weight:600;white-space:nowrap;}
.article-body em{color:var(--slate);}
.article-body blockquote{
  border-left:4px solid var(--amber);background:var(--amber-soft);border-radius:0 14px 14px 0;
  padding:18px 24px;margin:1.8em 0;font-style:italic;color:var(--ink-soft);
}
.article-body blockquote p{margin-bottom:0;color:var(--ink-soft);}
.kicker{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 16px;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:20px;}
.verify{background:var(--amber-soft);border:1px solid var(--amber);border-radius:8px;padding:1px 8px;font-size:.78em;font-weight:600;white-space:nowrap;color:#7a5410;}
.cta-box{background:var(--ink);color:#fff;border-radius:22px;padding:44px 40px;text-align:center;margin:3em 0;position:relative;overflow:hidden;}
.cta-box::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(500px 240px at 50% 0%, rgba(127,216,204,.16), transparent 70%);}
.cta-box h2{color:#fff;margin:0 0 10px;font-size:1.6rem;position:relative;}
.cta-box p{color:var(--on-dark);margin-bottom:22px;position:relative;}
.cta-box a{position:relative;display:inline-block;background:var(--amber);color:var(--ink);font-weight:700;text-decoration:none;padding:14px 34px;border-radius:14px;}
.cta-box a:hover{background:#e0941f;color:var(--ink);}
.toc{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 26px;margin:0 0 2.4em;
}
.toc h2{font-family:var(--font-body);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin:0 0 12px;}
.toc ol{list-style:none;margin:0;}
.toc li{margin-bottom:6px;}
.toc a{text-decoration:none;color:var(--ink-soft);font-size:.95rem;font-weight:500;}
.toc a:hover{color:var(--teal);}
.toc li::before{content:"";}

.article-signoff{border-top:1px solid var(--line);margin-top:3em;padding-top:2em;}
.article-signoff p{font-style:italic;color:var(--slate);}
.correction-note{font-size:.85rem;color:var(--slate);background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-top:1.6em;}

/* Related articles */
.related{padding:40px 0 88px;}
.related h2{font-size:1.7rem;font-weight:900;letter-spacing:-.5px;margin-bottom:26px;text-align:center;}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;}
.related-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;
  text-decoration:none;color:var(--ink);display:block;transition:transform .2s ease,box-shadow .2s ease;
}
.related-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);color:var(--ink);}
.related-card .tag{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);}
.related-card h3{font-size:1.15rem;margin:10px 0 8px;letter-spacing:-.2px;}
.related-card p{color:var(--slate);font-size:.9rem;}

/* ---------------- Issues archive ---------------- */
.page-hero{background:var(--ink-2);color:#fff;padding:72px 0 64px;position:relative;overflow:hidden;}
.page-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(640px 320px at 20% 0%, rgba(127,216,204,.15), transparent 65%);
}
.page-hero .wrap{position:relative;}
.page-hero h1{color:#fff;font-size:clamp(2.2rem,4.6vw,3.4rem);font-weight:900;letter-spacing:-1px;margin-bottom:14px;}
.page-hero p{color:var(--on-dark);font-size:1.12rem;max-width:640px;}
.archive-list{display:grid;gap:22px;padding:64px 0;}
.archive-card{
  background:#fff;border:1px solid var(--line);border-radius:22px;padding:36px 38px;
  display:grid;grid-template-columns:120px 1fr auto;gap:28px;align-items:center;
  text-decoration:none;color:var(--ink);transition:transform .2s ease,box-shadow .2s ease;
}
.archive-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);color:var(--ink);}
.archive-num{font-family:var(--font-display);font-size:3rem;font-weight:900;color:var(--aqua);letter-spacing:-1px;line-height:1;}
.archive-card h2{font-size:1.45rem;letter-spacing:-.3px;margin:6px 0 10px;}
.archive-card p{color:var(--slate);font-size:.97rem;margin-bottom:12px;}
.archive-tags{display:flex;gap:8px;flex-wrap:wrap;}
.archive-tags span{font-size:.75rem;font-weight:700;background:var(--aqua-soft);color:var(--teal-dark);border-radius:999px;padding:4px 12px;}
.archive-arrow{width:52px;height:52px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--teal);flex-shrink:0;}
.archive-arrow svg{width:22px;height:22px;}
.archive-card:hover .archive-arrow{background:var(--teal);border-color:var(--teal);color:#fff;}
.archive-card.soon{opacity:.92;border-style:dashed;background:var(--paper);}
.archive-card.soon:hover{transform:none;box-shadow:none;cursor:default;}

/* ---------------- About ---------------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:48px 0;}
.about-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px 32px;}
.about-card h2{font-size:1.4rem;margin-bottom:12px;letter-spacing:-.3px;}
.about-card p,.about-card li{color:var(--slate);font-size:.98rem;}
.about-card ul{margin:12px 0 0 1.2em;}
.about-card li{margin-bottom:8px;}
.about-card li::marker{color:var(--teal);}
.label-row{display:grid;gap:14px;margin:32px 0;}
.label{border:1px solid var(--line);border-radius:16px;padding:22px 24px;background:#fff;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;}
.label-badge{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:6px 14px;white-space:nowrap;}
.label-badge.surveyed{background:var(--teal);color:#fff;}
.label-badge.sourced{background:var(--ink);color:#fff;}
.label-badge.illustrative{background:var(--amber);color:var(--ink);}
.label h3{font-size:1.1rem;margin-bottom:6px;}
.label p{color:var(--slate);font-size:.94rem;}

/* ---------------- Survey ---------------- */
.survey-hero{background:var(--ink-2);color:#fff;padding:64px 0 56px;position:relative;overflow:hidden;}
.survey-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(640px 320px at 80% 0%, rgba(14,124,123,.45), transparent 70%);
}
.survey-hero .wrap-narrow{position:relative;}
.survey-hero h1{color:#fff;font-size:clamp(2rem,4.4vw,3rem);font-weight:900;letter-spacing:-1px;margin-bottom:14px;}
.survey-hero p{color:var(--on-dark);font-size:1.08rem;margin-bottom:10px;max-width:640px;}
.pledge-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 26px;margin:32px 0;font-size:.95rem;color:var(--slate);box-shadow:var(--shadow);}
.pledge-box strong{color:var(--ink);}
.pledge-list{list-style:none;margin-top:12px;display:grid;gap:8px;}
.pledge-list li{padding-left:30px;position:relative;font-size:.92rem;}
.pledge-list li::before{
  content:"";position:absolute;left:2px;top:7px;width:14px;height:8px;
  border-left:3px solid var(--teal);border-bottom:3px solid var(--teal);transform:rotate(-45deg);
}
.survey-progress{
  position:sticky;top:66px;z-index:60;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:14px 20px;margin:0 0 24px;box-shadow:var(--shadow);
}
.survey-progress .bar-top{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;font-weight:700;color:var(--slate);margin-bottom:8px;}
.survey-progress .bar-top .pct{color:var(--teal-dark);}
.survey-progress .track{height:10px;background:#EFE7D6;border-radius:6px;overflow:hidden;}
.survey-progress .fill{height:100%;width:0;background:linear-gradient(90deg,var(--teal),var(--aqua));border-radius:6px;transition:width .3s ease;}
.survey-form{background:#fff;border:1px solid var(--line);border-radius:24px;padding:44px;margin:0 0 64px;box-shadow:var(--shadow);}
.survey-form fieldset{border:none;margin-bottom:44px;position:relative;padding-top:8px;}
.survey-form fieldset:last-of-type{margin-bottom:28px;}
.step-label{display:flex;align-items:center;gap:14px;margin-bottom:22px;}
.step-num{
  width:38px;height:38px;border-radius:50%;background:var(--ink);color:#fff;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:1.1rem;
}
.step-label legend{font-family:var(--font-display);font-size:1.45rem;font-weight:700;letter-spacing:-.3px;padding:0;}
.q{margin-bottom:20px;}
.q label{display:block;font-weight:600;font-size:.95rem;margin-bottom:7px;}
.q .hint{font-weight:400;color:var(--slate);font-size:.83rem;display:block;margin-top:3px;line-height:1.5;}
.q .req{color:#C0563C;font-weight:700;}
.q input[type=text],.q input[type=number],.q input[type=email],.q select,.q textarea{
  width:100%;padding:13px 16px;border:2px solid var(--line);border-radius:12px;
  font-size:1rem;font-family:inherit;background:var(--paper);color:var(--ink);transition:border-color .15s ease,background .15s ease;
}
.q input:focus,.q select:focus,.q textarea:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(14,124,123,.12);}
.q textarea{resize:vertical;min-height:96px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.radios{display:flex;gap:12px;margin-top:4px;flex-wrap:wrap;}
.radios label{
  font-weight:600;display:flex;align-items:center;gap:10px;border:2px solid var(--line);
  border-radius:12px;padding:12px 20px;cursor:pointer;transition:border-color .15s ease,background .15s ease;
}
.radios label:has(input:checked){border-color:var(--teal);background:var(--aqua-soft);}
.radios input{accent-color:var(--teal);width:18px;height:18px;}
.hp{position:absolute;left:-9999px;top:0;}
button.submit{
  background:var(--teal);color:#fff;border:none;border-radius:14px;padding:17px 40px;
  font-size:1.08rem;font-weight:700;cursor:pointer;width:100%;transition:background .15s ease,transform .15s ease;
}
button.submit:hover{background:var(--teal-dark);transform:translateY(-1px);}
button.submit:disabled{opacity:.55;cursor:default;transform:none;}
#thanks{display:none;text-align:center;padding:64px 0;}
#thanks .thanks-mark{width:72px;height:72px;margin:0 auto 20px;color:var(--teal);}
#thanks h2{font-size:2.1rem;margin-bottom:14px;letter-spacing:-.5px;}
#thanks p{color:var(--slate);max-width:560px;margin:0 auto 12px;}
#err{display:none;background:#FDECEC;border:1px solid #E8A0A0;color:#A33333;border-radius:12px;padding:14px 18px;margin-bottom:20px;font-size:.95rem;}

/* ---------------- Utility ---------------- */
.center{text-align:center;}
.mt-1{margin-top:8px;}.mt-2{margin-top:16px;}.mt-3{margin-top:28px;}.mt-4{margin-top:44px;}
.mb-2{margin-bottom:16px;}.mb-3{margin-bottom:28px;}
.section-gap{height:88px;}
.divider{border:none;border-top:1px solid var(--line);margin:0;}

/* ---------------- Responsive ---------------- */
@media(max-width:900px){
  .stat-grid{grid-template-columns:repeat(2,1fr);gap:28px;}
  .stat:nth-child(3){border-left:none;}
  .checklist-card{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .archive-card{grid-template-columns:1fr;gap:16px;}
  .archive-arrow{display:none;}
  .about-grid{grid-template-columns:1fr;}
}
@media(max-width:720px){
  .nav-links{
    display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);
    flex-direction:column;align-items:stretch;padding:12px 24px 20px;border-bottom:1px solid var(--line);
    box-shadow:0 20px 40px rgba(16,36,62,.12);
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:12px 8px;border-radius:10px;}
  .menu-toggle{display:block;}
  .site-nav{position:sticky;}
  .row2,.row3{grid-template-columns:1fr;}
  .survey-form{padding:30px 22px;}
  .survey-progress{top:62px;}
  section.block{padding:64px 0;}
  .hero{padding:72px 0 80px;}
}
@media(max-width:560px){
  .stat-grid{grid-template-columns:1fr 1fr;gap:22px;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;}
  .checklist-copy,.checklist-visual{padding:34px 26px;}
  .archive-card{padding:26px;}
}

/* ---------------- Reduced motion ---------------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition:none !important;animation:none !important;}
  .reveal{opacity:1;transform:none;}
  .bar-fill{transition:none;}
}
