/* ==========================================================================
   NASHVILLE SEO COMPANY
   Design system: Signal Chain
   Warm white base, deep teal and brass, Gabarito display.
   Single stylesheet for all pages.
   ========================================================================== */

:root{
  --paper:#fbfaf8;
  --paper-2:#f3f1ec;
  --paper-3:#eae7e0;
  --white:#ffffff;
  --ink:#16140f;
  --ink-2:#4c4941;
  --muted:#6e6a5e;
  --teal:#0b6e62;
  --teal-mid:#0d8474;
  --teal-deep:#06413a;
  --teal-tint:#e6f1ef;
  --teal-soft:#7fd8c6;
  --brass:#e9a020;
  --brass-ink:#9c6304;
  --brass-tint:#fdf3e0;
  --citrus:#a8d61e;
  --citrus-lite:#c6ec4d;
  --citrus-ink:#4f6b06;
  --citrus-tint:#f2f8dd;
  --line:rgba(22,20,15,.13);
  --line-2:rgba(22,20,15,.07);
  --line-d:rgba(251,250,248,.17);
  --rail:44px;
  --pad:clamp(18px,4vw,60px);
  --maxw:1180px;
  --display:"Gabarito",system-ui,sans-serif;
  --body:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Martian Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --r-s:8px;
  --r-m:14px;
  --r-l:20px;
  --shadow:0 24px 54px rgba(22,20,15,.08);
  --shadow-s:0 10px 26px rgba(22,20,15,.07);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-weight:450;font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
svg{width:1.05em;height:1.05em;flex:0 0 auto}
.scan-map svg.base{width:100%;height:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-weight:inherit;font-family:var(--display);letter-spacing:-.028em;line-height:1.08}
p{margin:0 0 1.05em}
ul,ol{margin:0 0 1.05em;padding-left:1.2em}
li{margin:0 0 .45em}
hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
main{display:block}
.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}

/* ---------- type scale ---------- */
.h-xl,.h-l,.h-m,.h-s{font-family:var(--display);font-weight:800}
.h-xl{font-size:clamp(2.3rem,4vw,3.4rem);line-height:1.04;letter-spacing:-.032em}
.h-l{font-size:clamp(1.85rem,3vw,2.6rem);line-height:1.08;letter-spacing:-.028em}
.h-m{font-size:clamp(1.4rem,2.1vw,1.85rem);line-height:1.12;letter-spacing:-.026em}
.h-s{font-size:clamp(1.1rem,1.6vw,1.34rem);line-height:1.16;letter-spacing:-.022em;font-weight:700}
h1{font-size:clamp(2.3rem,4vw,3.4rem);line-height:1.04;letter-spacing:-.032em;font-weight:800}
h2{font-size:clamp(1.85rem,3vw,2.6rem);font-weight:800}
h3{font-size:clamp(1.1rem,1.6vw,1.34rem);font-weight:700}
h4{font-size:1.02rem;font-weight:700}
.lead,.muted{font-size:clamp(1.03rem,1.3vw,1.16rem);line-height:1.62;color:var(--ink-2)}
.lead{max-width:58ch}
.small{font-size:.9rem;color:var(--ink-2)}
strong,b{font-weight:650}

/* headline phrase wipes from ink into solid colour on entry */
.shift{
  background-image:linear-gradient(90deg,var(--teal) 0%,var(--teal) 50%,var(--ink) 50%,var(--ink) 100%);
  background-size:200% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  transition:background-position 1.15s cubic-bezier(.3,.8,.3,1);
}
.is-vis .shift,.reveal.in-view .shift,.in-view .shift{background-position:0 0}
.dot{color:var(--brass)}
.on-dark .shift,.sec--teal .shift,.cta-band .shift{
  background-image:linear-gradient(90deg,var(--brass) 0%,var(--brass) 50%,var(--paper) 50%,var(--paper) 100%);
}
.on-dark .dot,.sec--teal .dot,.cta-band .dot{color:var(--teal-soft)}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .shift{color:var(--teal);-webkit-text-fill-color:var(--teal)}
  .on-dark .shift,.sec--teal .shift,.cta-band .shift{color:var(--brass);-webkit-text-fill-color:var(--brass)}
}

/* ---------- eyebrow ---------- */
.eyebrow{
  font-family:var(--mono);font-size:.63rem;font-weight:600;letter-spacing:.17em;
  text-transform:uppercase;color:var(--teal);display:inline-flex;align-items:center;gap:.55rem;
}
.eyebrow::before{content:"";width:16px;height:3px;background:var(--brass);flex:0 0 auto;border-radius:2px}
.on-dark .eyebrow,.sec--teal .eyebrow,.cta-band .eyebrow{color:var(--brass)}

/* ---------- buttons ---------- */
.btn,.btn-primary,.btn-ghost,.btn-line{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--body);font-weight:600;font-size:.94rem;
  padding:.92rem 1.5rem;border-radius:999px;border:1.5px solid transparent;
  cursor:pointer;line-height:1;text-align:center;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .16s ease,box-shadow .2s ease;
}
.btn svg,.btn-primary svg{width:16px;height:16px;flex:0 0 auto;transition:transform .22s ease}
.btn,.btn-primary,.btn--teal{background:var(--teal);color:#fff;box-shadow:0 6px 18px rgba(11,110,98,.24)}
.btn:hover,.btn-primary:hover,.btn--teal:hover{background:var(--teal-deep);transform:translateY(-2px);box-shadow:0 10px 24px rgba(11,110,98,.3)}
.btn:hover svg,.btn-primary:hover svg{transform:translateX(4px)}
.btn-ghost,.btn--line,.btn-secondary{background:transparent;color:var(--ink);border-color:var(--line);box-shadow:none}
.btn-ghost:hover,.btn--line:hover,.btn-secondary:hover{border-color:var(--ink);background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.btn--brass{background:var(--brass);color:#2a1a00;box-shadow:0 6px 18px rgba(233,160,32,.3)}
.btn--brass:hover{background:#d9910f;transform:translateY(-2px)}
.on-dark .btn-ghost,.sec--teal .btn-ghost,.cta-band .btn-ghost,.foot .btn-ghost{color:var(--paper);border-color:var(--line-d)}
.on-dark .btn-ghost:hover,.sec--teal .btn-ghost:hover,.cta-band .btn-ghost:hover,.foot .btn-ghost:hover{background:var(--paper);color:var(--ink)}

.lnk,.more,.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--teal);position:relative;padding-bottom:3px}
.lnk::after,.more::after,.link-arrow::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--brass);transition:width .3s cubic-bezier(.3,.8,.3,1)}
.lnk:hover::after,.more:hover::after,.link-arrow:hover::after{width:100%}
.lnk svg,.more svg{width:15px;height:15px;transition:transform .22s ease}
.lnk:hover svg,.more:hover svg{transform:translateX(3px)}
.on-dark .lnk,.sec--teal .lnk,.cta-band .lnk,.on-dark .more,.sec--teal .more{color:var(--brass)}

/* ==========================================================================
   CHASSIS: fixed signal path with live nodes
   ========================================================================== */
.path{position:fixed;left:0;top:96px;bottom:36px;width:var(--rail);z-index:60;display:none;pointer-events:none}
@media(min-width:1180px){.path{display:block}}
.path::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line);transform:translateX(-.5px)}
.path-run{position:absolute;left:50%;top:0;width:1px;height:0;background:linear-gradient(180deg,var(--teal),var(--brass));transform:translateX(-.5px)}
.path-node{
  position:absolute;left:50%;transform:translate(-50%,-50%);
  width:9px;height:9px;border-radius:50%;background:var(--paper);
  border:1.5px solid var(--line);pointer-events:auto;
  transition:background .3s ease,border-color .3s ease,transform .3s ease;
}
.path-node span{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  font-family:var(--mono);font-size:.53rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);white-space:nowrap;
  opacity:0;transition:opacity .3s ease;
}
.path-node.on{background:var(--brass);border-color:var(--brass);transform:translate(-50%,-50%) scale(1.35)}
.path-node.on span{opacity:1;color:var(--ink)}

/* ---------- utility bar ---------- */
.utility{background:var(--ink);color:rgba(251,250,248,.72);font-family:var(--mono);font-size:.6rem;font-weight:500;letter-spacing:.11em;text-transform:uppercase}
.utility .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:38px;flex-wrap:wrap}
.utility a{color:rgba(251,250,248,.92)}
.utility a:hover{color:var(--brass)}
.utility-r{display:flex;align-items:center;gap:1.2rem}

/* ---------- header ---------- */
.head{position:sticky;top:0;z-index:70;background:rgba(251,250,248,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-2)}
.head .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;min-height:70px}
.brand,.logo{display:flex;align-items:center;gap:.6rem;flex:0 0 auto}
.brand-mark,.logo-mark{width:32px;height:32px;flex:0 0 auto;border-radius:9px;background:var(--teal-deep);display:flex;align-items:flex-end;justify-content:center;gap:2.5px;padding:7px 0}
.brand-mark i,.logo-mark i{display:block;width:3px;border-radius:2px;background:var(--paper)}
.brand-mark i:nth-child(1),.logo-mark i:nth-child(1){height:7px}
.brand-mark i:nth-child(2),.logo-mark i:nth-child(2){height:12px}
.brand-mark i:nth-child(3),.logo-mark i:nth-child(3){height:17px}
.brand b,.logo b{font-family:var(--display);font-weight:800;font-size:.97rem;letter-spacing:-.02em;display:block;line-height:1.15;color:var(--ink)}
.brand i.tagline,.logo i.tagline{display:block;font-family:var(--mono);font-style:normal;font-size:.5rem;letter-spacing:.19em;text-transform:uppercase;color:var(--muted);font-weight:600}

.dnav{display:none;flex:1;justify-content:center}
@media(min-width:1060px){.dnav{display:flex}}
.dnav>ul{display:flex;gap:1.6rem;list-style:none;margin:0;padding:0;align-items:center}
.dnav>ul>li{position:relative}
.dnav>ul>li>a{display:inline-flex;align-items:center;gap:.3rem;font-size:.89rem;font-weight:550;color:var(--ink-2);padding:.4rem 0;position:relative;transition:color .2s ease}
.dnav>ul>li>a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--brass);transition:width .24s ease}
.dnav>ul>li:hover>a{color:var(--ink)}
.dnav>ul>li:hover>a::after{width:100%}
.mega{
  position:absolute;left:50%;top:calc(100% + 14px);transform:translateX(-50%) translateY(-8px);
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);
  box-shadow:var(--shadow);padding:18px;min-width:290px;
  opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:5;
}
.dnav li:hover .mega,.dnav li:focus-within .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega.cols{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:4px 18px;min-width:460px}
.mega a{display:block;padding:.5rem .6rem;border-radius:var(--r-s);font-size:.87rem;font-weight:500;color:var(--ink-2);transition:background .18s ease,color .18s ease}
.mega a:hover{background:var(--teal-tint);color:var(--teal)}
.mega .mega-h{font-family:var(--mono);font-size:.55rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding:.4rem .6rem;grid-column:1/-1}

.head-cta{display:flex;align-items:center;gap:.8rem;flex:0 0 auto}
.head-cta .phone,.head-phone{display:none;font-family:var(--mono);font-size:.72rem;font-weight:600;color:var(--ink)}
@media(min-width:800px){.head-cta .phone,.head-phone{display:inline}}
.head-cta .btn,.head .btn{padding:.7rem 1.15rem;font-size:.84rem}

/* mobile nav */
.burger{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;width:40px;height:40px;padding:0 9px;border:1px solid var(--line);border-radius:10px;background:var(--white);cursor:pointer}
@media(min-width:1060px){.burger{display:none}}
.burger span{display:block;height:2px;background:var(--ink);border-radius:2px;transition:transform .24s ease,opacity .2s ease}
.mscrim{position:fixed;inset:0;background:rgba(22,20,15,.45);opacity:0;visibility:hidden;transition:opacity .26s ease,visibility .26s;z-index:88}
.mscrim.on{opacity:1;visibility:visible}
.mnav{
  position:fixed;top:0;right:0;bottom:0;width:min(88vw,380px);background:var(--white);z-index:89;
  transform:translateX(100%);transition:transform .3s cubic-bezier(.3,.8,.3,1);
  overflow-y:auto;padding:18px 20px 40px;box-shadow:-20px 0 50px rgba(22,20,15,.14);
}
.mnav.on{transform:none}
.m-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:18px}
.m-close{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:var(--white);cursor:pointer;font-size:1.1rem;line-height:1;color:var(--ink)}
.m-links{border-top:1px solid var(--line);padding:14px 0}
.m-links h4{font-family:var(--mono);font-size:.55rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.m-links a{display:block;padding:.5rem 0;font-size:.95rem;font-weight:550;color:var(--ink-2)}
.m-links a:hover{color:var(--teal)}
.m-cta{display:grid;gap:.6rem;margin-top:16px}

/* ---------- logo bar / marquee ---------- */
.logobar,.tick{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:11px 0;background:var(--paper)}
.logobar .wrap{padding:0}
.marquee{overflow:hidden}
.marquee-track,.tick-t{display:flex;gap:2.2rem;width:max-content;animation:roll 46s linear infinite}
.marquee-track span,.tick-t span{font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:2.2rem}
.marquee-track span::after,.tick-t span::after{content:"";width:4px;height:4px;background:var(--brass);border-radius:50%;flex:0 0 auto}
@keyframes roll{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.sec{padding:clamp(60px,7.5vw,106px) 0;position:relative}
.sec--paper2,.sec--tint{background:var(--paper-2)}
.sec--plain{background:var(--paper)}
.sec--teal{background:var(--teal-deep);color:var(--paper)}
.sec--teal .muted,.sec--teal .lead{color:rgba(251,250,248,.76)}
.sec--ink{background:var(--ink);color:var(--paper)}

/* channel strip header */
.chan{display:flex;align-items:center;gap:16px;margin-bottom:clamp(22px,3vw,34px)}
.chan-l{font-family:var(--mono);font-size:.58rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.chan-r{flex:1;height:1px;background:var(--line)}
.chan-m{display:flex;align-items:flex-end;gap:2px;height:16px;flex:0 0 auto}
.chan-m i{width:3px;background:var(--line);height:35%;border-radius:1px}
.chan-m i.a{background:var(--teal);height:100%}
.chan-m i.b{background:var(--brass);height:65%}
.sec--teal .chan-l{color:rgba(251,250,248,.55)}
.sec--teal .chan-r{background:var(--line-d)}
.sec--teal .chan-m i{background:var(--line-d)}
.sec--teal .chan-m i.a{background:var(--brass)}
.sec--teal .chan-m i.b{background:var(--teal-soft)}

.sec-head{max-width:52ch;margin-bottom:clamp(30px,4vw,50px)}
.sec-head .eyebrow{margin-bottom:16px}
.sec-head h2,.sec-head .h-l{margin-bottom:16px}
.sec-head .muted,.sec-head .lead{margin-bottom:0}
.sec-head--center{margin-left:auto;margin-right:auto;text-align:center}
.grid-foot{margin-top:clamp(24px,3vw,36px)}

/* reveal */
.reveal{opacity:0;will-change:opacity,transform;transform:translateY(20px);transition:opacity .8s cubic-bezier(.2,.8,.3,1),transform .8s cubic-bezier(.2,.8,.3,1)}
.reveal.in-view{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

/* ---------- hero ---------- */
.hero{padding:clamp(38px,5vw,66px) 0 clamp(48px,6vw,80px);position:relative;overflow:hidden}
.hero::before{
  content:"";position:absolute;top:-180px;right:-160px;width:640px;height:640px;border-radius:50%;
  background:radial-gradient(circle,rgba(233,160,32,.14),transparent 66%);pointer-events:none;
}
.hero .wrap{position:relative;z-index:2}
.hero h1,.hero .h-l,.hero .h-xl{margin:16px 0 20px;max-width:20ch}
.hero .muted,.hero .lead{max-width:58ch}
.crumbs{font-family:var(--mono);font-size:.58rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--teal)}
.crumbs span{margin:0 .45rem;opacity:.55}
.hero-actions,.cta-actions,.foot-hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:26px}
.trust{
  display:flex;flex-wrap:wrap;margin-top:clamp(26px,3.2vw,38px);
  border-top:1px solid var(--line);padding-top:18px;gap:0;
}
.trust>*{padding-right:clamp(16px,2.4vw,30px);margin-right:clamp(16px,2.4vw,30px);border-right:1px solid var(--line);font-size:.86rem;color:var(--ink-2)}
.trust>*:last-child{border-right:0;margin-right:0;padding-right:0}
.trust strong{display:block;font-family:var(--display);font-weight:700;font-size:1.02rem;color:var(--ink);letter-spacing:-.02em}

/* ---------- media block ---------- */
.media{display:grid;gap:clamp(30px,4.5vw,58px);align-items:center}
@media(min-width:980px){.media{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr)}}
.media-txt p:last-child{margin-bottom:0}
.media img,.media-img img{border-radius:var(--r-m);box-shadow:var(--shadow-s)}
.media--flip .media-txt{order:2}

/* ---------- duo / cards ---------- */
.duo{display:grid;gap:clamp(16px,2vw,22px)}
@media(min-width:820px){.duo{grid-template-columns:repeat(2,minmax(0,1fr))}}
.duo-card,.card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);
  padding:clamp(22px,2.6vw,30px);
  transition:transform .26s cubic-bezier(.2,.8,.3,1),box-shadow .26s ease,border-color .26s ease;
}
.duo-card:hover,.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(22,20,15,.2)}
.duo-card h3,.card h3{margin-bottom:10px}
.duo-card p:last-child,.card p:last-child{margin-bottom:0}
.duo-card .eyebrow,.card .eyebrow{margin-bottom:12px}
.sec--teal .duo-card,.sec--teal .card{background:rgba(251,250,248,.05);border-color:var(--line-d)}

/* generic content grid */
.grid{display:grid;gap:clamp(18px,2.4vw,28px)}
@media(min-width:720px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1020px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:719px){.grid--2{grid-template-columns:1fr}}
.grid>div,.grid>article{min-width:0}
.grid h3{margin-bottom:9px}
.grid h3+p{margin-bottom:0}

/* numbered service rows */
.rows{border-top:1px solid var(--line)}
.row{
  display:grid;gap:8px 20px;align-items:center;grid-template-columns:auto minmax(0,1fr);
  border-bottom:1px solid var(--line);padding:clamp(18px,2.4vw,26px) 0;
  position:relative;transition:padding .28s ease;
}
@media(min-width:920px){.row{grid-template-columns:44px minmax(0,1fr) 130px 26px}}
.row::before{content:"";position:absolute;left:calc(var(--pad) * -.4);right:calc(var(--pad) * -.4);top:0;bottom:0;background:var(--brass-tint);opacity:0;transition:opacity .28s ease;border-radius:var(--r-s);z-index:0}
.row>*{position:relative;z-index:1}
.row:hover::before{opacity:1}
.row:hover{padding-left:14px;padding-right:14px}
.row:hover .row-t{color:var(--brass-ink)}
.row:hover .row-a{opacity:1;transform:none;color:var(--brass-ink)}
.row-n{font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.1em;color:var(--muted)}
.row-t{display:block;font-family:var(--display);font-weight:700;font-size:clamp(1.08rem,1.5vw,1.28rem);letter-spacing:-.022em;transition:color .24s ease}
.row-d{display:block;margin:6px 0 0;font-size:.9rem;line-height:1.5;color:var(--ink-2);max-width:52ch}
.row-p{font-family:var(--mono);font-size:.72rem;font-weight:700;white-space:nowrap}
.row-a{opacity:.28;transform:translateX(-4px);transition:opacity .24s ease,transform .24s ease,color .24s ease}
.row-a svg{width:19px;height:19px;display:block}

/* ---------- rate rows ---------- */
.rate{border-top:1px solid var(--line)}
.rate-r{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:clamp(15px,2vw,22px) 0;position:relative;transition:padding .28s ease}
.rate-r::before{content:"";position:absolute;left:calc(var(--pad) * -.4);right:calc(var(--pad) * -.4);top:0;bottom:0;background:var(--teal-tint);opacity:0;transition:opacity .28s ease;border-radius:var(--r-s)}
.rate-r>*{position:relative;z-index:1}
.rate-r:hover::before{opacity:1}
.rate-r:hover{padding-left:14px;padding-right:14px}
.rate-r:hover .rate-v{color:var(--teal)}
.rate-l{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.rate-k{font-family:var(--mono);font-size:.55rem;font-weight:700;letter-spacing:.14em;color:var(--muted)}
.rate-t{font-family:var(--display);font-weight:700;font-size:clamp(1.05rem,1.7vw,1.3rem);letter-spacing:-.022em}
.rate-m{font-family:var(--mono);font-size:.57rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rate-v{font-family:var(--display);font-weight:900;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:.95;letter-spacing:-.045em;transition:color .24s ease}
.rate-v sup{font-size:.42em;vertical-align:super;font-weight:700}

/* ---------- pricing cards ---------- */
.price-grid{display:grid;gap:clamp(16px,2vw,22px)}
@media(min-width:760px){.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1060px){.price-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.price-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:clamp(20px,2.4vw,26px);transition:transform .26s ease,box-shadow .26s ease}
.price-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.price-card .amt{font-family:var(--display);font-weight:900;font-size:clamp(2rem,3.4vw,2.6rem);letter-spacing:-.045em;line-height:1;display:block;margin:10px 0 4px}
.price-card .amt sup{font-size:.4em;vertical-align:super;font-weight:700}
.price-card .per{font-family:var(--mono);font-size:.58rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.price-card.featured{border-color:var(--teal);box-shadow:0 0 0 2px rgba(11,110,98,.14)}

/* ==========================================================================
   FADER BANK
   ========================================================================== */
.desk{background:var(--white);border:1px solid var(--line);border-radius:var(--r-l);padding:20px;box-shadow:var(--shadow)}
.sec--teal .desk{background:rgba(251,250,248,.05);border-color:var(--line-d)}
.desk-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:20px;flex-wrap:wrap}
.desk-q{font-family:var(--mono);font-size:.62rem;font-weight:600;color:var(--ink-2);display:inline-flex;align-items:center;gap:.45rem;background:var(--paper-2);padding:.45rem .65rem;border-radius:var(--r-s)}
.desk-q svg{width:12px;height:12px;color:var(--teal);flex:0 0 auto}
.sec--teal .desk-q{color:rgba(251,250,248,.86);background:rgba(251,250,248,.09)}
.sec--teal .desk-q svg{color:var(--brass)}
.desk-live{font-family:var(--mono);font-size:.55rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--brass-ink);display:inline-flex;align-items:center;gap:.4rem}
.desk-live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brass);animation:blink 2.4s ease-in-out infinite}
.sec--teal .desk-live{color:var(--brass)}
@keyframes blink{0%,100%{opacity:.35}50%{opacity:1}}
.bank{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(5px,1.3vw,14px);align-items:end}
.fad{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:0}
.fad-t{position:relative;width:100%;height:clamp(112px,16vw,164px)}
.fad-t::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:9px;margin-left:-4.5px;background:var(--paper-2);border-radius:5px;box-shadow:inset 0 1px 3px rgba(22,20,15,.14)}
.sec--teal .fad-t::before{background:rgba(251,250,248,.1);box-shadow:none}
.fad-f{position:absolute;left:50%;width:9px;margin-left:-4.5px;bottom:0;border-radius:5px;background:linear-gradient(180deg,var(--teal-mid),var(--teal));height:12%;transition:height 1.5s cubic-bezier(.25,.85,.3,1)}
.fad--you .fad-f{background:linear-gradient(180deg,var(--brass),#d9910f)}
.fad-c{position:absolute;left:0;right:0;height:15px;border-radius:4px;background:linear-gradient(180deg,#fff,#e9e6df);border:1.5px solid var(--ink);bottom:12%;box-shadow:0 3px 7px rgba(22,20,15,.2);transition:bottom 1.5s cubic-bezier(.25,.85,.3,1)}
.fad-c::after{content:"";position:absolute;left:4px;right:4px;top:50%;height:1.5px;margin-top:-.75px;background:var(--ink);opacity:.55;border-radius:1px}
.fad--you .fad-c{border-color:var(--brass-ink)}
.reveal.in-view .fad-f,.is-vis .fad-f{height:var(--v)}
.reveal.in-view .fad-c,.is-vis .fad-c{bottom:calc(var(--v) - 7px)}
.fad-n{font-family:var(--mono);font-size:.5rem;font-weight:600;letter-spacing:.05em;color:var(--muted);text-align:center;line-height:1.3}
.fad-p{font-family:var(--display);font-weight:800;font-size:.9rem;color:var(--ink)}
.fad--you .fad-n{color:var(--brass-ink);font-weight:700}
.fad--you .fad-p{color:var(--brass-ink)}
.sec--teal .fad-n{color:rgba(251,250,248,.6)}
.sec--teal .fad-p{color:var(--paper)}
.sec--teal .fad--you .fad-n,.sec--teal .fad--you .fad-p{color:var(--brass)}
.desk-f{margin:18px 0 0;font-family:var(--mono);font-size:.52rem;font-weight:500;letter-spacing:.05em;line-height:1.7;color:var(--muted)}
.sec--teal .desk-f{color:rgba(251,250,248,.42)}

/* ==========================================================================
   GEO GRID SCANNER
   ========================================================================== */
.scan{position:relative;background:var(--teal-deep);border:1px solid var(--line-d);border-radius:var(--r-m);padding:16px;color:var(--paper);box-shadow:var(--shadow)}
.sec--teal .scan{background:rgba(251,250,248,.045)}
.scan-b{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:13px;flex-wrap:wrap}
.scan-q{font-family:var(--mono);font-size:.6rem;font-weight:600;color:rgba(251,250,248,.86);display:inline-flex;align-items:center;gap:.45rem;background:rgba(251,250,248,.09);border:1px solid rgba(251,250,248,.14);padding:.45rem .62rem;border-radius:var(--r-s)}
.scan-q svg{width:12px;height:12px;color:var(--brass);flex:0 0 auto}
.scan-live{font-family:var(--mono);font-size:.54rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}
.scan-live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brass);box-shadow:0 0 8px var(--brass);animation:blink 1.9s ease-in-out infinite}
.scan-map{position:relative;aspect-ratio:1/1;border-radius:9px;overflow:hidden;background:#04302a}
.scan-map svg.base{position:absolute;inset:0;width:100%;height:100%}
.riv{fill:none;stroke:#0c4a3f;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.riv2{fill:none;stroke:#12a58a;stroke-width:1.1;stroke-dasharray:3 6;opacity:.42}
.road{fill:none;stroke:rgba(251,250,248,.07);stroke-width:1.1}
.road--m{stroke:rgba(251,250,248,.11);stroke-width:1.5}
.hood{font-family:"Martian Mono",monospace;font-size:5.4px;font-weight:600;letter-spacing:.11em;fill:rgba(251,250,248,.38);text-transform:uppercase}
.sweep{position:absolute;top:0;bottom:0;width:24%;left:-24%;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(233,160,32,.05) 55%,rgba(233,160,32,.14));border-right:1.5px solid rgba(233,160,32,.85);box-shadow:0 0 24px rgba(233,160,32,.32)}
.scan.on .sweep{animation:sweep 5.6s cubic-bezier(.4,0,.5,1) infinite}
@keyframes sweep{0%{left:-24%}62%{left:100%}100%{left:100%}}
.pts{position:absolute;inset:11% 9%;z-index:4;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);place-items:center}
.pt{position:relative;width:min(44px,9.2vw);height:min(44px,9.2vw);border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:clamp(.56rem,1.35vw,.73rem);font-weight:700;border:1.5px solid rgba(251,250,248,.18);background:rgba(4,48,42,.72);color:rgba(251,250,248,.44)}
.pt em{font-style:normal;opacity:0}
.scan.on .pt{animation:res 5.6s linear infinite;animation-delay:var(--d)}
@keyframes res{0%,3%{transform:scale(1)}4.4%{transform:scale(1.22)}6.4%,92%{transform:scale(1)}100%{transform:scale(1)}}
.scan.on .pt em{animation:show 5.6s linear infinite;animation-delay:var(--d)}
@keyframes show{0%,3.4%{opacity:0}6%,93%{opacity:1}97%,100%{opacity:0}}
.scan.on .pt.t1{animation-name:res,c1}
.scan.on .pt.t2{animation-name:res,c2}
.scan.on .pt.t3{animation-name:res,c3}
.scan.on .pt.t4{animation-name:res,c4}
@keyframes c1{0%,3.4%{background:rgba(4,48,42,.72);border-color:rgba(251,250,248,.18);color:rgba(251,250,248,.44);box-shadow:none}6%,93%{background:var(--brass);border-color:var(--brass);color:#2a1a00;box-shadow:0 0 18px rgba(233,160,32,.5)}97%,100%{background:rgba(4,48,42,.72);border-color:rgba(251,250,248,.18);color:rgba(251,250,248,.44);box-shadow:none}}
@keyframes c2{0%,3.4%{background:rgba(4,48,42,.72);border-color:rgba(251,250,248,.18);color:rgba(251,250,248,.44)}6%,93%{background:rgba(233,160,32,.3);border-color:rgba(233,160,32,.8);color:#ffdc9a}97%,100%{background:rgba(4,48,42,.72);border-color:rgba(251,250,248,.18);color:rgba(251,250,248,.44)}}
@keyframes c3{0%,3.4%{background:rgba(4,48,42,.72);border-color:rgba(251,250,248,.18);color:rgba(251,250,248,.44)}6%,93%{background:rgba(127,216,198,.14);border-color:rgba(127,216,198,.5);color:#9fe6d6}97%,100%{background:rgba(4,48,42,.72);border-color:rgba(251,250,248,.18);color:rgba(251,250,248,.44)}}
@keyframes c4{0%,3.4%{background:rgba(4,48,42,.72);border-color:rgba(251,250,248,.18);color:rgba(251,250,248,.44)}6%,93%{background:rgba(4,48,42,.9);border-color:rgba(251,250,248,.16);color:rgba(251,250,248,.38)}97%,100%{background:rgba(4,48,42,.72);border-color:rgba(251,250,248,.18);color:rgba(251,250,248,.44)}}
.homepin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;width:12px;height:12px;border-radius:50%;background:var(--paper);border:3px solid #04302a;box-shadow:0 0 0 2px var(--paper)}
.scan-r{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:13px;background:rgba(251,250,248,.14);border-radius:var(--r-s);overflow:hidden}
.scan-r div{background:var(--teal-deep);padding:10px 11px}
.scan-r dt{font-family:var(--mono);font-size:.5rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(251,250,248,.5);margin:0 0 5px}
.scan-r dd{margin:0;font-family:var(--display);font-weight:800;font-size:1.22rem;line-height:1;color:var(--paper)}
.scan-r dd small{font-family:var(--mono);font-size:.54rem;font-weight:600;color:var(--brass);margin-left:4px}
.scan-lg{display:flex;flex-wrap:wrap;gap:.4rem .95rem;margin-top:12px}
.scan-lg span{font-family:var(--mono);font-size:.52rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(251,250,248,.55);display:inline-flex;align-items:center;gap:.38rem}
.lg{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.lg1{background:var(--brass)}
.lg2{background:rgba(233,160,32,.3);border:1px solid rgba(233,160,32,.8)}
.lg3{background:rgba(127,216,198,.14);border:1px solid rgba(127,216,198,.5)}
.lg4{background:rgba(4,48,42,.9);border:1px solid rgba(251,250,248,.16)}
.scan-c{margin:12px 0 0;font-family:var(--mono);font-size:.52rem;font-weight:500;letter-spacing:.05em;line-height:1.7;color:rgba(251,250,248,.4)}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:clamp(28px,4vw,52px)}
@media(min-width:980px){.faq{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}}
.q-intro{position:sticky;top:100px}
.q-intro h2,.q-intro .h-m{margin-bottom:14px}
.q-list{display:grid;gap:0;border-top:1px solid var(--line)}
.ans{border-bottom:1px solid var(--line);padding:clamp(18px,2.2vw,24px) 0}
.ans h3{margin-bottom:10px;font-size:clamp(1.02rem,1.35vw,1.16rem)}
.ans p:last-child{margin-bottom:0}
.ans p{color:var(--ink-2);font-size:.96rem}

/* ---------- chips ---------- */
.chips,.chiprow{display:flex;flex-wrap:wrap;gap:9px}
.chips a,.chiprow a{
  font-family:var(--body);font-size:.87rem;font-weight:550;padding:.55rem 1rem;
  border-radius:999px;border:1.5px solid var(--line);background:var(--white);color:var(--ink-2);
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.chips a:hover,.chiprow a:hover{background:var(--teal);color:#fff;border-color:var(--teal);transform:translateY(-2px)}
.foot .chiprow a{background:transparent;border-color:var(--line-d);color:rgba(251,250,248,.72)}
.foot .chiprow a:hover{background:var(--brass);border-color:var(--brass);color:#2a1a00}

/* ---------- note / callout ---------- */
.zcs--note,.note,.callout{
  background:var(--brass-tint);border:1px solid rgba(233,160,32,.34);border-left:4px solid var(--brass);
  border-radius:var(--r-m);padding:clamp(20px,2.4vw,28px);
}
.zcs--note p:last-child,.note p:last-child{margin-bottom:0}

/* ---------- CTA band ---------- */
.cta-band{background:var(--brass-tint);border-top:1px solid var(--line);position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;left:-140px;bottom:-200px;width:540px;height:540px;border-radius:50%;background:radial-gradient(circle,rgba(233,160,32,.28),transparent 66%);pointer-events:none}
.cta-band .wrap{position:relative;z-index:2}
.cta-box{max-width:62ch}
.cta-box h2,.cta-box .h-l{margin-bottom:16px}
.cta-band .shift{background-image:linear-gradient(90deg,var(--teal) 0%,var(--teal) 50%,var(--ink) 50%,var(--ink) 100%)}
.cta-band .dot{color:var(--brass-ink)}
.cta-band .eyebrow{color:var(--teal)}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:rgba(251,250,248,.62);padding:clamp(50px,6vw,80px) 0 26px}
.foot a{color:rgba(251,250,248,.78)}
.foot a:hover{color:var(--brass)}
.foot-hero{max-width:56ch;margin-bottom:clamp(38px,5vw,60px)}
.foot-hero .foot-hero-h,.foot-hero h2{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,2.8vw,2.4rem);letter-spacing:-.028em;line-height:1.08;color:var(--paper);margin:0 0 16px}
.foot-hero p{color:rgba(251,250,248,.62)}
.foot-cols{display:grid;gap:clamp(26px,3.4vw,44px);padding-bottom:clamp(26px,3vw,40px);border-bottom:1px solid var(--line-d)}
@media(min-width:760px){.foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1060px){.foot-cols{grid-template-columns:1.4fr repeat(3,minmax(0,1fr))}}
.foot-id b{font-family:var(--display);font-weight:800;font-size:1.05rem;color:var(--paper);display:block;margin-bottom:8px;letter-spacing:-.02em}
.foot-contact{margin-top:14px;font-size:.9rem;line-height:1.8}
.foot-col h4{font-family:var(--mono);font-size:.55rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:rgba(251,250,248,.5);margin:0 0 12px}
.foot-col ul{list-style:none;margin:0;padding:0}
.foot-col li{margin:0 0 .5em}
.foot-col a{font-size:.9rem}
.foot-chips{padding:clamp(24px,3vw,36px) 0;border-bottom:1px solid var(--line-d)}
.foot-chips h4{font-family:var(--mono);font-size:.55rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:rgba(251,250,248,.5);margin:0 0 12px}
.foot-chips .chiprow{margin-bottom:10px}
.foot-base{padding-top:22px;display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.56rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(251,250,248,.45)}
.foot-base a{color:rgba(251,250,248,.6)}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:.94rem}
th,td{text-align:left;padding:.8rem .9rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-family:var(--mono);font-size:.58rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}

/* ---------- focus + motion ---------- */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--brass);outline-offset:3px;border-radius:3px}
::selection{background:var(--brass);color:#2a1a00}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1;transform:none}
  .shift{background-position:0 0}
  .sweep{display:none}
  .pt em{opacity:1}
  .pt.t1{background:var(--brass);border-color:var(--brass);color:#2a1a00}
  .pt.t2{background:rgba(233,160,32,.3);border-color:rgba(233,160,32,.8);color:#ffdc9a}
  .pt.t3{background:rgba(127,216,198,.14);border-color:rgba(127,216,198,.5);color:#9fe6d6}
  .fad-f{height:var(--v)}
  .fad-c{bottom:calc(var(--v) - 7px)}
  .marquee-track,.tick-t{animation:none}
}

@media print{
  .path,.head,.utility,.mnav,.mscrim,.logobar,.cta-band,.foot{display:none !important}
  body{background:#fff;color:#000}
  .reveal{opacity:1;transform:none}
}

/* ==========================================================================
   COMPONENT LAYER
   Covers the full existing class vocabulary.
   ========================================================================== */

/* ---------- utility bar ---------- */
.util-left{display:inline-flex;align-items:center;gap:.5rem;min-width:0}
.util-right{display:inline-flex;align-items:center;gap:1.1rem}
.util-long{display:none}
@media(min-width:900px){.util-long{display:inline}}
.seal-dot{width:7px;height:7px;border-radius:50%;background:var(--brass);flex:0 0 auto;animation:blink 3s ease-in-out infinite}
.util-tel{display:inline-flex;align-items:center;gap:.4rem}
.util-tel svg{width:12px;height:12px}

/* ---------- header ---------- */
.head.is-stuck{box-shadow:0 6px 24px rgba(22,20,15,.07);border-bottom-color:var(--line)}
.brand .seal,.logo .seal{width:34px;height:34px;flex:0 0 auto;border-radius:9px}
.brand>span,.logo>span{display:block;min-width:0}
.brand b,.logo b{font-family:var(--display);font-weight:800;font-size:.97rem;letter-spacing:-.02em;display:block;line-height:1.15;color:var(--ink)}
.sub{display:block;font-family:var(--mono);font-size:.5rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);font-weight:600}
.dnav li.ni{position:relative}
.chev{width:12px;height:12px;flex:0 0 auto;transition:transform .24s ease;opacity:.6}
.dnav li.has-menu:hover .chev,.dnav li.has-menu:focus-within .chev{transform:rotate(180deg);opacity:1}
.mega a b{display:block;font-family:var(--display);font-weight:700;font-size:.92rem;color:var(--ink);letter-spacing:-.018em;margin-bottom:2px}
.mega a:hover b{color:var(--teal)}
.mdesc{display:block;font-size:.78rem;line-height:1.4;color:var(--muted)}
.viewall{grid-column:1/-1;display:inline-flex !important;align-items:center;gap:.4rem;margin-top:6px;padding-top:12px !important;border-top:1px solid var(--line);border-radius:0 !important;font-family:var(--mono) !important;font-size:.58rem !important;font-weight:600 !important;letter-spacing:.14em;text-transform:uppercase;color:var(--teal) !important}
.viewall:hover{background:transparent !important;color:var(--teal-deep) !important}
.viewall svg{width:13px;height:13px;transition:transform .22s ease}
.viewall:hover svg{transform:translateX(3px)}
.btn--primary{background:var(--teal);color:#fff;box-shadow:0 6px 18px rgba(11,110,98,.24)}
.btn--primary:hover{background:var(--teal-deep);transform:translateY(-2px)}
.callbtn{
  width:40px;height:40px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  border:1.5px solid var(--line);border-radius:50%;background:var(--white);color:var(--ink);
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .18s ease;
}
.callbtn svg{width:16px;height:16px}
.callbtn:hover{background:var(--teal);border-color:var(--teal);color:#fff;transform:translateY(-2px)}
.ham{
  display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 auto;
  border:1.5px solid var(--line);border-radius:11px;background:var(--white);color:var(--ink);cursor:pointer;
}
.ham svg{width:19px;height:19px}
@media(min-width:1060px){.ham{display:none}}

/* ---------- mobile nav ---------- */
.mnav{transform:translateX(100%)}
.mnav.open{transform:none}
.mscrim{opacity:0;visibility:hidden}
.mscrim.show{opacity:1;visibility:visible}
.m-sec{border-top:1px solid var(--line)}
.m-sec>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.95rem 0;font-family:var(--display);font-weight:700;font-size:1rem;letter-spacing:-.02em;color:var(--ink);
}
.m-sec>summary::-webkit-details-marker{display:none}
.m-sec[open]>summary .chev{transform:rotate(180deg)}
.m-sec>summary .chev{width:15px;height:15px}
.m-links{border-top:0;padding:0 0 14px}
.m-links a{display:block;padding:.48rem 0;font-size:.93rem;font-weight:500;color:var(--ink-2)}
.m-links a:hover{color:var(--teal)}
.m-cta .btn{width:100%}
.mcall{justify-content:center}
.mcall svg{width:15px;height:15px}
.m-close{display:inline-flex;align-items:center;justify-content:center}
.m-close svg{width:17px;height:17px}

/* ---------- logo marquee ---------- */
.logobar img{height:26px;width:auto;opacity:.42;filter:grayscale(1);transition:opacity .25s ease,filter .25s ease}
.logobar img:hover{opacity:.9;filter:grayscale(0)}
.logobar .marquee-track{gap:clamp(28px,4vw,58px);align-items:center}
.logobar .marquee-track span::after{display:none}

/* ---------- crumbs ---------- */
.crumbs .sep{margin:0 .45rem;opacity:.45}

/* ---------- hero extras ---------- */
.hero-trust{margin-top:22px;font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.hero-trust b{color:var(--brass-ink);font-weight:700}
.chip{
  display:inline-flex;align-items:center;font-size:.8rem;font-weight:550;padding:.42rem .85rem;
  border-radius:999px;background:var(--teal-tint);color:var(--teal);border:1px solid rgba(11,110,98,.2);
}
.trust .chip{border-right:0;margin-right:0;padding-right:.85rem}
.reassure{margin-top:16px;font-size:.86rem;color:var(--ink-2)}

/* ---------- cells: the primary content card ---------- */
.cell{
  display:block;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);
  padding:clamp(20px,2.4vw,28px);position:relative;overflow:hidden;
  transition:transform .26s cubic-bezier(.2,.8,.3,1),box-shadow .26s ease,border-color .26s ease;
}
.cell::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--brass);transition:width .26s cubic-bezier(.2,.8,.3,1)}
.cell:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(22,20,15,.2)}
.cell:hover::before{width:4px}
.cell:hover h3{color:var(--teal)}
.cell h3{margin-bottom:9px;transition:color .22s ease}
.cell p{color:var(--ink-2);font-size:.94rem;margin-bottom:0}
.klabel{
  display:inline-block;font-family:var(--mono);font-size:.56rem;font-weight:700;letter-spacing:.16em;
  color:var(--muted);margin-bottom:12px;
}
.cell:hover .klabel{color:var(--brass-ink)}
.go{
  display:inline-flex;align-items:center;gap:.4rem;margin-top:16px;
  font-family:var(--body);font-size:.85rem;font-weight:650;color:var(--teal);
}
.go svg{width:15px;height:15px;transition:transform .22s ease}
.cell:hover .go svg,.go:hover svg{transform:translateX(4px)}
.sec--teal .cell{background:rgba(251,250,248,.05);border-color:var(--line-d)}
.sec--teal .cell p{color:rgba(251,250,248,.72)}
.sec--teal .cell h3{color:var(--paper)}
.sec--teal .cell:hover h3{color:var(--brass)}
.sec--teal .go{color:var(--brass)}
.d1{transition-delay:.09s}
.d2{transition-delay:.18s}

/* ---------- duo cards ---------- */
.dtype{
  display:block;font-family:var(--mono);font-size:.62rem;font-weight:600;line-height:1.6;
  color:var(--teal);background:var(--teal-tint);border-radius:var(--r-s);
  padding:.6rem .75rem;margin-bottom:14px;
}
.duo-card h4{font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:-.02em;margin-bottom:8px}
.duo-card p{color:var(--ink-2);font-size:.94rem}
.sec--teal .dtype{color:var(--brass);background:rgba(233,160,32,.12)}
.sec--teal .duo-card h4{color:var(--paper)}
.sec--teal .duo-card p{color:rgba(251,250,248,.72)}

/* ---------- figures ---------- */
.figures{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
@media(min-width:640px){.figures{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.figures{grid-template-columns:repeat(4,1fr)}}
.figure{background:var(--white);padding:clamp(20px,2.4vw,28px);transition:background .22s ease}
.figure:hover{background:var(--brass-tint)}
.figure .big{
  font-family:var(--display);font-weight:900;font-size:clamp(1.9rem,3.2vw,2.6rem);
  line-height:1;letter-spacing:-.045em;color:var(--ink);margin-bottom:12px;
}
.figure .num{color:var(--teal)}
.figure .cap{font-family:var(--body);font-weight:650;font-size:.94rem;color:var(--ink);margin-bottom:4px}
.figure .sub{font-family:var(--mono);font-size:.56rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sec--teal .figures{background:var(--line-d);border-color:var(--line-d)}
.sec--teal .figure{background:var(--teal-deep)}
.sec--teal .figure:hover{background:rgba(251,250,248,.05)}
.sec--teal .figure .big,.sec--teal .figure .cap{color:var(--paper)}
.sec--teal .figure .num{color:var(--brass)}
.sec--teal .figure .sub{color:rgba(251,250,248,.5)}

/* ---------- FAQ accordions ---------- */
.q-list{border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa>summary{
  list-style:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:1.2rem;
  padding:clamp(16px,2vw,21px) 0;
  font-family:var(--display);font-weight:700;font-size:clamp(1rem,1.35vw,1.14rem);
  letter-spacing:-.022em;line-height:1.32;color:var(--ink);
  transition:color .2s ease;
}
.qa>summary::-webkit-details-marker{display:none}
.qa>summary:hover{color:var(--teal)}
.pm{
  position:relative;flex:0 0 auto;width:20px;height:20px;margin-top:2px;border-radius:50%;
  background:var(--teal-tint);transition:background .24s ease,transform .3s cubic-bezier(.3,.8,.3,1);
}
.pm::before,.pm::after{content:"";position:absolute;left:50%;top:50%;background:var(--teal);border-radius:1px;transition:opacity .22s ease,transform .3s ease}
.pm::before{width:9px;height:1.8px;margin:-.9px 0 0 -4.5px}
.pm::after{width:1.8px;height:9px;margin:-4.5px 0 0 -.9px}
.qa[open] .pm{background:var(--brass);transform:rotate(180deg)}
.qa[open] .pm::before,.qa[open] .pm::after{background:#2a1a00}
.qa[open] .pm::after{opacity:0}
.ans{
  padding:0 0 clamp(18px,2.2vw,24px);max-width:70ch;
  color:var(--ink-2);font-size:.96rem;line-height:1.68;
}
.ans p:last-child{margin-bottom:0}
.q-intro{position:sticky;top:100px}
.q-intro .lnk,.q-intro .go{margin-top:14px}
.sec--teal .qa,.sec--teal .q-list{border-color:var(--line-d)}
.sec--teal .qa>summary{color:var(--paper)}
.sec--teal .qa>summary:hover{color:var(--brass)}
.sec--teal .ans{color:rgba(251,250,248,.72)}
.sec--teal .pm{background:rgba(233,160,32,.16)}
.sec--teal .pm::before,.sec--teal .pm::after{background:var(--brass)}

/* ---------- blog ---------- */
.blog-grid{display:grid;gap:clamp(18px,2.4vw,26px)}
@media(min-width:720px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.post{
  display:block;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;
  transition:transform .26s cubic-bezier(.2,.8,.3,1),box-shadow .26s ease,border-color .26s ease;
}
.post:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(22,20,15,.2)}
.post img{width:100%;aspect-ratio:8/5;object-fit:cover}
.post-body{padding:clamp(18px,2.2vw,24px)}
.post-body h3{margin:10px 0 8px;transition:color .22s ease}
.post:hover .post-body h3{color:var(--teal)}
.post-body p{font-size:.92rem;color:var(--ink-2);margin-bottom:14px}
.ptag{
  display:inline-block;font-family:var(--mono);font-size:.54rem;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--brass-ink);background:var(--brass-tint);
  padding:.3rem .6rem;border-radius:999px;
}
.pdate{font-family:var(--mono);font-size:.56rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ---------- glossary ---------- */
.gloss-group{margin-bottom:clamp(30px,4vw,48px);scroll-margin-top:110px}
.gloss-group h2{margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--brass)}
.gloss-group dl{margin:0}
.gloss-group dt{font-family:var(--display);font-weight:700;font-size:1.02rem;letter-spacing:-.02em;margin:18px 0 6px;color:var(--ink)}
.gloss-group dd{margin:0;color:var(--ink-2);font-size:.95rem;max-width:74ch}

/* ---------- service map ---------- */
.smap{display:grid;gap:clamp(20px,2.6vw,30px)}
@media(min-width:980px){.smap{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:stretch}}
.smap-frame{position:relative;border-radius:var(--r-m);overflow:hidden;border:1px solid var(--line);min-height:320px;background:var(--paper-2)}
.smap-frame iframe{width:100%;height:100%;min-height:320px;border:0;display:block;filter:grayscale(.35) contrast(1.02)}
.smap-tag{
  position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:.45rem;
  background:var(--white);border:1px solid var(--line);border-radius:999px;padding:.5rem .85rem;
  font-family:var(--mono);font-size:.58rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);box-shadow:var(--shadow-s);
}
.smap-tag svg{width:13px;height:13px;color:var(--teal)}
.smap-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:clamp(20px,2.4vw,28px);display:flex;flex-direction:column}
.smap-panel h3{margin-bottom:8px}
.smap-note{font-size:.92rem;color:var(--ink-2)}
.smap-rows{list-style:none;margin:4px 0 18px;padding:0;display:grid;gap:12px}
.smap-rows li{display:flex;align-items:flex-start;gap:.65rem;font-size:.9rem;color:var(--ink-2);margin:0}
.smap-rows svg{width:16px;height:16px;flex:0 0 auto;margin-top:2px;color:var(--teal)}
.smap-rows b{display:block;color:var(--ink);font-weight:650}
.smap-call{
  display:flex;align-items:center;gap:.75rem;margin-top:auto;
  background:var(--teal);color:#fff;border-radius:var(--r-m);padding:.9rem 1.1rem;
  transition:background .2s ease,transform .18s ease;
}
.smap-call:hover{background:var(--teal-deep);transform:translateY(-2px)}
.sc-ic{width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:rgba(255,255,255,.16);display:inline-flex;align-items:center;justify-content:center}
.sc-ic svg{width:16px;height:16px}
.sc-txt{display:block;min-width:0}
.sc-label{display:block;font-family:var(--mono);font-size:.52rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.sc-num{display:block;font-family:var(--display);font-weight:800;font-size:1.02rem;letter-spacing:-.02em}
.smap-gbp{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:10px;
  padding:.8rem 1.1rem;border:1.5px solid var(--line);border-radius:var(--r-m);
  font-size:.88rem;font-weight:600;color:var(--ink);transition:border-color .2s ease,background .2s ease}
.smap-gbp:hover{border-color:var(--ink);background:var(--paper-2)}
.smap-gbp svg{width:16px;height:16px;flex:0 0 auto;transition:transform .22s ease}
.smap-gbp:hover svg{transform:translateX(4px)}

/* ---------- footer extras ---------- */
.fmail{display:inline-block;margin-top:6px;font-size:.88rem;word-break:break-word}
.legal{display:inline-flex;flex-wrap:wrap;gap:1rem}
.foot-contact a{display:inline-flex;align-items:center;gap:.4rem}
.foot-contact svg{width:14px;height:14px}

/* ---------- misc ---------- */
.dupe{display:block}
.figure .v{font-variant-numeric:tabular-nums}

/* ==========================================================================
   MOBILE FIXES
   ========================================================================== */
/* off-canvas drawer must not extend the document scroll width while closed */
html{overflow-x:hidden}
.mnav{visibility:hidden}
.mnav.open{visibility:visible}
@media(max-width:1059px){
  .mnav:not(.open){display:none}
}

/* header row has to fit a 360px viewport */
@media(max-width:640px){
  .head-cta .btn,.head-cta .btn--primary{display:none}
  .brand b,.logo b{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
  .sub{display:none}
  .head .wrap{gap:.55rem;min-height:62px}
  .callbtn,.ham{width:38px;height:38px}
}
@media(max-width:400px){
  .brand .seal,.logo .seal{width:30px;height:30px}
  .callbtn{display:none}
}
/* long unbroken strings (urls, emails) must not push the layout */
body{overflow-wrap:break-word}
.fmail,.smap-gbp,.crumbs{overflow-wrap:anywhere}

/* headings promoted to keep the outline valid must stay card sized */
.cell h2,.duo-card h2,.card h2,.post-body h2,.smap-panel h2,.figure h2{
  font-size:clamp(1.1rem,1.6vw,1.34rem);font-weight:700;letter-spacing:-.022em;line-height:1.16;
}
.cell h2{margin-bottom:9px}

/* ==========================================================================
   COMPONENT LAYER 2
   Everything still falling through to browser defaults.
   ========================================================================== */

/* ---------- text ticker (tmarquee) ---------- */
.tmarquee{
  overflow:hidden;padding:13px 0;background:var(--ink);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.tmarquee--light{background:var(--paper-2);border-color:var(--line)}
.tmarquee-track{display:flex;align-items:center;gap:0;width:max-content;animation:roll 52s linear infinite}
.tmarquee-track span{
  font-family:var(--mono);font-size:.63rem;font-weight:600;letter-spacing:.17em;
  text-transform:uppercase;color:rgba(251,250,248,.72);white-space:nowrap;padding:0 1.2rem;
}
.tmarquee-track i{width:5px;height:5px;border-radius:50%;background:var(--brass);flex:0 0 auto}
.tmarquee--light .tmarquee-track span{color:var(--ink-2)}
.tmarquee:hover .tmarquee-track{animation-play-state:paused}

/* ---------- method / steps (numbered pillar lists) ---------- */
.method{display:grid;gap:clamp(18px,2.4vw,26px)}
@media(min-width:900px){.method{grid-template-columns:repeat(3,minmax(0,1fr))}}
.step{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);
  padding:clamp(20px,2.4vw,28px);position:relative;overflow:hidden;
  transition:transform .26s cubic-bezier(.2,.8,.3,1),box-shadow .26s ease,border-color .26s ease;
}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(22,20,15,.2)}
.stage{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;margin-bottom:14px;
  background:var(--teal-tint);color:var(--teal);
  font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.04em;
}
.step:hover .stage{background:var(--brass);color:#2a1a00}
.step h3{margin-bottom:12px}
.step ul{list-style:none;margin:0;padding:0}
.step li{position:relative;padding-left:20px;margin:0 0 .55em;font-size:.92rem;color:var(--ink-2);line-height:1.5}
.step li::before{
  content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;
  background:transparent;border:1.8px solid var(--brass);
}
.step li:last-child{margin-bottom:0}

/* step rows (contact, audit) */
.step-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;padding:clamp(16px,2vw,22px) 0;border-bottom:1px solid var(--line)}
.step-row:last-child{border-bottom:0}
.sn{
  display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 auto;
  border-radius:50%;background:var(--teal);color:#fff;
  font-family:var(--mono);font-size:.68rem;font-weight:700;
}
.step-row h2,.step-row h3{font-size:clamp(1.05rem,1.5vw,1.24rem);font-weight:700;margin-bottom:6px}
.step-row p{margin:0;font-size:.93rem;color:var(--ink-2)}

/* ---------- pricing plans ---------- */
.plans{display:grid;gap:clamp(16px,2vw,22px)}
@media(min-width:720px){.plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1080px){.plans{grid-template-columns:repeat(4,minmax(0,1fr))}}
.plan{
  position:relative;display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);
  padding:clamp(20px,2.4vw,28px);
  transition:transform .26s cubic-bezier(.2,.8,.3,1),box-shadow .26s ease,border-color .26s ease;
}
.plan:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(22,20,15,.2)}
.badge{
  position:absolute;top:-11px;left:clamp(20px,2.4vw,28px);
  background:var(--brass);color:#2a1a00;border-radius:999px;padding:.32rem .8rem;
  font-family:var(--mono);font-size:.52rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
}
.plan:has(.badge){border-color:var(--brass)}
.pname{font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.price{
  font-family:var(--display);font-weight:900;font-size:clamp(2.1rem,3.4vw,2.7rem);
  line-height:1;letter-spacing:-.045em;color:var(--ink);display:flex;align-items:baseline;gap:.14em;flex-wrap:wrap;
}
.price .cur{font-size:.42em;font-weight:700;color:var(--teal)}
.per{display:block;font-family:var(--mono);font-size:.56rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.pdesc{margin:14px 0 16px;font-size:.92rem;color:var(--ink-2);line-height:1.55}
.plan ul{list-style:none;margin:0 0 20px;padding:0}
.plan li{display:flex;align-items:flex-start;gap:.55rem;margin:0 0 .6em;font-size:.9rem;color:var(--ink-2);line-height:1.5}
.plan li svg{width:15px;height:15px;flex:0 0 auto;margin-top:3px;color:var(--teal)}
.plan .btn,.plan .btn--line{margin-top:auto;width:100%}
.plan-note{margin-top:14px;font-size:.85rem;color:var(--muted)}

/* ---------- service area columns ---------- */
.areas{display:grid;gap:clamp(24px,3.4vw,44px)}
@media(min-width:820px){.areas{grid-template-columns:repeat(2,minmax(0,1fr))}}
.areas .col h3{margin-bottom:6px}
.cdesc{margin:0 0 16px;font-size:.93rem;color:var(--ink-2)}
.links{display:flex;flex-wrap:wrap;gap:8px}
.links a{
  display:inline-flex;align-items:center;gap:.42rem;
  font-size:.87rem;font-weight:550;padding:.52rem .95rem;
  border-radius:999px;border:1.5px solid var(--line);background:var(--white);color:var(--ink-2);
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.links a svg{width:14px;height:14px;color:var(--teal);transition:color .2s ease}
.links a:hover{background:var(--teal);color:#fff;border-color:var(--teal);transform:translateY(-2px)}
.links a:hover svg{color:#fff}

/* ---------- industries grid ---------- */
.igrid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
@media(min-width:600px){.igrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:980px){.igrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.igrid a{
  display:block;background:var(--white);padding:clamp(16px,2vw,22px);
  transition:background .22s ease,transform .22s ease;
}
.igrid a:hover{background:var(--brass-tint)}
.igrid h4{font-family:var(--display);font-weight:700;font-size:1rem;letter-spacing:-.02em;margin-bottom:5px;transition:color .2s ease}
.igrid a:hover h4{color:var(--brass-ink)}
.igrid p{margin:0;font-size:.86rem;color:var(--muted)}

/* ---------- surfaces (AI page) ---------- */
.surf{display:grid;gap:clamp(16px,2vw,22px)}
@media(min-width:700px){.surf{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.surf{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sf{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:clamp(20px,2.4vw,26px);transition:transform .26s ease,box-shadow .26s ease}
.sf:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.sfi{
  display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border-radius:11px;background:var(--teal-tint);color:var(--teal);margin-bottom:14px;
}
.sfi svg{width:19px;height:19px}
.sf:hover .sfi{background:var(--brass);color:#2a1a00}
.sf h3{margin-bottom:9px}
.sf p{margin:0;font-size:.92rem;color:var(--ink-2)}
.sec--brand{background:var(--teal-deep);color:var(--paper)}
.sec--brand .muted,.sec--brand .lead,.sec--brand p{color:rgba(251,250,248,.76)}
.sec--brand .sf{background:rgba(251,250,248,.05);border-color:var(--line-d)}
.sec--brand .sf h3{color:var(--paper)}
.sec--brand .sfi{background:rgba(233,160,32,.16);color:var(--brass)}
.sec--brand .eyebrow{color:var(--brass)}
.sec--brand .chan-l{color:rgba(251,250,248,.55)}
.sec--brand .chan-r{background:var(--line-d)}
.sec--brand .chan-m i{background:var(--line-d)}
.sec--brand .chan-m i.a{background:var(--brass)}
.sec--brand .chan-m i.b{background:var(--teal-soft)}
.sec--brand .shift{background-image:linear-gradient(90deg,var(--brass) 0%,var(--brass) 50%,var(--paper) 50%,var(--paper) 100%)}
.sec--brand .dot{color:var(--teal-soft)}

/* ---------- entity graph ---------- */
.egraph{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:clamp(16px,2vw,24px)}
.egraph svg{width:100%;height:auto}
.eg-wire{fill:none;stroke:url(#eggrad);stroke-width:2;opacity:.75}
.eg-node{fill:var(--teal-tint);stroke:var(--teal);stroke-width:1.6;opacity:.9}
.eg-node-lbl{font-family:"Martian Mono",monospace;font-size:9.5px;font-weight:600;fill:var(--ink-2)}
.eg-you{fill:var(--brass);stroke:var(--brass)}
.eg-answer{fill:var(--teal-tint);stroke:var(--teal);stroke-width:1.5}
.eg-answer-t{font-family:"Gabarito",sans-serif;font-size:12px;font-weight:700;fill:var(--teal)}
.eg-cite{font-family:"Martian Mono",monospace;font-size:8px;font-weight:600;fill:var(--brass)}
.sec--brand .egraph,.sec--teal .egraph{background:rgba(251,250,248,.05);border-color:var(--line-d)}
.sec--brand .eg-node,.sec--teal .eg-node{fill:rgba(251,250,248,.08);stroke:var(--line-d)}
.sec--brand .eg-node-lbl,.sec--teal .eg-node-lbl{fill:rgba(251,250,248,.72)}

/* ---------- zero click / data cells ---------- */
.zcs{display:grid;gap:clamp(20px,2.6vw,30px)}
@media(min-width:900px){.zcs--full{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zcs-head{margin-bottom:14px}
.zcs-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
@media(min-width:640px){.zcs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zcs-cell{background:var(--white);padding:clamp(18px,2.2vw,24px)}
.zbig{font-family:var(--display);font-weight:900;font-size:clamp(1.8rem,3vw,2.4rem);line-height:1;letter-spacing:-.045em;color:var(--teal);margin-bottom:8px}
.zcap{font-weight:650;font-size:.94rem;margin-bottom:4px}
.zsub{font-family:var(--mono);font-size:.55rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ztag{
  display:inline-block;font-family:var(--mono);font-size:.54rem;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--brass-ink);margin-bottom:10px;
}
.zcs-viz{display:grid;gap:10px;margin-top:14px}
.zcs-bar{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--teal),var(--brass))}
.zcs-key,.zcs-take,.zcs-src,.fig-note{font-family:var(--mono);font-size:.55rem;font-weight:500;letter-spacing:.08em;line-height:1.7;color:var(--muted)}
.ztable-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-m);background:var(--white)}
.ztable{margin:0;min-width:520px}
.ztable caption{caption-side:bottom;padding:12px;font-family:var(--mono);font-size:.55rem;letter-spacing:.08em;color:var(--muted);text-align:left}
.ztable th[scope="row"]{font-family:var(--body);font-size:.92rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink)}
.ztable td{font-family:var(--mono);font-size:.8rem}
.win{color:var(--teal);font-weight:700}

/* ---------- forms ---------- */
.audit-wrap{display:grid;gap:clamp(24px,3vw,40px)}
@media(min-width:960px){.audit-wrap{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}}
.audit-form{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:clamp(22px,2.6vw,32px);box-shadow:var(--shadow-s)}
.fld{margin-bottom:16px}
.fld label{display:block;font-family:var(--mono);font-size:.56rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.fld input,.fld textarea,.fld select{
  width:100%;font-family:var(--body);font-size:.96rem;font-weight:450;color:var(--ink);
  background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-s);
  padding:.8rem .9rem;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.fld textarea{min-height:120px;resize:vertical}
.fld input:focus,.fld textarea:focus,.fld select:focus{
  outline:0;border-color:var(--teal);background:var(--white);box-shadow:0 0 0 3px rgba(11,110,98,.14);
}
.fld input::placeholder,.fld textarea::placeholder{color:var(--muted)}
.audit-side{display:grid;gap:16px;align-content:start}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.call-card{display:flex;align-items:center;gap:.75rem;background:var(--teal);color:#fff;border-radius:var(--r-m);padding:.9rem 1.1rem;transition:background .2s ease,transform .18s ease}
.call-card:hover{background:var(--teal-deep);transform:translateY(-2px)}
.cc-ic{width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:rgba(255,255,255,.16);display:inline-flex;align-items:center;justify-content:center}
.cc-ic svg{width:16px;height:16px}
.cc-txt{display:block;min-width:0}
.cc-label{display:block;font-family:var(--mono);font-size:.52rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.cc-num{display:block;font-family:var(--display);font-weight:800;font-size:1.02rem;letter-spacing:-.02em;color:#fff}

/* ---------- glossary nav ---------- */
.gloss-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:clamp(24px,3vw,40px);position:sticky;top:78px;z-index:5;background:var(--paper);padding:12px 0}
.gloss-nav a{
  display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 .5rem;
  border-radius:var(--r-s);border:1.5px solid var(--line);background:var(--white);
  font-family:var(--mono);font-size:.66rem;font-weight:700;color:var(--ink-2);
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.gloss-nav a:hover{background:var(--teal);border-color:var(--teal);color:#fff}

/* ---------- legal / long form body ---------- */
.legal-body,.post-body-full{max-width:74ch}
.legal-body h2,.legal-body h3{margin-top:1.6em;margin-bottom:.5em}
.legal-body ul,.legal-body ol{color:var(--ink-2)}
.legal-note{margin-top:20px;font-size:.86rem;color:var(--muted)}
.oneline p{max-width:70ch;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.6}
.kw{font-weight:700;color:var(--teal)}

/* ---------- misc ---------- */
.btn--pop{background:var(--brass);color:#2a1a00;box-shadow:0 6px 18px rgba(233,160,32,.3)}
.btn--pop:hover{background:#d9910f;transform:translateY(-2px)}
.media--rev .media-txt{order:2}
.mini{font-size:.85rem;color:var(--muted)}
.intro{max-width:64ch}
.aside{background:var(--paper-2);border-radius:var(--r-m);padding:clamp(18px,2.2vw,26px)}
.w2,.w3,.w4,.w5{stroke-dasharray:0}

/* ---------- stragglers ---------- */
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line);box-shadow:none}
.btn--ghost:hover{border-color:var(--ink);background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.sec--teal .btn--ghost,.sec--brand .btn--ghost,.foot .btn--ghost{color:var(--paper);border-color:var(--line-d)}
.sec--teal .btn--ghost:hover,.sec--brand .btn--ghost:hover,.foot .btn--ghost:hover{background:var(--paper);color:var(--ink)}
.eg-node-g{transition:opacity .3s ease}
.gloss{max-width:78ch}

/* ==========================================================================
   PHOTOGRAPHY
   ========================================================================== */

.pband img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:21/8}
@media(max-width:700px){.pband img{aspect-ratio:16/10}}
.pband figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:clamp(16px,2.4vw,26px) var(--pad);
  background:linear-gradient(0deg,rgba(6,20,15,.78),rgba(6,20,15,.28) 60%,transparent);
  color:var(--paper);
  font-family:var(--mono);font-size:.58rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  display:flex;align-items:center;gap:.6rem;
}
.pband figcaption::before{content:"";width:16px;height:3px;background:var(--brass);flex:0 0 auto;border-radius:2px}


/* CTA gets a photo behind it */
.cta-band.has-photo{background:var(--teal-deep);color:var(--paper)}
.cta-band.has-photo::after{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:var(--photo);background-size:cover;background-position:center;
  opacity:.22;
}
.cta-band.has-photo::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(6,65,58,.94) 30%,rgba(6,65,58,.6) 100%);
  width:auto;height:auto;border-radius:0;
}
.cta-band.has-photo .wrap{position:relative;z-index:2}
.cta-band.has-photo .lead,.cta-band.has-photo .muted,.cta-band.has-photo p{color:rgba(251,250,248,.8)}
.cta-band.has-photo .eyebrow{color:var(--brass)}
.cta-band.has-photo .shift{background-image:linear-gradient(90deg,var(--brass) 0%,var(--brass) 50%,var(--paper) 50%,var(--paper) 100%)}
.cta-band.has-photo .dot{color:var(--teal-soft)}
.cta-band.has-photo .btn-ghost,.cta-band.has-photo .btn--ghost,.cta-band.has-photo .btn--line{color:var(--paper);border-color:var(--line-d)}
.cta-band.has-photo .btn-ghost:hover,.cta-band.has-photo .btn--ghost:hover,.cta-band.has-photo .btn--line:hover{background:var(--paper);color:var(--ink)}
.cta-band.has-photo .reassure{color:rgba(251,250,248,.65)}

@media(prefers-reduced-motion:reduce){
  .pstrip figure:hover img{transform:none}
}

/* ==========================================================================
   CONTRAST AND PRICE FIXES
   ========================================================================== */

/* White cards sitting inside a dark section were inheriting the section's
   light text colour, which made their headings almost invisible. */
.cell,.step,.plan,.sf,.card,.duo-card,.post,.figure,.price-card,
.smap-panel,.audit-form,.egraph,.desk,.ztable-wrap,.igrid a{color:var(--ink)}
.cell h3,.step h3,.plan h3,.sf h3,.card h3,.duo-card h4,.post h3,.igrid h4{color:var(--ink)}

/* dark section variants that are deliberately translucent keep light text */
.sec--teal .cell,.sec--brand .cell,
.sec--teal .duo-card,.sec--brand .duo-card,
.sec--teal .sf,.sec--brand .sf,
.sec--teal .desk,.sec--brand .desk,
.sec--teal .egraph,.sec--brand .egraph,
.sec--teal .figure,.sec--brand .figure{color:var(--paper)}
.sec--teal .cell h3,.sec--brand .cell h3,
.sec--teal .sf h3,.sec--brand .sf h3,
.sec--teal .duo-card h4,.sec--brand .duo-card h4{color:var(--paper)}

/* price line: keep it on one line and size the qualifier down */
.price{display:flex;align-items:baseline;gap:0;flex-wrap:nowrap;white-space:nowrap}
.pfrom{
  font-family:var(--mono);font-size:.24em;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);margin-right:.55em;
}
.price .cur{margin-right:.06em}

/* the brass full stop fails AA as text at #e9a020, so light backgrounds use
   the deeper brass; dark sections keep the bright accent */
.dot{color:var(--brass-ink)}
.sec--teal .dot,.sec--brand .dot,.cta-band.has-photo .dot,.foot .dot{color:var(--teal-soft)}

/* captions sit over photographs, so guarantee legibility whatever the image */


/* ==========================================================================
   DARK SURFACE LEGIBILITY
   Faint white overlays were sitting under 4.5:1, and the channel strip kept
   its dark grey label inside the photo backed CTA.
   ========================================================================== */
.cta-band.has-photo .chan-l{color:rgba(251,250,248,.74)}
.cta-band.has-photo .chan-r{background:var(--line-d)}
.cta-band.has-photo .chan-m i{background:var(--line-d)}
.cta-band.has-photo .chan-m i.a{background:var(--brass)}
.cta-band.has-photo .chan-m i.b{background:var(--teal-soft)}

.scan-r dt{color:rgba(251,250,248,.72)}
.scan-c{color:rgba(251,250,248,.68)}
.scan-lg span{color:rgba(251,250,248,.72)}
.sec--teal .desk-f,.sec--brand .desk-f{color:rgba(251,250,248,.68)}
.sec--teal .chan-l,.sec--brand .chan-l{color:rgba(251,250,248,.74)}
.sec--teal .fad-n,.sec--brand .fad-n{color:rgba(251,250,248,.74)}
.sec--teal .figure .sub,.sec--brand .figure .sub{color:rgba(251,250,248,.72)}
.foot{color:rgba(251,250,248,.74)}
.foot-base{color:rgba(251,250,248,.66)}
.foot-col h4,.foot-chips h4{color:rgba(251,250,248,.66)}
.foot a{color:rgba(251,250,248,.86)}
.foot-base a{color:rgba(251,250,248,.74)}
.foot .chiprow a{color:rgba(251,250,248,.84)}
.utility{color:rgba(251,250,248,.8)}
.hood{fill:rgba(251,250,248,.5)}

/* the brand tagline also renders inside the dark footer */
.foot .sub,.foot .brand i.tagline,.utility .sub{color:rgba(251,250,248,.72)}
.foot .brand b,.foot .logo b{color:var(--paper)}

/* .aside is a light panel, so inside a dark section it goes translucent
   rather than inheriting the section's light text on its own light background */
.aside{background:var(--paper-2);color:var(--ink)}
.aside h3,.aside h4{color:var(--ink)}
.sec--teal .aside,.sec--brand .aside,.cta-band.has-photo .aside{
  background:rgba(251,250,248,.06);border:1px solid var(--line-d);color:var(--paper);
}
.sec--teal .aside h3,.sec--brand .aside h3{color:var(--paper)}
.sec--teal .aside .muted,.sec--brand .aside .muted,
.sec--teal .aside p,.sec--brand .aside p{color:rgba(251,250,248,.78)}
.sec--teal .aside li,.sec--brand .aside li,
.sec--teal .aside span,.sec--brand .aside span,
.sec--teal .aside .mini,.sec--brand .aside .mini{color:rgba(251,250,248,.78)}

/* ==========================================================================
   PHOTOGRAPHIC HERO AND SECTION PANELS
   Photographs carry content on top of them. No captions anywhere.
   ========================================================================== */
.hero.has-photo{
  background:var(--teal-deep);color:var(--paper);
  padding-top:clamp(52px,6vw,88px);padding-bottom:clamp(56px,6.5vw,96px);
  isolation:isolate;
}
.hero-pic{position:absolute;inset:0;z-index:0;display:block}
.hero-pic img{width:100%;height:100%;object-fit:cover;display:block}
.hero.has-photo::before{
  content:"";position:absolute;inset:0;z-index:1;top:auto;right:auto;
  width:100%;height:100%;border-radius:0;
  background:linear-gradient(96deg,rgba(6,32,26,.94) 0%,rgba(6,45,38,.88) 42%,rgba(6,45,38,.46) 100%);
}
.hero.has-photo::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(760px 420px at 84% 6%,rgba(233,160,32,.2),transparent 64%);
}
.hero.has-photo .wrap{position:relative;z-index:2}
.hero.has-photo .lead,.hero.has-photo .muted,.hero.has-photo p{color:rgba(251,250,248,.84)}
.hero.has-photo .crumbs,.hero.has-photo .crumbs a{color:rgba(251,250,248,.66)}
.hero.has-photo .crumbs a:hover{color:var(--brass)}
.hero.has-photo .eyebrow{color:var(--brass)}
.hero.has-photo .shift{background-image:linear-gradient(90deg,var(--brass) 0%,var(--brass) 50%,var(--paper) 50%,var(--paper) 100%)}
.hero.has-photo .dot{color:var(--teal-soft)}
.hero.has-photo h1,.hero.has-photo .h-l,.hero.has-photo .h-xl{color:var(--paper);max-width:19ch;margin-left:0;margin-right:0}
.hero.has-photo .trust{border-top-color:var(--line-d)}
.hero.has-photo .trust>*{border-right-color:var(--line-d);color:rgba(251,250,248,.8)}
.hero.has-photo .trust strong{color:var(--paper)}
.hero.has-photo .hero-trust{color:rgba(251,250,248,.76)}
.hero.has-photo .hero-trust b{color:var(--brass)}
.hero.has-photo .chip{background:rgba(251,250,248,.1);border-color:var(--line-d);color:var(--paper)}
.hero.has-photo .btn--line,.hero.has-photo .btn-ghost,.hero.has-photo .btn--ghost{color:var(--paper);border-color:rgba(251,250,248,.4)}
.hero.has-photo .btn--line:hover,.hero.has-photo .btn-ghost:hover,.hero.has-photo .btn--ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.hero.has-photo .desk{background:rgba(251,250,248,.07);border-color:var(--line-d);backdrop-filter:blur(6px)}
.hero.has-photo .desk-q{background:rgba(251,250,248,.12);color:var(--paper)}
.hero.has-photo .desk-q svg{color:var(--brass)}
.hero.has-photo .desk-live{color:var(--brass)}
.hero.has-photo .fad-t::before{background:rgba(251,250,248,.14);box-shadow:none}
.hero.has-photo .fad-n{color:rgba(251,250,248,.78)}
.hero.has-photo .fad-p{color:var(--paper)}
.hero.has-photo .fad--you .fad-n,.hero.has-photo .fad--you .fad-p{color:var(--brass)}
.hero.has-photo .desk-f{color:rgba(251,250,248,.7)}

/* a mid section running on a photograph, its own content sitting on top */
.sec--shot{position:relative;background:var(--teal-deep);color:var(--paper);isolation:isolate}
.sec--shot::before{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:var(--photo);background-size:cover;background-position:center;
  opacity:.58;
}
.sec--shot::after{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(84deg,rgba(6,45,38,.86) 0%,rgba(6,45,38,.52) 58%,rgba(6,45,38,.30) 100%);
}
.sec--shot>*{position:relative;z-index:1}
.sec--shot .muted,.sec--shot .lead,.sec--shot p{color:rgba(251,250,248,.8)}
.sec--shot .eyebrow{color:var(--brass)}
.sec--shot .chan-l{color:rgba(251,250,248,.74)}
.sec--shot .chan-r{background:var(--line-d)}
.sec--shot .chan-m i{background:var(--line-d)}
.sec--shot .chan-m i.a{background:var(--brass)}
.sec--shot .chan-m i.b{background:var(--teal-soft)}
.sec--shot .shift{background-image:linear-gradient(90deg,var(--brass) 0%,var(--brass) 50%,var(--paper) 50%,var(--paper) 100%)}
.sec--shot .dot{color:var(--teal-soft)}
.sec--shot h2,.sec--shot h3,.sec--shot h4{color:var(--paper)}
.sec--shot .cell,.sec--shot .step,.sec--shot .sf,.sec--shot .duo-card,.sec--shot .plan,.sec--shot .aside{
  background:rgba(251,250,248,.07);border-color:var(--line-d);color:var(--paper);backdrop-filter:blur(4px);
}
.sec--shot .cell p,.sec--shot .step li,.sec--shot .sf p,.sec--shot .duo-card p,.sec--shot .aside p,.sec--shot .aside li{color:rgba(251,250,248,.8)}
.sec--shot .cell h3,.sec--shot .step h3,.sec--shot .sf h3,.sec--shot .duo-card h4{color:var(--paper)}
.sec--shot .klabel,.sec--shot .row-n,.sec--shot .rate-k{color:rgba(251,250,248,.7)}
.sec--shot .go,.sec--shot .lnk{color:var(--brass)}
.sec--shot .stage{background:rgba(233,160,32,.18);color:var(--brass)}
.sec--shot .sfi{background:rgba(233,160,32,.18);color:var(--brass)}
.sec--shot .rows,.sec--shot .row,.sec--shot .rate,.sec--shot .rate-r,.sec--shot .q-list,.sec--shot .qa{border-color:var(--line-d)}
.sec--shot .row-t,.sec--shot .rate-t,.sec--shot .rate-v,.sec--shot .qa>summary{color:var(--paper)}
.sec--shot .row-d,.sec--shot .ans,.sec--shot .rate-m{color:rgba(251,250,248,.8)}
.sec--shot .btn--line,.sec--shot .btn-ghost,.sec--shot .btn--ghost{color:var(--paper);border-color:rgba(251,250,248,.4)}
.sec--shot .btn--line:hover{background:var(--paper);color:var(--ink)}
.sec--shot .links a,.sec--shot .chips a{background:rgba(251,250,248,.08);border-color:var(--line-d);color:var(--paper)}
.sec--shot .links a svg{color:var(--brass)}
.sec--shot .igrid{background:var(--line-d);border-color:var(--line-d)}
.sec--shot .igrid a{background:rgba(6,45,38,.6);color:var(--paper)}
.sec--shot .igrid a:hover{background:rgba(233,160,32,.16)}
.sec--shot .igrid h4{color:var(--paper)}
.sec--shot .igrid p{color:rgba(251,250,248,.72)}
.sec--shot .figures{background:var(--line-d);border-color:var(--line-d)}
.sec--shot .figure{background:rgba(6,45,38,.7)}
.sec--shot .figure .big,.sec--shot .figure .cap{color:var(--paper)}
.sec--shot .figure .num{color:var(--brass)}
.sec--shot .figure .sub{color:rgba(251,250,248,.72)}

/* photograph paired beside a block of text */
.pshot{border-radius:var(--r-m);overflow:hidden;background:var(--paper-3)}
.pshot img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3}

/* ---------- logo marquee in colour, sitting under the hero ---------- */
.logobar img{
  height:30px;width:auto;opacity:.92;filter:none;
  transition:opacity .25s ease,transform .25s ease;
}
.logobar img:hover{opacity:1;transform:translateY(-2px)}
.logobar{background:var(--white);border-top:0}

/* ---------- buttons glow ---------- */
.btn,.btn-primary,.btn--teal,.btn--primary{
  box-shadow:0 6px 18px rgba(11,110,98,.28),0 0 0 0 rgba(11,110,98,.45);
}
.btn:hover,.btn-primary:hover,.btn--teal:hover,.btn--primary:hover{
  box-shadow:0 10px 26px rgba(11,110,98,.4),0 0 22px 2px rgba(13,132,116,.55);
}
.btn--brass,.btn--pop{box-shadow:0 6px 18px rgba(233,160,32,.34)}
.btn--brass:hover,.btn--pop:hover{box-shadow:0 10px 26px rgba(233,160,32,.46),0 0 22px 2px rgba(233,160,32,.6)}
.hero.has-photo .btn,.hero.has-photo .btn--primary,.sec--shot .btn,.cta-band.has-photo .btn{
  box-shadow:0 8px 24px rgba(0,0,0,.34),0 0 20px 1px rgba(13,132,116,.5);
}
.hero.has-photo .btn:hover,.sec--shot .btn:hover,.cta-band.has-photo .btn:hover{
  box-shadow:0 12px 30px rgba(0,0,0,.4),0 0 28px 3px rgba(19,168,146,.7);
}
.btn--line:hover,.btn-ghost:hover,.btn--ghost:hover{box-shadow:0 8px 20px rgba(22,20,15,.22)}

/* ---------- faders run continuously, dropping to zero and rising ---------- */
.fad-f{animation:none}
.reveal.in-view .fad-f,.is-vis .fad-f,.hero .fad-f{
  animation:fadRise 4.6s cubic-bezier(.4,0,.3,1) infinite;
  animation-delay:var(--fd,0s);
}
.reveal.in-view .fad-c,.is-vis .fad-c,.hero .fad-c{
  animation:capRise 4.6s cubic-bezier(.4,0,.3,1) infinite;
  animation-delay:var(--fd,0s);
}
@keyframes fadRise{
  0%{height:0}
  10%,55%{height:var(--v)}
  78%{height:0}
  100%{height:0}
}
@keyframes capRise{
  0%{bottom:-7px}
  10%,55%{bottom:calc(var(--v) - 7px)}
  78%{bottom:-7px}
  100%{bottom:-7px}
}
.fad:nth-child(1){--fd:0s}
.fad:nth-child(2){--fd:.12s}
.fad:nth-child(3){--fd:.24s}
.fad:nth-child(4){--fd:.36s}
.fad:nth-child(5){--fd:.48s}
.fad:nth-child(6){--fd:.6s}

/* ---------- entity graph: the YOU node was clipped by the viewBox ---------- */
.eg-you circle{fill:var(--brass);stroke:var(--brass)}
.eg-you text{fill:#2a1a00;font-family:"Gabarito",sans-serif;font-size:11px;font-weight:800}
.egraph svg{overflow:visible}

@media(prefers-reduced-motion:reduce){
  .reveal.in-view .fad-f,.is-vis .fad-f,.hero .fad-f{animation:none;height:var(--v)}
  .reveal.in-view .fad-c,.is-vis .fad-c,.hero .fad-c{animation:none;bottom:calc(var(--v) - 7px)}
}
/* the photo hero override was killing the heading's bottom margin */
.hero.has-photo h1,.hero.has-photo .h-l,.hero.has-photo .h-xl{margin:16px 0 20px}
.hero.has-photo .lead,.hero.has-photo .muted{max-width:56ch}
.eg-you circle{fill:var(--brass);stroke:var(--brass-ink);stroke-width:1.5}
.eg-you text{fill:#2a1a00;font-family:"Gabarito",sans-serif;font-size:12px;font-weight:800;letter-spacing:.02em}
.egraph{padding:clamp(20px,2.6vw,30px)}
.eg-answer{fill:var(--teal-tint);stroke:var(--teal);stroke-width:1.8}

/* ==========================================================================
   PHOTO SECTION: every white card component, not just the ones I listed
   ========================================================================== */
.sec--shot .cell,.sec--shot .step,.sec--shot .sf,.sec--shot .duo-card,.sec--shot .plan,
.sec--shot .aside,.sec--shot .card,.sec--shot .desk,.sec--shot .post,.sec--shot .figure,
.sec--shot .price-card,.sec--shot .smap-panel,.sec--shot .audit-form,.sec--shot .egraph,
.sec--shot .ztable-wrap,.sec--shot .zcs-cell,.sec--shot .smap-frame{
  background:rgba(4,32,26,.62);border-color:var(--line-d);color:var(--paper);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.sec--shot .desk-q{background:rgba(251,250,248,.12);color:var(--paper)}
.sec--shot .desk-q svg{color:var(--brass)}
.sec--shot .desk-f,.sec--shot .scan-c,.sec--shot .mini,.sec--shot .plan-note,
.sec--shot .pdesc,.sec--shot .zsub,.sec--shot .smap-note{color:rgba(251,250,248,.78)}
.sec--shot .fad-t::before{background:rgba(251,250,248,.14);box-shadow:none}
.sec--shot .fad-n{color:rgba(251,250,248,.78)}
.sec--shot .fad-p,.sec--shot .price,.sec--shot .pname,.sec--shot .zbig,.sec--shot .zcap{color:var(--paper)}
.sec--shot .price .cur{color:var(--brass)}
.sec--shot .plan li,.sec--shot .post-body p{color:rgba(251,250,248,.8)}
.sec--shot .plan li svg{color:var(--brass)}
.sec--shot .igrid a{background:rgba(4,32,26,.7)}
.sec--shot .figures{background:var(--line-d)}
.sec--shot .figure{background:rgba(4,32,26,.7)}
.sec--shot .dtype{background:rgba(233,160,32,.14)}

/* brass is mid luminance, so small brass text on a dark panel needs lifting */
:root{--brass-lite:#f5bf5c}
.sec--shot .dtype,.sec--shot .kw,.sec--shot .go,.sec--shot .lnk,.sec--shot .eyebrow,
.sec--shot .desk-live,.sec--shot .scan-live,.sec--shot .row-p,
.sec--teal .dtype,.sec--brand .dtype,.sec--teal .kw,.sec--brand .kw{color:var(--brass-lite)}
.sec--shot .stage,.sec--shot .sfi{color:var(--brass-lite)}
/* brass on the translucent hero desk needs the lifted tone too */
.hero.has-photo .desk-live,.hero.has-photo .fad--you .fad-n,.hero.has-photo .fad--you .fad-p,
.hero.has-photo .desk-q svg,.hero.has-photo .eyebrow,.hero.has-photo .hero-trust b,
.cta-band.has-photo .eyebrow,.cta-band.has-photo .chan-l{color:var(--brass-lite)}

/* ==========================================================================
   CITRUS ACCENT, AEO BLOCK, EQUALISERS, FULL WIDTH MARQUEES
   ========================================================================== */

/* ---------- citrus as trim: borders, rules, small marks ---------- */
.chan-r{background:linear-gradient(90deg,var(--citrus) 0%,var(--line) 22%,var(--line) 100%)}
.sec--teal .chan-r,.sec--brand .chan-r,.sec--shot .chan-r,.cta-band.has-photo .chan-r{
  background:linear-gradient(90deg,var(--citrus) 0%,var(--line-d) 22%,var(--line-d) 100%);
}
.eyebrow::before{background:var(--citrus)}
.rows,.rate,.q-list{border-top-color:var(--citrus)}
.cell:hover::before{background:var(--citrus)}
.row:hover::before{background:var(--citrus)}
.gloss-group h2{border-bottom-color:var(--citrus)}
.zcs--note,.note,.callout{border-left-color:var(--citrus);background:var(--citrus-tint);border-color:rgba(168,214,30,.4)}
.ztag{color:var(--citrus-ink)}
.chan-m i.c{background:var(--citrus);height:82%}
.sec--teal .chan-m i.c,.sec--brand .chan-m i.c,.sec--shot .chan-m i.c{background:var(--citrus-lite)}
.scan-lg .lg3{background:rgba(168,214,30,.16);border-color:rgba(168,214,30,.6)}
hr{border-top-color:var(--citrus)}

/* ---------- equalisers: bigger, animated, everywhere ---------- */
.chan-m{height:26px;gap:3px}
.chan-m i{width:4px;border-radius:2px;transform-origin:bottom;height:38%}
.chan-m.eq i,.chan-m i{animation:eqBounce 1.5s ease-in-out infinite}
.chan-m i:nth-child(1){animation-delay:0s;--eh:92%}
.chan-m i:nth-child(2){animation-delay:.13s;--eh:58%}
.chan-m i:nth-child(3){animation-delay:.26s;--eh:100%}
.chan-m i:nth-child(4){animation-delay:.39s;--eh:44%}
.chan-m i:nth-child(5){animation-delay:.52s;--eh:78%}
.chan-m i:nth-child(6){animation-delay:.65s;--eh:62%}
.chan-m i:nth-child(7){animation-delay:.78s;--eh:96%}
.chan-m i:nth-child(8){animation-delay:.91s;--eh:50%}
.chan-m i:nth-child(9){animation-delay:1.04s;--eh:84%}
@keyframes eqBounce{
  0%,100%{height:22%}
  50%{height:var(--eh,72%)}
}
.chan-m.eq{height:34px;gap:4px}
.chan-m.eq i{width:5px}

/* standalone equaliser for hero and footer */
.eqbar{display:inline-flex;align-items:flex-end;gap:4px;height:38px}
.eqbar i{width:5px;border-radius:3px;background:var(--teal);transform-origin:bottom;animation:eqBounce 1.4s ease-in-out infinite}
.eqbar i:nth-child(2n){background:var(--brass)}
.eqbar i:nth-child(3n){background:var(--citrus)}
.hero.has-photo .eqbar i{background:var(--brass-lite)}
.hero.has-photo .eqbar i:nth-child(2n){background:var(--teal-soft)}
.hero.has-photo .eqbar i:nth-child(3n){background:var(--citrus-lite)}

/* ---------- AEO block: the plain statement of what we provide ---------- */
.aeo{background:var(--citrus-tint);border-top:2px solid var(--citrus);position:relative}
.aeo .eyebrow{color:var(--citrus-ink)}
.aeo .eyebrow::before{background:var(--teal)}
.aeo .shift{background-image:linear-gradient(90deg,var(--citrus-ink) 0%,var(--citrus-ink) 50%,var(--ink) 50%,var(--ink) 100%)}
.aeo .dot{color:var(--citrus-ink)}
.aeo-list{display:grid;gap:1px;margin:0;background:rgba(168,214,30,.42);border:1px solid rgba(168,214,30,.5);border-radius:var(--r-m);overflow:hidden}
@media(min-width:820px){.aeo-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.aeo-row{background:var(--white);padding:clamp(16px,2vw,22px);transition:background .22s ease}
.aeo-row:hover{background:#fbfde8}
.aeo-t{
  margin:0 0 6px;font-family:var(--display);font-weight:800;
  font-size:clamp(.98rem,1.3vw,1.1rem);letter-spacing:-.02em;line-height:1.2;color:var(--ink);
}
.aeo-d{margin:0;font-size:.91rem;line-height:1.55;color:var(--ink-2)}
.aeo-row::before{content:"";display:block;width:22px;height:3px;border-radius:2px;background:var(--citrus);margin-bottom:11px}
.aeo-row:hover::before{background:var(--teal)}

/* the signalling sentence sits first and reads heavier */
.lead--signal{font-weight:550;color:var(--ink);max-width:62ch}
.hero.has-photo .lead--signal{color:var(--paper)}
.sec--teal .lead--signal,.sec--shot .lead--signal{color:var(--paper)}

/* ---------- marquees: both full bleed ---------- */
.logobar{padding:14px 0}
.logobar .wrap{max-width:none;padding:0;width:100%}
.tmarquee,.logobar{width:100%;max-width:100%}
.logobar .marquee{width:100%}

/* ---------- colour cycling headline ---------- */
.cyc{
  background-image:linear-gradient(90deg,var(--teal) 0%,var(--citrus-ink) 26%,var(--brass-ink) 52%,var(--teal) 78%,var(--citrus-ink) 100%);
  background-size:280% 100%;
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  animation:cycShift 9s linear infinite;
}
@keyframes cycShift{0%{background-position:0 0}100%{background-position:280% 0}}
.hero.has-photo .cyc{
  background-image:linear-gradient(90deg,var(--brass-lite) 0%,var(--citrus-lite) 26%,var(--teal-soft) 52%,var(--brass-lite) 78%,var(--citrus-lite) 100%);
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .cyc{color:var(--teal);-webkit-text-fill-color:var(--teal)}
  .hero.has-photo .cyc{color:var(--brass-lite);-webkit-text-fill-color:var(--brass-lite)}
}

@media(prefers-reduced-motion:reduce){
  .chan-m i,.chan-m.eq i,.eqbar i{animation:none;height:var(--eh,70%)}
  .cyc{animation:none}
}
/* hero and footer equalisers sit inline with their neighbours */
.hero-trust{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.eqbar{height:30px}
.foot-base .eqbar{height:24px;order:-1}
.foot-base .eqbar i{background:var(--brass)}
.foot-base .eqbar i:nth-child(2n){background:var(--citrus)}
.foot-base .eqbar i:nth-child(3n){background:var(--teal-soft)}

/* callouts and panels inside a photo section keep their own colour contract */
.sec--shot .zcs--note,.sec--shot .note,.sec--shot .callout{
  background:rgba(4,32,26,.68);border-color:rgba(168,214,30,.42);
  border-left-color:var(--citrus);color:var(--paper);
}
.sec--shot .zcs--note p,.sec--shot .note p,.sec--shot .callout p{color:rgba(251,250,248,.84)}
.sec--shot .zcs--note a,.sec--shot .note a{color:var(--citrus-lite)}
.sec--shot .ztag{color:var(--citrus-lite)}
.sec--shot .smap-panel,.sec--shot .smap-panel *{color:var(--paper)}
.sec--shot .smap-panel .smap-note,.sec--shot .smap-rows li{color:rgba(251,250,248,.82)}
.sec--shot .smap-rows b{color:var(--paper)}
.sec--shot .smap-rows svg{color:var(--brass-lite)}
.sec--shot .smap-gbp{border-color:var(--line-d);color:var(--paper)}
.sec--shot .smap-gbp:hover{background:rgba(251,250,248,.1);border-color:var(--paper)}
.sec--shot .smap-call,.sec--shot .call-card{background:var(--teal);color:#fff}
.sec--shot .smap-call *,.sec--shot .call-card *{color:#fff}
.sec--shot .smap-tag{background:rgba(4,32,26,.8);border-color:var(--line-d);color:var(--paper)}
.sec--shot .fld label{color:rgba(251,250,248,.78)}
.sec--shot .fld input,.sec--shot .fld textarea,.sec--shot .fld select{
  background:rgba(4,32,26,.6);border-color:var(--line-d);color:var(--paper);
}
.sec--shot .gloss-group dt{color:var(--paper)}
.sec--shot .gloss-group dd{color:rgba(251,250,248,.82)}
/* muted micro labels inside a dark plan card */
.sec--shot .per,.sec--shot .pfrom,.sec--shot .rate-k,.sec--shot .pname,
.sec--shot .klabel,.sec--shot .row-n,.sec--shot .pdate,.sec--shot .rate-m,
.sec--shot .sub,.sec--shot .zsub,.sec--shot .crumbs,.sec--shot .crumbs a{color:rgba(251,250,248,.78)}

/* ---- AEO "short version" block: loud, bold, citrus ---- */
.sec.oneline{
  position:relative;
  background:var(--teal-deep);
  color:var(--paper);
  border-top:4px solid var(--citrus);
  border-bottom:4px solid var(--citrus);
  padding-block:clamp(46px,6vw,84px);
}
.sec.oneline .eyebrow{color:var(--citrus);letter-spacing:.16em}
.sec.oneline p{
  max-width:34ch;
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(1.6rem,3.5vw,2.7rem);
  line-height:1.16;
  letter-spacing:-.015em;
  color:var(--paper);
  margin-top:14px;
}
.sec.oneline .kw{
  color:var(--citrus);
  font-weight:900;
  background:linear-gradient(transparent 62%,rgba(168,214,30,.22) 62%);
  padding:0 .06em;
}
.sec.oneline .chan-l,.sec.oneline .chan-r{color:rgba(251,250,248,.62)}
.sec.oneline .chan-m i{background:rgba(251,250,248,.28)}
.sec.oneline .chan-m i.a,.sec.oneline .chan-m i.c{background:var(--citrus)}
.sec.oneline .chan-m i.b{background:var(--citrus-lite)}
@media(min-width:900px){ .sec.oneline p{max-width:26ch} }

/* ---- broader citrus presence ---- */
.eyebrow::before{background:var(--citrus)}
.sec-head .eyebrow{color:var(--citrus-ink)}
.sec--brand .eyebrow,.sec--shot .eyebrow{color:var(--citrus)}
.btn--primary{background:var(--teal);border-color:var(--teal)}
.btn--primary:hover{background:var(--citrus);border-color:var(--citrus);color:var(--ink)}
.go{color:var(--citrus-ink);font-weight:650}
.go:hover{color:var(--teal)}
.cell:hover{border-color:var(--citrus)}
.cell:hover .go{color:var(--teal)}
h2 .dot,h1 .dot,.h-l .dot,.h-xl .dot{color:var(--citrus)}
.crumbs a:hover{color:var(--citrus-ink)}
.qa summary:hover{color:var(--citrus-ink)}
.stat b,.kpi b{color:var(--citrus-ink)}
.sec--brand .stat b,.sec--shot .stat b{color:var(--citrus)}
hr,.rule{border-color:var(--citrus)}
::selection{background:rgba(168,214,30,.35);color:var(--ink)}
.chan-r{color:var(--citrus-ink)}
.sec--brand .chan-r,.sec--shot .chan-r{color:var(--citrus)}

/* ---- alignment fixes ---- */
/* text column was centred against a taller graphic, leaving a void up top */
.media{align-items:start}
.media>*{align-self:start}
@media(min-width:900px){
  .media{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  /* pull the graphic in so it does not outrun the text measure */
  .media .geo,.media .shotcard,.media figure{max-width:560px;margin-inline:auto}
}
/* the AI-search band had 562 / 692 / 1065 wide children stacked on one edge */
.sec--shot .sec-head,.sec--shot .intro{max-width:660px}
.sec--shot .intro{width:100%}

/* thinner keyword highlight in the AEO block */
.sec.oneline .kw{
  background:linear-gradient(transparent 76%,rgba(168,214,30,.28) 76%);
}
/* geo grid dots -> citrus */
.geo .pt.on,.geo .dot.on,.geo-pt--hi{background:var(--citrus)!important;color:var(--ink)!important}


/* the AI band: put the diagram beside the copy instead of stacking */
@media(min-width:1000px){
  .sec--aiband .wrap{
    display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    column-gap:clamp(30px,3.6vw,56px);row-gap:14px;align-items:start;
  }
  .sec--aiband .chan{grid-column:1 / -1}
  .sec--aiband .sec-head{grid-column:1;grid-row:2;max-width:none}
  .sec--aiband .intro{grid-column:1;grid-row:3;max-width:none;width:auto}
  .sec--aiband .grid-foot{grid-column:1 / -1}
}

/* ---- split sections: heading, copy and graphic on one tidy two-column grid ---- */
@media(min-width:1000px){
  .sec--split .wrap{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:clamp(36px,4vw,68px);
    align-items:start;
  }
  .sec--split .chan{grid-column:1 / -1}
  .sec--split .sec-head{grid-column:1;grid-row:2;max-width:none;margin-bottom:18px}
  /* let .media's children become items of the section grid */
  .sec--split .media{display:contents}
  .sec--split .media-txt{grid-column:1;grid-row:3}
  .sec--split .media>:last-child{grid-column:2;grid-row:2 / span 2;align-self:start;margin:0}
  .sec--split .grid-foot{grid-column:1 / -1;margin-top:26px}
}
/* ---- AI band: copy left, diagram right, level at the top ---- */
@media(min-width:1000px){
  .sec--aiband .wrap{
    display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    column-gap:clamp(32px,3.6vw,58px);align-items:start;
  }
  .sec--aiband .chan{grid-column:1 / -1}
  .sec--aiband .sec-head{grid-column:1;grid-row:2;max-width:none}
  .sec--aiband .intro{display:contents}
  .sec--aiband .intro>:first-child{grid-column:2;grid-row:2 / span 2;align-self:start}
  .sec--aiband .intro>:last-child{grid-column:1 / -1;grid-row:3;margin-top:22px}
  .sec--aiband .grid-foot{grid-column:1 / -1;margin-top:24px}
}
