/* ============================================================
   Louis Noah — Marketing for Main Street — design system
   ============================================================ */

:root{
  /* ink */
  --ink:#0E2233;
  --ink-700:#17324A;
  --ink-500:#2C4358;
  --muted:#6B7B88;
  --muted-lt:#93A3AF;

  /* brand */
  --green:#1B6B4F;
  --green-600:#22855F;
  --mint:#6FCFA8;
  --mint-lt:#A8E3C9;
  --green-wash:#E8F1ED;
  --gold:#B5822A;
  --gold-lt:#D9A63F;
  --gold-wash:#F7F0E2;

  /* surfaces */
  --paper:#FBF9F5;
  --panel:#F4F1EA;
  --surface:#FFFFFF;
  --rule:#DCD5C8;
  --rule-2:#EAE5DA;
  --rule-dark:rgba(255,255,255,.16);

  /* type */
  --sans:"Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --serif:"Lora", Georgia, "Times New Roman", serif;

  /* metrics */
  --wrap:1180px;
  --narrow:820px;
  --r:8px;
  --r-lg:14px;
  --shadow:0 1px 2px rgba(14,34,51,.06), 0 8px 28px rgba(14,34,51,.07);
  --shadow-lg:0 2px 6px rgba(14,34,51,.08), 0 22px 60px rgba(14,34,51,.12);
  --nav-h:70px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 16px); }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  font-size:16.5px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{ max-width:100%; display:block; }
a{ color:inherit; }

::selection{ background:var(--mint); color:var(--ink); }

:focus-visible{ outline:2.5px solid var(--green-600); outline-offset:2px; border-radius:3px; }

/* ---------- type scale ---------- */
h1,h2,h3,h4,.display{ font-family:var(--sans); font-weight:650; letter-spacing:-.025em; line-height:1.1; }
h1{ font-size:clamp(2.4rem, 5.4vw, 4.1rem); }
h2{ font-size:clamp(1.85rem, 3.5vw, 2.75rem); letter-spacing:-.028em; }
h3{ font-size:1.22rem; letter-spacing:-.018em; line-height:1.25; }
h4{ font-size:1.02rem; letter-spacing:-.012em; }

.eyebrow{
  font-family:var(--sans); font-size:.7rem; font-weight:650;
  letter-spacing:.19em; text-transform:uppercase; color:var(--gold);
  display:block; margin-bottom:.85rem;
}
.eyebrow.on-dark{ color:var(--gold-lt); }

.lede{ font-family:var(--serif); font-size:clamp(1.05rem,1.6vw,1.24rem); line-height:1.62; color:var(--ink-500); }
.lede.on-dark{ color:#C6D3DE; }

.small{ font-size:.86rem; color:var(--muted); }
.ph{ color:var(--gold); font-weight:600; white-space:nowrap; }
.ph-long{ white-space:normal; }
.on-dark .ph, .dark .ph{ color:var(--gold-lt); }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(20px,4.5vw,40px); }
.narrow{ max-width:var(--narrow); }
section{ padding-block:clamp(56px,8vw,104px); }
.sec-tight{ padding-block:clamp(40px,5.5vw,68px); }

.dark{ background:var(--ink); color:#fff; }
.dark h1,.dark h2,.dark h3,.dark h4{ color:#fff; }
.dark .small{ color:var(--muted-lt); }
.panel-bg{ background:var(--panel); }
.paper-bg{ background:var(--paper); }
.white-bg{ background:var(--surface); }

.sec-head{ max-width:44rem; margin-bottom:clamp(28px,4vw,46px); }
.sec-head.center{ margin-inline:auto; text-align:center; }
.sec-head p{ margin-top:.95rem; }

.grid{ display:grid; gap:clamp(16px,2.2vw,26px); }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:960px){ .g3,.g4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .g2,.g3,.g4{ grid-template-columns:1fr; } }

.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,68px); align-items:center; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; } }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--sans); font-size:.93rem; font-weight:600; letter-spacing:-.005em;
  padding:.82rem 1.45rem; border-radius:var(--r); border:1.5px solid transparent;
  text-decoration:none; cursor:pointer; transition:transform .16s ease, background .16s ease, border-color .16s ease, color .16s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1.5px); }
.btn:active{ transform:translateY(0); }
.btn-primary{ background:var(--green); color:#fff; }
.btn-primary:hover{ background:var(--green-600); }
.btn-gold{ background:var(--gold); color:#fff; }
.btn-gold:hover{ background:var(--gold-lt); }
.btn-ghost{ border-color:var(--rule); color:var(--ink); background:transparent; }
.btn-ghost:hover{ border-color:var(--green); color:var(--green); }
.btn-ghost-light{ border-color:rgba(255,255,255,.34); color:#fff; background:transparent; }
.btn-ghost-light:hover{ border-color:var(--mint); color:var(--mint); }
.btn-lg{ padding:1rem 1.75rem; font-size:1rem; }
.btn .ar{ transition:transform .16s ease; }
.btn:hover .ar{ transform:translateX(3px); }
.btns{ display:flex; gap:.8rem; flex-wrap:wrap; }

.tlink{
  font-family:var(--sans); font-weight:600; font-size:.93rem;
  color:var(--green); text-decoration:none;
  border-bottom:1.5px solid var(--mint-lt); padding-bottom:1px;
  transition:border-color .16s ease;
}
.tlink:hover{ border-bottom-color:var(--green); }
.dark .tlink{ color:var(--mint); border-bottom-color:rgba(111,207,168,.4); }
.dark .tlink:hover{ border-bottom-color:var(--mint); }

/* ---------- nav ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:80; height:var(--nav-h);
  display:flex; align-items:center;
  background:rgba(251,249,245,0); transition:background .25s ease, box-shadow .25s ease, border-color .25s ease;
  border-bottom:1px solid transparent;
}
.nav.scrolled, .nav.solid{
  background:rgba(251,249,245,.93);
  backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom-color:var(--rule);
}
.nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:1.4rem; width:100%; }
.logo{ display:flex; align-items:center; gap:.55rem; text-decoration:none; font-family:var(--sans); font-weight:680; font-size:1.06rem; letter-spacing:-.03em; color:var(--ink); }
.logo .mk{ width:27px; height:27px; flex:none; }
.logo em{ font-style:normal; color:var(--green); }
.nav.on-hero .logo{ color:#fff; }
.nav.on-hero .logo em{ color:var(--mint); }
.nav.scrolled .logo{ color:var(--ink); }
.nav.scrolled .logo em{ color:var(--green); }

.nav-links{ display:flex; align-items:center; gap:.3rem; list-style:none; }
.nav-links a{
  font-family:var(--sans); font-size:.88rem; font-weight:500; text-decoration:none;
  color:var(--ink-500); padding:.5rem .72rem; border-radius:6px; transition:color .15s ease, background .15s ease;
}
.nav-links a:hover{ color:var(--green); background:rgba(27,107,79,.07); }
.nav-links a.active{ color:var(--green); font-weight:600; }
.nav.on-hero .nav-links a{ color:rgba(255,255,255,.82); }
.nav.on-hero .nav-links a:hover{ color:#fff; background:rgba(255,255,255,.1); }
.nav.on-hero .nav-links a.active{ color:var(--mint); }
.nav.scrolled .nav-links a{ color:var(--ink-500); }
.nav.scrolled .nav-links a:hover{ color:var(--green); background:rgba(27,107,79,.07); }
.nav.scrolled .nav-links a.active{ color:var(--green); }
.nav-cta{ display:flex; align-items:center; gap:.7rem; }

.burger{
  display:none; width:42px; height:38px; border:none; background:transparent; cursor:pointer;
  align-items:center; justify-content:center; flex-direction:column; gap:5px; border-radius:6px;
}
.burger span{ display:block; width:21px; height:2px; background:var(--ink); border-radius:2px; transition:transform .22s ease, opacity .22s ease, background .22s ease; }
.nav.on-hero .burger span{ background:#fff; }
.nav.scrolled .burger span{ background:var(--ink); }
body.menu-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.menu-open .burger span:nth-child(2){ opacity:0; }
body.menu-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:940px){
  .nav-links, .nav-cta .btn{ display:none; }
  .burger{ display:flex; }
}

.mobile-menu{
  position:fixed; inset:var(--nav-h) 0 0 0; z-index:79;
  background:var(--ink); padding:2rem clamp(20px,6vw,40px) 3rem;
  transform:translateY(-101%); transition:transform .32s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;
}
body.menu-open .mobile-menu{ transform:translateY(0); }
.mobile-menu ul{ list-style:none; }
.mobile-menu a{
  display:block; font-family:var(--sans); font-size:1.5rem; font-weight:600; letter-spacing:-.02em;
  color:#fff; text-decoration:none; padding:.72rem 0; border-bottom:1px solid var(--rule-dark);
}
.mobile-menu a:hover, .mobile-menu a.active{ color:var(--mint); }
.mobile-menu .btn{ margin-top:1.6rem; width:100%; justify-content:center; }
.mobile-menu .mm-contact{ margin-top:2rem; color:var(--muted-lt); font-size:.9rem; line-height:1.9; }

/* ---------- hero ---------- */
.hero{
  position:relative; background:var(--ink); color:#fff; overflow:hidden;
  padding-top:calc(var(--nav-h) + clamp(48px,8vw,86px));
  padding-bottom:clamp(56px,8vw,96px);
}
.hero::before{
  content:""; position:absolute; width:920px; height:920px; border-radius:50%;
  background:radial-gradient(circle, rgba(27,107,79,.42) 0%, rgba(27,107,79,0) 66%);
  top:-380px; right:-260px; pointer-events:none;
}
.hero::after{
  content:""; position:absolute; width:620px; height:620px; border-radius:50%;
  background:radial-gradient(circle, rgba(181,130,42,.20) 0%, rgba(181,130,42,0) 68%);
  bottom:-330px; left:-200px; pointer-events:none;
}
.hero .wrap{ position:relative; z-index:1; }
.hero h1{ max-width:16ch; }
.hero h1 .lt{ color:#8FA6B8; font-weight:300; }
.hero .lede{ margin-top:1.3rem; max-width:50ch; }
.hero .btns{ margin-top:2.1rem; }

.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,5vw,64px); align-items:center; }
@media (max-width:1000px){ .hero-grid{ grid-template-columns:1fr; } }

/* live status card */
.status-card{
  background:rgba(255,255,255,.055); border:1px solid var(--rule-dark);
  border-radius:var(--r-lg); padding:1.5rem 1.55rem 1.35rem; backdrop-filter:blur(8px);
}
.status-top{ display:flex; align-items:center; gap:.6rem; }
.dot{ width:9px; height:9px; border-radius:50%; background:var(--mint); flex:none; position:relative; }
.dot.off{ background:var(--gold-lt); }
.dot::after{
  content:""; position:absolute; inset:-5px; border-radius:50%;
  border:1.5px solid currentColor; color:inherit; opacity:.35; animation:pulse 2.4s ease-out infinite;
}
.dot{ color:var(--mint); }
.dot.off{ color:var(--gold-lt); }
@keyframes pulse{ 0%{ transform:scale(.7); opacity:.55; } 100%{ transform:scale(1.5); opacity:0; } }
@media (prefers-reduced-motion:reduce){ .dot::after{ animation:none; } }
.status-top .lbl{ font-family:var(--sans); font-size:.7rem; font-weight:650; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-lt); }
.status-time{ font-family:var(--sans); font-size:2.5rem; font-weight:650; letter-spacing:-.035em; margin-top:.7rem; line-height:1; }
.status-zone{ font-size:.83rem; color:var(--muted-lt); margin-top:.35rem; }
.status-msg{ margin-top:1.15rem; padding-top:1.15rem; border-top:1px solid var(--rule-dark); font-size:.95rem; color:#C6D3DE; line-height:1.55; }
.status-msg b{ color:#fff; font-weight:600; }

/* ---------- stat strip ---------- */
.strip{ border-block:1px solid var(--rule); background:var(--panel); }
.strip-in{ display:grid; grid-template-columns:repeat(4,1fr); }
@media (max-width:760px){ .strip-in{ grid-template-columns:repeat(2,1fr); } }
.strip-in div{ padding:1.5rem 1.2rem 1.5rem 0; border-right:1px solid var(--rule); }
.strip-in div:last-child{ border-right:none; }
@media (max-width:760px){
  .strip-in div:nth-child(2n){ border-right:none; }
  .strip-in div:nth-child(-n+2){ border-bottom:1px solid var(--rule); }
}
.strip .k{ font-family:var(--sans); font-size:1.62rem; font-weight:650; letter-spacing:-.03em; }
.strip .v{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); margin-top:.3rem; }

/* ---------- cards ---------- */
.card{
  background:var(--surface); border:1px solid var(--rule); border-radius:var(--r-lg);
  padding:1.6rem 1.55rem 1.7rem; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--rule-2); }
.card .ico{
  width:40px; height:40px; border-radius:9px; background:var(--green-wash);
  display:grid; place-items:center; color:var(--green); margin-bottom:1.05rem;
}
.card .ico svg{ width:21px; height:21px; }
.card h3{ margin-bottom:.5rem; }
.card p{ font-size:.95rem; color:var(--ink-500); }
.card .cta{ margin-top:1.05rem; display:inline-block; }
.card.dark-card{ background:var(--ink-700); border-color:rgba(255,255,255,.1); color:#fff; }
.card.dark-card p{ color:#B9C8D4; }
.card.dark-card .ico{ background:rgba(111,207,168,.15); color:var(--mint); }

/* numbered steps */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2.4vw,28px); }
@media (max-width:900px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } }
.step{ border-top:3px solid var(--green); padding-top:1.1rem; }
.dark .step{ border-top-color:var(--mint); }
.step .n{ font-family:var(--sans); font-size:.7rem; font-weight:650; letter-spacing:.16em; color:var(--green); }
.dark .step .n{ color:var(--mint); }
.step h4{ margin:.5rem 0 .45rem; }
.step p{ font-size:.92rem; color:var(--ink-500); }
.dark .step p{ color:#B9C8D4; }

/* ---------- pricing ---------- */
.toggle{
  display:inline-flex; background:var(--panel); border:1px solid var(--rule);
  border-radius:999px; padding:4px; gap:2px; margin-inline:auto;
}
.toggle button{
  font-family:var(--sans); font-size:.87rem; font-weight:600; color:var(--muted);
  background:transparent; border:none; border-radius:999px; padding:.55rem 1.15rem; cursor:pointer;
  transition:background .18s ease, color .18s ease;
}
.toggle button[aria-selected="true"]{ background:var(--ink); color:#fff; }

.tier{
  background:var(--surface); border:1px solid var(--rule); border-radius:var(--r-lg);
  display:flex; flex-direction:column; overflow:hidden; position:relative;
  transition:transform .2s ease, box-shadow .2s ease;
}
.tier:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.tier.feat{ border:2px solid var(--green); }
.tier .flag{
  position:absolute; top:0; right:1.1rem; background:var(--gold); color:#fff;
  font-family:var(--sans); font-size:.62rem; font-weight:650; letter-spacing:.12em; text-transform:uppercase;
  padding:.3rem .62rem; border-radius:0 0 5px 5px;
}
.tier-h{ padding:1.5rem 1.4rem 1.3rem; border-bottom:1px solid var(--rule-2); }
.tier .tnum{ font-family:var(--sans); font-size:.64rem; font-weight:650; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); }
.tier h3{ margin-top:.35rem; font-size:1.35rem; }
.tier .price{ font-family:var(--sans); font-size:2.4rem; font-weight:680; letter-spacing:-.04em; margin-top:.7rem; line-height:1; }
.tier .price small{ font-size:.82rem; font-weight:500; color:var(--muted); letter-spacing:0; }
.tier .for{ font-size:.88rem; color:var(--muted); margin-top:.6rem; line-height:1.5; min-height:3.2em; }
.tier-b{ padding:1.25rem 1.4rem 1.5rem; flex:1; display:flex; flex-direction:column; }
.tier .carry{
  font-family:var(--sans); font-size:.82rem; font-weight:650; color:var(--green);
  background:var(--green-wash); border-radius:5px; padding:.45rem .65rem; margin-bottom:.85rem;
}
.feats{ list-style:none; flex:1; }
.feats li{ font-size:.9rem; line-height:1.45; padding-left:1.35rem; margin-bottom:.55rem; position:relative; color:var(--ink-500); }
.feats li::before{
  content:""; position:absolute; left:0; top:.48em; width:6px; height:6px; border-radius:50%; background:var(--green);
}
.feats li b{ color:var(--ink); font-weight:600; }
.tier .btn{ margin-top:1.3rem; justify-content:center; }
.tier .meta{ font-size:.79rem; color:var(--muted); margin-top:.85rem; text-align:center; }

/* price table */
.ptable{ width:100%; border-collapse:collapse; }
.ptable th{
  font-family:var(--sans); font-size:.68rem; font-weight:650; letter-spacing:.13em; text-transform:uppercase;
  color:var(--muted); text-align:left; padding:0 .7rem .55rem 0; border-bottom:1.5px solid var(--ink);
}
.ptable th.r,.ptable td.r{ text-align:right; padding-right:0; }
.ptable td{ padding:.72rem .7rem .72rem 0; border-bottom:1px solid var(--rule-2); vertical-align:top; font-size:.93rem; }
.ptable td.r{ font-family:var(--sans); font-weight:650; white-space:nowrap; }
.ptable td.r .mo{ color:var(--muted); font-weight:500; font-size:.84em; }
.ptable .nm{ font-weight:600; color:var(--ink); }
.ptable .ds{ color:var(--muted); font-size:.9em; }
.ptable tr.grp td{
  background:var(--panel); font-family:var(--sans); font-weight:650; font-size:.67rem;
  letter-spacing:.13em; text-transform:uppercase; color:var(--ink); padding:.5rem .7rem;
}
.ptable tr.hide{ display:none; }

.search-row{ display:flex; gap:.7rem; align-items:center; margin-bottom:1.2rem; flex-wrap:wrap; }
.search-row input{
  flex:1; min-width:220px; font-family:var(--body); font-size:.95rem; color:var(--ink);
  background:var(--surface); border:1px solid var(--rule); border-radius:var(--r); padding:.7rem .9rem;
}
.search-row input:focus{ outline:2px solid var(--green); outline-offset:1px; border-color:var(--green); }
.search-count{ font-size:.85rem; color:var(--muted); font-family:var(--sans); }

/* ---------- faq ---------- */
.faq{ border-top:1px solid var(--rule); }
.faq details{ border-bottom:1px solid var(--rule); }
.faq summary{
  font-family:var(--sans); font-size:1.03rem; font-weight:600; letter-spacing:-.012em;
  padding:1.15rem 2.6rem 1.15rem 0; cursor:pointer; list-style:none; position:relative; color:var(--ink);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:.4rem; top:1.55rem; width:10px; height:10px;
  border-right:2px solid var(--green); border-bottom:2px solid var(--green);
  transform:rotate(45deg); transition:transform .2s ease;
}
.faq details[open] summary::after{ transform:rotate(-135deg); top:1.75rem; }
.faq summary:hover{ color:var(--green); }
.faq .ans{ padding:0 2.6rem 1.35rem 0; color:var(--ink-500); font-size:.97rem; }
.faq .ans p + p{ margin-top:.8rem; }

/* ---------- misc blocks ---------- */
.callout{
  background:var(--green-wash); border-left:3px solid var(--green);
  border-radius:0 var(--r) var(--r) 0; padding:1.25rem 1.45rem; font-size:.97rem; color:var(--ink-500);
}
.callout.gold{ background:var(--gold-wash); border-left-color:var(--gold); }
.callout b{ color:var(--ink); font-weight:650; }

.promise{ list-style:none; }
.promise li{ padding-left:2.1rem; position:relative; margin-bottom:1.15rem; }
.promise li::before{
  content:""; position:absolute; left:0; top:.28em; width:1.32rem; height:1.32rem; border-radius:50%;
  background:var(--green-wash);
}
.promise li::after{
  content:""; position:absolute; left:.42rem; top:.62em; width:.42rem; height:.24rem;
  border-left:2px solid var(--green); border-bottom:2px solid var(--green);
  transform:rotate(-45deg);
}
.dark .promise li::before{ background:rgba(111,207,168,.16); }
.dark .promise li::after{ border-color:var(--mint); }
.promise b{ font-family:var(--sans); font-weight:650; display:block; margin-bottom:.15rem; }
.promise span{ font-size:.95rem; color:var(--ink-500); }
.dark .promise span{ color:#B9C8D4; }

.cta-band{ background:var(--ink); color:#fff; border-radius:var(--r-lg); padding:clamp(28px,4.5vw,52px); position:relative; overflow:hidden; }
.cta-band::before{
  content:""; position:absolute; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(27,107,79,.4) 0%, rgba(27,107,79,0) 68%);
  top:-240px; right:-140px;
}
.cta-band > *{ position:relative; z-index:1; }
.cta-band h2{ max-width:20ch; }
.cta-band p{ color:#C6D3DE; margin-top:.9rem; max-width:52ch; }
.cta-band .btns{ margin-top:1.7rem; }

/* ---------- footer ---------- */
.foot{ background:var(--ink); color:#fff; padding-top:clamp(44px,6vw,72px); padding-bottom:1.8rem; }
.foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:clamp(24px,3.5vw,44px); }
@media (max-width:860px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .foot-grid{ grid-template-columns:1fr; } }
.foot .logo{ color:#fff; }
.foot .logo em{ color:var(--mint); }
.foot p{ font-size:.9rem; color:var(--muted-lt); margin-top:.9rem; line-height:1.65; max-width:34ch; }
.foot h4{ font-size:.7rem; font-weight:650; letter-spacing:.15em; text-transform:uppercase; color:var(--muted-lt); margin-bottom:.85rem; }
.foot ul{ list-style:none; }
.foot ul li{ margin-bottom:.5rem; }
.foot ul a{ font-size:.9rem; color:#C6D3DE; text-decoration:none; transition:color .15s ease; }
.foot ul a:hover{ color:var(--mint); }
.foot-bot{
  margin-top:clamp(30px,4vw,52px); padding-top:1.4rem; border-top:1px solid var(--rule-dark);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.8rem; color:var(--muted-lt);
}

/* ---------- reveal ---------- */
.rv{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1); }
.rv.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .rv{ opacity:1; transform:none; transition:none; } }

/* ---------- calculator ---------- */
.calc{
  background:var(--surface); border:1px solid var(--rule); border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--shadow);
}
.calc-grid{ display:grid; grid-template-columns:340px 1fr; }
@media (max-width:900px){ .calc-grid{ grid-template-columns:1fr; } }
.calc-in{ background:var(--panel); padding:1.7rem 1.6rem 1.9rem; border-right:1px solid var(--rule); }
@media (max-width:900px){ .calc-in{ border-right:none; border-bottom:1px solid var(--rule); } }
.calc-h{
  font-family:var(--sans); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:650; color:var(--ink); padding-bottom:.45rem; border-bottom:1.5px solid var(--ink); margin-bottom:1.15rem;
}
.fld{ margin-bottom:1.15rem; }
.fld label{ display:block; font-family:var(--sans); font-size:.88rem; font-weight:600; }
.fld .hint{ font-size:.79rem; color:var(--muted); margin-top:.1rem; line-height:1.4; }
.fld .row{ display:flex; align-items:center; gap:.65rem; margin-top:.5rem; }
.fld input[type=range]{ flex:1; accent-color:var(--green); height:20px; }
.calc-num{
  width:92px; flex:none; font-family:var(--sans); font-size:.95rem; font-weight:650; color:var(--ink);
  background:var(--surface); border:1px solid var(--rule); border-radius:5px; padding:.42rem .55rem;
  text-align:right; font-variant-numeric:tabular-nums;
}
.calc-num:focus{ outline:2px solid var(--green); outline-offset:1px; border-color:var(--green); }
.calc-out{ padding:1.8rem 1.9rem 2rem; }
.calc-hero-l{ font-family:var(--sans); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; font-weight:650; color:var(--gold); }
.calc-hero{ font-family:var(--sans); font-size:clamp(2.9rem,6.5vw,4.3rem); font-weight:680; letter-spacing:-.04em; line-height:1.02; margin-top:.3rem; }
.calc-sub{ font-size:.94rem; color:var(--ink-500); margin-top:.5rem; max-width:52ch; }
.kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule-2); margin-top:1.5rem; border-block:1px solid var(--rule-2); }
@media (max-width:520px){ .kpis{ grid-template-columns:1fr; } }
.kpi{ background:var(--surface); padding:.9rem .9rem 1rem; }
.kpi .k-label{ font-size:.79rem; color:var(--muted); font-weight:600; font-family:var(--sans); }
.kpi .k-val{ font-family:var(--sans); font-size:1.55rem; font-weight:650; letter-spacing:-.03em; margin-top:.15rem; }
.meter-wrap{ margin-top:1.6rem; }
.meter-head{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; }
.meter-title{ font-family:var(--sans); font-size:.9rem; font-weight:650; }
.meter-pct{ font-family:var(--sans); font-size:.9rem; font-weight:650; color:var(--green); font-variant-numeric:tabular-nums; }
.meter{ position:relative; height:24px; border-radius:5px; background:#D3E5DD; margin-top:.55rem; overflow:hidden; }
.meter-fill{ position:absolute; inset:0 auto 0 0; background:var(--green); border-radius:5px 0 0 5px; transition:width .18s ease; }
.meter-legend{ display:flex; justify-content:space-between; margin-top:.45rem; font-size:.82rem; color:var(--ink-500); }
.meter-legend b{ color:var(--ink); font-weight:650; }
.verdict{ margin-top:1.4rem; padding:1rem 1.15rem; border-radius:6px; background:var(--green-wash); border-left:3px solid var(--green); font-size:.95rem; color:var(--ink-500); }
.verdict b{ color:var(--ink); font-weight:650; }
.verdict.warn{ background:var(--gold-wash); border-left-color:var(--gold); }
.calc details{ margin-top:1.5rem; border-top:1px solid var(--rule-2); padding-top:1rem; }
.calc summary{ font-family:var(--sans); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; font-weight:650; color:var(--muted); cursor:pointer; list-style:none; }
.calc summary::-webkit-details-marker{ display:none; }
.calc summary::before{ content:"▸ "; color:var(--green); }
.calc details[open] summary::before{ content:"▾ "; }
.calc table{ width:100%; border-collapse:collapse; margin-top:.85rem; font-size:.9rem; }
.calc th{ text-align:left; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:650; padding:0 .5rem .4rem 0; border-bottom:1.5px solid var(--ink); }
.calc th.r,.calc td.r{ text-align:right; padding-right:0; }
.calc td{ padding:.5rem .5rem .5rem 0; border-bottom:1px solid var(--rule-2); color:var(--ink-500); }
.calc td.r{ font-family:var(--sans); font-weight:650; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; }
.calc .step-n{ display:inline-block; width:1.3rem; color:var(--green); font-weight:650; font-family:var(--sans); }

/* ---------- forms ---------- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:620px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:.35rem; }
.field.full{ grid-column:1 / -1; }
.field label{ font-family:var(--sans); font-size:.83rem; font-weight:600; }
.field input, .field select, .field textarea{
  font-family:var(--body); font-size:.95rem; color:var(--ink); background:var(--surface);
  border:1px solid var(--rule); border-radius:var(--r); padding:.72rem .85rem; width:100%;
}
.field textarea{ min-height:120px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--green); outline-offset:1px; border-color:var(--green); }

/* ---------- page header (non-home) ---------- */
.phead{
  background:var(--ink); color:#fff; position:relative; overflow:hidden;
  padding-top:calc(var(--nav-h) + clamp(38px,5.5vw,64px));
  padding-bottom:clamp(38px,5.5vw,64px);
}
.phead::before{
  content:""; position:absolute; width:760px; height:760px; border-radius:50%;
  background:radial-gradient(circle, rgba(27,107,79,.34) 0%, rgba(27,107,79,0) 68%);
  top:-380px; right:-200px;
}
.phead .wrap{ position:relative; z-index:1; }
.phead h1{ font-size:clamp(2.05rem,4.4vw,3.15rem); max-width:20ch; }
.phead .lede{ margin-top:1rem; max-width:56ch; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

@media print{
  .nav,.mobile-menu,.foot,.cta-band,.btns{ display:none !important; }
  body{ background:#fff; }
  .calc{ box-shadow:none; }
}
