/* Social Broker — social-broker.css
   Build: 2026-09-27 v6 (client portal + 404 + centring fix)
   Check you have the right file: search for 'Build:' above.
*/
/* ============================================================
   SOCIAL BROKER — v3 (final pass)
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
button,input{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
:focus{outline:none}
:focus-visible{outline:2px solid #15616D;outline-offset:3px}

:root{
  --bone:#FFF8F1; --paper:#FFFFFF;
  --red:#E71D36; --red-deep:#C31329; --red-pale:#FDEAEC;
  --cyan:#36D6E7; --cyan-pale:#E3F7FA;
  --teal:#15616D;
  --navy:#09032B;      /* deep brand navy — backgrounds, the mark */
  --navy-text:#1A2456; /* lighter, visibly-blue navy — all heading text */
  --ink:#102F38; --muted:#4F6971;
  --line:rgba(16,47,56,.1); --line-strong:rgba(16,47,56,.2);
  --display:"Newsreader",Georgia,serif;
  --body:"DM Sans",system-ui,sans-serif;
  --ease:cubic-bezier(.22,.68,.24,1);
  --r:16px;
  --pad:clamp(20px,5vw,64px);
  --hh:76px;
}

body{font-family:var(--body);font-size:1rem;line-height:1.6;color:var(--ink);background:var(--bone)}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;letter-spacing:-.014em;line-height:1.08;color:var(--navy-text)}
.h1{font-size:clamp(2.6rem,5.6vw,4.3rem);line-height:1.02}
.h2{font-size:clamp(1.9rem,3.2vw,2.6rem)}
.h3{font-size:clamp(1.15rem,1.7vw,1.35rem);line-height:1.22}
.sub{font-size:clamp(1.02rem,1.3vw,1.14rem);line-height:1.55;color:var(--muted)}
.small{font-size:.87rem;color:var(--muted)}
p{margin-bottom:1em}p:last-child{margin-bottom:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.wrap{max-width:1160px;margin-inline:auto;padding-inline:var(--pad)}
.narrow{max-width:740px;margin-inline:auto}
.band{padding-block:clamp(56px,7vw,96px)}
.band-sm{padding-block:clamp(36px,4.6vw,60px)}
.band-lg{padding-block:clamp(72px,9vw,128px)}
.paper{background:var(--paper)}
.bone{background:var(--bone)}
.center{text-align:center}

/* NAVY, textured — never flat */
.navy{position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(115% 85% at 10% 0%,rgba(54,214,231,.22),transparent 55%),
    radial-gradient(95% 75% at 94% 100%,rgba(231,29,54,.16),transparent 58%),
    var(--navy)}
.navy::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(rgba(255,255,255,.45) 1px,transparent 1.2px);
  background-size:22px 22px;
  -webkit-mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.12) 68%,transparent);
  mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.12) 68%,transparent)}
.navy>*{position:relative;z-index:1}
/* headings ALWAYS navy except white on dark bands — one rule, no drift.
   Scoped to direct section content only — a light .card sitting inside a
   navy section keeps normal dark text, or its own text would vanish
   (white-on-white). This is the fix for that exact bug. */
.navy h1,.navy h2,.navy h3,.navy h4{color:#fff}
.navy .sub{color:rgba(255,255,255,.8)}
.navy .card h3,.navy .card h4{color:var(--navy-text)}

/* DSM HUB-AND-SPOKE — a central "content strategy" node with three jobs
   radiating from it, not a sequence. These three things are simultaneous
   properties of a strategy, not steps 1-2-3 (that shape is reserved for
   Getting Started), so the model is deliberately not linear. */
.hub{position:relative;margin-top:clamp(38px,4.8vw,58px)}
.hub-center{width:120px;height:120px;border-radius:50%;background:var(--navy);
  border:2.5px solid rgba(255,255,255,.5);display:grid;place-items:center;
  margin:0 auto;position:relative;z-index:2;box-shadow:0 0 0 8px var(--navy),0 10px 30px rgba(0,0,0,.3)}
.hub-center span{font-family:var(--display);font-weight:600;font-size:1rem;color:#fff;
  text-align:center;line-height:1.2}
/* Connector — built from the SAME grid math as .hub-nodes below (3 equal
   columns), not a hand-guessed SVG path independent of it. A column's
   center always sits at 1/6, 3/6, 5/6 of the row width regardless of the
   row's actual pixel size, so this stays precisely aligned at any width
   instead of only looking roughly right at one assumed size. */
.hub-connector{position:relative;height:56px;margin-top:6px}
.hc-stem{position:absolute;left:50%;top:0;width:2px;height:16px;background:rgba(255,255,255,.28);
  transform:translateX(-50%)}
.hc-bar{position:absolute;left:16.667%;right:16.667%;top:16px;height:2px;background:rgba(255,255,255,.28)}
.hc-drop{position:absolute;top:16px;width:2px;height:40px;background:rgba(255,255,255,.28)}
.hc-drop-1{left:16.667%;transform:translateX(-50%)}
.hc-drop-2{left:50%;transform:translateX(-50%)}
.hc-drop-3{left:83.333%;transform:translateX(-50%)}
.hc-stem,.hc-bar,.hc-drop{opacity:0;transition:opacity .6s var(--ease) .3s}
.hub.in .hc-stem,.hub.in .hc-bar,.hub.in .hc-drop{opacity:1}
.hub-nodes{position:relative;z-index:1;margin-top:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,32px)}
.hub-node{text-align:center;display:flex;flex-direction:column;align-items:center}
/* One consistent ring colour across all three, not red/teal/cyan per node —
   these are three equal, simultaneous jobs, not a ranked or colour-coded
   sequence, and three different circle colours implied a distinction that
   isn't real. The emoji and heading already tell them apart. */
.hub-dot{width:52px;height:52px;border-radius:50%;background:var(--navy);
  border:2.5px solid rgba(255,255,255,.55);color:#fff;display:grid;place-items:center;
  font-size:1.3rem;margin-bottom:1rem}
.hub-node h3{margin-bottom:.35rem}
.hub-node .small{max-width:24ch;color:rgba(255,255,255,.68)}
.pillar-tags{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;
  margin-top:.9rem;padding:0}
.pillar-tags li{font-size:.76rem;font-weight:500;padding:.32em .68em;border-radius:99em;
  background:rgba(255,255,255,.1);color:#fff}
@media(max-width:820px){
  .hub-nodes{grid-template-columns:1fr;gap:clamp(26px,4.6vw,38px)}
  .hub-connector{display:none}
}
.navy .card p,.navy .card .small{color:var(--muted)}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,32px)}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,22px)}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,20px)}
.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
@media(max-width:980px){.g5{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:1fr 1fr}}
@media(max-width:860px){.g3{grid-template-columns:1fr 1fr}.g2{grid-template-columns:1fr}}
@media(max-width:600px){.g4,.g3,.g5{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.g5{grid-template-columns:1fr}}

/* BUTTONS — one shape rule. Cut-corner pill = primary action ONLY. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  font-family:var(--body);font-size:.96rem;font-weight:500;padding:.86em 1.6em;
  border-radius:99em;cursor:pointer;white-space:nowrap;border:none;
  transition:background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease)}
.btn-primary{background:var(--red);color:#fff;border-radius:99em 0 99em 99em}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--red-deep);color:#fff}
.btn-primary:focus-visible{box-shadow:0 0 0 3px var(--cyan)}
.btn-sec{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.btn-sec:hover{background:var(--bone);color:var(--teal);box-shadow:inset 0 0 0 1.5px var(--teal)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.22)}

/* .btn is used on real <a> links throughout the site (this ghost button
   links to /decision-safety-map/, for instance) — without this, browsers
   apply their own dark default color once a link has been visited or is
   being hovered, regardless of what .btn itself sets. Same bug already
   fixed once tonight in the onboarding form; fixing it here too rather
   than case-by-case. */
.btn:link,.btn:visited,.btn:hover,.btn:active{color:inherit}
.btn-primary:link,.btn-primary:visited,.btn-primary:hover,.btn-primary:active{color:#fff}
.btn-ghost:link,.btn-ghost:visited,.btn-ghost:hover,.btn-ghost:active{color:#fff}
.btn-sec:link,.btn-sec:visited,.btn-sec:hover,.btn-sec:active{color:var(--ink)}
.btn-sm{font-size:.86rem;padding:.62em 1.2em}

.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.2vw,26px)}
.card-hover{transition:border-color .2s,box-shadow .2s}
.card-hover:hover{border-color:var(--teal);box-shadow:0 4px 22px rgba(16,47,56,.06)}

/* EYEBROW — small uppercase red pill, used identically everywhere */
.eyebrow{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);background:var(--red-pale);
  padding:.42em .85em;border-radius:99em;margin-bottom:.85rem}
.navy .eyebrow{background:var(--red);color:#fff}

.tile{width:44px;height:44px;border-radius:13px;background:var(--cyan-pale);display:grid;
  place-items:center;font-size:1.3rem;line-height:1;flex:none}
.navy .tile{background:rgba(255,255,255,.1)}

/* HEADER */
.sb-head{position:sticky;top:0;z-index:60;height:var(--hh);
  background:rgba(255,248,241,.94);backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.sb-head.stuck{border-bottom-color:var(--line);box-shadow:0 1px 0 var(--line),0 10px 24px -14px rgba(9,3,43,.18)}
.sb-head-in{display:flex;align-items:center;justify-content:center;height:100%;gap:3rem}
.sb-logo{display:flex;align-items:center;gap:.55rem;flex:none;margin-right:2.2rem}
.sb-logo img{height:34px;width:auto}
.sb-logo b{font-family:var(--display);font-weight:600;font-size:1.18rem;color:var(--navy-text)}
.nav-list{display:flex;align-items:center;gap:1.7rem}
/* :not(.btn) is the fix — without it this rule's specificity beats
   .btn-primary's white text, which is exactly why "Let's talk" was
   rendering as dark navy text on a red pill, barely legible. */
.nav-list>li>a:not(.btn){font-size:.92rem;font-weight:500;color:var(--ink);padding:.3rem 0;
  border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.nav-list>li>a:not(.btn):hover{color:var(--teal);border-bottom-color:var(--cyan)}
/* ONE cta lives inside the nav list. Nothing else in the header renders a button. */
.burger{display:none;width:38px;height:38px;flex-direction:column;justify-content:center;
  gap:5px;align-items:center;border-radius:10px;margin-left:auto;background:none;border:none}
.burger i{display:block;width:18px;height:2px;background:var(--navy);border-radius:2px;transition:.24s var(--ease)}
.sb-head.open .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.sb-head.open .burger i:nth-child(2){opacity:0}
.sb-head.open .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:880px){
  .nav-list{display:none}
  .burger{display:flex}
  .sb-head.open .nav-list{display:flex;position:absolute;inset:var(--hh) 0 auto;flex-direction:column;
    align-items:stretch;gap:0;background:var(--bone);border-bottom:1px solid var(--line);
    padding:.5rem var(--pad) 1.1rem}
  .sb-head.open .nav-list>li>a{display:block;padding:.8rem 0;border-bottom:1px solid var(--line)}
  .sb-head.open .nav-list li:last-child{margin-top:.6rem}
  .sb-head.open .nav-list li:last-child a{border-bottom:none}
}

/* HERO — centred, big, one action, with an actual environment behind it.
   Flat centred text on plain cream reads as adrift — nothing grounds it.
   A soft radial glow anchored behind the headline plus a faint dot-grid
   gives the section a place to exist in, without competing with the type. */
.hero{position:relative;overflow:hidden;text-align:center;
  padding-block:clamp(64px,8.2vw,116px) clamp(40px,5.2vw,64px);
  background:
    radial-gradient(60% 55% at 50% 8%,rgba(54,214,231,.16),transparent 62%),
    radial-gradient(46% 40% at 82% 4%,rgba(231,29,54,.09),transparent 60%),
    var(--bone)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(rgba(16,47,56,.06) 1px,transparent 1.2px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(64% 60% at 50% 22%,#000,transparent 78%);
  mask-image:radial-gradient(64% 60% at 50% 22%,#000,transparent 78%)}
.hero>*{position:relative;z-index:1}
.hero-in{max-width:920px;margin-inline:auto}
.hero .eyebrow{margin-bottom:1.1rem}
.hero .h1{margin-bottom:1.15rem}
.hero .sub{max-width:50ch;margin-inline:auto;margin-bottom:2rem}
.hero-actions{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:.4rem}

/* HERO CARD STACK. Three real posts auto-rotate through front/middle/back
   positions, endlessly, so the hero shows the actual product moving rather
   than sitting still. Pure CSS: three staggered infinite animations sharing
   one keyframe, each 1/3 out of phase with the others. */
.stack{position:relative;height:300px;max-width:230px;margin:clamp(28px,4vw,44px) auto 0;perspective:1000px}
.stack-card{position:absolute;inset:0;border-radius:14px;overflow:hidden;
  box-shadow:0 14px 34px rgba(9,3,43,.16);animation:stackcycle 9s ease-in-out infinite}
.stack-card .post{height:100%;border-radius:14px}
.stack-card .pimg{height:100%;aspect-ratio:auto}
.sc-0{animation-delay:0s}
.sc-1{animation-delay:-3s}
.sc-2{animation-delay:-6s}
/* three positions in the cycle: front (top,scale1), mid (behind-left), back (behind-right,smallest) */
@keyframes stackcycle{
  0%,4%{transform:translateY(0) translateX(0) scale(1) rotate(0deg);z-index:3;opacity:1}
  33.3%{transform:translateY(14px) translateX(-16px) scale(.93) rotate(-4deg);z-index:2;opacity:.85}
  66.6%{transform:translateY(24px) translateX(16px) scale(.87) rotate(4deg);z-index:1;opacity:.65}
  96%,100%{transform:translateY(0) translateX(0) scale(1) rotate(0deg);z-index:3;opacity:1}
}
@media(prefers-reduced-motion:reduce){.stack-card{animation:none}
  .sc-0{z-index:3}.sc-1{transform:translateY(14px) translateX(-16px) scale(.93) rotate(-4deg);z-index:2;opacity:.85}
  .sc-2{transform:translateY(24px) translateX(16px) scale(.87) rotate(4deg);z-index:1;opacity:.65}}
.cyc{color:var(--red)}
.caret{display:inline-block;width:.05em;height:.76em;background:var(--red);margin-left:.04em;
  vertical-align:-.04em;animation:blink 1.05s steps(1) infinite}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.capture{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;max-width:500px;margin-inline:auto}
.capture input{flex:1 1 230px;padding:.86em 1.15em;border:1.5px solid var(--line-strong);
  border-radius:99em;font-size:.98rem;background:var(--paper);color:var(--ink)}
.capture input::placeholder{color:var(--muted)}
.capture input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--cyan-pale)}
.capture-note{font-size:.84rem;color:var(--muted);margin-top:.7rem}
/* client journey — kept as plain text right under the note, quiet and small,
   answering "then what happens" without competing with the capsules below */
.journey{display:flex;align-items:center;gap:.55rem;margin-top:1.3rem;
  font-size:.92rem;color:var(--ink);flex-wrap:wrap;justify-content:center;font-weight:500}
.journey b{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
  border-radius:50%;background:var(--teal);color:#fff;font-size:.68rem;font-weight:700;margin-right:.3rem}
.journey .jarrow{color:var(--line-strong);font-size:.8rem}

/* FLOATING TOPIC CAPSULES — replaces the pop-in chip row. Five slots, each on
   its own fade cycle, drifting very slightly. Pulled from real broking and
   advice topics so the hero itself demonstrates the range of the library. */
.capsules{position:relative;height:78px;margin-top:1.8rem;max-width:640px;margin-inline:auto}
@media(max-width:480px){.capsules{max-width:100%}}
.capsule{position:absolute;display:inline-flex;align-items:center;gap:.4rem;
  font-size:.86rem;font-weight:500;padding:.5em .95em;border-radius:99em;
  background:var(--paper);color:var(--ink);border:1px solid var(--line);
  box-shadow:0 4px 14px rgba(16,47,56,.08);white-space:nowrap;opacity:0;
  animation:capfloat 8s ease-in-out infinite}
.capsule .e{font-size:.98rem;line-height:1}
@keyframes capfloat{
  0%{opacity:0;transform:translateY(6px) scale(.92)}
  8%{opacity:1;transform:translateY(0) scale(1)}
  46%{opacity:1;transform:translateY(-3px) scale(1)}
  54%{opacity:0;transform:translateY(-8px) scale(.96)}
  100%{opacity:0;transform:translateY(-8px) scale(.96)}
}

/* STATS STRIP — directly under hero, Taka-style */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats-in{padding-block:clamp(20px,2.6vw,30px)}
/* AS SEEN IN — placeholder slots. These ARE placeholders: dashed border and
   grey fill until a real masthead <img> is dropped in (see page.html, look
   for /logos/*.svg). This CSS was missing entirely before, which is exactly
   why it rendered as plain unstyled text. */
.seen{margin-top:clamp(30px,3.6vw,46px);padding-top:1.3rem;border-top:1px solid var(--line)}
.seen-logo{height:32px;min-width:110px;margin-inline:.85rem;flex:none;
  display:grid;place-items:center;padding-inline:.75rem;
  border-radius:9px;background:rgba(16,47,56,.03);border:1px dashed var(--line-strong);
  font-size:.7rem;font-weight:600;letter-spacing:.02em;color:var(--muted);white-space:nowrap}
.seen-logo img{height:100%;width:auto;object-fit:contain;
  filter:grayscale(1) opacity(.65);transition:filter 200ms}
.seen-logo:hover img{filter:none}
/* PLATFORMS section — replaces what used to be a single subtle text link
   under the marquee with an actual section: the four real channel icons,
   plus one clear way through to the page explaining what each one does. */
.platform-row{display:flex;flex-wrap:wrap;gap:clamp(20px,3vw,36px);margin-top:clamp(24px,3vw,36px)}
.platform-item{display:flex;align-items:center;gap:.6rem;font-size:1rem;font-weight:600;color:var(--ink)}
.platform-item img{width:28px;height:28px;object-fit:contain}

.stat b{display:block;font-family:var(--display);font-weight:600;color:var(--navy-text);
  font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1;margin-bottom:.3rem}
.stat span{font-size:.8rem;color:var(--muted)}

/* WEEK VIEW — the primary "what do I get" proof */
.week-row{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.week-row::-webkit-scrollbar{height:5px}
.week-row::-webkit-scrollbar-thumb{background:rgba(16,47,56,.18);border-radius:99em}
.week-day{flex:0 0 clamp(180px,19vw,220px);scroll-snap-align:start}
.week-lbl{font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.55rem;padding-left:.15rem}

/* POST MOCKUP */
.post{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;
  display:flex;flex-direction:column}
.post-hd{display:flex;align-items:center;gap:.5rem;padding:.6rem .7rem}
.pav{width:26px;height:26px;border-radius:50%;background:var(--teal);color:#fff;display:grid;
  place-items:center;font-size:.62rem;font-weight:700;flex:none}
.pnm{font-size:.75rem;font-weight:600;line-height:1.15}
.pmt{font-size:.65rem;color:var(--muted)}
.chan{width:19px;height:19px;border-radius:6px;margin-left:auto;flex:none;display:grid;
  place-items:center;background:rgba(16,47,56,.06);font-size:.48rem;color:var(--muted)}
.chan img{width:100%;height:100%;object-fit:contain}
.pimg{aspect-ratio:4/5;position:relative;overflow:hidden;background:var(--cyan-pale)}
.art{display:block;width:100%;height:100%}
.art .ah{font-family:var(--display);font-weight:600;letter-spacing:-.014em}
.art .af{font-family:var(--display);font-weight:600;letter-spacing:-.03em}
.art .ab{font-family:var(--body)}
.art .al{font-family:var(--body);font-weight:700;letter-spacing:.07em}
.pfoot{padding:.6rem .7rem .75rem}
.pcap{font-size:.73rem;line-height:1.42;color:var(--muted)}
.pcap b{color:var(--ink);font-weight:600}
.photo{width:100%;height:100%;display:flex;flex-direction:column}
.photo-img{flex:1;position:relative;background:var(--cyan-pale);color:rgba(16,47,56,.15)}
.photo-img::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(currentColor 2.2px,transparent 2.4px);background-size:12px 12px}
.photo-img::after{content:attr(data-slot);position:absolute;left:9px;top:8px;font-size:.52rem;
  font-weight:600;color:rgba(16,47,56,.55)}
.photo-img img{position:relative;z-index:2;width:100%;height:100%;object-fit:cover}
.photo-band{background:var(--bp,var(--teal));color:#fff;padding:.7rem .75rem .78rem}
.photo-band .pl{font-size:.52rem;font-weight:700;letter-spacing:.08em;opacity:.8;margin-bottom:.22rem}
.photo-band .ph{font-family:var(--display);font-weight:600;font-size:1rem;line-height:1.08}

/* SOCIAL PROOF */
.stars{display:flex;gap:2px;margin-bottom:.7rem}
.stars svg{width:13px;height:13px;fill:var(--red);flex:none}
.qtext{font-family:var(--display);font-size:clamp(1.02rem,1.4vw,1.14rem);line-height:1.34;margin-bottom:.7rem}
.qattr{font-size:.84rem;color:var(--muted)}
.qattr b{color:var(--ink);font-weight:600}

/* REVIEWS SLIDER — same drag-scroll pattern as the week view, so it scales
   to however many of the ~50 Google reviews you want to paste in; it just
   keeps scrolling instead of needing a grid reflow. */
.q-row{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;cursor:grab}
.q-row.dragging{cursor:grabbing;scroll-snap-type:none}
.q-row.dragging *{user-select:none}
.q-row::-webkit-scrollbar{height:5px}
.q-row::-webkit-scrollbar-thumb{background:rgba(16,47,56,.18);border-radius:99em}
.qcard{flex:0 0 clamp(240px,26vw,300px);scroll-snap-align:start;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.2vw,26px)}

/* GETTING STARTED, step 1 rich mockup — merged in what used to be a
   separate "make it yours" section. Chips stagger in with a fade+rise
   when the step scrolls into view (.reveal.in triggers @keyframes below). */
.tl-card-rich{max-width:420px}
.mk-row{margin-bottom:1rem}
.mk-row:last-of-type{margin-bottom:0}
.mk-row-split{display:flex;gap:1.6rem}
.mk-chips{display:flex;flex-wrap:wrap;gap:6px}
.mk-chip{display:inline-flex;align-items:center;gap:.32rem;font-size:.76rem;font-weight:500;
  padding:.34em .7em;border-radius:99em;background:var(--paper);border:1px solid var(--line);
  color:var(--muted);opacity:0;transform:translateY(5px)}
.reveal.in .mk-chip{animation:mkchip 420ms var(--ease) forwards}
@keyframes mkchip{to{opacity:1;transform:none}}
.mk-chip.on{background:var(--cyan-pale);border-color:var(--teal);color:var(--teal)}
.mk-swatches{display:flex;gap:6px}
.mk-swatches i{width:22px;height:22px;border-radius:7px;display:block;box-shadow:inset 0 0 0 1px rgba(9,3,43,.08)}
.mk-swatches i.on{box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px var(--teal)}
.mk-done{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:var(--teal);
  margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--line);opacity:0}
.reveal.in .mk-done{animation:mkchip 420ms var(--ease) 900ms forwards}
.mk-done svg{width:14px;height:14px;fill:none;stroke:var(--teal);stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round;flex:none}

/* step 2: connected vs pending channel rows */
.tl-tick{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:700;
  letter-spacing:.02em;color:var(--teal)}
.tl-tick svg{width:12px;height:12px;fill:none;stroke:var(--teal);stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round}
.tl-pending{font-size:.68rem;font-weight:700;letter-spacing:.02em;color:var(--red-deep);
  background:var(--red-pale);padding:.25em .6em;border-radius:99em}

/* GETTING STARTED — vertical stage journey. A running line down the left
   connects each numbered stage; each stage carries a small interface
   mockup rather than plain text, so it reads as a process, not a card grid.
   .reveal already handles the per-stage fade/slide-up as it scrolls in. */
.timeline{position:relative;margin-top:clamp(30px,3.8vw,48px);max-width:640px}
.timeline::before{content:"";position:absolute;left:19px;top:12px;bottom:12px;width:2px;
  background:linear-gradient(180deg,var(--red),var(--teal) 50%,var(--cyan))}
.tl-step{position:relative;padding-left:60px;padding-bottom:clamp(34px,4.4vw,52px)}
.tl-step:last-child{padding-bottom:0}
.tl-marker{position:absolute;left:0;top:0;width:40px;height:40px;border-radius:50%;
  background:var(--paper);border:2px solid var(--red);color:var(--red-deep);
  display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:1.05rem;z-index:1}
.tl-body h3{margin-bottom:.35rem}
.tl-body>p{font-size:.95rem;color:var(--muted);margin-bottom:1rem;max-width:44ch}
.tl-card{background:var(--bone);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;max-width:340px}
.tl-lab{font-size:.7rem;font-weight:600;color:var(--muted);margin:0 0 .35rem}
.tl-field{background:var(--paper);border:1px solid var(--line);border-radius:8px;
  padding:.5em .7em;font-size:.82rem;margin-bottom:.75rem}
.tl-chips{display:flex;flex-wrap:wrap;gap:5px}
.tl-chips span{font-size:.72rem;padding:.32em .65em;border-radius:99em;background:var(--paper);
  border:1px solid var(--line);color:var(--muted)}
.tl-chips span.on{background:var(--cyan-pale);border-color:var(--teal);color:var(--teal)}
.tl-row{display:flex;align-items:center;padding:.5em 0;border-bottom:1px solid var(--line);font-size:.85rem}
.tl-row:last-child{border-bottom:0}
.tl-row b{margin-left:auto;font-size:.68rem;font-weight:700;letter-spacing:.03em;color:var(--teal)}
.tl-approve{display:flex;gap:8px}
.tl-approve .btn{flex:1;cursor:default}
.tl-queue{font-size:.7rem;color:var(--muted);text-align:center;margin:.7rem 0 0}

/* STEPS */
.step-row{display:flex;gap:1rem;align-items:flex-start}
.step-num{width:32px;height:32px;border-radius:50%;background:var(--red);color:#fff;
  display:grid;place-items:center;font-size:.86rem;font-weight:600;flex:none}
.step-row h3{margin-bottom:.28rem}
.step-row p{font-size:.94rem;color:var(--muted)}

/* CUSTOMISE — compact list, not a giant configurator */
.custom-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:clamp(22px,2.8vw,34px)}
@media(max-width:700px){.custom-grid{grid-template-columns:1fr}}
.custom-item{background:var(--paper);padding:1.1rem 1.2rem;display:flex;gap:.8rem;align-items:flex-start}
.custom-item .tile{width:36px;height:36px;border-radius:10px;font-size:1.02rem}
.custom-item h4{font-size:.96rem;font-weight:600;margin-bottom:.2rem}
.custom-item p{font-size:.85rem;color:var(--muted)}
/* chips — round everywhere, same radius as hero */
.chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:500;
  padding:.4em .8em;border-radius:99em;background:var(--cyan-pale);color:var(--teal)}

/* IS / ISN'T */
.cmp li{display:flex;gap:.6rem;align-items:flex-start;font-size:.94rem;padding:.35rem 0}
.cmp li svg{width:14px;height:14px;flex:none;margin-top:.26em;fill:none;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round}
.yes li svg{stroke:var(--teal)}
.no li{color:var(--muted)}
.no li svg{stroke:var(--red-deep)}
.cmp h3{margin-bottom:.3rem}
.cmp>p{font-size:.92rem;color:var(--muted);margin-bottom:.9rem}

/* INDUSTRIES */
.ind-img{aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;position:relative;
  background:var(--cyan-pale);color:rgba(16,47,56,.15);margin-bottom:.9rem}
.ind-img::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(currentColor 2.4px,transparent 2.6px);background-size:14px 14px}
.ind-img::after{content:attr(data-slot);position:absolute;left:11px;bottom:9px;font-size:.6rem;
  font-weight:600;color:rgba(16,47,56,.5)}
.ind-tag{position:absolute;left:11px;top:11px;z-index:3}
.ind p{font-size:.92rem;color:var(--muted);margin:.3rem 0 .75rem}
.ind a{font-size:.88rem;font-weight:600;color:var(--teal);border-bottom:1.5px solid var(--cyan);padding-bottom:2px}

/* COST COMPARISON TABLE */
.vs{width:100%;border-collapse:collapse;margin-top:clamp(22px,2.8vw,34px)}
.vs th,.vs td{text-align:left;padding:.85rem .8rem;border-bottom:1px solid var(--line)}
.vs thead th{border-bottom:1.5px solid var(--navy);font-family:var(--display);font-weight:600;font-size:1.1rem}
.vs thead th:first-child{font-family:var(--body);font-size:.76rem;font-weight:600;color:var(--muted)}
.vs tbody th{font-size:.82rem;color:var(--muted);font-weight:500}
.vs td{font-size:.9rem}
.vs .us{background:var(--cyan-pale)}
.vs thead .us{color:var(--teal)}
@media(max-width:680px){
  .vs,.vs tbody,.vs tr,.vs td,.vs th{display:block}
  .vs thead{display:none}
  .vs tr{border-bottom:1.5px solid var(--navy);padding-bottom:.5rem;margin-bottom:.5rem}
  .vs td{border-bottom:0;padding:.2rem .8rem}
  .vs td::before{content:attr(data-l) ": ";font-weight:600;color:var(--muted)}
}

/* PRICING */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,18px);
  margin-top:clamp(22px,2.8vw,36px)}
@media(max-width:860px){.plan-grid{grid-template-columns:1fr}}
.plan{display:flex;flex-direction:column}
.plan.featured{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal);background:linear-gradient(180deg,var(--cyan-pale) 0%,var(--paper) 140px)}
.plan-badge{font-size:.7rem;font-weight:700;letter-spacing:.05em;color:var(--red-deep);margin-bottom:.4rem}
.plan h3{margin-bottom:.25rem}
.plan .desc{font-size:.9rem;color:var(--muted);margin-bottom:1rem}
.plan-price{display:flex;align-items:baseline;gap:.32rem;margin-bottom:.2rem}
.plan-price b{font-family:var(--display);font-weight:600;font-size:clamp(2.1rem,3.2vw,2.6rem);letter-spacing:-.02em}
.plan-price span{font-size:.8rem;color:var(--muted)}
.plan-sub{font-size:.8rem;color:var(--teal);margin-bottom:1.1rem}
.plan ul{display:grid;gap:.42rem;font-size:.9rem;margin-bottom:1.3rem}
.plan li{display:flex;gap:.48rem;align-items:flex-start}
.plan li svg{width:13px;height:13px;flex:none;margin-top:.3em;fill:none;stroke:var(--teal);
  stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.plan .btn{margin-top:auto;width:100%}
.billing-toggle{display:inline-flex;position:relative;background:rgba(16,47,56,.07);
  padding:4px;border-radius:99em}
.billing-track{position:absolute;top:4px;left:4px;height:calc(100% - 8px);background:var(--paper);
  border-radius:99em;box-shadow:0 1px 3px rgba(16,47,56,.14);transition:transform .3s var(--ease),width .3s var(--ease)}
.billing-toggle button{position:relative;z-index:2;font-size:.86rem;font-weight:500;padding:.5em .95em;
  color:var(--muted);border:none;background:none;box-shadow:none;
  -webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}
.billing-toggle button[aria-pressed="true"]{color:var(--ink)}

/* FAQ */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1rem 2.2rem 1.05rem 0;position:relative;
  font-family:var(--display);font-weight:500;font-size:1.1rem;line-height:1.22}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--teal)}
.faq summary::after{content:"";position:absolute;right:2px;top:1.35rem;width:9px;height:9px;
  border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(45deg);
  transition:transform .26s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .ans{padding-bottom:1.05rem;font-size:.94rem;color:var(--muted);max-width:64ch}

/* AUTHOR + DSM TEASER — same .wrap as everything else. Two cards side by
   side: who built this, and the framework it runs on, each linking out to
   more. Sits directly after the full Decision Safety Map band, not buried
   near the bottom of the page. */
.author-solo{max-width:760px;margin-inline:auto}
.author-row{display:flex;gap:clamp(16px,2.2vw,26px);align-items:center;flex-wrap:wrap}
.author-img{width:clamp(84px,10vw,108px);aspect-ratio:1;border-radius:14px;flex:none;
  position:relative;overflow:hidden;background:var(--cyan-pale);color:rgba(16,47,56,.15)}
.author-img::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(currentColor 2.2px,transparent 2.4px);background-size:12px 12px}
.author-img::after{content:attr(data-slot);position:absolute;inset:0;display:grid;place-items:center;
  font-size:.52rem;font-weight:600;color:rgba(16,47,56,.5)}
.author-body{flex:1 1 260px;min-width:0}
.author-name{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--red-deep);margin-bottom:.4rem}
.author-body h3{margin-bottom:.35rem}
.author-body p{font-size:.92rem;color:var(--muted);margin-bottom:.9rem}

/* CTA BAND */
.cta-band{text-align:center}
.cta-band h2{margin-bottom:.9rem}
.cta-band .sub{margin-inline:auto;margin-bottom:1.8rem;max-width:44ch}

/* FOOTER */
.sb-foot{background:#FFFCF8;border-top:1px solid var(--line);padding-block:clamp(44px,5.6vw,76px) 1.6rem}
.foot-top{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,2.8fr);gap:clamp(24px,3.4vw,56px)}
@media(max-width:900px){.foot-top{grid-template-columns:1fr}}
.foot-brand .sb-logo{margin-bottom:.9rem}
.foot-brand p{font-size:.88rem;color:var(--muted);max-width:30ch;margin-bottom:1.1rem}
.fsocs{display:flex;gap:8px}
.fsoc{width:34px;height:34px;border-radius:9px;background:rgba(16,47,56,.05);display:grid;
  place-items:center;transition:background .18s}
.fsoc:hover{background:var(--cyan-pale)}
.fsoc img{width:16px;height:16px;object-fit:contain}
.fsoc span{font-size:.56rem;font-weight:700;color:var(--muted)}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.2vw,28px)}
@media(max-width:700px){.foot-cols{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.foot-cols{grid-template-columns:1fr}}
.fcol h3{font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--teal);margin-bottom:.8rem}
.fcol ul{display:grid;gap:.48rem}
.fcol a{font-size:.88rem;color:var(--ink)}
.fcol a:hover{color:var(--red-deep)}
.foot-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;
  margin-top:clamp(26px,3.4vw,42px);padding-top:1.3rem;border-top:1px solid var(--line)}
.foot-base p{font-size:.8rem;color:var(--muted)}
.foot-base ul{display:flex;gap:1rem}
.foot-base a{font-size:.8rem;color:var(--muted)}
.foot-base a:hover{color:var(--teal)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(12px)}
.js .reveal{transition:opacity .55s var(--ease),transform .55s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
html:not(.js) .reveal{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}
  .reveal{opacity:1!important;transform:none!important}
  /* capfloat's resting keyframe is opacity:0 — without this override every
     capsule would snap to invisible instead of just holding still visible */
  .capsule{animation:none!important;opacity:1!important;transform:none!important}
  /* Same bug, same fix, on the hero photo's topic chips — introduced when
     the hero was rebuilt around the photo, after the capsule fix above was
     already written, so it never got applied here. Without this override
     these are invisible under reduced motion, which is very likely what
     was happening on the actual phone this was reported from. */
  .float-capsules .chip{animation:none!important;opacity:1!important;transform:none!important;position:static!important;display:inline-flex!important;margin:4px 6px 0 0}
  .float-capsules{display:flex!important;flex-wrap:wrap;height:auto!important;background:var(--paper)!important;
    box-shadow:0 10px 28px -8px rgba(9,3,43,.22)!important;padding:.7em .8em!important}
}

/* ===== INNER PAGES: About, Decision Safety Map, Channels, Contact, Insights ===== */
.dsm-detail{position:relative;padding-left:56px}
.dd-num{--nc:#fff;position:absolute;left:0;top:2px;width:40px;height:40px;border-radius:50%;
  background:var(--paper);border:2.5px solid var(--nc);color:var(--nc);display:grid;place-items:center;
  font-family:var(--display);font-weight:600;font-size:1rem}
.dsm-detail h2{margin-bottom:0}
.dsm-detail p b{color:var(--ink);font-weight:600}

.cal-embed{background:var(--paper);border:1.5px dashed var(--line-strong);border-radius:var(--r);
  min-height:340px;display:flex;align-items:center;justify-content:center}

/* ===== HERO REBUILD: two columns, photo + floating UI callouts ===== */
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,4.5vw,64px);
  align-items:center;padding-top:clamp(20px,3vw,36px)}
.hero-copy{text-align:left}
.hero-copy .eyebrow{margin-bottom:1rem}
.hero-copy .h1{margin-bottom:1.1rem}
.hero-copy .sub{max-width:46ch;margin-bottom:2rem}
.hero-actions{justify-content:flex-start}

.hero-photo-wrap{position:relative}
/* This asset is a composed transparent-background graphic — her head
   breaks the frame deliberately and it already carries its own red line
   art. Treating it as a photo-in-a-box (cover-fit into a shadowed
   rectangle) would crop her head off and fight the existing line work.
   It just sits naturally instead, sized to the column, nothing added. */
.hero-photo{position:relative}
.hero-photo img{width:100%;height:auto;display:block}

.float-card{position:absolute;background:var(--paper);border-radius:14px;
  box-shadow:0 10px 28px -8px rgba(9,3,43,.22);padding:.85em 1.1em;z-index:2}

.float-capsules{left:-4%;top:52%;width:210px;height:56px;background:none;box-shadow:none;padding:0}
.float-capsules .chip{position:absolute;display:inline-flex;align-items:center;gap:.35rem;
  font-size:.78rem;font-weight:500;padding:.5em .9em;border-radius:99em;background:var(--paper);
  color:var(--ink);box-shadow:0 8px 20px -6px rgba(9,3,43,.25);white-space:nowrap;opacity:0;
  animation:heroCapFloat 7s ease-in-out infinite}
@keyframes heroCapFloat{
  0%{opacity:0;transform:translateY(6px) scale(.94)}
  10%{opacity:1;transform:translateY(0) scale(1)}
  48%{opacity:1;transform:translateY(-3px) scale(1)}
  58%{opacity:0;transform:translateY(-8px) scale(.96)}
  100%{opacity:0}
}

/* At-a-glance signal that this is social content, not a blog or a
   newsletter — real platform icons, not text, since recognition should be
   instant, before anyone reads a word of copy. */
.float-platforms{left:-4%;top:0%;display:flex;gap:10px;padding:.7em .9em}
.float-platforms img{width:22px;height:22px;object-fit:contain}
.float-colour{right:2%;top:1%;width:160px}
.fc-label{font-size:.72rem;font-weight:600;color:var(--muted);margin-bottom:.55rem}
.fc-swatches{display:flex;gap:7px}
.fc-swatches button{width:24px;height:24px;border-radius:7px;border:none;padding:0;cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(9,3,43,.1);transition:box-shadow .15s,transform .15s}
.fc-swatches button.on{box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px var(--teal)}
.fc-swatches button:hover{transform:scale(1.1)}

.float-approve{right:1%;bottom:2%;display:flex;align-items:center;gap:.5rem;
  font-size:.86rem;font-weight:600;color:var(--ink)}
.fc-tick{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:50%;background:var(--teal);color:#fff;font-size:.72rem;flex:none}

@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .hero-copy{text-align:center}
  .hero-copy .sub{margin-inline:auto}
  .hero-actions{justify-content:center}
  .hero-photo-wrap{max-width:380px;margin-inline:auto}
  .float-capsules{left:-4%}
  /* the desktop position sits level with her head, relying on horizontal
     clearance that a narrower mobile column does not have — pushing it
     down clears her face instead of covering it */
  .float-colour{right:-2%;top:16%}
  .float-approve{right:-2%}
}

/* ============================================================
   SOCIAL BROKER — v5
   Appended to v3. Changes rhythm, hierarchy and one motif.
   Surface rule: white cards on bone, bone cards on white,
   never white on white.
   ============================================================ */

:root{
  --evidence:#0F4F52;
  --authority:#09032B;
  --cut:14px;
  --out:cubic-bezier(.16,.84,.34,1);
  --tint-threat:#FF5468;
  --tint-clarity:#5ED7EA;
  --tint-justify:#7FD8C9;
}

/* ---------- SURFACES --------------------------------------- */
.s-cream{background:var(--bone)}
.s-paper{background:var(--paper)}
.s-cream .card,.s-cream .panel{background:var(--paper)}
.s-paper .card,.s-paper .panel{background:var(--bone)}
.panel{border:1px solid var(--line);padding:clamp(18px,2.2vw,26px);
  border-radius:var(--cut) 0 var(--cut) var(--cut)}

.s-evidence{background:var(--evidence);color:#fff}
.s-evidence h1,.s-evidence h2,.s-evidence h3,.s-evidence h4{color:#fff}
.s-evidence .sub{color:rgba(255,255,255,.78)}
.s-evidence .eyebrow{background:rgba(255,255,255,.14);color:#fff}

.s-authority{position:relative;overflow:hidden;background:var(--authority);color:#fff}
.s-authority h1,.s-authority h2,.s-authority h3,.s-authority h4{color:#fff}
.s-authority .sub{color:rgba(255,255,255,.72)}
.s-authority .eyebrow{background:transparent;color:var(--tint-threat);padding:0}
.s-authority::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 55% at 50% 0%,rgba(54,214,231,.11),transparent 62%)}
.s-authority>*{position:relative;z-index:1}

/* ---------- THE CUT CORNER: buttons, cards, post frames ----- */
.btn,.btn-primary,.btn-sec,.btn-ghost{border-radius:99em 0 99em 99em}
.card,.qcard,.plan,.post,.tl-card,.cal-embed,.artefact,.panel,.ind-panel,
.cost-card,.faq-wrap,.rev{border-radius:var(--cut) 0 var(--cut) var(--cut)}
.pimg,.ind-img,.author-img,.tile{border-radius:10px}
.chip,.eyebrow,.pillar-tags li,.mk-chip,.tl-chips span{border-radius:99em}

/* ---------- ONE MOTION GESTURE ----------------------------- */
.reveal{transform:translateY(12px)}
.js .reveal{transition:opacity .4s var(--out),transform .4s var(--out)}
.stagger>*{transition-delay:0ms}
.stagger>*:nth-child(2){transition-delay:60ms}
.stagger>*:nth-child(3){transition-delay:120ms}
.stagger>*:nth-child(4){transition-delay:180ms}
.stagger>*:nth-child(5){transition-delay:240ms}
.stagger>*:nth-child(6){transition-delay:300ms}

/* ---------- THE MOTIF: the post artwork itself, drifting ---- */
.drift-host{position:relative;isolation:isolate;padding-top:clamp(206px,21vw,272px)}
.drift{position:absolute;left:0;right:0;top:0;height:clamp(190px,19.5vw,250px);
  overflow:hidden;pointer-events:none;z-index:0}
.drift-rail{display:flex;gap:18px;position:absolute;top:0;left:0;width:max-content;
  animation:driftx 68s linear infinite}
.drift-rail.b{animation-duration:92s;animation-direction:reverse}
@keyframes driftx{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.drift-post{width:clamp(146px,15vw,196px);flex:none}
.drift-post .pa{margin:0}
.drift-veil{position:absolute;left:0;right:0;top:0;height:clamp(190px,19.5vw,250px);
  z-index:1;pointer-events:none}
.s-cream .drift-veil{background:linear-gradient(180deg,rgba(255,248,241,.26) 0%,rgba(255,248,241,.66) 52%,var(--bone) 92%)}
.s-paper .drift-veil{background:linear-gradient(180deg,rgba(255,255,255,.26) 0%,rgba(255,255,255,.66) 52%,var(--paper) 92%)}
.s-authority .drift-veil{background:linear-gradient(180deg,rgba(9,3,43,.26) 0%,rgba(9,3,43,.68) 52%,var(--authority) 92%)}
.drift-host>.wrap{position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){.drift-rail{animation:none}}

/* ---------- HERO -------------------------------------------- */
.hero-v6{position:relative;overflow:hidden;background:var(--bone);
  padding-block:clamp(42px,5.4vw,76px) clamp(46px,5.6vw,76px)}
.hero-v6::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(52% 46% at 12% 4%,rgba(54,214,231,.12),transparent 64%)}
.hero-v6>*{position:relative;z-index:1}
.hero-v6-grid{display:grid;grid-template-columns:1.02fr .98fr;
  gap:clamp(28px,4vw,64px);align-items:center}
@media(max-width:960px){.hero-v6-grid{grid-template-columns:1fr;gap:clamp(30px,5vw,42px)}}
.hero-v6 .h1{margin-bottom:1.05rem;max-width:15ch}
.hero-v6 .sub{max-width:45ch;margin-bottom:1.8rem}
.role{color:var(--red);font-weight:600;border-bottom:2px solid rgba(231,29,54,.3);
  white-space:nowrap;transition:opacity .22s ease}
@media(max-width:960px){
  .hero-v6 .hero-copy{text-align:left}
  .hero-v6 .hero-copy .sub{margin-inline:0}
  .hero-v6 .hero-actions{justify-content:flex-start}
}

/* the artefact: a white card on bone, with real controls */
.artefact{background:var(--paper);border:1px solid var(--line);
  box-shadow:0 26px 60px -32px rgba(9,3,43,.42);padding:clamp(15px,1.8vw,20px);
  max-width:432px;margin-inline:auto;width:100%;
  --pbg:#0F4F52;--pin:#FFFFFF;--pac:#7FD8C9}
.ctrl{margin-bottom:.9rem}
.ctrl-lab{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.5rem}
.ind-tabs{display:flex;gap:5px;flex-wrap:wrap}
.ind-tabs button{font-size:.76rem;font-weight:500;padding:.42em .8em;cursor:pointer;
  border:1px solid var(--line-strong);background:var(--paper);color:var(--muted);
  border-radius:99em;transition:all .18s var(--out)}
.ind-tabs button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.sw-row{display:flex;gap:7px}
.sw{width:26px;height:26px;flex:none;border:2px solid transparent;cursor:pointer;padding:0;
  border-radius:7px;box-shadow:inset 0 0 0 1px rgba(9,3,43,.1);transition:box-shadow .18s var(--out)}
.sw[aria-pressed="true"]{box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px var(--navy-text)}
.sw:focus-visible{outline:2px solid var(--navy-text);outline-offset:3px}
.ctrl-row{display:flex;gap:clamp(14px,2vw,26px);flex-wrap:wrap;align-items:flex-start}
.ctrl-row .ctrl{flex:0 0 auto}

.fmt-row{display:flex;gap:1.1rem;margin-top:.85rem;flex-wrap:wrap}
.fmt{font-size:.74rem;font-weight:500;color:var(--muted);background:none;border:none;
  padding:.1rem 0 .3rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .18s var(--out)}
.fmt:hover{color:var(--ink)}
.fmt[aria-pressed="true"]{color:var(--ink);font-weight:600;border-bottom-color:var(--red)}
.artefact-note{display:flex;align-items:center;gap:.5rem;margin-top:.8rem;padding-top:.7rem;
  border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}
.artefact-note svg{width:13px;height:13px;flex:none;fill:none;stroke:var(--evidence);
  stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

/* ---------- POST ARTWORK: four formats, 4:5 ---------------- */
.pa{--pbg:#0F4F52;--pin:#fff;--pac:#7FD8C9;background:var(--pbg);color:var(--pin);
  aspect-ratio:4/5;padding:clamp(14px,1.7vw,20px);display:flex;flex-direction:column;
  border-radius:10px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(16,47,56,.09);
  transition:background .42s var(--out),color .42s var(--out)}
.pa.dark{box-shadow:none}
.pa .k{font-size:.52rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  opacity:.74;margin-bottom:.5rem}
.pa .hd{font-family:var(--display);font-weight:600;letter-spacing:-.022em;
  font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.1}
.pa .big{font-family:var(--display);font-weight:600;letter-spacing:-.04em;
  font-size:clamp(1.9rem,3vw,2.5rem);line-height:.98;color:var(--pac);margin-top:auto}
.pa .subl{font-family:var(--display);font-weight:600;font-size:clamp(.96rem,1.4vw,1.1rem);
  line-height:1.12;letter-spacing:-.02em}
.pa .ft{font-size:.6rem;line-height:1.35;opacity:.76;margin-top:.5rem}
.pa .rows{margin-top:auto;display:grid}
.pa .rw{display:flex;justify-content:space-between;gap:.5rem;font-size:.6rem;
  padding:.36rem 0;border-top:1px solid rgba(0,0,0,.12)}
.pa.dark .rw{border-top-color:rgba(255,255,255,.22)}
.pa .rw b{font-family:var(--display);font-weight:600;font-size:.88rem;color:var(--pac)}
.pa .logo{margin-top:.6rem;font-size:.46rem;font-weight:700;letter-spacing:.12em;opacity:.6}
.pa .shot{flex:1;margin-top:.55rem;border-radius:6px;position:relative;overflow:hidden;
  background:linear-gradient(140deg,rgba(255,255,255,.2),rgba(255,255,255,.05));
  display:grid;place-items:center}
.pa .shot::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.22) 1.6px,transparent 1.8px);
  background-size:11px 11px}
.pa .shot span{position:relative;font-size:.5rem;font-weight:700;letter-spacing:.12em;opacity:.7}
.pa .pbars{margin-top:auto;display:grid;gap:.55rem}
.pa .pb .t{display:flex;justify-content:space-between;align-items:baseline;font-size:.58rem;
  opacity:.75;margin-bottom:.22rem}
.pa .pb .t b{font-family:var(--display);font-weight:600;font-size:1.02rem;opacity:1;letter-spacing:-.03em}
.pa .pb .tr{height:7px;border-radius:2px;background:rgba(255,255,255,.2)}
.pa:not(.dark) .pb .tr{background:rgba(16,47,56,.1)}
.pa .pb .fl{height:100%;border-radius:2px;background:var(--pac)}

/* hero post is bigger, so it gets its own scale */
.artefact .pa{padding:clamp(20px,2.4vw,26px)}
.artefact .pa .k{font-size:.6rem;margin-bottom:.7rem}
.artefact .pa .hd{font-size:clamp(1.4rem,2.3vw,1.8rem)}
.artefact .pa .big{font-size:clamp(2.6rem,4vw,3.3rem)}
.artefact .pa .subl{font-size:clamp(1.14rem,1.8vw,1.35rem)}
.artefact .pa .ft{font-size:.72rem}
.artefact .pa .rw{font-size:.74rem;padding:.5rem 0}
.artefact .pa .rw b{font-size:1.08rem}
.artefact .pa .pb .t{font-size:.72rem}
.artefact .pa .pb .t b{font-size:1.4rem}
.artefact .pa .pb .tr{height:10px}
.artefact .pa .logo{font-size:.54rem}
.artefact .pa .shot span{font-size:.58rem}

/* ---------- PRESS STRIP — full bleed, no heading ----------- */
.seen-rail{display:flex;align-items:center;gap:clamp(18px,3vw,42px);flex-wrap:nowrap;
  overflow-x:auto;scrollbar-width:none;padding-block:clamp(18px,2.2vw,26px)}
.seen-rail::-webkit-scrollbar{display:none}
.seen-rail img{height:26px;width:auto;flex:none;object-fit:contain;
  filter:grayscale(1) opacity(.45);transition:filter .2s var(--out)}
.seen-rail img:hover{filter:none}
.seen-lab{font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);flex:none}

/* ---------- WHERE YOU PUBLISH — teal, centred -------------- */
.chan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);
  border-radius:var(--cut) 0 var(--cut) var(--cut);overflow:hidden;
  margin-top:clamp(26px,3.2vw,42px)}
@media(max-width:860px){.chan-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.chan-grid{grid-template-columns:1fr}}
.chan-cell{background:var(--evidence);padding:clamp(20px,2.4vw,28px);text-align:left}
.chan-cell img{width:26px;height:26px;object-fit:contain;margin-bottom:.9rem;
  filter:brightness(0) invert(1)}
.chan-cell h3{font-size:1.06rem;margin-bottom:.35rem}
.chan-cell p{font-size:.86rem;line-height:1.5;color:rgba(255,255,255,.72)}
.chan-foot{margin-top:clamp(20px,2.4vw,30px);font-size:.88rem;color:rgba(255,255,255,.72)}

/* ---------- INDUSTRIES — recognition, not a card grid ------ */
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,22px);
  margin-top:clamp(24px,3vw,38px)}
@media(max-width:900px){.ind-grid{grid-template-columns:1fr}}
.ind-panel{background:var(--paper);border:1px solid var(--line);overflow:hidden;
  display:flex;flex-direction:column;transition:box-shadow .22s var(--out)}
.ind-panel:hover{box-shadow:0 22px 46px -28px rgba(9,3,43,.4)}
.ind-bar{height:8px;background:var(--ic,#0F4F52)}
.ind-in{padding:clamp(20px,2.4vw,28px);display:flex;flex-direction:column;flex:1}
.ind-eyebrow{font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ic,#0F4F52);margin-bottom:.6rem}
.ind-panel h3{font-size:clamp(1.2rem,1.7vw,1.4rem);margin-bottom:.5rem;max-width:18ch}
.ind-panel>.ind-in>p{font-size:.92rem;color:var(--muted);margin-bottom:1.1rem}
.ind-words{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1.3rem;
  padding-top:1rem;border-top:1px solid var(--line)}
.ind-words span{font-size:.74rem;font-weight:500;padding:.3em .68em;border-radius:99em;
  background:rgba(16,47,56,.045);color:var(--muted)}
.ind-link{margin-top:auto;align-self:flex-start;font-size:.86rem;font-weight:600;
  color:var(--ic,#0F4F52);display:inline-flex;align-items:center;gap:.4rem}
.ind-link:hover{color:var(--red-deep)}
.ind-link i{display:block;width:16px;height:1.5px;background:currentColor;
  transition:width .2s var(--out)}
.ind-link:hover i{width:26px}

/* ---------- REVIEW WALL ------------------------------------ */
.wall{columns:4;column-gap:clamp(12px,1.5vw,18px);margin-top:clamp(24px,3vw,38px)}
@media(max-width:1080px){.wall{columns:3}}
@media(max-width:760px){.wall{columns:2}}
@media(max-width:480px){.wall{columns:1}}
.rev{break-inside:avoid;background:var(--bone);border:1px solid var(--line);
  padding:clamp(15px,1.7vw,19px);margin-bottom:clamp(12px,1.5vw,18px)}
.s-cream .rev{background:var(--paper)}
.rev-stars{display:flex;gap:2px;margin-bottom:.6rem}
.rev-stars svg{width:13px;height:13px;fill:#E8A33D;flex:none}
.rev p{font-size:.88rem;line-height:1.5;color:var(--ink);margin-bottom:.65rem}
.rev .who{font-size:.78rem;color:var(--muted)}
.rev .who b{color:var(--ink);font-weight:600}
.wall-note{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  margin-top:clamp(18px,2.2vw,26px);font-size:.86rem;color:var(--muted)}
.wall-note b{font-family:var(--display);font-weight:600;font-size:1.15rem;color:var(--ink)}

/* ---------- GETTING STARTED — the numbers live here -------- */
.timeline::before{background:var(--evidence);opacity:.25}
.tl-marker{border-color:var(--evidence);color:var(--evidence)}
.s-cream .tl-card{background:var(--paper)}
.step-grid{display:grid;grid-template-columns:1fr auto;gap:clamp(18px,3vw,48px);
  align-items:start}
@media(max-width:820px){.step-grid{grid-template-columns:1fr}}
.step-stat{text-align:right;min-width:120px}
@media(max-width:820px){.step-stat{text-align:left;display:flex;align-items:baseline;gap:.7rem}}
.step-stat b{display:block;font-family:var(--display);font-weight:500;letter-spacing:-.045em;
  font-size:clamp(3rem,5.6vw,4.4rem);line-height:.86;color:var(--navy-text)}
.step-stat span{display:block;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);margin-top:.4rem;max-width:14ch;margin-left:auto}
@media(max-width:820px){.step-stat span{margin-left:0;margin-top:0}}
.payoff{display:flex;align-items:center;gap:clamp(16px,2.4vw,30px);flex-wrap:wrap;
  margin-top:clamp(22px,2.8vw,34px);padding:clamp(20px,2.4vw,28px);
  background:var(--evidence);color:#fff;border-radius:var(--cut) 0 var(--cut) var(--cut)}
.payoff b{font-family:var(--display);font-weight:500;letter-spacing:-.045em;
  font-size:clamp(3rem,5.4vw,4.2rem);line-height:.86;flex:none}
.payoff div{flex:1 1 260px}
.payoff h3{font-size:1.15rem;margin-bottom:.25rem;color:#fff}
.payoff p{font-size:.9rem;color:rgba(255,255,255,.75);margin:0}

/* ---------- DECISION SAFETY MAP — three jobs, ruled -------- */
.jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);
  margin-top:clamp(30px,3.6vw,46px)}
@media(max-width:860px){.jobs{grid-template-columns:1fr}}
.job{padding:clamp(26px,3vw,42px) clamp(20px,2.4vw,34px);
  border-left:1px solid rgba(255,255,255,.18)}
.job:first-child{border-left:0;padding-left:0}
@media(max-width:860px){
  .job{border-left:0;border-top:1px solid rgba(255,255,255,.18);padding-left:0;padding-right:0}
  .job:first-child{border-top:0}
}
.job-top{display:flex;align-items:center;gap:.7rem;margin-bottom:1.5rem}
.job-num{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:50%;
  border:1px solid rgba(255,255,255,.45);font-size:.8rem;font-weight:600;color:#fff}
.job-lab{font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--jt)}
.job h3{font-size:clamp(1.35rem,2vw,1.7rem);margin-bottom:.55rem}
.job>p{font-size:.94rem;line-height:1.55;color:rgba(255,255,255,.62);margin-bottom:1.3rem;max-width:30ch}
.job ul{display:grid;gap:.5rem}
.job li{display:flex;align-items:center;gap:.6rem;font-size:.94rem;color:rgba(255,255,255,.9)}
.job li::before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:var(--jt)}
.jobs-foot{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;
  margin-top:clamp(24px,3vw,38px)}
.jobs-foot .btn{margin-left:auto}
.jobs-foot p{flex:1 1 320px;font-size:.92rem;color:rgba(255,255,255,.6);margin:0;max-width:52ch}

/* ---------- COST — heading above, centred ------------------ */
.cost{position:relative;display:grid;
  grid-template-columns:minmax(120px,1.05fr) 1.15fr 1fr 1fr;align-items:stretch;
  margin-top:clamp(26px,3.2vw,42px)}
.cost-card{grid-column:2;grid-row:1/7;background:var(--bone);
  box-shadow:0 24px 54px -26px rgba(9,3,43,.42);border:1px solid var(--line);
  border-top:3px solid var(--red);margin:-18px -4px;z-index:0}
.cost-cell{padding:.95rem;border-bottom:1px solid var(--line);font-size:.9rem;
  display:flex;align-items:center;position:relative;z-index:1}
.cost-cell.hd{border-bottom:1.5px solid var(--navy);font-family:var(--body);font-weight:600;
  font-size:.98rem;color:var(--navy-text);padding-block:.85rem}
.cost-cell.lab{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted)}
.cost-cell.us{color:var(--ink);font-weight:600}
.cost-cell.us.hd{color:var(--evidence)}
.cost-cell.them{color:rgba(79,105,113,.75);background:rgba(16,47,56,.022)}
.cost-cell.them.hd{font-weight:500}
.cost .c1{grid-column:1}.cost .c2{grid-column:2}.cost .c3{grid-column:3}.cost .c4{grid-column:4}
.cost .r1{grid-row:1}.cost .r2{grid-row:2}.cost .r3{grid-row:3}
.cost .r4{grid-row:4}.cost .r5{grid-row:5}.cost .r6{grid-row:6}
.cost-cta{grid-column:2;grid-row:6;display:flex;justify-content:center;
  padding:1.1rem .9rem 1.2rem;position:relative;z-index:1}
.cost-note{font-size:.78rem;color:var(--muted);margin-top:clamp(24px,2.8vw,34px);text-align:center}
@media(max-width:780px){
  .cost{grid-template-columns:1fr;grid-auto-flow:row}
  .cost-card{display:none}
  .cost .c1,.cost .c2,.cost .c3,.cost .c4{grid-column:1}
  .cost .r1,.cost .r2,.cost .r3,.cost .r4,.cost .r5,.cost .r6{grid-row:auto}
  .cost-cta{grid-column:1;grid-row:auto}
  .cost-cell.hd{display:none}
  .cost-cell.lab{border-bottom:0;padding-bottom:.2rem;margin-top:.7rem}
  .cost-cell::before{content:attr(data-c);font-size:.72rem;font-weight:600;color:var(--muted);
    width:100px;flex:none}
  .cost-cell.lab::before{content:none}
}

/* ---------- PRICING — Signal carries the weight ------------ */
.plan-grid{align-items:stretch}
.plan{background:var(--paper);border:1px solid var(--line);position:relative}
.sig{display:flex;align-items:flex-end;gap:4px;height:24px;margin-bottom:1rem}
.sig i{width:8px;display:block;background:rgba(16,47,56,.13);border-radius:2px;
  height:0;transition:height .55s var(--out)}
.sig i:nth-child(2){transition-delay:90ms}
.sig i:nth-child(3){transition-delay:180ms}
.reveal.in .sig i:nth-child(1){height:34%}
.reveal.in .sig i:nth-child(2){height:66%}
.reveal.in .sig i:nth-child(3){height:100%}
.sig.lv1 i:nth-child(1),.sig.lv2 i:nth-child(-n+2),.sig.lv3 i{background:var(--red)}
.plan-price b{font-size:clamp(2.4rem,3.6vw,3rem)}
.plan-sub{color:var(--muted)}
.plan hr{border:0;border-top:1px solid var(--line);margin:1rem 0}
.plan li::marker{content:""}
.plan.hero-plan{background:var(--authority);border-color:var(--authority);color:#fff;
  box-shadow:0 30px 64px -30px rgba(9,3,43,.6);margin-block:clamp(-14px,-1.4vw,-8px)}
.plan.hero-plan h3,.plan.hero-plan .plan-price b{color:#fff}
.plan.hero-plan .desc,.plan.hero-plan .plan-sub{color:rgba(255,255,255,.66)}
.plan.hero-plan hr{border-top-color:rgba(255,255,255,.2)}
.plan.hero-plan li{color:#fff}
.plan.hero-plan .sig i{background:rgba(255,255,255,.22)}
.plan.hero-plan .sig.lv3 i{background:var(--red)}
.plan.hero-plan .btn{background:#fff;color:var(--authority)}
.plan.hero-plan .btn:link,.plan.hero-plan .btn:visited,.plan.hero-plan .btn:hover{color:var(--authority)}
.plan.hero-plan .btn:hover{background:rgba(255,255,255,.88)}
.plan ul{gap:.55rem}
.plan li{display:flex;gap:.6rem;align-items:flex-start}
.plan li::before{content:"";width:6px;height:6px;flex:none;border-radius:50%;
  background:var(--red);margin-top:.52em}
.plan li svg{display:none}

/* ---------- FAQ -------------------------------------------- */
.faq-wrap{background:var(--bone);border:1px solid var(--line);
  padding:clamp(6px,1vw,14px) clamp(18px,2.2vw,30px);margin-top:clamp(22px,2.6vw,34px)}
.s-cream .faq-wrap{background:var(--paper)}
.faq details{border-bottom:1px solid var(--line)}
.faq details:last-child{border-bottom:0}
.faq summary{list-style:none;cursor:pointer;padding:1.15rem 2.6rem 1.15rem 0;position:relative;
  font-family:var(--display);font-weight:600;font-size:clamp(1.06rem,1.4vw,1.2rem);
  line-height:1.24;color:var(--navy-text);transition:color .18s var(--out)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--red-deep)}
.faq details[open] summary{color:var(--red-deep)}
.faq summary::after{content:"";position:absolute;right:4px;top:1.5rem;width:12px;height:12px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);transition:transform .26s var(--out)}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .ans{padding:0 0 1.2rem;font-size:.95rem;line-height:1.6;color:var(--muted);max-width:64ch}

/* ---------- CLOSE ------------------------------------------ */
.cta-band h2{margin-bottom:.9rem}
.cta-band .sub{margin-inline:auto;margin-bottom:1.8rem;max-width:44ch}
.capture input{border-radius:99em}

/* ============================================================
   v5.1 — hero meta, custom colour, review wall
   ============================================================ */

/* the fifth swatch is a real picker */
.sw-custom{position:relative;display:grid;place-items:center;cursor:pointer;
  background:conic-gradient(from 210deg,#E11B33,#E8A33D,#1D6F4B,#1B93AE,#6C4AB6,#E11B33);
  box-shadow:inset 0 0 0 1px rgba(9,3,43,.14)}
.sw-custom::after{content:"";width:9px;height:9px;border-radius:50%;
  background:var(--paper);box-shadow:0 0 0 1px rgba(9,3,43,.16)}
.sw-custom.on{box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px var(--navy-text)}
.sw-custom.on::after{display:none}
.sw-custom input{position:absolute;inset:0;opacity:0;width:100%;height:100%;
  border:none;padding:0;cursor:pointer}

/* what the post is about, and what it is doing */
.meta-row{display:flex;gap:0;margin-top:.9rem;border-top:1px solid var(--line)}
.meta{flex:1 1 0;padding:.75rem .2rem .2rem;min-width:0}
.meta+.meta{border-left:1px solid var(--line);padding-left:.9rem}
.meta-lab{display:block;font-size:.6rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);margin-bottom:.2rem}
.meta-val{display:block;font-family:var(--display);font-weight:600;font-size:.98rem;
  line-height:1.2;letter-spacing:-.01em;color:var(--navy-text)}
.meta:last-child .meta-val{color:var(--evidence)}

/* review wall — a wall, with an edge */
.wall-frame{position:relative;max-height:clamp(430px,44vw,560px);overflow:hidden;
  margin-top:clamp(24px,3vw,38px)}
.wall-fade{position:absolute;left:0;right:0;bottom:0;height:150px;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,0),var(--paper) 86%)}
.s-cream .wall-fade{background:linear-gradient(180deg,rgba(255,248,241,0),var(--bone) 86%)}
.wall-cta{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;
  margin-top:-14px;position:relative;z-index:2}
.rev-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  margin-bottom:.6rem}
.rev-src{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(79,105,113,.55)}
.rev-lead{background:var(--evidence);border-color:var(--evidence);color:#fff}
.s-paper .rev.rev-lead,.s-cream .rev.rev-lead{background:var(--evidence)}
.rev-lead .rev-score{font-family:var(--display);font-weight:500;letter-spacing:-.04em;
  font-size:clamp(2.8rem,4.4vw,3.6rem);line-height:.9;margin-bottom:.5rem}
.rev-lead p{color:rgba(255,255,255,.82);font-size:.86rem;margin-bottom:0}
.rev-lead .rev-src{color:rgba(255,255,255,.55)}
.rev-lead .rev-stars svg{fill:#fff}

/* industries and the review wall sit back to back — give them air */
#industries{padding-bottom:clamp(60px,7vw,104px)}

/* ============================================================
   v6 — floating hero controls, industries on teal,
   animated steps, annual pricing
   ============================================================ */

/* ---------- HERO STAGE: post first, controls hovering ------ */
.stage{position:relative;padding-left:clamp(0px,14vw,200px)}
.stage-post{max-width:368px;margin-left:auto}
.stage-post .pa{box-shadow:0 30px 70px -34px rgba(9,3,43,.52);border-radius:12px}
.stage .meta-row,.stage .artefact-note{max-width:368px;margin-left:auto}
.stage .artefact-note{border-top:0;padding-top:0;margin-top:.7rem}

.ctrl-card{position:absolute;left:0;top:50%;transform:translateY(-50%);z-index:3;
  width:192px;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:16px 16px 18px;
  box-shadow:0 26px 54px -26px rgba(9,3,43,.44)}
.ctrl-hint{display:inline-flex;align-items:center;gap:.36rem;font-size:.62rem;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--red);background:var(--red-pale);
  padding:.34em .7em;border-radius:99em;margin-bottom:.95rem}
.ctrl-hint svg{width:11px;height:11px;fill:currentColor}
.ctrl-card .ctrl+.ctrl{margin-top:.95rem;padding-top:.95rem;border-top:1px solid var(--line)}
.ctrl-card .ctrl{margin-bottom:0}
.ctrl-card .ind-tabs{flex-direction:column;align-items:stretch;gap:4px}
.ctrl-card .ind-tabs button{text-align:left}
@media(max-width:960px){
  .stage{padding-left:0}
  .stage-post,.stage .meta-row,.stage .artefact-note{max-width:none;margin-left:0}
  .ctrl-card{position:static;transform:none;width:auto;margin-bottom:14px;box-shadow:none}
  .ctrl-card .ind-tabs{flex-direction:row;flex-wrap:wrap}
}

/* ---------- INDUSTRIES ON TEAL ----------------------------- */
.ind-head{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(18px,3vw,54px);
  align-items:end;margin-bottom:clamp(26px,3.2vw,42px)}
@media(max-width:860px){.ind-head{grid-template-columns:1fr;gap:14px}}
.ind-head .sub{margin:0}
.s-evidence .ind-panel{background:var(--paper);border:0;box-shadow:0 22px 48px -30px rgba(3,24,26,.6)}
.s-evidence .ind-panel h3{color:var(--navy-text)}
.s-evidence .ind-panel p{color:var(--muted)}
.s-evidence .ind-panel:hover{box-shadow:0 30px 60px -28px rgba(3,24,26,.72)}
.ind-ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--ic) 10%,transparent);margin-bottom:1rem}
.ind-ico svg{width:26px;height:26px;fill:none;stroke:var(--ic);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.ind-words{gap:5px}
.ind-words span{font-size:.72rem;padding:.28em .62em;background:color-mix(in srgb,var(--ic) 8%,transparent);
  color:var(--muted)}

/* ---------- STEPS, ANIMATED -------------------------------- */
.steps{position:relative;padding-left:clamp(48px,5vw,62px);margin-top:clamp(30px,3.8vw,48px)}
.steps .line{position:absolute;left:clamp(18px,2.3vw,23px);top:10px;bottom:34px;width:2px;
  background:rgba(15,79,82,.14);overflow:hidden}
.steps .line span{display:block;height:100%;background:var(--evidence);
  transform:scaleY(0);transform-origin:top;transition:transform 1.15s cubic-bezier(.4,0,.2,1)}
.steps.run .line span{transform:scaleY(1)}
.step{position:relative;padding-bottom:clamp(28px,3.4vw,46px)}
.step:last-child{padding-bottom:0}
.step-mark{position:absolute;left:calc(clamp(48px,5vw,62px) * -1);top:0;
  width:clamp(36px,4.6vw,46px);height:clamp(36px,4.6vw,46px);border-radius:50%;
  border:2px solid var(--evidence);background:var(--paper);display:grid;place-items:center;
  font-family:var(--display);font-weight:600;font-size:1rem;color:var(--evidence);
  opacity:0;transform:scale(.55);transition:opacity .38s var(--out),transform .38s var(--out)}
.step-body{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(18px,3vw,46px);
  align-items:start;opacity:0;transform:translateY(14px);
  transition:opacity .5s var(--out),transform .5s var(--out)}
.steps.run .step-mark{opacity:1;transform:scale(1)}
.steps.run .step-body{opacity:1;transform:none}
.steps.run .step:nth-child(2) .step-mark{transition-delay:.12s}
.steps.run .step:nth-child(2) .step-body{transition-delay:.2s}
.steps.run .step:nth-child(3) .step-mark{transition-delay:.52s}
.steps.run .step:nth-child(3) .step-body{transition-delay:.6s}
.steps.run .step:nth-child(4) .step-mark{transition-delay:.92s}
.steps.run .step:nth-child(4) .step-body{transition-delay:1s}
.step-body h3{margin-bottom:.3rem}
.step-text p{font-size:.95rem;color:var(--muted);max-width:46ch;margin:0}
@media(max-width:860px){.step-body{grid-template-columns:1fr;gap:16px}}
.step-card{background:var(--bone);border:1px solid var(--line);padding:clamp(15px,1.8vw,20px);border-radius:var(--cut) 0 var(--cut) var(--cut)}
.s-cream .step-card{background:var(--paper)}
.step-lab{font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.7rem}
.steps .chips{display:flex;flex-wrap:wrap;gap:6px}
.steps .chips span{font-size:.76rem;padding:.34em .74em;border-radius:99em;border:1px solid var(--line-strong);
  color:var(--muted);opacity:0;transform:translateY(5px);
  transition:opacity .3s var(--out),transform .3s var(--out),background .3s var(--out),color .3s var(--out)}
.steps.run .chips span{opacity:1;transform:none}
.steps.run .chips span:nth-child(1){transition-delay:.42s}
.steps.run .chips span:nth-child(2){transition-delay:.5s}
.steps.run .chips span:nth-child(3){transition-delay:.58s}
.steps.run .chips span:nth-child(4){transition-delay:.66s}
.steps.run .chips span:nth-child(5){transition-delay:.74s}
.steps.run .chips span:nth-child(6){transition-delay:.82s}
.steps.run .chips span:nth-child(-n+3){background:var(--evidence);border-color:var(--evidence);color:#fff}
.conn{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.52rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.conn:last-child{border-bottom:0}
.conn b{font-size:.78rem;font-weight:600;color:var(--evidence);display:inline-flex;
  align-items:center;gap:.4rem;opacity:0;transform:translateX(6px);
  transition:opacity .3s var(--out),transform .3s var(--out)}
.conn b::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--evidence)}
.steps.run .conn:nth-child(1) b{opacity:1;transform:none;transition-delay:.82s}
.steps.run .conn:nth-child(2) b{opacity:1;transform:none;transition-delay:.96s}
.steps.run .conn:nth-child(3) b{opacity:1;transform:none;transition-delay:1.1s}
.steps.run .conn:nth-child(4) b{opacity:1;transform:none;transition-delay:1.24s}
.approve{display:flex;gap:.6rem;flex-wrap:wrap}
.step-queue{font-size:.78rem;color:var(--muted);margin:.8rem 0 0;text-align:center}

/* ---------- PLATFORMS ON A LIGHT GROUND -------------------- */
.s-cream .chan-grid,.s-paper .chan-grid{background:var(--line);border-color:var(--line)}
.s-cream .chan-cell{background:var(--paper)}
.s-paper .chan-cell{background:var(--bone)}
.s-cream .chan-cell p,.s-paper .chan-cell p{color:var(--muted)}
.s-cream .chan-cell img,.s-paper .chan-cell img{filter:none;width:28px;height:28px}
.s-cream .chan-foot,.s-paper .chan-foot{color:var(--muted)}
.s-cream .chan-foot a,.s-paper .chan-foot a{color:var(--evidence);
  border-bottom:1.5px solid var(--line-strong);padding-bottom:2px}

/* ---------- PRICING: MONTHLY AND ANNUAL -------------------- */
.price-head{display:flex;align-items:flex-end;justify-content:space-between;
  gap:clamp(16px,3vw,40px);flex-wrap:wrap;margin-bottom:clamp(22px,2.6vw,34px)}
.bill-wrap{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.bill-save{font-size:.78rem;font-weight:600;color:var(--evidence);opacity:.55;
  transition:opacity .2s var(--out)}
.billing-toggle button{cursor:pointer;border-radius:99em}
.plan-price b,.plan-sub{transition:opacity .16s var(--out)}
.plan-price b.swap,.plan-sub.swap{opacity:0}

/* ============================================================
   v6.1 — press rail inside the hero, is/isn't on the teal
   ============================================================ */

/* the logo rail shares the hero's ground, so it reads as one band */
.seen-band{margin-top:clamp(30px,4vw,56px);padding-top:clamp(10px,1.4vw,18px);
  border-top:1px solid var(--line)}
.seen-band .seen-rail{padding-block:clamp(10px,1.4vw,16px)}
.hero-v6{padding-bottom:clamp(30px,3.6vw,50px)}

/* what it is, what it is not — on the teal, no cards */
.cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18);
  border-radius:var(--cut) 0 var(--cut) var(--cut);overflow:hidden;
  margin-top:clamp(26px,3.2vw,42px)}
@media(max-width:780px){.cmp-grid{grid-template-columns:1fr}}
.cmp-cell{background:var(--evidence);padding:clamp(22px,2.8vw,36px)}
.cmp-cell h3{color:#fff;margin-bottom:.45rem}
.cmp-cell>p{font-size:.94rem;line-height:1.55;color:rgba(255,255,255,.66);
  margin-bottom:1.4rem;padding-bottom:1.2rem;border-bottom:1px solid rgba(255,255,255,.18)}
.cmp-cell ul{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}
.cmp-cell li{display:flex;align-items:flex-start;gap:.75rem;font-size:.95rem;
  line-height:1.45;color:#fff}
.cmp-cell li svg{width:16px;height:16px;flex:none;margin-top:.2em;fill:none;
  stroke:var(--tint-justify);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.cmp-cell.no li{color:rgba(255,255,255,.62)}
.cmp-cell.no li svg{stroke:var(--tint-threat)}

/* ============================================================
   v6.2 — control reset
   The theme (and Elementor's kit stylesheet) sets background,
   colour and tap-highlight on bare <button> elements, including
   :hover, :focus and :active. That is where the maroon comes from.
   These controls are ours, so every state is declared explicitly
   and nothing is left for a parent theme to fill in.
   ============================================================ */

.ind-tabs button,
.billing-toggle button,
.fmt,
.prof-tabs button,
button.sw,
.mark{
  -webkit-appearance:none !important;
  appearance:none !important;
  -webkit-tap-highlight-color:transparent !important;
  text-shadow:none !important;
  background-image:none !important;
  box-shadow:none;
}

/* industry chips in the hero card */
.ind-tabs button,
.ind-tabs button:hover,
.ind-tabs button:focus,
.ind-tabs button:active,
.ind-tabs button:focus-visible{
  background-color:var(--paper) !important;
  color:var(--muted) !important;
  border:1px solid var(--line-strong) !important;
}
.ind-tabs button:hover{border-color:var(--navy-text) !important;color:var(--ink) !important}
.ind-tabs button[aria-pressed="true"],
.ind-tabs button[aria-pressed="true"]:hover,
.ind-tabs button[aria-pressed="true"]:focus,
.ind-tabs button[aria-pressed="true"]:active{
  background-color:var(--navy) !important;
  border-color:var(--navy) !important;
  color:#fff !important;
}
.ind-tabs button:focus-visible{outline:2px solid var(--navy-text);outline-offset:2px}

/* monthly / annual */
.billing-toggle button,
.billing-toggle button:hover,
.billing-toggle button:focus,
.billing-toggle button:active,
.billing-toggle button:focus-visible{
  background-color:transparent !important;
  border:0 !important;
  color:var(--muted) !important;
}
.billing-toggle button[aria-pressed="true"],
.billing-toggle button[aria-pressed="true"]:hover,
.billing-toggle button[aria-pressed="true"]:focus,
.billing-toggle button[aria-pressed="true"]:active{color:var(--ink) !important}
.billing-toggle button:focus-visible{outline:2px solid var(--navy-text);outline-offset:2px}

/* colour swatches keep their inline background — only the ring changes */
button.sw,button.sw:hover,button.sw:focus,button.sw:active{
  border:2px solid transparent !important;
  box-shadow:inset 0 0 0 1px rgba(9,3,43,.1);
}
button.sw[aria-pressed="true"],
button.sw[aria-pressed="true"]:hover,
button.sw[aria-pressed="true"]:focus,
button.sw[aria-pressed="true"]:active{
  box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px var(--navy-text);
}
.sw-custom,.sw-custom:hover,.sw-custom:focus-within{border:0 !important}
.sw-custom input{background:transparent !important}

/* the FAQ disclosure arrows and any other bare button we add later */
.faq summary::-webkit-details-marker{display:none}

/* ============================================================
   v7 — Decision Safety Map page
   ============================================================ */
.dsm-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(20px,3.4vw,56px);
  align-items:end}
@media(max-width:860px){.dsm-hero{grid-template-columns:1fr;gap:16px}}
.dsm-hero .sub{margin:0}

.route{margin-top:clamp(34px,4.4vw,60px);padding-top:clamp(18px,2.2vw,26px);
  border-top:1px solid var(--line)}
.route-lab{font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:1.1rem}
.route-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;list-style:none;margin:0;padding:0;
  counter-reset:r}
@media(max-width:700px){.route-steps{grid-template-columns:1fr 1fr;gap:18px 0}}
.route-steps li{position:relative;padding-top:24px;counter-increment:r}
.route-steps li::before{content:"";position:absolute;left:0;right:0;top:5px;height:1px;
  background:var(--line-strong)}
.route-steps li::after{content:"";position:absolute;left:0;top:1px;width:9px;height:9px;
  border-radius:50%;background:var(--bone);border:2px solid var(--evidence)}
.route-steps li:last-child::after{background:var(--red);border-color:var(--red)}
.route-steps li span{display:block;font-family:var(--display);font-weight:600;
  font-size:clamp(1rem,1.5vw,1.2rem);letter-spacing:-.015em;color:var(--navy-text)}

.map-head{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(18px,3vw,50px);
  align-items:end;margin-bottom:clamp(28px,3.4vw,44px)}
@media(max-width:860px){.map-head{grid-template-columns:1fr;gap:14px}}
.map-head .sub{margin:0}

#map .terr{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,34px)}
@media(max-width:860px){#map .terr{grid-template-columns:1fr;gap:26px}}
#map .terr-col{border-top:2px solid var(--tint);padding-top:1rem}
#map .terr-col .marks{display:grid;gap:6px}
#map .mark{text-align:left}

.detail{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(22px,3.4vw,56px);
  align-items:start;margin-top:clamp(30px,3.8vw,52px);padding-top:clamp(26px,3.2vw,42px);
  border-top:1px solid rgba(255,255,255,.18)}
@media(max-width:860px){.detail{grid-template-columns:1fr;gap:26px}}
.detail-lab{font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--tint,#7FD8C9);margin-bottom:.6rem}
.detail-text h3{font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:.8rem}
.detail-what{font-size:1rem;line-height:1.6;color:rgba(255,255,255,.7);margin-bottom:1.6rem;max-width:58ch}
.detail-ex-lab{font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.42);margin-bottom:.5rem}
.detail-ex{font-family:var(--display);font-weight:500;font-size:clamp(1.1rem,1.7vw,1.35rem);
  line-height:1.35;color:#fff;padding-left:1rem;border-left:2px solid var(--tint,#7FD8C9);max-width:46ch}
.detail-card .pa{max-width:300px;box-shadow:0 26px 58px -28px rgba(0,0,0,.7)}
.detail-cap{font-size:.74rem;color:rgba(255,255,255,.45);margin:.8rem 0 0;max-width:300px;text-align:center}

.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18);
  border-radius:var(--cut) 0 var(--cut) var(--cut);overflow:hidden}
@media(max-width:780px){.facts{grid-template-columns:1fr}}
.fact{background:var(--evidence);padding:clamp(22px,2.8vw,34px)}
.fact b{display:block;font-family:var(--display);font-weight:500;letter-spacing:-.045em;
  font-size:clamp(3rem,5.4vw,4.2rem);line-height:.88;color:#fff;margin-bottom:.8rem}
.fact p{font-size:.94rem;line-height:1.55;color:rgba(255,255,255,.72);margin:0}

/* ---------- territory columns and landmark buttons --------- */
.terr-lab{font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--tint);margin-bottom:.4rem}
.terr-col h3{font-size:clamp(1.1rem,1.6vw,1.3rem);margin-bottom:.2rem}
.terr-col>p{font-size:.86rem;color:rgba(255,255,255,.58);margin-bottom:1rem}
.marks{display:flex;flex-wrap:wrap;gap:6px}

.mark,
.mark:hover,
.mark:focus,
.mark:active,
.mark:focus-visible{
  font-family:var(--body) !important;
  font-size:.82rem;font-weight:500;padding:.5em .9em;cursor:pointer;
  border-radius:99em !important;
  background-color:transparent !important;
  border:1px solid rgba(255,255,255,.24) !important;
  color:rgba(255,255,255,.82) !important;
  transition:background-color .18s var(--out),color .18s var(--out),border-color .18s var(--out);
}
.mark:hover{border-color:var(--tint) !important;color:#fff !important}
.mark[aria-pressed="true"],
.mark[aria-pressed="true"]:hover,
.mark[aria-pressed="true"]:focus,
.mark[aria-pressed="true"]:active{
  background-color:var(--tint) !important;
  border-color:var(--tint) !important;
  color:#0B0730 !important;
  font-weight:600;
}
.mark:focus-visible{outline:2px solid var(--tint);outline-offset:2px}

/* ============================================================
   v8 — inner pages: value props, format grid, aggregator band,
   and the wider comparison table
   ============================================================ */

/* three numbered value props */
.props{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,34px);
  margin-top:clamp(34px,4.2vw,58px);padding-top:clamp(22px,2.6vw,32px);
  border-top:1px solid var(--line)}
@media(max-width:860px){.props{grid-template-columns:1fr;gap:22px}}
.prop-num{font-family:var(--display);font-weight:500;font-size:1.5rem;line-height:1;
  letter-spacing:-.03em;color:var(--red);margin-bottom:.7rem}
.prop h3{font-size:clamp(1.06rem,1.5vw,1.2rem);margin-bottom:.4rem;max-width:20ch}
.prop p{font-size:.92rem;line-height:1.55;color:var(--muted);margin:0;max-width:40ch}

/* the layout gallery */
.fmt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,20px);
  margin-top:clamp(24px,3vw,38px)}
@media(max-width:960px){.fmt-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.fmt-grid{grid-template-columns:1fr}}
.fmt-tier{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin-bottom:.6rem}
.s-cream .fmt-tier,.s-paper .fmt-tier{color:var(--muted)}
.fmt-cell .pa{box-shadow:0 20px 44px -26px rgba(9,3,43,.5)}
.fmt-label{font-family:var(--display);font-weight:600;font-size:.98rem;letter-spacing:-.01em;
  margin:.75rem 0 0;color:#fff}
.s-cream .fmt-label,.s-paper .fmt-label{color:var(--navy-text)}

/* aggregator band */
.agg{display:flex;align-items:center;justify-content:space-between;gap:clamp(20px,3vw,48px);
  flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:clamp(24px,3vw,40px)}
.s-paper .agg{background:var(--bone)}
.agg .sub{margin:0}
.agg .btn{flex:none}

/* pricing page: five-row comparison needs the wider grid */
.compare{grid-template-columns:minmax(130px,1.1fr) 1fr 1fr 1.15fr}
.compare .cost-card{grid-column:4;grid-row:1/10}
.compare .cost-cta{grid-column:4;grid-row:9}
.compare .r7{grid-row:7}.compare .r8{grid-row:8}
@media(max-width:780px){
  .compare{grid-template-columns:1fr}
  .compare .cost-card{display:none}
  .compare .cost-cta{grid-column:1;grid-row:auto}
  .compare .r7,.compare .r8{grid-row:auto}
}
.plan-foot{font-size:.82rem;color:var(--muted);text-align:center;
  margin-top:clamp(20px,2.4vw,30px)}

/* ============================================================
   v9 — About page
   ============================================================ */
.founder-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,64px);
  align-items:start;margin-top:clamp(10px,1.4vw,18px)}
@media(max-width:860px){.founder-grid{grid-template-columns:1fr;gap:26px}}
.founder-photo{position:relative}
.founder-photo img{position:relative;z-index:1;display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;
  border-radius:var(--cut) 0 var(--cut) var(--cut);
  box-shadow:0 30px 64px -32px rgba(9,3,43,.5)}
.founder-photo::after{content:"";position:absolute;left:-14px;bottom:-14px;width:56%;height:46%;
  border-left:2px solid var(--red);border-bottom:2px solid var(--red);z-index:0;
  border-radius:0 0 0 var(--cut)}
.founder-body h2{margin-bottom:.25rem}
.founder-role{font-size:.84rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--evidence);margin-bottom:1.4rem}
.founder-body p{font-size:1rem;line-height:1.65;color:var(--muted);margin-bottom:1rem;max-width:58ch}
.founder-body p a{color:var(--evidence);border-bottom:1.5px solid var(--line-strong);padding-bottom:1px}
.founder-body p a:hover{color:var(--red-deep);border-bottom-color:var(--red)}
.founder-links{display:flex;flex-direction:column;gap:.7rem;margin-top:1.6rem;
  padding-top:1.4rem;border-top:1px solid var(--line)}
.founder-link{display:inline-flex;align-items:center;gap:.6rem;align-self:flex-start;
  font-size:.95rem;font-weight:600;color:var(--navy-text);
  border-bottom:2px solid var(--red);padding-bottom:3px}
.founder-link:hover{color:var(--red-deep)}
.founder-link svg{width:17px;height:17px;flex:none;fill:none;stroke:var(--red);
  stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

.cell-num{font-family:var(--display);font-weight:500;font-size:1.4rem;line-height:1;
  letter-spacing:-.03em;color:rgba(255,255,255,.45);margin-bottom:.9rem}

.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,38px);
  margin-top:clamp(26px,3.2vw,42px)}
@media(max-width:900px){.spec-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.spec-grid{grid-template-columns:1fr}}
.spec{padding-top:1rem;border-top:2px solid var(--evidence)}
.spec:nth-child(3n+2){border-top-color:var(--cyan,#1B93AE)}
.spec:nth-child(3n){border-top-color:var(--red)}
.spec h3{font-size:clamp(1.06rem,1.5vw,1.2rem);margin-bottom:.35rem}
.spec p{font-size:.92rem;line-height:1.55;color:var(--muted);margin:0}
.spec p a{color:var(--evidence);border-bottom:1.5px solid var(--line-strong);padding-bottom:1px}

.fit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);overflow:hidden;
  margin-top:clamp(24px,3vw,38px)}
@media(max-width:900px){.fit-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.fit-grid{grid-template-columns:1fr}}
.fit{background:var(--bone);padding:clamp(20px,2.4vw,30px)}
.s-cream .fit{background:var(--paper)}
.fit-lab{font-family:var(--display);font-weight:600;font-size:1.06rem;letter-spacing:-.015em;
  color:var(--navy-text);margin-bottom:.6rem;padding-bottom:.6rem;
  border-bottom:1px solid var(--line)}
.fit p{font-size:.92rem;line-height:1.55;color:var(--muted);margin:0}

/* ============================================================
   v10 — industry pages
   ============================================================ */
.words-wall{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(22px,2.8vw,36px)}
.words-wall span{font-size:.88rem;font-weight:500;padding:.46em .95em;border-radius:99em;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff}
.s-cream .words-wall span,.s-paper .words-wall span{background:rgba(16,47,56,.045);
  border-color:var(--line);color:var(--muted)}

.quote-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px);
  margin-top:clamp(26px,3.2vw,42px)}
@media(max-width:860px){.quote-row{grid-template-columns:1fr}}
.quote{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:clamp(20px,2.4vw,28px)}
.q-stars{display:flex;gap:2px;margin-bottom:.8rem}
.q-stars svg{width:14px;height:14px;fill:#E8A33D;flex:none}
.quote>p{font-size:.98rem;line-height:1.55;color:#fff;margin-bottom:.9rem}
.q-who{font-size:.84rem;color:rgba(255,255,255,.6);margin:0}
.q-who b{color:#fff;font-weight:600}

.close-links{font-size:.88rem;color:var(--muted);margin-top:clamp(22px,2.6vw,32px)}
.close-links a{color:var(--evidence);border-bottom:1.5px solid var(--line-strong);padding-bottom:1px}
.close-links a:hover{color:var(--red-deep);border-bottom-color:var(--red)}

/* ============================================================
   v11 — channels, contact, booking, insights, legal
   ============================================================ */

/* ---- channels: alternating detail rows -------------------- */
.chan-rows{display:grid;gap:clamp(26px,3.4vw,52px);margin-top:clamp(26px,3.2vw,42px)}
.chan-row{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(22px,3.4vw,54px);
  align-items:center;padding-top:clamp(22px,2.8vw,36px);border-top:2px solid var(--ic)}
.chan-row.flip .chan-row-body{order:2}
.chan-row.flip .chan-row-card{order:1}
@media(max-width:860px){
  .chan-row{grid-template-columns:1fr;gap:22px}
  .chan-row.flip .chan-row-body{order:1}
  .chan-row.flip .chan-row-card{order:2}
}
.chan-row-top{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem}
.chan-ico{width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:12px;
  background:color-mix(in srgb,var(--ic) 10%,transparent)}
.chan-ico img{width:24px;height:24px;object-fit:contain}
.chan-row h3{font-size:clamp(1.2rem,1.8vw,1.45rem);margin:0}
.chan-job{font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--ic);margin:.2rem 0 0}
.chan-body{font-size:1rem;line-height:1.62;color:var(--muted);margin-bottom:1.3rem;max-width:58ch}
.chan-facts{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,26px);margin:0;
  padding-top:1.1rem;border-top:1px solid var(--line)}
@media(max-width:600px){.chan-facts{grid-template-columns:1fr;gap:14px}}
.chan-facts dt{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.35rem}
.chan-facts dd{font-size:.92rem;line-height:1.5;color:var(--ink);margin:0}
.chan-row-card .pa{max-width:300px;margin-inline:auto;
  box-shadow:0 26px 56px -30px rgba(9,3,43,.5)}

/* ---- contact and booking ---------------------------------- */
.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,22px);
  margin-top:clamp(30px,3.6vw,50px)}
@media(max-width:820px){.routes{grid-template-columns:1fr}}
.route-card{display:block;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:clamp(18px,2.2vw,26px);
  transition:box-shadow .2s var(--out),transform .2s var(--out)}
.route-card:hover{box-shadow:0 22px 46px -28px rgba(9,3,43,.4);transform:translateY(-2px)}
.route-lab2{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--red);margin-bottom:.6rem}
.route-val{font-family:var(--display);font-weight:600;font-size:1.1rem;letter-spacing:-.015em;
  color:var(--navy-text);margin:0 0 .3rem;word-break:break-word}
.route-note{font-size:.86rem;color:var(--muted);margin:0}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:start}
@media(max-width:860px){.form-grid{grid-template-columns:1fr;gap:28px}}
.form-points{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:.7rem}
.form-points li{display:flex;align-items:flex-start;gap:.7rem;font-size:.94rem;color:var(--ink)}
.form-points svg{width:16px;height:16px;flex:none;margin-top:.2em;fill:none;stroke:var(--evidence);
  stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.form-card{background:var(--bone);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:clamp(20px,2.6vw,30px)}
.s-cream .form-card{background:var(--paper)}
.sb-form{display:grid;gap:1rem}
.field label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:.95rem;
  padding:.72em .9em;background:var(--paper);color:var(--ink);
  border:1px solid var(--line-strong);border-radius:10px;transition:border-color .16s var(--out)}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;
  border-color:var(--evidence);box-shadow:0 0 0 3px rgba(15,79,82,.12)}
.sb-form .btn{justify-self:start}
.form-note{font-size:.8rem;color:var(--muted);margin:0}
.form-note.warn{color:var(--red-deep);font-weight:600}
.form-embed,.cal-frame{width:100%;min-height:620px;border:0;display:block;border-radius:10px}

.cal-fallback{text-align:center;padding:clamp(24px,3.4vw,44px) clamp(14px,2vw,24px)}
.cal-fallback-top{display:flex;align-items:center;justify-content:center;gap:.6rem;
  margin-bottom:1rem}
.cal-fallback-top p{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:0}
.cal-dot{width:8px;height:8px;border-radius:50%;background:var(--evidence);
  animation:calpulse 1.6s ease-in-out infinite}
@keyframes calpulse{0%,100%{opacity:.25}50%{opacity:1}}
.cal-fallback-note{font-size:.92rem;line-height:1.55;color:var(--muted);max-width:38ch;
  margin:0 auto 1.4rem}
.cal-fallback-note a{color:var(--evidence);border-bottom:1.5px solid var(--line-strong)}

/* ---- insights --------------------------------------------- */
.news-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center}
@media(max-width:860px){.news-grid{grid-template-columns:1fr;gap:26px}}
.news-card{background:var(--paper);border-radius:var(--cut) 0 var(--cut) var(--cut);
  padding:clamp(22px,2.8vw,32px);box-shadow:0 26px 56px -30px rgba(3,24,26,.6)}
.news-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-bottom:.9rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}
.news-lab{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--red)}
.news-time{font-size:.78rem;color:var(--muted)}
.news-card h3{color:var(--navy-text);font-size:clamp(1.2rem,1.8vw,1.45rem);margin-bottom:.6rem}
.news-card p{font-size:.94rem;line-height:1.6;color:var(--muted);margin-bottom:1.2rem}
.news-foot{display:flex;flex-wrap:wrap;gap:6px}
.news-tag{font-size:.74rem;font-weight:500;padding:.3em .7em;border-radius:99em;
  background:rgba(16,47,56,.06);color:var(--muted)}

/* ---- legal ------------------------------------------------- */
.legal-meta{font-size:.86rem;color:var(--muted);margin-top:1rem}
.legal-grid{display:grid;grid-template-columns:230px 1fr;gap:clamp(24px,4vw,68px);align-items:start}
@media(max-width:900px){.legal-grid{grid-template-columns:1fr;gap:26px}}
.legal-nav{position:sticky;top:calc(var(--hh,72px) + 20px)}
@media(max-width:900px){.legal-nav{position:static}}
.legal-nav-lab{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.8rem}
.legal-nav ol{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;counter-reset:l}
.legal-nav li{counter-increment:l}
.legal-nav a{display:flex;gap:.6rem;font-size:.88rem;line-height:1.4;color:var(--muted);
  padding-left:.8rem;border-left:2px solid var(--line)}
.legal-nav a::before{content:counter(l) "."; color:var(--line-strong);font-weight:600;flex:none}
.legal-nav a:hover{color:var(--navy-text);border-left-color:var(--red)}
.legal-body{max-width:68ch}
.legal-intro{font-size:1.06rem;line-height:1.65;color:var(--ink);padding-bottom:1.6rem;
  margin-bottom:1.6rem;border-bottom:1px solid var(--line)}
.legal-s{margin-bottom:clamp(24px,3vw,38px);scroll-margin-top:110px}
.legal-s h2{margin-bottom:.6rem}
.legal-s p{font-size:.98rem;line-height:1.7;color:var(--muted);margin-bottom:.9rem}
.legal-s a{color:var(--evidence);border-bottom:1.5px solid var(--line-strong);padding-bottom:1px}
.legal-s ul{margin:0 0 1rem 1.1rem;padding:0}
.legal-s li{font-size:.98rem;line-height:1.7;color:var(--muted);margin-bottom:.4rem}

/* ============================================================
   v12 — onboarding form
   ============================================================ */
.onb-hero{padding-bottom:clamp(26px,3.2vw,44px)}
.onb-head{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(22px,3.4vw,56px);
  align-items:end}
@media(max-width:900px){.onb-head{grid-template-columns:1fr;gap:24px}}
.onb-steps{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem}
.onb-dot{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;font-weight:500;
  color:var(--muted);transition:color .2s var(--out)}
.onb-dot i{width:9px;height:9px;flex:none;border-radius:50%;background:transparent;
  box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:all .2s var(--out)}
.onb-dot.done i{background:var(--evidence);box-shadow:none}
.onb-dot.done{color:var(--evidence)}
.onb-dot.now i{background:var(--red);box-shadow:0 0 0 3px rgba(231,29,54,.18)}
.onb-dot.now{color:var(--navy-text);font-weight:600}

.onb{max-width:820px}
.onb-step{border:0;margin:0;padding:0}
.onb-legend{display:flex;align-items:baseline;gap:.8rem;font-family:var(--display);
  font-weight:600;font-size:clamp(1.45rem,2.4vw,2rem);letter-spacing:-.022em;
  color:var(--navy-text);margin-bottom:.5rem;padding:0}
.onb-legend span{font-size:.82rem;font-weight:700;letter-spacing:.1em;color:var(--red);
  font-family:var(--body)}
.onb-intro{font-size:.98rem;line-height:1.6;color:var(--muted);max-width:56ch;
  margin-bottom:clamp(20px,2.4vw,30px)}
.onb-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,22px);
  margin-bottom:1.4rem}
@media(max-width:640px){.onb-grid{grid-template-columns:1fr}}
.onb-grid .span2{grid-column:1/-1}
.onb .field{margin-bottom:1.4rem}
.onb .field label em{font-style:normal;color:var(--red);margin-left:.3em;
  font-size:.66rem;letter-spacing:.08em}
.hint{font-size:.82rem;line-height:1.5;color:var(--muted);margin:.45rem 0 0}

/* option buttons */
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opt-grid.tight{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.opt-grid.chips{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.opt-list{display:grid;gap:8px}
@media(max-width:640px){.opt-grid{grid-template-columns:1fr}}
.opt,.opt:hover,.opt:focus,.opt:active{
  display:flex;align-items:flex-start;gap:.7rem;text-align:left;cursor:pointer;
  font:inherit;font-size:.9rem;line-height:1.45;padding:.8em .95em;
  background-color:var(--paper) !important;color:var(--ink) !important;
  border:1px solid var(--line-strong) !important;border-radius:10px !important;
  transition:border-color .16s var(--out),background-color .16s var(--out)}
.s-paper .opt,.s-paper .opt:hover{background-color:var(--bone) !important}
.opt:hover{border-color:var(--navy-text) !important}
.opt-box{width:17px;height:17px;flex:none;margin-top:.12em;border-radius:5px;
  border:1.5px solid var(--line-strong);position:relative;transition:all .16s var(--out)}
.opt-box::after{content:"";position:absolute;left:4px;top:.5px;width:5px;height:10px;
  border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg) scale(0);
  transition:transform .16s var(--out)}
.opt[aria-pressed="true"]{border-color:var(--evidence) !important;
  background-color:rgba(15,79,82,.05) !important}
.opt[aria-pressed="true"] .opt-box{background:var(--evidence);border-color:var(--evidence)}
.opt[aria-pressed="true"] .opt-box::after{transform:rotate(45deg) scale(1)}
.opt:focus-visible{outline:2px solid var(--navy-text);outline-offset:2px}
.onb-count{font-size:.86rem;color:var(--muted);margin-top:1rem}
.onb-count b{font-family:var(--display);font-size:1.3rem;color:var(--navy-text);
  letter-spacing:-.02em;margin-right:.3rem}

/* tier cards */
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,18px)}
@media(max-width:760px){.tier-grid{grid-template-columns:1fr}}
.tier,.tier:hover,.tier:focus,.tier:active{display:flex;flex-direction:column;text-align:left;
  cursor:pointer;font:inherit;padding:clamp(16px,2vw,22px);
  background-color:var(--bone) !important;border:1px solid var(--line-strong) !important;
  border-radius:var(--cut) 0 var(--cut) var(--cut) !important;
  transition:border-color .16s var(--out),box-shadow .16s var(--out)}
.tier:hover{border-color:var(--navy-text) !important}
.tier[aria-pressed="true"]{border-color:var(--evidence) !important;
  box-shadow:0 0 0 2px var(--evidence),0 20px 40px -26px rgba(9,3,43,.4)}
.tier .sig{margin-bottom:.9rem}
.tier .sig i{height:auto}
.tier .sig i:nth-child(1){height:34%}
.tier .sig i:nth-child(2){height:66%}
.tier .sig i:nth-child(3){height:100%}
.tier-name{font-family:var(--display);font-weight:600;font-size:1.3rem;letter-spacing:-.02em;
  color:var(--navy-text);margin-bottom:.3rem}
.tier-price{font-family:var(--display);font-weight:600;font-size:1.7rem;letter-spacing:-.035em;
  color:var(--evidence);display:flex;align-items:baseline;gap:.5rem;margin-bottom:.7rem}
.tier-price em{font-family:var(--body);font-style:normal;font-size:.72rem;font-weight:500;
  letter-spacing:0;color:var(--muted)}
.tier-blurb{font-size:.88rem;line-height:1.5;color:var(--muted)}

/* tone cards */
.tone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:820px){.tone-grid{grid-template-columns:1fr}}
.tone,.tone:hover,.tone:focus,.tone:active{display:flex;flex-direction:column;gap:.6rem;
  text-align:left;cursor:pointer;font:inherit;padding:clamp(15px,1.8vw,20px);
  background-color:var(--bone) !important;border:1px solid var(--line-strong) !important;
  border-radius:10px !important;transition:all .16s var(--out)}
.tone:hover{border-color:var(--navy-text) !important}
.tone[aria-pressed="true"]{border-color:var(--evidence) !important;
  background-color:rgba(15,79,82,.05) !important;box-shadow:0 0 0 1px var(--evidence)}
.tone-name{font-size:.86rem;font-weight:600;color:var(--navy-text)}
.tone-eg{font-family:var(--display);font-size:.96rem;line-height:1.35;color:var(--muted);
  padding-left:.7rem;border-left:2px solid var(--line-strong)}
.tone[aria-pressed="true"] .tone-eg{border-left-color:var(--evidence);color:var(--ink)}

/* colour + preview */
.brand-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.brand-pick .sw-row{gap:7px}
.hex-input{width:110px;font:inherit;font-size:.9rem;padding:.5em .7em;text-transform:uppercase;
  border:1px solid var(--line-strong);border-radius:8px;background:var(--paper);color:var(--ink)}
.brand-preview{max-width:300px;margin:1.6rem auto 0}
.onb-preview-card .pa{box-shadow:0 24px 52px -28px rgba(9,3,43,.45)}

/* review */
.review{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);overflow:hidden}
.rev-line,.rev-line:hover,.rev-line:focus,.rev-line:active{display:flex;align-items:baseline;
  gap:1rem;width:100%;text-align:left;cursor:pointer;font:inherit;padding:.9rem 1.1rem;
  background-color:var(--bone) !important;border:0 !important;border-radius:0 !important;
  transition:background-color .16s var(--out)}
.rev-line:hover{background-color:rgba(15,79,82,.05) !important}
.rev-lab{flex:0 0 130px;font-size:.72rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted)}
.rev-val{flex:1;font-size:.94rem;color:var(--ink);display:flex;align-items:center;gap:.5rem}
.rev-val em{color:var(--muted);font-style:normal}
.rev-sw{width:15px;height:15px;border-radius:4px;flex:none;
  box-shadow:inset 0 0 0 1px rgba(9,3,43,.15)}

/* nav */
.onb-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-top:clamp(26px,3.2vw,42px);padding-top:clamp(20px,2.4vw,30px);
  border-top:1px solid var(--line)}
.onb-nav-right{display:flex;align-items:center;gap:1rem;margin-left:auto;flex-wrap:wrap}
.onb-err{font-size:.88rem;font-weight:600;color:var(--red-deep);margin:0;max-width:40ch}
.onb-err.shake{animation:onbshake .32s ease}
@keyframes onbshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}
  75%{transform:translateX(4px)}}

/* done */
.onb-done{max-width:640px;margin-inline:auto;text-align:center}
.done-mark{width:62px;height:62px;margin:0 auto 1.4rem;border-radius:50%;display:grid;
  place-items:center;background:var(--evidence)}
.done-mark svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round}
.done-steps{list-style:none;margin:clamp(26px,3vw,40px) 0 0;padding:0;display:grid;gap:1px;
  background:var(--line);border:1px solid var(--line);text-align:left;
  border-radius:var(--cut) 0 var(--cut) var(--cut);overflow:hidden}
.done-steps li{display:flex;gap:1rem;background:var(--bone);padding:clamp(16px,2vw,22px)}
.done-num{width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;
  border:1.5px solid var(--evidence);color:var(--evidence);font-family:var(--display);
  font-weight:600;font-size:.86rem}
.done-steps h3{font-size:1.06rem;margin-bottom:.2rem}
.done-steps p{font-size:.92rem;line-height:1.55;color:var(--muted);margin:0}

/* the Back button and the step panels rely on [hidden]; .btn sets display,
   so the attribute needs to win */
[hidden]{display:none !important}
.hex-input{flex:0 0 110px}

/* ============================================================
   v13 — booking confirmation
   ============================================================ */
.conf-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,64px);align-items:center}
@media(max-width:860px){.conf-grid{grid-template-columns:1fr;gap:28px}}
.conf-mark{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:var(--evidence);margin-bottom:1.3rem;
  animation:confpop .5s cubic-bezier(.2,1.4,.4,1) both}
.conf-mark svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:2.8;
  stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;
  animation:confdraw .45s .3s var(--out) forwards}
@keyframes confpop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes confdraw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.conf-mark,.conf-mark svg{animation:none;stroke-dashoffset:0}}

.conf-card{background:var(--paper);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:clamp(20px,2.6vw,30px);
  box-shadow:0 26px 56px -32px rgba(9,3,43,.42)}
.conf-card-lab{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--red);margin-bottom:.9rem}
.conf-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.conf-row span{color:var(--muted)}
.conf-row b{font-weight:600;color:var(--navy-text);text-align:right}
.conf-card-note{font-size:.84rem;line-height:1.5;color:var(--muted);margin:1rem 0 0}
.conf-card-note a{color:var(--evidence);border-bottom:1.5px solid var(--line-strong)}

/* first stage of the route shows as already done */
.route-steps.done-first li:first-child::after{background:var(--evidence);border-color:var(--evidence)}
.route-steps.done-first li:first-child span{color:var(--evidence)}

.prep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,22px)}
@media(max-width:860px){.prep-grid{grid-template-columns:1fr}}
.prep{display:flex;flex-direction:column;background:var(--bone);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:clamp(20px,2.4vw,28px);
  transition:box-shadow .2s var(--out),transform .2s var(--out)}
.prep:hover{box-shadow:0 22px 46px -28px rgba(9,3,43,.4);transform:translateY(-2px)}
.prep-num{font-family:var(--display);font-weight:500;font-size:1.4rem;line-height:1;
  letter-spacing:-.03em;color:var(--red);margin-bottom:.9rem}
.prep h3{font-size:1.14rem;margin-bottom:.4rem}
.prep p{font-size:.9rem;line-height:1.55;color:var(--muted);margin-bottom:1.1rem}
.prep-go{margin-top:auto;font-size:.8rem;font-weight:600;color:var(--evidence)}

.prep-q{margin-top:clamp(28px,3.4vw,46px);padding:clamp(20px,2.6vw,30px) 0 0;
  border-top:1px solid var(--line);text-align:center}
.prep-q-lab{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.7rem}
.prep-q-text{font-family:var(--display);font-weight:500;font-size:clamp(1.3rem,2.4vw,1.8rem);
  line-height:1.25;letter-spacing:-.02em;color:var(--navy-text);max-width:30ch;margin:0 auto}

.conf-social{display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem 1.6rem;margin-top:1.1rem}
.conf-social a{font-size:.92rem;font-weight:600;color:var(--navy-text);
  border-bottom:2px solid var(--red);padding-bottom:2px}
.conf-social a:hover{color:var(--red-deep)}

/* ============================================================
   v14 — drift tiles are the client templates, scaled down
   Each tile is authored at 1080 x 1350 (the Canva size) and scaled,
   so the site and the templates can never drift apart.
   ============================================================ */
.drift-tpl{width:180px;aspect-ratio:4/5;position:relative;overflow:hidden;flex:none;
  border-radius:10px;box-shadow:0 18px 40px -26px rgba(9,3,43,.45)}
.drift-tpl .tpl{position:absolute;left:0;top:0;width:1080px;height:1350px;
  transform:scale(.166667);transform-origin:0 0;overflow:hidden}
@media(max-width:700px){
  .drift-tpl{width:150px}
  .drift-tpl .tpl{transform:scale(.138889)}
}
.tpl .t-abs{position:absolute}
.tpl .t-ph{position:absolute;
  background:radial-gradient(40% 35% at 30% 30%,rgba(236,228,218,.9),transparent 70%),
             radial-gradient(45% 40% at 75% 65%,rgba(170,160,150,.7),transparent 70%),
             linear-gradient(150deg,#D6CEC4 0%,#B7ADA2 55%,#9C938A 100%)}
.tpl .t-scrim{background:linear-gradient(180deg,rgba(15,79,82,0) 30%,var(--pbg,#0F4F52) 90%);opacity:.95}
.tpl .t-tiny{font-family:var(--body);font-weight:700;font-size:26px;letter-spacing:.16em;text-transform:uppercase}
.tpl .t-head{font-family:var(--display);font-weight:600;letter-spacing:-.022em;line-height:1.04}
.tpl .t-sub{font-family:var(--body);font-weight:400;line-height:1.42}
.tpl .t-logo{position:absolute;font-family:var(--body);font-weight:700;font-size:22px;letter-spacing:.14em;
  padding:14px 22px;border:2px solid currentColor;border-radius:999px 0 999px 999px}
.tpl .t-img{position:absolute;object-fit:cover;display:block;max-width:none}
.tpl .t-scrim{background:linear-gradient(180deg,transparent 30%,var(--pbg,#0F4F52) 90%)}

/* ============================================================
   v15 — INSIGHTS: blog index, archives and articles
   ============================================================ */
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sb-ins,.sb-art{background:var(--paper)}
.sb-ins a,.sb-art a{text-decoration:none}

/* ---- shared atoms ---- */
.sb-chip{display:inline-flex;align-items:center;gap:.45rem;font-size:.66rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--cc,var(--evidence));margin-bottom:.7rem}
.sb-chip::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--cc,var(--evidence))}
.sb-chip.is-plain::before{display:none}
.sb-chip:hover{color:var(--red-deep)}
.ins-meta{font-size:.8rem;color:var(--muted);margin:0}
.sb-byline{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;font-size:.84rem;color:var(--muted)}
.sb-byline-av{width:30px;height:30px;border-radius:50%;object-fit:cover}
.sb-byline-name{font-weight:600;color:var(--ink)}
.sb-dot{width:3px;height:3px;border-radius:50%;background:var(--line-strong)}

.sb-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bone);
  border-radius:var(--cut) 0 var(--cut) var(--cut);margin-bottom:1rem}
.sb-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--out)}
a:hover .sb-thumb img{transform:scale(1.035)}
.sb-thumb-type{display:flex;flex-direction:column;justify-content:flex-end;gap:.6rem;
  padding:clamp(16px,2vw,26px);background:var(--cc,#0F4F52)}
.sb-thumb-type::after{content:"";position:absolute;right:-12%;top:-30%;width:62%;aspect-ratio:1;border-radius:50%;
  border:2px solid rgba(255,255,255,.14)}
.sb-thumb-k{font-size:.58rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.sb-thumb-h{font-family:var(--display);font-weight:600;font-size:clamp(1rem,1.6vw,1.35rem);line-height:1.12;
  letter-spacing:-.02em;color:#fff;max-width:18ch;position:relative;z-index:1}
.sb-thumb.is-lead .sb-thumb-h{font-size:clamp(1.6rem,3vw,2.6rem)}

.ins-sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding-bottom:1rem;margin-bottom:clamp(22px,2.6vw,32px);border-bottom:2px solid var(--navy-text)}
.ins-sec-h{font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,2.4vw,2rem);
  letter-spacing:-.022em;color:var(--navy-text);margin:0}
.ins-sec-sub{font-size:.9rem;color:var(--muted);margin:0}
.ins-sec-lab{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--red);padding-bottom:.8rem;margin-bottom:.4rem;border-bottom:2px solid var(--navy-text)}
.ins-more{font-size:.86rem;font-weight:600;color:var(--navy-text);border-bottom:2px solid var(--red);padding-bottom:2px}
.ins-more:hover{color:var(--red-deep)}
.ins-kicker{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin:0 0 .6rem}
.ins-kicker.is-light{color:#FF7A8A}

/* ---- masthead: a nameplate, not a hero ---- */
.ins-mast{background:var(--bone);padding:clamp(14px,1.8vw,20px) 0 0}
.ins-strip{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;
  font-size:.8rem;color:var(--muted);padding-bottom:clamp(12px,1.4vw,16px)}
.ins-date{font-weight:600;color:var(--ink)}
.ins-strip-mid{font-family:var(--display);font-style:italic;font-size:.95rem}
.ins-search{justify-self:end;display:flex;align-items:center;background:var(--paper);
  border:1px solid var(--line-strong);border-radius:99em;padding:3px 3px 3px 14px;width:min(260px,100%)}
.ins-search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:.84rem;color:var(--ink);outline:none}
.ins-search button{width:32px;height:32px;flex:none;border:0;border-radius:50%;background:var(--navy);display:grid;place-items:center;cursor:pointer}
.ins-search svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round}
.ins-search.is-wide{justify-self:start;width:min(460px,100%);margin-top:1.4rem}
@media(max-width:760px){
  .ins-strip{grid-template-columns:1fr auto}
  .ins-strip-mid{display:none}
}
.ins-title{text-align:center;padding:clamp(22px,3.4vw,44px) 0 clamp(18px,2.6vw,30px);
  border-top:3px solid var(--navy-text);box-shadow:inset 0 5px 0 -4px var(--navy-text)}
.ins-h1{font-family:var(--display);font-weight:600;font-size:clamp(2.6rem,7.4vw,6.2rem);line-height:.95;
  letter-spacing:-.035em;color:var(--navy-text);margin:0}
.ins-tag{font-size:clamp(.95rem,1.3vw,1.06rem);color:var(--muted);max-width:58ch;margin:.9rem auto 0}
.ins-cats{display:flex;justify-content:center;gap:clamp(14px,2.4vw,34px);overflow-x:auto;scrollbar-width:none;
  padding:1rem 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.ins-cats::-webkit-scrollbar{display:none}
.ins-cats a{flex:none;font-size:.84rem;font-weight:600;color:var(--muted);padding:.25rem 0;border-bottom:2px solid transparent}
.ins-cats a:hover{color:var(--ink)}
.ins-cats a.is-on{color:var(--navy-text);border-bottom-color:var(--red)}
@media(max-width:760px){.ins-cats{justify-content:flex-start}}

/* ---- the numbers ---- */
.ins-pulse{background:var(--authority,#09032B);color:#fff}
.ins-pulse-in{display:flex;align-items:center;gap:clamp(18px,3vw,44px);padding-block:14px;overflow-x:auto;scrollbar-width:none}
.ins-pulse-lab{flex:none;font-size:.66rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#FF7A8A;margin:0}
.ins-pulse-lab span{display:block;color:rgba(255,255,255,.45);letter-spacing:.06em;text-transform:none;font-weight:500;margin-top:2px}
.ins-pulse-row{display:flex;gap:clamp(20px,3.4vw,52px)}
.ins-fig{flex:none;display:flex;align-items:baseline;gap:.55rem;padding-left:clamp(20px,3.4vw,52px);border-left:1px solid rgba(255,255,255,.16)}
.ins-fig-l{font-size:.8rem;color:rgba(255,255,255,.66)}
.ins-fig b{font-family:var(--display);font-weight:600;font-size:1.25rem;letter-spacing:-.02em}
.ins-fig-n{font-size:.74rem;font-weight:600;color:#7FD8C9}

/* ---- top stories ---- */
.ins-top{padding:clamp(30px,4vw,54px) 0 clamp(34px,4.4vw,60px)}
.ins-top-grid{display:grid;grid-template-columns:1.9fr 1fr;gap:clamp(24px,3.6vw,56px)}
@media(max-width:900px){.ins-top-grid{grid-template-columns:1fr}}
.ins-lead .sb-thumb{aspect-ratio:16/9.5;margin-bottom:1.3rem}
.ins-lead-h{font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,3.6vw,3.1rem);line-height:1.04;
  letter-spacing:-.03em;margin:0 0 .8rem}
.ins-lead-h a,.ins-card h3 a,.ins-side-item h3 a,.ins-desk h3 a,.ins-most h3 a,.ins-river h3 a{color:var(--navy-text);
  background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .3s var(--out)}
.ins-lead-h a:hover,.ins-card h3 a:hover,.ins-side-item h3 a:hover,.ins-desk h3 a:hover,.ins-most h3 a:hover,.ins-river h3 a:hover{background-size:100% 1.5px}
.ins-lead-dek{font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.6;color:var(--muted);max-width:62ch;margin-bottom:1rem}

.ins-side-item{display:flex;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.ins-side-item:last-child{border-bottom:0}
.ins-side-n{font-family:var(--display);font-weight:500;font-size:2rem;line-height:.9;color:var(--red);min-width:1.4rem}
.ins-side-item .sb-chip{margin-bottom:.35rem}
.ins-side-item h3{font-family:var(--display);font-weight:600;font-size:1.12rem;line-height:1.2;letter-spacing:-.015em;margin:0 0 .35rem}

.ins-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,36px);
  margin-top:clamp(28px,3.4vw,46px);padding-top:clamp(24px,3vw,38px);border-top:1px solid var(--line)}
@media(max-width:860px){.ins-row{grid-template-columns:1fr}}
.ins-card h3{font-family:var(--display);font-weight:600;font-size:clamp(1.14rem,1.6vw,1.34rem);line-height:1.16;
  letter-spacing:-.018em;margin:0 0 .55rem}
.ins-card p{font-size:.92rem;line-height:1.55;color:var(--muted);margin:0 0 .7rem}

/* ---- most read ---- */
.ins-most{background:var(--bone);padding:clamp(34px,4.4vw,60px) 0}
.ins-most-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,2.2vw,30px)}
@media(max-width:1000px){.ins-most-list{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ins-most-list{grid-template-columns:1fr}}
.ins-most-list li{display:flex;gap:.8rem}
.ins-most-n{font-family:var(--display);font-weight:500;font-size:3.2rem;line-height:.82;color:var(--red);
  letter-spacing:-.04em;min-width:2rem}
.ins-most h3{font-family:var(--display);font-weight:600;font-size:1.06rem;line-height:1.22;letter-spacing:-.012em;margin:0 0 .4rem}

/* ---- read by principle ---- */
.ins-dsm{background:var(--authority,#09032B);color:#fff;padding:clamp(40px,5vw,72px) 0;position:relative;overflow:hidden}
.ins-dsm::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 60% at 90% 0%,rgba(54,214,231,.12),transparent 60%)}
.ins-dsm>.wrap{position:relative;z-index:1}
.ins-dsm .ins-sec-h{color:#fff}
.ins-dsm-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,50px);align-items:end;
  margin-bottom:clamp(26px,3.2vw,40px)}
@media(max-width:820px){.ins-dsm-head{grid-template-columns:1fr;gap:12px}}
.ins-dsm-sub{font-size:.98rem;line-height:1.6;color:rgba(255,255,255,.66);margin:0}
.ins-dsm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.6vw,36px)}
@media(max-width:820px){.ins-dsm-grid{grid-template-columns:1fr}}
.ins-terr{border-top:2px solid var(--tint);padding-top:1rem}
.ins-terr-l{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--tint);margin:0 0 .6rem}
.ins-terr ul{list-style:none;margin:0;padding:0}
.ins-terr li>a,.ins-terr li.is-empty{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.72rem 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:.96rem;color:#fff}
.ins-terr li>a span,.ins-terr li.is-empty>span:last-child{font-size:.74rem;font-weight:600;color:var(--tint)}
.ins-terr li>a:hover{color:var(--tint)}
.ins-terr li.is-empty{color:rgba(255,255,255,.4)}
.ins-terr li.is-empty>span:last-child{color:rgba(255,255,255,.3);font-weight:500}
.ins-dsm-link{display:inline-block;margin-top:clamp(22px,2.6vw,32px);font-size:.9rem;font-weight:600;color:#fff;
  border-bottom:2px solid var(--red);padding-bottom:2px}

/* ---- category desks ---- */
.ins-desk{padding:clamp(36px,4.4vw,62px) 0}
.ins-desk.is-alt{background:var(--bone)}
.ins-desk-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;
  padding-bottom:1rem;margin-bottom:clamp(22px,2.6vw,32px);border-bottom:2px solid var(--navy-text);position:relative}
.ins-desk-head::before{content:"";position:absolute;left:0;top:-14px;width:48px;height:5px;background:var(--cc)}
.ins-desk-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(22px,3.4vw,52px)}
@media(max-width:860px){.ins-desk-grid{grid-template-columns:1fr}}
.ins-desk-big h3{font-family:var(--display);font-weight:600;font-size:clamp(1.4rem,2.2vw,1.8rem);line-height:1.1;
  letter-spacing:-.022em;margin:0 0 .6rem}
.ins-desk-big p{font-size:.96rem;line-height:1.6;color:var(--muted);margin:0 0 .7rem}
.ins-desk-list article{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.ins-desk-list article:first-child{padding-top:0}
.ins-desk-list article:last-child{border-bottom:0}
.ins-desk-th .sb-thumb{aspect-ratio:1;margin:0}
.ins-desk-th .sb-thumb-type{padding:10px}
.ins-desk-th .sb-thumb-h{font-size:.72rem}
.ins-desk-th .sb-thumb-k{display:none}
.ins-desk-list h3{font-family:var(--display);font-weight:600;font-size:1.08rem;line-height:1.2;margin:0 0 .35rem}

/* ---- newsletter band ---- */
.sb-news{background:var(--evidence);color:#fff;padding:clamp(34px,4.4vw,58px) 0}
.sb-news-in{width:min(var(--max,1180px),100% - 2*var(--pad,24px));margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:clamp(18px,3vw,44px);flex-wrap:wrap}
.sb-news-k{font-size:.66rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#7FD8C9;margin:0 0 .5rem}
.sb-news-h{font-family:var(--display);font-weight:600;font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.025em;color:#fff;margin:0 0 .4rem}
.sb-news-p{font-size:.98rem;color:rgba(255,255,255,.75);margin:0;max-width:46ch}
.sb-news .btn{flex:none}
.sb-news.is-compact{padding:clamp(26px,3.4vw,40px) 0;margin-top:clamp(34px,4vw,56px)}
.sb-news.is-compact .sb-news-h{font-size:clamp(1.3rem,2.2vw,1.7rem)}

/* ---- the river ---- */
.ins-river{padding:clamp(40px,5vw,72px) 0}
.ins-river-list{display:grid}
.ins-river-item{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:clamp(18px,3vw,40px);
  align-items:center;padding:clamp(20px,2.4vw,30px) 0;border-bottom:1px solid var(--line)}
.ins-river-item:first-child{padding-top:0}
@media(max-width:700px){.ins-river-item{grid-template-columns:1fr;gap:12px}}
.ins-river-th .sb-thumb{margin:0}
.ins-river-body h3{font-family:var(--display);font-weight:600;font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.12;
  letter-spacing:-.02em;margin:0 0 .55rem}
.ins-river-body p{font-size:.96rem;line-height:1.6;color:var(--muted);margin:0 0 .8rem;max-width:64ch}
.ins-empty{padding:2rem 0;color:var(--muted);text-align:center}

.sb-pager{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:clamp(28px,3.4vw,44px)}
.sb-pager a,.sb-pager span{min-width:42px;height:42px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;
  font-size:.88rem;font-weight:600;color:var(--navy-text);border:1px solid var(--line-strong);border-radius:99em}
.sb-pager a:hover{border-color:var(--navy-text)}
.sb-pager .current{background:var(--navy);border-color:var(--navy);color:#fff}
.sb-pager .dots{border:0;min-width:0}

/* ---- archives ---- */
.ins-mast.is-archive{padding:clamp(24px,3vw,40px) 0 clamp(28px,3.4vw,44px);position:relative}
.ins-mast.is-archive::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--cc,var(--red))}
.ins-arch-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;margin-top:1.2rem}
.ins-h1.is-arch{font-size:clamp(2.2rem,5.4vw,4.4rem);text-align:left}
.ins-mast.is-archive .ins-tag{margin:.8rem 0 0;text-align:left}
.ins-mast.is-archive .ins-tag p{margin:0}
.ins-count{font-size:.9rem;color:var(--muted);margin:0}
.ins-count b{font-family:var(--display);font-size:2.2rem;font-weight:600;color:var(--navy-text);letter-spacing:-.03em;margin-right:.3rem}
.ins-arch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,40px) clamp(18px,2.6vw,36px)}
@media(max-width:900px){.ins-arch-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ins-arch-grid{grid-template-columns:1fr}}
.ins-card.is-feature{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(22px,3.4vw,52px);align-items:center;
  padding-bottom:clamp(24px,3vw,38px);border-bottom:1px solid var(--line)}
@media(max-width:760px){.ins-card.is-feature{grid-template-columns:1fr}}
.ins-card.is-feature .sb-thumb{margin:0;aspect-ratio:16/10}
.ins-card.is-feature h3{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.06}

/* ============================================================
   ARTICLE
   ============================================================ */
.art-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:120;pointer-events:none}
.art-progress span{display:block;height:100%;width:0;background:var(--red);transition:width .08s linear}
.art-head{background:var(--bone);padding:clamp(28px,3.6vw,52px) 0 clamp(30px,3.8vw,54px)}
.art-head-in{max-width:880px}
.art-crumbs{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:1.3rem}
.art-crumbs a{color:var(--evidence)}
.art-crumbs a:hover{color:var(--red-deep)}
.art-title{font-family:var(--display);font-weight:600;font-size:clamp(2.1rem,5vw,3.9rem);line-height:1.03;
  letter-spacing:-.032em;color:var(--navy-text);margin:0 0 1.1rem}
.art-dek{font-family:var(--display);font-weight:400;font-size:clamp(1.15rem,1.9vw,1.45rem);line-height:1.42;
  color:var(--muted);margin:0 0 1.6rem;max-width:52ch}
.art-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  padding-top:1.2rem;border-top:1px solid var(--line-strong)}
.art-principle-tag{display:inline-flex;align-items:center;gap:.55rem;font-size:.82rem;font-weight:600;color:var(--navy-text);
  background:var(--paper);border:1px solid var(--line-strong);border-radius:99em;padding:.38rem .9rem .38rem .45rem}
.art-principle-tag span{font-size:.58rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;
  background:var(--red);border-radius:99em;padding:.3rem .55rem}
.art-principle-tag:hover{border-color:var(--navy-text)}

.art-hero{margin-top:clamp(-8px,-1vw,0px);padding-top:clamp(26px,3.4vw,44px)}
.art-hero img{width:100%;height:auto;max-height:640px;object-fit:cover;display:block;border-radius:var(--cut) 0 var(--cut) var(--cut)}
.art-hero figcaption{font-size:.82rem;color:var(--muted);margin-top:.7rem}

.art-grid{display:grid;grid-template-columns:230px minmax(0,700px);gap:clamp(28px,5vw,80px);
  padding-top:clamp(34px,4.4vw,60px);justify-content:center}
@media(max-width:980px){.art-grid{grid-template-columns:minmax(0,1fr)}.art-rail{order:2}}
.art-rail-in{position:sticky;top:calc(var(--hh,72px) + 28px)}
@media(max-width:980px){.art-rail-in{position:static}}
.art-rail-l{font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .8rem}
.art-toc ol{list-style:none;margin:0 0 2rem;padding:0;counter-reset:t}
.art-toc li{counter-increment:t}
.art-toc a{display:flex;gap:.6rem;font-size:.88rem;line-height:1.4;color:var(--muted);padding:.5rem 0 .5rem .8rem;
  border-left:2px solid var(--line);transition:color .2s var(--out),border-color .2s var(--out)}
.art-toc a::before{content:counter(t,decimal-leading-zero);font-size:.72rem;font-weight:700;color:var(--line-strong);flex:none;padding-top:.1rem}
.art-toc a:hover{color:var(--ink)}
.art-toc a.is-on{color:var(--navy-text);font-weight:600;border-left-color:var(--red)}
.art-toc a.is-on::before{color:var(--red)}
@media(max-width:980px){.art-toc{display:none}}
.art-share-row{display:flex;flex-wrap:wrap;gap:6px}
.art-share-row a,.art-copy{font:inherit;font-size:.78rem;font-weight:600;color:var(--navy-text);cursor:pointer;
  background:var(--paper);border:1px solid var(--line-strong);border-radius:99em;padding:.4rem .8rem}
.art-share-row a:hover,.art-copy:hover{border-color:var(--navy-text)}

/* ---- article typography ---- */
.art-body{font-size:1.09rem;line-height:1.78;color:var(--ink);min-width:0}
.art-body>p:first-of-type::first-letter{float:left;font-family:var(--display);font-weight:600;font-size:4.6em;
  line-height:.82;padding:.08em .1em 0 0;color:var(--red)}
.art-body p{margin:0 0 1.35em}
.art-body a{color:var(--evidence);background:linear-gradient(var(--cyan,#36D6E7),var(--cyan,#36D6E7)) 0 100%/100% 2px no-repeat;padding-bottom:1px}
.art-body a:hover{color:var(--red-deep)}
.art-body h2{font-family:var(--display);font-weight:600;font-size:clamp(1.55rem,2.6vw,2rem);line-height:1.15;
  letter-spacing:-.022em;color:var(--navy-text);margin:2.1em 0 .7em;scroll-margin-top:calc(var(--hh,72px) + 24px)}
.art-body h2::before{content:"";display:block;width:40px;height:4px;background:var(--red);margin-bottom:.8em}
.art-body h3{font-family:var(--display);font-weight:600;font-size:1.3rem;color:var(--navy-text);margin:1.7em 0 .5em}
.art-body ul,.art-body ol{margin:0 0 1.4em;padding-left:1.3em}
.art-body li{margin-bottom:.45em;padding-left:.3em}
.art-body ul li::marker{color:var(--red)}
.art-body ol li::marker{color:var(--red);font-weight:700}
.art-body blockquote,.art-body .wp-block-pullquote{margin:2em 0;padding:0 0 0 1.4em;border-left:4px solid var(--red)}
.art-body blockquote p,.art-body .wp-block-pullquote p{font-family:var(--display);font-weight:500;font-size:clamp(1.35rem,2.2vw,1.7rem);
  line-height:1.32;letter-spacing:-.015em;color:var(--navy-text);margin:0 0 .5em}
.art-body blockquote cite,.art-body .wp-block-pullquote cite{font-style:normal;font-size:.84rem;color:var(--muted)}
.art-body figure{margin:2em 0}
.art-body figure img{max-width:100%;height:auto;border-radius:12px}
.art-body figcaption{font-size:.84rem;color:var(--muted);margin-top:.6rem}
.art-body table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1.8em 0}
.art-body th{text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  padding:.7em .8em;border-bottom:2px solid var(--navy-text)}
.art-body td{padding:.8em;border-bottom:1px solid var(--line)}
.art-body tr:nth-child(even) td{background:rgba(16,47,56,.025)}
.art-body hr{border:0;height:1px;background:var(--line-strong);margin:2.6em 0}

/* Blocks you can switch on in Gutenberg: Advanced → Additional CSS class */
.art-body .sb-takeaways{background:var(--bone);border:1px solid var(--line);border-radius:var(--cut) 0 var(--cut) var(--cut);
  padding:1.4em 1.6em;margin:2em 0}
.art-body .sb-takeaways::before{content:"Key takeaways";display:block;font-size:.66rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--red);margin-bottom:.8em}
.art-body .sb-takeaways ul{margin:0}
.art-body .sb-callout{background:var(--evidence);color:#fff;border-radius:var(--cut) 0 var(--cut) var(--cut);padding:1.4em 1.6em;margin:2em 0}
.art-body .sb-callout p:last-child{margin-bottom:0}
.art-body .sb-callout a{color:#fff}
.art-body .sb-stat{display:flex;align-items:baseline;gap:1rem;border-top:2px solid var(--navy-text);
  border-bottom:1px solid var(--line);padding:1.1em 0;margin:2em 0}
.art-body .sb-stat strong{font-family:var(--display);font-weight:600;font-size:3rem;letter-spacing:-.04em;color:var(--red);line-height:1}

/* ---- end of article ---- */
.art-principle{background:var(--authority,#09032B);color:#fff;border-radius:var(--cut) 0 var(--cut) var(--cut);
  padding:clamp(22px,2.8vw,34px);margin:2.4em 0 1.6em;position:relative;overflow:hidden}
.art-principle::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;
  border:2px solid rgba(255,255,255,.08)}
.art-principle-k{font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#FF7A8A;margin:0 0 .5rem}
.art-principle-h{font-family:var(--display);font-weight:600;font-size:1.7rem;color:#fff;margin:0 0 .5rem}
.art-principle-h::before{display:none}
.art-principle p{font-size:.98rem;line-height:1.6;color:rgba(255,255,255,.75);margin:0 0 1.1rem}
.art-principle-links{display:flex;flex-wrap:wrap;gap:1.2rem}
.art-principle-links a{color:#fff;font-size:.9rem;font-weight:600;background:none;border-bottom:2px solid var(--red);padding-bottom:2px}
.art-tags{display:flex;flex-wrap:wrap;gap:6px;margin:1.6em 0}
.art-tags a{font-size:.78rem;font-weight:600;color:var(--muted);background:var(--bone);border-radius:99em;padding:.35rem .8rem}
.art-tags a:hover{color:var(--navy-text)}
.art-author{display:grid;grid-template-columns:72px 1fr;gap:1.2rem;align-items:start;padding-top:1.6em;margin-top:1.6em;border-top:1px solid var(--line)}
.art-author-av{width:72px;height:72px;border-radius:50%;object-fit:cover}
.art-author-k{font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .2rem!important}
.art-author-n{font-family:var(--display);font-weight:600;font-size:1.3rem;color:var(--navy-text);margin:0 0 .4rem!important}
.art-author-b{font-size:.94rem;line-height:1.6;color:var(--muted);margin:0 0 .6rem!important}
.art-author-l{font-size:.88rem;font-weight:600;color:var(--navy-text)!important;background:none!important;border-bottom:2px solid var(--red)}
.art-related{padding:clamp(40px,5vw,70px) 0 clamp(20px,2.4vw,30px)}
.art-related .ins-row{margin-top:0;padding-top:0;border-top:0}
.art-pn{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-block:clamp(24px,3vw,40px)}
@media(max-width:640px){.art-pn{grid-template-columns:1fr}}
.art-pn-a{display:block;padding:1.2rem 1.4rem;background:var(--bone);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);font-family:var(--display);font-weight:600;font-size:1.08rem;
  line-height:1.25;color:var(--navy-text)}
.art-pn-a span{display:block;font-family:var(--body);font-size:.64rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--red);margin-bottom:.4rem}
.art-pn-a.is-next{text-align:right}
.art-pn-a:hover{border-color:var(--navy-text)}

/* ---- v15.1 fixes ---- */
/* WordPress adds class="post" to every article; the site's .post is the old
   social-card style, so neutralise it inside the article template. */
.sb-art article.post{background:none;border:0;border-radius:0;overflow:visible;box-shadow:none;padding:0;margin:0}
/* the site resets lists globally; articles need their markers back */
.art-body ul{list-style:disc}
.art-body ol{list-style:decimal}
.art-body .sb-takeaways ul{list-style:none;padding-left:0}
.art-body .sb-takeaways li{position:relative;padding-left:1.4em}
.art-body .sb-takeaways li::before{content:"";position:absolute;left:0;top:.62em;width:.55em;height:.55em;
  border-radius:2px;background:var(--red)}
/* principle card heading must beat the article h2 style */
.art-body .art-principle-h{color:#fff;margin:0 0 .5rem;font-size:1.7rem}
.art-body .art-principle-h::before{display:none}
/* newsletter band uses the standard .wrap now */
.sb-news-in{width:auto;margin-inline:auto}

/* ============================================================
   v16 — HEADER (mega menu) and FOOTER
   Classes are prefixed sbx- so nothing from the old header or
   footer styles can leak in.
   ============================================================ */
.sbx-skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--navy);color:#fff;
  padding:.6rem 1rem;border-radius:8px;font-weight:600;font-size:.88rem;transition:top .2s}
.sbx-skip:focus{top:12px}
html.sbx-lock{overflow:hidden}

/* ---- bar ---- */
.sbx-head{position:sticky;top:0;z-index:80;background:rgba(255,248,241,.86);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;transition:background .25s var(--out),border-color .25s var(--out),box-shadow .25s var(--out)}
.sbx-head.is-stuck{border-bottom-color:var(--line);box-shadow:0 12px 30px -24px rgba(9,3,43,.4)}
.sbx-head.has-open,.sbx-head.drawer-open{background:var(--bone)}
.sbx-bar{height:var(--hh,76px);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(12px,2vw,28px)}
.sbx-logo{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none}
.sbx-logo img{width:34px;height:34px;display:block}
.sbx-logo span{font-family:var(--display);font-weight:600;font-size:1.2rem;letter-spacing:-.02em;color:var(--navy-text);white-space:nowrap}
.sbx-nav{justify-self:center}
.sbx-list{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.sbx-top,.sbx-top:hover,.sbx-top:focus,.sbx-top:active{display:inline-flex;align-items:center;gap:.35rem;
  font:inherit;font-size:.93rem;font-weight:500;color:var(--ink)!important;background:transparent!important;
  border:0!important;border-radius:99em!important;padding:.6rem .95rem;cursor:pointer;text-decoration:none;
  -webkit-appearance:none;appearance:none;box-shadow:none!important;position:relative}
.sbx-top:hover,.sbx-item.is-open .sbx-top{background:rgba(16,47,56,.06)!important;color:var(--navy-text)!important}
.sbx-top:focus-visible{outline:2px solid var(--navy-text);outline-offset:2px}
.sbx-top svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .25s var(--out)}
.sbx-item.is-open .sbx-top svg{transform:rotate(180deg)}
.sbx-top.is-current::after{content:"";position:absolute;left:50%;bottom:3px;width:4px;height:4px;margin-left:-2px;
  border-radius:50%;background:var(--red)}
.sbx-actions{display:flex;align-items:center;gap:clamp(10px,1.4vw,18px);justify-self:end}
.sbx-small{font-size:.88rem;font-weight:600;color:var(--navy-text);text-decoration:none;
  border-bottom:1.5px solid transparent;padding-bottom:1px}
.sbx-small:hover{border-bottom-color:var(--red)}
.sbx-cta{white-space:nowrap}

/* ---- the mega panel ---- */
.sbx-panel{position:absolute;left:0;right:0;top:100%;background:var(--paper);
  border-top:1px solid var(--line);box-shadow:0 34px 60px -30px rgba(9,3,43,.35);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .22s var(--out),transform .22s var(--out),visibility 0s linear .22s}
.sbx-item.is-open>.sbx-panel,.no-js .sbx-item.has-panel:focus-within>.sbx-panel{opacity:1;visibility:visible;transform:none;
  transition:opacity .22s var(--out),transform .22s var(--out),visibility 0s}
.sbx-panel-in{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:clamp(24px,3.4vw,52px);
  padding-block:clamp(26px,3vw,38px) clamp(30px,3.4vw,44px)}
.sbx-panel-k{font-size:.64rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--red);
  margin:0 0 .9rem;padding-left:18px}
.sbx-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px}
.sbx-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 22px}
.sbx-col-h{font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  margin:0 0 .4rem;padding-left:18px}
.sbx-tile{display:block;padding:15px 18px;text-decoration:none;border-radius:var(--cut) 0 var(--cut) var(--cut);
  transition:background .18s var(--out)}
.sbx-tile:hover,.sbx-tile:focus-visible,.sbx-tile.is-current{background:var(--bone);outline:none}
.sbx-tile-t{display:block;font-family:var(--display);font-weight:600;font-size:1.12rem;letter-spacing:-.015em;
  line-height:1.2;color:var(--navy-text);transition:color .18s var(--out)}
.sbx-tile:hover .sbx-tile-t{color:var(--red-deep)}
.sbx-tile-d{display:block;font-size:.86rem;line-height:1.45;color:var(--muted);margin-top:.25rem}
.sbx-feature{display:flex;flex-direction:column;background:var(--authority,#09032B);color:#fff;text-decoration:none;
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:24px 26px;position:relative;overflow:hidden;
  transition:transform .25s var(--out),box-shadow .25s var(--out)}
.sbx-feature:hover{transform:translateY(-2px);box-shadow:0 22px 40px -24px rgba(9,3,43,.6)}
.sbx-feature::after{content:"";position:absolute;right:-50px;top:-50px;width:170px;height:170px;border-radius:50%;
  border:2px solid rgba(255,255,255,.08)}
.sbx-feature-bars{display:flex;align-items:flex-end;gap:5px;height:30px;margin-bottom:1.1rem}
.sbx-feature-bars i{width:9px;border-radius:2px}
.sbx-feature-bars i:nth-child(1){height:40%;background:#FF5468}
.sbx-feature-bars i:nth-child(2){height:70%;background:#5ED7EA}
.sbx-feature-bars i:nth-child(3){height:100%;background:#7FD8C9}
.sbx-feature-k{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#FF7A8A;margin-bottom:.5rem}
.sbx-feature-h{font-family:var(--display);font-weight:600;font-size:1.4rem;line-height:1.16;letter-spacing:-.02em;margin-bottom:1.3rem}
.sbx-feature-l{margin-top:auto;align-self:flex-start;font-size:.88rem;font-weight:600;border-bottom:2px solid var(--red);padding-bottom:2px}
.sbx-scrim{position:fixed;left:0;right:0;bottom:0;top:var(--hh,76px);z-index:70;background:rgba(9,3,43,.26);
  opacity:0;pointer-events:none;transition:opacity .22s var(--out)}
.sbx-scrim.is-on{opacity:1;pointer-events:auto}

/* ---- burger + mobile drawer ---- */
.sbx-burger,.sbx-burger:hover,.sbx-burger:focus{display:none;width:42px;height:42px;flex:none;position:relative;cursor:pointer;
  background:transparent!important;border:1px solid var(--line-strong)!important;border-radius:12px!important;
  -webkit-appearance:none;appearance:none;padding:0}
.sbx-burger i{position:absolute;left:11px;right:11px;height:2px;border-radius:2px;background:var(--navy-text);transition:transform .25s var(--out),top .25s var(--out)}
.sbx-burger i:nth-child(1){top:15px}
.sbx-burger i:nth-child(2){top:24px}
.drawer-open .sbx-burger i:nth-child(1){top:19.5px;transform:rotate(45deg)}
.drawer-open .sbx-burger i:nth-child(2){top:19.5px;transform:rotate(-45deg)}
.sbx-drawer{display:none}
@media(max-width:1024px){
  .sbx-nav,.sbx-small{display:none}
  .sbx-bar{grid-template-columns:auto 1fr;gap:10px}
  .sbx-actions{grid-column:2}
  .sbx-burger,.sbx-burger:hover,.sbx-burger:focus{display:block}
  .sbx-drawer{display:block;position:fixed;left:0;right:0;bottom:0;top:var(--hh,76px);z-index:90;background:var(--bone);
    overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-10px);
    transition:opacity .22s var(--out),transform .22s var(--out),visibility 0s linear .22s}
  .drawer-open .sbx-drawer{opacity:1;visibility:visible;transform:none;transition:opacity .22s var(--out),transform .22s var(--out),visibility 0s}
  .sbx-drawer-in{width:min(640px,100% - 2*var(--pad,22px));margin-inline:auto;padding:14px 0 40px;display:flex;flex-direction:column}
  .sbx-d-top{display:flex;align-items:center;justify-content:space-between;font-family:var(--display);font-weight:600;
    font-size:1.45rem;letter-spacing:-.02em;color:var(--navy-text);text-decoration:none;padding:1rem 0;
    border-bottom:1px solid var(--line);cursor:pointer;list-style:none}
  .sbx-d-top::-webkit-details-marker{display:none}
  details.sbx-d-group>summary.sbx-d-top::after{content:"";width:9px;height:9px;border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .25s var(--out)}
  details.sbx-d-group[open]>summary.sbx-d-top::after{transform:rotate(-135deg) translate(-2px,-2px)}
  .sbx-d-links{display:grid;padding:.4rem 0 1rem}
  .sbx-d-links a{display:block;padding:.7rem 0 .7rem 14px;border-left:2px solid var(--line);font-weight:600;
    font-size:1rem;color:var(--ink);text-decoration:none}
  .sbx-d-links a span{display:block;font-weight:400;font-size:.86rem;color:var(--muted);margin-top:.15rem}
  .sbx-d-links a:active{border-left-color:var(--red)}
  .sbx-d-h{font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:.8rem 0 .2rem}
  .sbx-d-foot{display:grid;gap:10px;margin-top:1.6rem}
  .sbx-d-foot .btn{justify-content:center}
}
@media(max-width:420px){ .sbx-cta{display:none} }

/* ---- footer ---- */
.sbx-foot{background:var(--authority,#09032B);color:rgba(255,255,255,.7);position:relative;overflow:hidden;
  padding:clamp(56px,7vw,96px) 0 28px;border-top:1px solid rgba(255,255,255,.08)}
.sbx-foot::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(55% 60% at 100% 0%,rgba(54,214,231,.1),transparent 60%)}
.sbx-foot>.wrap{position:relative;z-index:1}
.sbx-foot-top{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(0,2.3fr);gap:clamp(34px,5vw,80px)}
@media(max-width:900px){.sbx-foot-top{grid-template-columns:1fr}}
.sbx-logo.is-foot span{color:#fff}
.sbx-tagline{font-size:.95rem;line-height:1.6;margin:1.1rem 0 1.4rem;max-width:34ch}
.sbx-social{display:flex;gap:8px;margin-bottom:1.6rem}
.sbx-social a{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;border:1px solid rgba(255,255,255,.16);
  transition:background .2s var(--out),border-color .2s var(--out)}
.sbx-social a:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.34)}
.sbx-social svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sbx-news{display:flex;flex-direction:column;max-width:320px;text-decoration:none;padding:18px 20px;
  border:1px solid rgba(255,255,255,.14);border-radius:var(--cut) 0 var(--cut) var(--cut);transition:border-color .2s var(--out)}
.sbx-news:hover{border-color:rgba(255,255,255,.34)}
.sbx-news-k{font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7FD8C9;margin-bottom:.35rem}
.sbx-news-h{font-family:var(--display);font-weight:600;font-size:1.2rem;color:#fff;margin-bottom:.7rem}
.sbx-news-l{align-self:flex-start;font-size:.84rem;font-weight:600;color:#fff;border-bottom:2px solid var(--red);padding-bottom:2px}
.sbx-fcols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(22px,3vw,40px)}
@media(max-width:1100px){.sbx-fcols{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sbx-fcol-h{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);margin:0 0 1rem}
.sbx-fcol-h a{color:inherit;text-decoration:none}
.sbx-fcol ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.sbx-fcol a{font-size:.94rem;color:rgba(255,255,255,.84);text-decoration:none;transition:color .18s var(--out)}
.sbx-fcol a:hover{color:#fff}
.sbx-fcol li a{background:linear-gradient(var(--red),var(--red)) 0 100%/0 1.5px no-repeat;transition:background-size .25s var(--out),color .18s}
.sbx-fcol li a:hover{background-size:100% 1.5px}
.sbx-statement{font-family:var(--display);font-weight:600;font-size:clamp(2.1rem,8.2vw,7rem);line-height:.95;
  letter-spacing:-.045em;white-space:nowrap;margin:clamp(48px,6vw,90px) 0 clamp(26px,3vw,40px);
  background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.04));
  -webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:560px){.sbx-statement{white-space:normal}}
.sbx-base{display:flex;align-items:center;justify-content:space-between;gap:.8rem 1.6rem;flex-wrap:wrap;
  padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem}
.sbx-base p{margin:0}
.sbx-base ul{display:flex;gap:1.2rem;list-style:none;margin:0;padding:0}
.sbx-base a{color:rgba(255,255,255,.7);text-decoration:none}
.sbx-base a:hover{color:#fff}
.sbx-base-r{color:rgba(255,255,255,.45)}
/* backdrop-filter makes the header the containing block for fixed children,
   which would trap the drawer inside the 76px bar — so drop it while open */
.sbx-head.drawer-open{-webkit-backdrop-filter:none;backdrop-filter:none}
/* the footer statement is sized to fit the column, never cut mid-word */
.sbx-statement{font-size:clamp(2rem,6.3vw,5.9rem)}

/* ---- onboarding: plan confirmed from checkout ---- */
.tier-locked{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;background:var(--bone);
  border:1px solid var(--evidence);border-radius:var(--cut) 0 var(--cut) var(--cut);padding:clamp(18px,2.2vw,24px)}
.tier-locked .sig{margin:0;flex:none}
.tier-locked .sig i:nth-child(1){height:34%}.tier-locked .sig i:nth-child(2){height:66%}.tier-locked .sig i:nth-child(3){height:100%}
.tier-locked>div{flex:1 1 260px}
.tier-locked-k{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--evidence);margin:0 0 .2rem}
.tier-locked-h{font-family:var(--display);font-weight:600;font-size:1.35rem;letter-spacing:-.02em;color:var(--navy-text);margin:0 0 .25rem}
.tier-locked-b{font-size:.9rem;color:var(--muted);margin:0}
.tier-unlock,.tier-unlock:hover,.tier-unlock:focus{font:inherit;font-size:.84rem;font-weight:600;color:var(--navy-text)!important;
  background:transparent!important;border:0!important;border-bottom:1.5px solid var(--line-strong)!important;border-radius:0!important;
  padding:0 0 2px;cursor:pointer}
.tier-unlock:hover{border-bottom-color:var(--red)!important}

/* ============================================================
   v17 — onboarding: live preview, sticky progress, checklist
   ============================================================ */
.onb-need{background:var(--paper);border:1px solid var(--line);border-radius:var(--cut) 0 var(--cut) var(--cut);
  padding:clamp(18px,2.2vw,26px);align-self:end}
.onb-need-k{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--red);margin:0 0 .7rem}
.onb-need ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.onb-need li{position:relative;padding-left:1.4rem;font-size:.92rem;color:var(--ink)}
.onb-need li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:2px;background:var(--evidence)}

.onb-band{padding:0 0 clamp(56px,7vw,96px)}
.onb-bar{position:sticky;top:var(--hh,76px);z-index:30;background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
  margin-bottom:clamp(30px,4vw,54px)}
.onb-bar-in{display:flex;align-items:center;gap:clamp(14px,2vw,26px);height:56px}
.onb-bar-t{display:flex;align-items:baseline;gap:.7rem;margin:0;font-size:.86rem;color:var(--muted);white-space:nowrap}
.onb-bar-t b{font-weight:700;color:var(--navy-text)}
.onb-bar-track{flex:1;height:6px;border-radius:99em;background:rgba(16,47,56,.08);overflow:hidden}
.onb-bar-track span{display:block;height:100%;width:12.5%;border-radius:99em;background:var(--evidence);
  transition:width .45s var(--out)}

.onb-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(34px,5vw,84px);align-items:start}
.onb-layout .onb{max-width:none}
.onb-layout .onb-done{grid-column:1/-1}
@media(max-width:1000px){ .onb-layout{grid-template-columns:1fr} .onb-live{display:none} }
@media(min-width:1001px){ .onb .brand-preview{display:none} }

.onb-live-in{position:sticky;top:calc(var(--hh,76px) + 56px + 26px)}
.onb-live-k{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--red);margin:0 0 .8rem}
#liveCard .pa{box-shadow:0 26px 56px -30px rgba(9,3,43,.45)}
#liveCard .pa .hd{font-size:1.28rem}
.onb-live-cap{font-size:.84rem;line-height:1.5;color:var(--muted);margin:.8rem 0 1.3rem}
.onb-live-cap b{color:var(--ink);font-weight:600}
.onb-live-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.onb-live-list li{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.86rem}
.onb-live-list li.onb-live-sum{display:block;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--evidence);padding:.7rem 0 .5rem}
.onb-live-dot{width:14px;height:14px;flex:none;border-radius:50%;border:1.5px solid var(--line-strong);position:relative;
  transition:background .2s var(--out),border-color .2s var(--out)}
.onb-live-list li.is-done .onb-live-dot{background:var(--evidence);border-color:var(--evidence)}
.onb-live-list li.is-done .onb-live-dot::after{content:"";position:absolute;left:4px;top:1.5px;width:3px;height:6px;
  border-right:1.6px solid #fff;border-bottom:1.6px solid #fff;transform:rotate(45deg)}
.onb-live-l{color:var(--muted)}
.onb-live-list li.is-done .onb-live-l{color:var(--ink);font-weight:500}
.onb-live-v{margin-left:auto;color:var(--navy-text);font-weight:600;text-align:right;max-width:55%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.onb-band.is-done .onb-bar,.onb-band.is-done .onb-live{display:none}
.onb-band.is-done .onb-layout{grid-template-columns:1fr;padding-top:clamp(40px,5vw,70px)}
/* the preview column must run the full height of the form for its
   sticky contents to have room to travel */
.onb-live{align-self:stretch}
@media(max-width:1100px){ .onb-layout{grid-template-columns:1fr} .onb-live{display:none} .onb .brand-preview{display:block} }
/* compact enough to sit fully on a laptop screen under the header */
@media(min-width:1101px){ .onb-layout{grid-template-columns:minmax(0,1fr) 290px} }
#liveCard .pa{padding:18px}
#liveCard .pa .hd{font-size:1.14rem}
#liveCard .pa .pb .t b{font-size:1.1rem}
.onb-live-cap{margin:.7rem 0 1rem;font-size:.8rem}
.onb-live-list li{padding:.36rem 0;font-size:.8rem}
.onb-live-list li.onb-live-sum{padding:.55rem 0 .35rem}
.rev-line.is-fixed,.rev-line.is-fixed:hover{cursor:default;background-color:var(--bone)!important}
.rev-line.is-fixed .rev-val em{color:var(--evidence);font-style:normal;font-size:.8rem;font-weight:600;margin-left:.4rem}

/* ============================================================
   v18 — LMG partner page
   ============================================================ */
.lmg-strip{background:var(--authority,#09032B);color:#fff}
.lmg-strip-in{display:flex;align-items:center;gap:clamp(10px,1.6vw,20px);flex-wrap:wrap;padding-block:12px}
.lmg-badge{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#0B0730;
  background:#7FD8C9;border-radius:99em 0 99em 99em;padding:.35em .8em}
.lmg-strip p{margin:0;font-size:.92rem;color:rgba(255,255,255,.82)}
.lmg-code,.lmg-code:hover,.lmg-code:focus{margin-left:auto;display:inline-flex;align-items:center;gap:.7rem;cursor:pointer;
  font:inherit;background:transparent!important;border:1px dashed rgba(255,255,255,.4)!important;
  border-radius:99em!important;padding:.4rem .5rem .4rem 1rem}
.lmg-code span{font-size:.86rem;font-weight:700;letter-spacing:.1em;color:#fff}
.lmg-code em{font-style:normal;font-size:.7rem;font-weight:600;color:#0B0730;background:#fff;border-radius:99em;padding:.3rem .7rem}
.lmg-code:hover{border-color:rgba(255,255,255,.75)!important}
@media(max-width:700px){.lmg-code{margin-left:0}}

.lmg-was{font-size:.86rem;color:var(--muted);margin:0 0 .1rem}
.lmg-was span{text-decoration:line-through;margin-right:.35rem;transition:opacity .16s var(--out)}
.lmg-was span.swap{opacity:0}
.hero-plan .lmg-was{color:rgba(255,255,255,.6)}

.prin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.16);border-radius:var(--cut) 0 var(--cut) var(--cut);overflow:hidden;
  margin-top:clamp(28px,3.4vw,44px)}
@media(max-width:900px){.prin-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.prin-grid{grid-template-columns:1fr}}
.prin{background:var(--authority,#09032B);padding:clamp(22px,2.6vw,32px)}
.prin-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.prin-n{font-family:var(--display);font-weight:600;font-size:1.1rem;letter-spacing:-.02em;color:var(--jt)}
.prin-why{font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.prin h3{font-size:clamp(1.2rem,1.7vw,1.4rem);margin-bottom:.5rem}
.prin p{font-size:.94rem;line-height:1.55;color:rgba(255,255,255,.68);margin:0}
.chan-grid.is-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.chan-grid.is-3{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.chan-grid.is-3{grid-template-columns:1fr}}

/* ============================================================
   v19 — audience growth roster tool
   ============================================================ */
.agr-band{padding-bottom:clamp(56px,7vw,96px)}
.agr-form{background:var(--bone);border:1px solid var(--line);border-radius:var(--cut) 0 var(--cut) var(--cut);
  padding:clamp(22px,3vw,36px)}
.agr-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,30px)}
@media(max-width:760px){.agr-grid{grid-template-columns:1fr}}
.agr-form .field{margin-bottom:1.4rem}
.agr-form input[type=text]{width:100%;font:inherit;font-size:.95rem;padding:.72em .9em;background:var(--paper);
  color:var(--ink);border:1px solid var(--line-strong);border-radius:10px}
.agr-form input:focus{outline:none;border-color:var(--evidence);box-shadow:0 0 0 3px rgba(15,79,82,.12)}
.agr-actions{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;padding-top:.4rem}
.agr-err{font-size:.88rem;font-weight:600;color:var(--red-deep);margin:0}
.agr-err.shake{animation:onbshake .32s ease}

.agr-out{margin-top:clamp(34px,4.4vw,60px)}
.agr-out-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.6rem;flex-wrap:wrap;
  padding-bottom:1.2rem;border-bottom:2px solid var(--navy-text)}
.agr-out-k{font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin:0 0 .5rem}
.agr-sum{display:flex;gap:clamp(18px,2.6vw,36px)}
.agr-stat b{display:block;font-family:var(--display);font-weight:600;font-size:1.9rem;letter-spacing:-.03em;
  color:var(--navy-text);line-height:1}
.agr-stat b em{font-style:normal;font-size:.9rem;font-weight:500;margin-left:.15rem}
.agr-stat span{font-size:.78rem;color:var(--muted)}
.agr-legend{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:1.2rem 0 clamp(24px,3vw,38px)}
.agr-note{font-size:.84rem;color:var(--muted);max-width:60ch}
.agr-tag{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3em .65em;border-radius:99em}
.agr-tag.is-va{background:rgba(15,79,82,.1);color:var(--evidence)}
.agr-tag.is-owner{background:rgba(231,29,54,.1);color:var(--red-deep)}

.agr-h3{font-family:var(--display);font-weight:600;font-size:clamp(1.3rem,2vw,1.6rem);letter-spacing:-.02em;
  color:var(--navy-text);margin:clamp(30px,3.6vw,48px) 0 .4rem}
.agr-sub{font-size:.92rem;color:var(--muted);margin:0 0 1.2rem;max-width:64ch}
.agr-days{display:grid;gap:10px}
.agr-day{border-top:1px solid var(--line);padding-top:.9rem}
.agr-day-n{font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--evidence);margin:0 0 .5rem}
.agr-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.agr-item{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:start;
  background:var(--bone);border-radius:var(--cut) 0 var(--cut) var(--cut);padding:.85rem 1rem}
@media(max-width:700px){.agr-item{grid-template-columns:auto 1fr}.agr-item-meta{grid-column:2;flex-direction:row!important}}
.agr-check{display:block;position:relative;width:18px;height:18px;margin-top:.15rem;cursor:pointer}
.agr-check input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.agr-check span{position:absolute;inset:0;border-radius:5px;border:1.5px solid var(--line-strong);background:var(--paper)}
.agr-check input:checked+span{background:var(--evidence);border-color:var(--evidence)}
.agr-check input:checked+span::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;
  border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}
.agr-item-t{font-weight:600;font-size:.98rem;color:var(--navy-text);margin:0 0 .15rem}
.agr-item-t b{color:var(--red);font-weight:700}
.agr-item-d{font-size:.88rem;line-height:1.5;color:var(--muted);margin:0}
.agr-item-s{font-size:.88rem;line-height:1.5;color:var(--ink);margin:.5rem 0 0;padding-left:.8rem;
  border-left:2px solid var(--line-strong);font-family:var(--display)}
.agr-item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;white-space:nowrap}
.agr-mins,.agr-plat{font-size:.74rem;color:var(--muted)}
.agr-empty{font-size:.86rem;color:var(--muted);padding:.4rem 0}
.agr-list-flat{gap:6px}

.agr-links{display:grid;gap:8px}
.agr-link{display:block;background:var(--bone);border:1px solid var(--line);border-radius:var(--cut) 0 var(--cut) var(--cut);
  padding:.85rem 1rem;font-size:.94rem;font-weight:600;color:var(--navy-text);text-decoration:none}
.agr-link:hover{border-color:var(--navy-text);color:var(--red-deep)}
.agr-scripts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:760px){.agr-scripts{grid-template-columns:1fr}}
.agr-script{background:var(--bone);border-radius:var(--cut) 0 var(--cut) var(--cut);padding:1rem 1.1rem}
.agr-script-k{font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin:0 0 .4rem}
.agr-script p{font-family:var(--display);font-size:1rem;line-height:1.45;color:var(--ink);margin:0}
.agr-track{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:760px){.agr-track{grid-template-columns:1fr}}
.agr-track>div{background:var(--bone);border-radius:var(--cut) 0 var(--cut) var(--cut);padding:1rem 1.1rem}
.agr-track b{display:block;font-family:var(--display);font-weight:600;font-size:1.1rem;color:var(--navy-text);margin-bottom:.25rem}
.agr-track span{font-size:.86rem;line-height:1.5;color:var(--muted)}

.agr-export{background:var(--authority,#09032B);color:#fff;border-radius:var(--cut) 0 var(--cut) var(--cut);
  padding:clamp(24px,3.2vw,40px);margin-top:clamp(34px,4vw,56px)}
.agr-export-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,44px);align-items:center}
@media(max-width:820px){.agr-export-in{grid-template-columns:1fr}}
.agr-export .agr-out-k{color:#FF7A8A}
.agr-export h3{color:#fff;font-size:clamp(1.3rem,2vw,1.6rem);margin-bottom:.5rem}
.agr-export-p{font-size:.94rem;line-height:1.55;color:rgba(255,255,255,.7);margin:0;max-width:44ch}
.agr-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
@media(max-width:520px){.agr-fields{grid-template-columns:1fr}}
.agr-export input{width:100%;font:inherit;font-size:.95rem;padding:.72em .9em;border-radius:10px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff}
.agr-export input::placeholder{color:rgba(255,255,255,.45)}
.agr-export input:focus{outline:none;border-color:#7FD8C9}
.agr-mini{font-size:.8rem;color:rgba(255,255,255,.55);margin:.7rem 0 0}
.agr-mini.warn{color:#FFD3D9;font-weight:600}
.agr-export-alt{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(18px,2.2vw,26px);
  padding-top:clamp(18px,2.2vw,26px);border-top:1px solid rgba(255,255,255,.14)}
.agr-export-alt .btn{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.agr-export-alt .btn:hover{border-color:#fff}
.agr-foot{font-size:.88rem;color:var(--muted);margin-top:clamp(20px,2.4vw,30px);text-align:center}
.agr-foot a{color:var(--evidence);border-bottom:1.5px solid var(--line-strong)}

@media print{
  .sbx-head,.sbx-foot,.agr-form,.agr-export,.hero-v6,.agr-foot,.sbx-scrim{display:none!important}
  .agr-band{padding:0}
  .agr-item{break-inside:avoid;border:1px solid #ddd;background:#fff}
  .agr-out{margin:0}
}
.agr-over{font-size:.92rem;line-height:1.55;color:var(--ink);background:rgba(231,29,54,.06);
  border-left:3px solid var(--red);border-radius:0 var(--cut) var(--cut) 0;padding:.9rem 1.1rem;
  margin:1.2rem 0 0;max-width:70ch}
.agr-over:empty{display:none}
/* per-task assignment switch */
.agr-who{display:inline-flex;border:1px solid var(--line-strong);border-radius:99em;overflow:hidden;background:var(--paper)}
.agr-who-b,.agr-who-b:hover,.agr-who-b:focus{font:inherit;font-size:.7rem;font-weight:700;letter-spacing:.04em;
  padding:.3em .7em;cursor:pointer;background:transparent!important;border:0!important;border-radius:0!important;
  color:var(--muted)!important;-webkit-appearance:none;appearance:none}
.agr-who-b.on{background:var(--navy)!important;color:#fff!important}
.agr-who-b:focus-visible{outline:2px solid var(--navy-text);outline-offset:1px}

/* ---- onboarding: look and feel ---- */
.onb-honest{font-size:.84rem;line-height:1.5;color:var(--muted);background:var(--bone);border-left:3px solid var(--evidence);
  border-radius:0 var(--cut) var(--cut) 0;padding:.8rem 1rem;margin:0 0 1.4rem;max-width:62ch}
.s-paper .onb-honest{background:rgba(16,47,56,.04)}
.look-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:820px){.look-grid{grid-template-columns:1fr}}
.look,.look:hover,.look:focus,.look:active{display:flex;flex-direction:column;gap:.5rem;text-align:left;cursor:pointer;font:inherit;
  padding:14px;background-color:var(--bone)!important;border:1px solid var(--line-strong)!important;
  border-radius:var(--cut) 0 var(--cut) var(--cut)!important;transition:border-color .16s var(--out),box-shadow .16s var(--out)}
.look:hover{border-color:var(--navy-text)!important}
.look[aria-pressed="true"]{border-color:var(--evidence)!important;box-shadow:0 0 0 1px var(--evidence)}
.look-strip{display:flex;gap:5px}
.look-strip .mini{flex:1;aspect-ratio:4/5;border-radius:6px;display:flex;flex-direction:column;justify-content:flex-end;
  gap:3px;padding:6px;background:var(--paper);overflow:hidden}
.look-strip .mini b{display:block;height:4px;width:80%;border-radius:2px}
.look-strip .mini s{display:block;height:3px;width:75%;border-radius:2px;opacity:.75}
.look-strip .mini-photo{background:linear-gradient(150deg,#D6CEC4,#9C938A)}
.look-n{font-family:var(--display);font-weight:600;font-size:1rem;color:var(--navy-text)}
.look-d{font-size:.84rem;line-height:1.45;color:var(--muted)}

.pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:700px){.pair-grid{grid-template-columns:1fr}}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--bone);border-radius:99em;padding:4px}
.s-paper .pair{background:rgba(16,47,56,.05)}
.pair-b,.pair-b:hover,.pair-b:focus{font:inherit;font-size:.82rem;font-weight:500;padding:.55em .7em;cursor:pointer;
  background:transparent!important;border:0!important;border-radius:99em!important;color:var(--muted)!important;
  -webkit-appearance:none;appearance:none;text-align:center}
.pair-b.on{background:var(--paper)!important;color:var(--navy-text)!important;font-weight:600;
  box-shadow:0 1px 3px rgba(9,3,43,.12)}

/* =============================================================
   LMG PARTNER PAGE — offer additions
   ============================================================= */

/* the code reminder under each plan button */
.plan-code{font-size:.78rem;color:var(--muted);margin:.65rem 0 0;text-align:center}
.plan-code b{font-weight:700;letter-spacing:.06em;color:var(--teal)}
.plan.hero-plan .plan-code{color:rgba(255,255,255,.6)}
.plan.hero-plan .plan-code b{color:#fff}

/* reviews on a light surface — the base .quote is built for navy */
.quote-light{background:var(--bone);border:1px solid var(--line)!important;
  border-radius:var(--cut) 0 var(--cut) var(--cut)}
.s-paper .quote-light{background:var(--bone)}
.s-cream .quote-light{background:var(--paper)}
.quote-light>p{color:var(--ink)}
.quote-light .q-who{color:var(--muted)}
.quote-light .q-who b{color:var(--navy-text)}

/* the micro-reassurance line under the hero buttons */
.hero-micro{display:flex;align-items:center;gap:.5rem;margin-top:1.1rem;
  font-size:.82rem;color:var(--muted)}
.hero-micro svg{width:13px;height:13px;flex:none;fill:none;stroke:var(--evidence);
  stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:560px){.hero-micro{font-size:.78rem;align-items:flex-start}
  .hero-micro svg{margin-top:.25em}}

/* sticky offer bar — mobile only, so it never competes with the
   desktop layout. Hidden until the navy strip has scrolled away,
   and hidden again while the plans are on screen. */
.lmg-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:var(--authority,#09032B);border-top:1px solid rgba(255,255,255,.14);
  padding:10px max(12px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom));
  transform:translateY(120%);transition:transform .28s var(--out,cubic-bezier(.2,.7,.3,1));
  pointer-events:none}
.lmg-sticky.on{transform:translateY(0);pointer-events:auto}
.lmg-sticky-in{display:flex;align-items:center;gap:14px;max-width:560px;margin-inline:auto}
.lmg-sticky-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.lmg-sticky-copy b{font-size:.9rem;font-weight:600;color:#fff;line-height:1.2}
.lmg-sticky-copy span{font-size:.72rem;letter-spacing:.06em;color:rgba(255,255,255,.62)}
.lmg-sticky .btn{margin-left:auto;flex:none;padding:.7em 1.1em;font-size:.86rem}
@media(min-width:861px){.lmg-sticky{display:none}}
@media(prefers-reduced-motion:reduce){.lmg-sticky{transition:none}}

/* the strip's lead line carries the offer, so give it weight */
.lmg-strip p b{color:#fff;font-weight:600}


/* =============================================================
   HEADER / FOOTER — wordmark, logo sizing, press logos
   These are Sarah's live-site rules, kept verbatim. The footer mark
   is swapped to the Hub favicon via content:url() because the footer
   image comes from the same Customizer field as the header's.
   ============================================================= */
/* hide the wordmark, let the logo size itself */
.sbx-logo span{display:none}
.sbx-logo img{width:auto;height:38px;max-width:220px}
.sbx-logo.is-foot img{height:34px}

.sbx-logo.is-foot img{content:url("https://wordpress-544995-6761896.cloudwaysapps.com/wp-content/uploads/2026/09/cropped-Social-Broker-Hub-favi.png")}

.seen-rail img{
  height:26px;          /* the one number to tune */
  width:auto;
  max-width:130px;      /* stops very wide logos dominating */
  object-fit:contain;
  opacity:.55;
  filter:grayscale(1);
  transition:opacity .2s, filter .2s;
}
.seen-rail img:hover{opacity:1;filter:grayscale(0)}

/* =============================================================
   RESILIENCE — surviving the block editor
   The Gutenberg rich-text sanitiser rewrites <b> to <strong> and
   strips empty inline tags like the <i> bars in .sig. When that has
   happened to a page's markup, these rules keep it looking right.
   Belt and braces: the markup should still be corrected so the
   monthly/annual toggle (which reads data-m / data-a) works.
   ============================================================= */

/* the price: match <strong> wherever <b> is matched */
.plan-price strong{font-family:var(--display);font-weight:600;
  font-size:clamp(2.4rem,3.6vw,3rem);letter-spacing:-.02em;
  transition:opacity .16s var(--out)}
.plan-price strong.swap{opacity:0}
.plan.hero-plan .plan-price strong{color:#fff}

/* the volume bars: redraw them from the background when the <i>
   elements have been stripped, so an empty .sig still shows three bars */
.sig:empty{width:32px;background-repeat:no-repeat;
  --b1:rgba(16,47,56,.13);--b2:rgba(16,47,56,.13);--b3:rgba(16,47,56,.13);
  background-image:linear-gradient(var(--b1),var(--b1)),
                   linear-gradient(var(--b2),var(--b2)),
                   linear-gradient(var(--b3),var(--b3));
  background-size:8px 34%,8px 66%,8px 100%;
  background-position:0 100%,12px 100%,24px 100%}
.sig.lv1:empty{--b1:var(--red)}
.sig.lv2:empty{--b1:var(--red);--b2:var(--red)}
.sig.lv3:empty{--b1:var(--red);--b2:var(--red);--b3:var(--red)}
.plan.hero-plan .sig:empty{--b1:rgba(255,255,255,.22);--b2:rgba(255,255,255,.22);--b3:rgba(255,255,255,.22)}
.plan.hero-plan .sig.lv3:empty{--b1:var(--red);--b2:var(--red);--b3:var(--red)}

/* =============================================================
   404 — page not found
   ============================================================= */
.e404{position:relative;overflow:hidden;
  min-height:clamp(560px,78vh,760px);
  display:flex;align-items:center;justify-content:center}
/* centre explicitly rather than relying on auto margins, which lose
   whenever anything else on the page influences the flex line */
.e404-in{position:relative;z-index:2;width:100%;max-width:740px;
  margin-inline:auto;text-align:center}

/* the wandering route behind the copy */
.e404-route{position:absolute;left:0;right:0;bottom:0;height:56%;z-index:1;
  opacity:.42;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 38%);
  mask-image:linear-gradient(to bottom,transparent,#000 38%)}
.e404-route svg{width:100%;height:100%;display:block}
.e404-path{fill:none;stroke:rgba(255,255,255,.22);stroke-width:2;stroke-linecap:round;
  stroke-dasharray:10 16}
.e404-dot{fill:var(--red);
  offset-path:path("M-20 300 C 180 300, 250 170, 430 170 S 700 250, 860 150 S 1080 40, 1260 -40");
  animation:e404Travel 9s cubic-bezier(.45,0,.55,1) infinite}
@keyframes e404Travel{
  0%   {offset-distance:0%;   opacity:0}
  8%   {opacity:1}
  72%  {opacity:1}
  100% {offset-distance:100%; opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .e404-dot{animation:none;offset-distance:62%}
}

.e404-num{font-family:var(--display);font-weight:600;line-height:1;
  font-size:clamp(4.6rem,13vw,9rem);letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.3);
  margin-bottom:clamp(6px,1.4vw,18px)}

/* search */
.e404-search{display:flex;gap:8px;max-width:420px;margin:1.9rem auto 0}
.e404-search input{flex:1;min-width:0;font:inherit;font-size:.94rem;color:#fff;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);
  border-radius:99em;padding:.82em 1.2em;-webkit-appearance:none;appearance:none}
.e404-search input::placeholder{color:rgba(255,255,255,.45)}
.e404-search input:focus{outline:none;border-color:rgba(255,255,255,.55);
  background:rgba(255,255,255,.1)}
.e404-search button{flex:none;width:46px;border:0;border-radius:99em;cursor:pointer;
  background:var(--red);display:grid;place-items:center;transition:background .18s var(--out)}
.e404-search button:hover{background:var(--red-deep,#B3142A)}
.e404-search button svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.2;
  stroke-linecap:round}

/* shortcuts */
.e404-links{margin-top:clamp(28px,3.6vw,46px);padding-top:clamp(20px,2.6vw,30px);
  border-top:1px solid rgba(255,255,255,.14)}
.e404-links-lab{display:block;font-size:.62rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:.9rem}
.e404-links ul{list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:.5rem .6rem;justify-content:center}
.e404-links a{display:inline-block;font-size:.88rem;color:rgba(255,255,255,.82);
  text-decoration:none;border:1px solid rgba(255,255,255,.18);border-radius:99em;
  padding:.46em 1em;transition:border-color .18s var(--out),color .18s var(--out),background .18s var(--out)}
.e404-links a:hover{color:#fff;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.07)}

/* =============================================================
   CLIENT PORTAL
   ============================================================= */
.pt-state{text-align:center;padding:clamp(60px,10vw,120px) 0}
.pt-state p{color:var(--muted);margin-top:1rem}
.pt-spin{width:30px;height:30px;margin:0 auto;border-radius:50%;
  border:2.5px solid var(--line-strong);border-top-color:var(--red);
  animation:ptSpin .8s linear infinite}
@keyframes ptSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pt-spin{animation-duration:2.4s}}
#ptDenied{max-width:46ch;margin-inline:auto}

.pt-head{display:flex;justify-content:space-between;align-items:flex-end;
  gap:clamp(20px,3vw,44px);flex-wrap:wrap;
  padding-bottom:clamp(20px,2.6vw,30px);border-bottom:1px solid var(--line)}
.pt-plan{text-align:right;display:grid;gap:.15rem}
.pt-plan-k{font-size:.62rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}
.pt-plan b{font-family:var(--display);font-weight:600;font-size:1.4rem;color:var(--navy-text)}
.pt-plan span:not(.pt-plan-k){font-size:.84rem;color:var(--muted)}
.pt-plan-link{font-size:.8rem;color:var(--teal)}
@media(max-width:640px){.pt-head{align-items:flex-start}.pt-plan{text-align:left}}

.pt-tabs{display:flex;gap:2px;flex-wrap:wrap;margin:clamp(20px,2.6vw,32px) 0 clamp(18px,2.2vw,26px);
  border-bottom:1px solid var(--line)}
.pt-tabs button{font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;
  background:transparent;border:0;border-bottom:2px solid transparent;
  padding:.7em 1.1em;color:var(--muted);transition:color .18s var(--out),border-color .18s var(--out)}
.pt-tabs button:hover{color:var(--navy-text)}
.pt-tabs button[aria-selected="true"]{color:var(--navy-text);font-weight:600;border-bottom-color:var(--red)}

.pt-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.pt-bar-t{font-family:var(--display);font-weight:600;font-size:1.15rem;color:var(--navy-text);margin:0}
.pt-hint{font-size:.9rem;line-height:1.55;color:var(--muted);max-width:62ch;margin:.7rem 0 0}
.pt-empty{text-align:center;color:var(--muted);padding:clamp(40px,6vw,70px) 0}

.pt-grid{display:grid;gap:clamp(12px,1.6vw,18px);margin-top:clamp(20px,2.6vw,30px)}
.pt-post{display:grid;grid-template-columns:180px 1fr;gap:clamp(16px,2vw,26px);
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--cut) 0 var(--cut) var(--cut);padding:clamp(14px,1.8vw,20px);
  border-left:3px solid var(--line-strong)}
.pt-post.is-ok{border-left-color:var(--evidence)}
.pt-post.is-flag{border-left-color:var(--red)}
.pt-post.is-wait{border-left-color:#E8A33D}
@media(max-width:700px){.pt-post{grid-template-columns:1fr}}
.pt-post-img{aspect-ratio:4/5;border-radius:8px;overflow:hidden;background:var(--bone);
  display:grid;place-items:center}
.pt-post-img img{width:100%;height:100%;object-fit:cover;display:block}
.pt-post-img span{font-size:.72rem;color:var(--muted)}
@media(max-width:700px){.pt-post-img{aspect-ratio:16/9;max-height:240px}}
.pt-post-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pt-when{font-size:.78rem;color:var(--muted)}
.pt-status{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.is-ok .pt-status{color:var(--evidence)}
.is-flag .pt-status{color:var(--red)}
.is-wait .pt-status{color:#B37A1C}
.pt-post-h{font-family:var(--display);font-weight:600;font-size:1.05rem;
  color:var(--navy-text);margin:.5rem 0 .3rem}
.pt-cap{font-size:.9rem;line-height:1.55;color:var(--ink);margin:0 0 .7rem}
.pt-note{font-size:.86rem;line-height:1.5;color:var(--muted);margin:0 0 .7rem;
  padding:.6rem .8rem;background:var(--bone);border-radius:8px}
.pt-note b{color:var(--navy-text)}
.pt-flag{font:inherit;font-size:.84rem;font-weight:500;cursor:pointer;background:transparent;
  border:1px solid var(--line-strong);border-radius:99em;padding:.44em 1em;color:var(--ink);
  transition:border-color .18s var(--out),color .18s var(--out)}
.pt-flag:hover{border-color:var(--red);color:var(--red)}
.pt-done{font-size:.82rem;color:var(--muted)}

.pt-form{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,18px);
  margin-top:clamp(18px,2.2vw,26px)}
@media(max-width:700px){.pt-form{grid-template-columns:1fr}}
.pt-form .fld-wide{grid-column:1/-1}
.pt-form .fld{display:grid;gap:.4rem}
.pt-form .fld span{font-size:.8rem;font-weight:600;color:var(--navy-text)}
.pt-form input,.pt-form textarea,.pt-form select{font:inherit;font-size:.92rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line-strong);border-radius:10px;
  padding:.7em .9em;-webkit-appearance:none;appearance:none;width:100%}
.pt-form textarea{resize:vertical;line-height:1.5}
.pt-form input:focus,.pt-form textarea:focus,.pt-form select:focus{outline:none;
  border-color:var(--evidence);box-shadow:0 0 0 3px rgba(15,79,82,.12)}
.pt-save{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:clamp(16px,2vw,24px)}
.pt-msg{font-size:.86rem;color:var(--muted);margin:0}
.pt-msg.is-ok{color:var(--evidence)}
.pt-msg.is-bad{color:var(--red)}

.pt-connect{max-width:56ch;margin-top:clamp(18px,2.2vw,26px)}
.pt-connect p{font-size:.94rem;line-height:1.6;color:var(--muted);margin-bottom:1rem}
.pt-connect-note{display:flex;gap:.7rem;align-items:flex-start;font-size:.88rem;
  background:var(--bone);border-radius:10px;padding:.9rem 1rem}
.pt-connect-note svg{width:16px;height:16px;flex:none;margin-top:.15em;fill:none;
  stroke:var(--evidence);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.pt-sheet{position:fixed;inset:0;z-index:90;background:rgba(9,3,43,.55);
  display:grid;place-items:center;padding:20px;
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.pt-sheet-card{background:var(--paper);border-radius:var(--cut) 0 var(--cut) var(--cut);
  padding:clamp(22px,3vw,34px);max-width:520px;width:100%;
  box-shadow:0 40px 80px -40px rgba(9,3,43,.6)}
.pt-sheet-sub{font-size:.88rem;color:var(--muted);margin:.4rem 0 1rem}
.pt-sheet-card textarea{font:inherit;font-size:.94rem;width:100%;line-height:1.55;
  border:1px solid var(--line-strong);border-radius:10px;padding:.8em 1em;resize:vertical}
.pt-sheet-card textarea:focus{outline:none;border-color:var(--evidence);
  box-shadow:0 0 0 3px rgba(15,79,82,.12)}
.pt-sheet-act{display:flex;gap:10px;justify-content:flex-end;margin-top:1.1rem;flex-wrap:wrap}
