/* ==========================================================================
   Mainspring Healthcare Partners — design system
   Nov 4, 2026: Chocham AI layout, light theme, navy accent.

   Chocham's rules kept: three colours, no gradients, full-height panels,
   pill buttons, inverting hover states. Chocham's white-dominant layout kept.
   Colours: navy #14315C · white (+ cool grey #F3F5F8) · ink #0A1526.
   Navy surfaces carry WHITE text.
   ========================================================================== */
:root{
  --navy:#14315C; --navy-hover:#1F4480; --navy-deep:#0C2342; --navy-pale:#8DB4E8;
  --accent:var(--navy); --accent-hover:var(--navy-hover); --accent-ink:#FFFFFF;
  --wh:#FFFFFF; --bg:#FFFFFF; --soft:#F3F5F8; --soft-2:#E6EAF0;
  --ink:#0A1526; --text:#0A1526; --text-2:#2A3647; --mute:#5B6778; --mute-2:#6F7A8A;
  --line:#DDE2EA; --line-2:#C5CCD6;

  --f-display:"Space Grotesk","Inter Tight",-apple-system,BlinkMacSystemFont,sans-serif;
  --f-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --f-serif:"Newsreader",Georgia,serif;

  --hdr:64px; --r:22px; --maxw:1180px;
  --spring:cubic-bezier(.2,1.5,.4,1);
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:var(--hdr)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.55 var(--f-body);
  letter-spacing:-.011em;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
@media(min-width:861px){body{padding-bottom:0}}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p{margin:0}
button{font-family:inherit;color:inherit;letter-spacing:inherit}
::selection{background:var(--navy);color:#fff}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:12px}

h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.04;margin:0;
  letter-spacing:-.03em;text-wrap:balance;color:var(--text)}

.wrap,.container{max-width:var(--maxw);margin-inline:auto;
  padding-left:max(20px,env(safe-area-inset-left,0px));
  padding-right:max(20px,env(safe-area-inset-right,0px))}
.read{max-width:860px}
.center{text-align:center}
section{padding-block:clamp(3.5rem,9vw,7.5rem)}
section.tight{padding-block:clamp(2.6rem,6vw,4.5rem)}
hr.rule{border:0;border-top:1px solid var(--line);margin:0}

/* ---------- type scale ---------- */
.eyebrow,.seclabel{font:600 1rem var(--f-body);color:var(--navy);letter-spacing:-.01em;margin:0 0 .5rem;text-transform:none}
h1{font-size:clamp(2.3rem,6.4vw,4.8rem)}
h2,.h2{font-size:clamp(2rem,5.6vw,4.2rem);margin-top:.4rem}
h3{font-size:clamp(1.3rem,2.2vw,1.65rem)}
.lead,.lead-in{color:var(--mute);font-size:clamp(1.08rem,2vw,1.35rem);max-width:46ch;
  margin-top:1rem;font-weight:500;letter-spacing:-.012em;line-height:1.48}
.center .lead,.center .lead-in{margin-inline:auto}
.head{margin-bottom:clamp(2rem,5vw,3.5rem)}
p.body,.prose p{font-size:1.06rem;color:var(--text-2);margin:0 0 1rem;max-width:66ch;line-height:1.62}
.prose ul{margin:0 0 1rem;padding-left:1.3rem;color:var(--text-2)}
.prose li{margin:.5rem 0;max-width:62ch}
.prose strong{color:var(--text)}
.pull{font-family:var(--f-serif);font-style:italic;font-weight:400;color:var(--text);
  font-size:clamp(1.45rem,3.2vw,2.3rem);line-height:1.3;letter-spacing:-.01em;max-width:24ch}

/* surfaces — and what the inline --accent token means on each */
.sec-dark,.cta,.diag,.pres,.statband,.p-main,.p-know,.road li.now,.faq details[open],.stoprow:hover,.feed-item:hover,.post-card:hover,a.svc:hover,.dept:hover{--accent:var(--navy-pale)}
.sec-dark form.site-form,.cta form.site-form{--accent:var(--navy)}
.dark,.sec-dark{background:var(--navy);color:#fff}
.dark h1,.dark h2,.dark h3,.sec-dark h1,.sec-dark h2,.sec-dark h3{color:#fff}
.dark .lead,.dark .lead-in,.dark p,.sec-dark .lead,.sec-dark .lead-in,.sec-dark p{color:#C9D6E8}
.dark .eyebrow,.dark .seclabel,.sec-dark .eyebrow,.sec-dark .seclabel{color:var(--navy-pale)}
.sec-white{background:var(--bg)}
.sec-soft{background:var(--soft)}

/* ---------- buttons ---------- */
.btn{--s:1;position:relative;overflow:hidden;display:inline-flex;align-items:center;
  justify-content:center;gap:.6rem;min-height:56px;padding:0 1.7rem;border-radius:999px;
  border:0;background:var(--ink);color:#fff;font:600 1.05rem var(--f-body);
  letter-spacing:-.01em;cursor:pointer;white-space:nowrap;transform:scale(var(--s));
  transition:transform .3s var(--spring),background .2s,box-shadow .3s,color .2s;
  box-shadow:0 12px 30px -16px rgba(10,21,38,.7);-webkit-tap-highlight-color:transparent}
.btn:hover{--s:1.03;background:#1B2A44}
.btn:active{--s:.95;transition-duration:.08s}
.btn-primary,.btn.accent{background:var(--navy);color:#fff;box-shadow:0 12px 30px -14px rgba(20,49,92,.7)}
.btn-primary:hover,.btn.accent:hover{background:var(--navy-hover)}
.btn-ghost{background:transparent;color:var(--text);border:1.5px solid var(--line-2);box-shadow:none}
.btn-ghost:hover{background:transparent;border-color:var(--ink)}
.btn-on-dark{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4);box-shadow:none}
.btn-on-dark:hover{background:transparent;border-color:#fff}
.btn.big,.btn-lg{min-height:68px;padding:0 2.2rem;font-size:clamp(1.08rem,2vw,1.3rem)}
.btn.block{width:100%}
.arrow{display:inline-block;transition:transform .3s var(--spring)}
.btn:hover .arrow{transform:translateX(6px)}
.rip{position:absolute;border-radius:50%;pointer-events:none;background:currentColor;
  opacity:.25;transform:scale(0);animation:rip .65s ease-out forwards}
@keyframes rip{to{transform:scale(1);opacity:0}}
.circ{width:clamp(56px,12cqi,84px);height:clamp(56px,12cqi,84px);border-radius:50%;
  display:grid;place-items:center;background:currentColor;flex:none;transition:transform .45s var(--spring)}
.circ svg{width:42%;height:42%}
.go2{width:clamp(44px,5.5vw,62px);height:clamp(44px,5.5vw,62px);border-radius:50%;
  background:var(--soft);color:var(--navy);display:grid;place-items:center;flex:none;
  transition:transform .45s var(--spring),background .2s,color .2s}
.go2 svg{width:42%;height:42%}

/* ---------- header + mobile tab strip ---------- */
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;
  background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--line)}
.nav-inner{height:var(--hdr);display:flex;align-items:center;gap:1.2rem}
.brand{display:flex;align-items:center;gap:.55rem;font:600 1.15rem var(--f-display);
  letter-spacing:-.03em;white-space:nowrap;color:var(--ink)}
.brand .wm{font-family:var(--f-display);font-weight:600;letter-spacing:.1em;font-size:.98rem}
.nav-links{display:flex;align-items:center;gap:1.4rem;margin-inline-start:auto}
.nav-links a{color:var(--mute);font:500 .96rem var(--f-body);transition:color .15s}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--ink)}
.nav-links a[aria-current="page"]{font-weight:600}
header.nav .btn{min-height:44px;padding:0 1.2rem;font-size:.95rem;box-shadow:none}
.nav-links a.btn,.nav-links a.btn-primary{color:#fff}
.nav-links a.btn-ghost{color:var(--text)}
.nav-cta{display:none}
@media(min-width:900px){.nav-cta{display:inline-flex}}
.nav-hide{display:none}
@media(min-width:760px){.nav-hide{display:inline}}
header.nav.nav-dark{background:rgba(255,255,255,.86)}   /* no dark hero any more */
header.nav.scrolled{border-bottom-color:var(--line)}
/* phones: a scrolling strip of the same links under the logo (Chocham's tabstrip) */
.tabstrip{display:none}
@media(max-width:759px){
  .tabstrip{display:flex;align-items:center;gap:.4rem;height:50px;overflow-x:auto;
    padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));
    scrollbar-width:none;-webkit-overflow-scrolling:touch;border-top:1px solid var(--line)}
  .tabstrip::-webkit-scrollbar{display:none}
  .tabstrip a{flex:none;background:var(--soft);color:var(--mute);border-radius:999px;min-height:36px;
    padding:0 .95rem;display:inline-flex;align-items:center;font:600 .9rem var(--f-body);white-space:nowrap}
  .tabstrip a[aria-current="page"]{background:var(--navy);color:#fff}
}

/* ==========================================================================
   FIRST SCREEN — panels
   ========================================================================== */
.pnls{display:flex;gap:10px;padding:10px;height:calc(100svh - var(--hdr) - env(safe-area-inset-top,0px));min-height:560px}
.pnl{--mx:50%;--my:50%;--s:1;position:relative;flex:1 1 0;min-width:0;overflow:hidden;
  border-radius:28px;cursor:pointer;container-type:inline-size;display:flex;
  flex-direction:column;justify-content:flex-end;padding:clamp(1.3rem,3vw,2.4rem);
  outline-offset:-6px;transform:scale(var(--s));user-select:none;
  transition:flex-grow .65s var(--ease),transform .35s var(--spring),box-shadow .4s;
  -webkit-tap-highlight-color:transparent}
.pnl::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(520px circle at var(--mx) var(--my),rgba(255,255,255,.14),transparent 45%)}
.pnl:hover::after{opacity:1}
.pnl.pressed{--s:.97}
.pnl.p-main{flex-grow:2.7}
@media(min-width:861px){
  .pnls:hover .pnl{flex-grow:1}
  .pnls .pnl:hover,.pnls .pnl:focus-visible{flex-grow:2.7;box-shadow:0 30px 70px -30px rgba(10,21,38,.5)}
}
.pnl>*{position:relative;z-index:1}
.pk{display:inline-flex;align-items:center;gap:.5rem;font:600 clamp(.9rem,1.3vw,1.02rem) var(--f-body);opacity:.85;margin-bottom:.7rem}
.pt{font:600 clamp(1.9rem,10cqi,5.6rem)/1.02 var(--f-display);letter-spacing:-.04em;text-wrap:balance}
.pt .hl{display:block;color:var(--navy-pale)}
.ps{font:500 clamp(1rem,1.7vw,1.2rem)/1.4 var(--f-body);opacity:.85;max-width:34ch;margin-top:.9rem;transition:opacity .4s,max-height .5s}
.pmeta{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem 2rem;margin-top:1.4rem;transition:opacity .4s,max-height .5s}
.pmeta b{display:block;font:600 clamp(1.3rem,2.4vw,1.9rem)/1.1 var(--f-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.pmeta span.e{display:block;font-size:.9rem;opacity:.8;font-weight:500}
.pgo{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:clamp(1.2rem,3vw,2rem);
  font:600 clamp(1.15rem,5.5cqi,1.9rem) var(--f-display);letter-spacing:-.03em}
.pnl:hover .pgo .circ{transform:scale(1.1) rotate(-45deg)}
@media(min-width:861px){
  .pnl:not(.p-main) .ps,.pnl:not(.p-main) .pmeta,
  .pnls:hover .p-main:not(:hover) .ps,.pnls:hover .p-main:not(:hover) .pmeta{opacity:0;max-height:0;overflow:hidden;margin-top:0}
  .pnls .pnl:hover .ps,.pnls .pnl:focus-visible .ps{opacity:.85;max-height:420px;margin-top:.9rem}
  .pnls .pnl:hover .pmeta{opacity:1;max-height:420px;margin-top:1.4rem}
}
/* the four looks: navy · white-outlined · cool grey · deep navy dotted */
.p-main{color:#fff;background:var(--navy)}
.p-main .pgo .circ{background:#fff;color:var(--navy)}
.p-main .pgo .circ svg{color:var(--navy)}
.p-survey{color:var(--navy);background:#fff;border:2px solid var(--navy)}
.p-survey .pk{opacity:.8}
.p-survey .pgo .circ{background:var(--navy);color:#fff}
.p-survey .pgo .circ svg{color:#fff}
.p-interim{color:var(--ink);background:var(--soft)}
.p-interim .pk{color:var(--navy);opacity:1}
.p-interim .pgo .circ{background:var(--navy)}
.p-interim .pgo .circ svg{color:#fff}
.p-know{color:#fff;background:var(--navy-deep)}
.p-know::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.28) 1px,transparent 1.4px);
  background-size:28px 28px;animation:drift 30s linear infinite}
@keyframes drift{to{background-position:280px -280px}}
.p-know .pgo .circ{background:#fff}
.p-know .pgo .circ svg{color:var(--navy-deep)}
.pulse{width:9px;height:9px;border-radius:50%;background:var(--navy-pale);animation:pulse 1.4s infinite}
.p-survey .pulse,.p-interim .pulse{background:var(--navy)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(141,180,232,.8)}100%{box-shadow:0 0 0 12px rgba(141,180,232,0)}}
.chipcloud{position:absolute;z-index:1;top:clamp(1.3rem,3vw,2.4rem);inset-inline:clamp(1.3rem,3vw,2.4rem);
  display:flex;flex-wrap:wrap;gap:.4rem;pointer-events:none}
.chipcloud span{padding:.45rem .8rem;border-radius:999px;background:#fff;color:var(--navy-deep);
  font-weight:600;font-size:.88rem;white-space:nowrap;animation:bub 3.2s ease-in-out infinite}
.chipcloud span:nth-child(3n+1){background:var(--navy-pale);color:var(--navy-deep)}
.chipcloud span:nth-child(2n){animation-delay:.6s}
.chipcloud span:nth-child(3n){animation-delay:1.2s}
@keyframes bub{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:860px){
  .pnls{flex-direction:column;height:auto;min-height:0;padding:10px;gap:10px}
  .pnl{flex:none;min-height:46svh;border-radius:24px;padding:1.3rem}
  .pnl.p-main{min-height:calc(100svh - var(--hdr) - 50px - env(safe-area-inset-top,0px) - 84px - 20px);padding-bottom:0}
  .p-main .ps{display:none}
  .pt{font-size:clamp(2.1rem,11cqi,3.4rem)}
  .pmeta{gap:.5rem 1.4rem}
  .pmeta b{font-size:1.25rem}
  .pmeta span.e{font-size:.84rem}
  .chipcloud span{font-size:.8rem;padding:.4rem .7rem}
  .p-main .pgo{margin:auto -1.3rem 0;margin-top:1.3rem;padding:0 1.3rem;min-height:30svh;background:#fff;
    color:var(--navy);font-size:clamp(1.7rem,10cqi,2.6rem);align-items:center;border-radius:24px 24px 0 0}
  .p-main .pgo .circ{background:var(--navy);width:68px;height:68px}
  .p-main .pgo .circ svg{color:#fff}
}

/* ---------- morphing row list ---------- */
.stops{display:grid;border-top:1px solid var(--line)}
.stoprow{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:.25rem 1.2rem;text-align:start;
  padding:clamp(1.1rem,2.6vw,1.8rem) clamp(.6rem,2vw,1.4rem);border:0;border-bottom:1px solid var(--line);
  background:#fff;color:var(--text);cursor:pointer;border-radius:0;
  transition:background .25s,color .25s,padding .4s var(--spring),border-radius .3s}
.stoprow:hover{background:var(--navy);color:#fff;padding-inline-start:clamp(1.2rem,4vw,2.8rem);border-radius:22px}
.stoprow s{display:block;font:500 clamp(.9rem,1.6vw,1.08rem) var(--f-body);color:var(--mute);text-decoration:none;margin-bottom:.15rem}
.stoprow:hover s{color:#C9D6E8}
.stoprow b{display:block;font:600 clamp(1.35rem,4.2vw,2.9rem)/1.08 var(--f-display);letter-spacing:-.035em}
.stoprow:hover .go2{background:#fff;color:var(--navy);transform:rotate(-45deg) scale(1.08)}
@media(max-width:600px){.stoprow{padding:1rem .4rem}.stoprow b{font-size:1.3rem}.stoprow s{font-size:.84rem}}

/* ---------- pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.pillar{background:var(--soft);border-radius:var(--r);padding:clamp(1.4rem,3vw,2.2rem);display:grid;gap:.7rem;
  align-content:start;transition:transform .35s var(--spring),box-shadow .35s}
.pillar:hover{transform:translateY(-6px);box-shadow:0 30px 60px -34px rgba(10,21,38,.45)}
.pillar .ic{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:var(--navy);color:#fff}
.pillar:nth-child(2) .ic{background:var(--ink)}
.pillar .ic svg{width:26px;height:26px}
.pillar p{color:var(--mute);font-size:1.02rem}
@media(max-width:860px){.pillars{grid-template-columns:minmax(0,1fr)}}

/* ---------- big stat ---------- */
.bigstat{font:600 clamp(4rem,15vw,11rem)/.9 var(--f-display);letter-spacing:-.06em;color:var(--navy)}
.bigstat.sm{font-size:clamp(3rem,8vw,6rem)}
.bigstat-l{font:600 clamp(1.08rem,2.3vw,1.5rem) var(--f-body);color:var(--mute);margin-top:.6rem;letter-spacing:-.02em}
.bigline{margin-top:1.6rem;display:grid;justify-items:center;gap:.3rem}

/* ---------- stat band ---------- */
.statband{background:var(--navy);color:#fff;padding-block:clamp(2.4rem,5vw,4.2rem)}
.statband .stats{display:grid;gap:clamp(1.2rem,3vw,2.4rem) clamp(1rem,3vw,2.4rem);grid-template-columns:repeat(2,1fr)}
@media(min-width:860px){.statband .stats{grid-template-columns:repeat(4,1fr)}}
.stat .fig{font:600 clamp(1.9rem,4.2vw,3.2rem)/1 var(--f-display);letter-spacing:-.035em;color:#fff}
.stat .fig span{color:var(--navy-pale)}
.stat .cap{margin:.55rem 0 0;font-size:.92rem;color:#C9D6E8;line-height:1.4;max-width:26ch}

/* ---------- departments / cards ---------- */
.depts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;text-align:start}
.dept{background:var(--soft);border-radius:20px;padding:1.3rem;display:grid;gap:.4rem;align-content:start;
  transition:transform .35s var(--spring),background .25s,color .25s}
.dept:hover{transform:translateY(-5px);background:var(--navy);color:#fff}
.dept .code{justify-self:start;font:600 .86rem/1 var(--f-body);color:var(--navy);background:#fff;padding:.45rem .6rem;border-radius:9px}
.dept:hover .code{background:#fff;color:var(--navy)}
.dept p{opacity:.75;font-size:.95rem}
@media(max-width:960px){.depts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.inds{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:clamp(2rem,5vw,3rem)}
.ind{padding:.8rem 1.15rem;border-radius:999px;background:var(--soft);font-weight:600;font-size:clamp(.96rem,1.7vw,1.06rem);
  transition:background .2s,color .2s,transform .3s var(--spring)}
.ind:hover{background:var(--navy);color:#fff;transform:translateY(-3px)}

/* ---------- road ---------- */
.road{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;text-align:start}
.road li{display:grid;gap:.45rem;align-content:start;padding:1.4rem;border-radius:var(--r);background:var(--soft)}
.road li.now{background:var(--navy);color:#fff}
.road li.now h3{color:#fff}
.road .n{font:600 2.5rem/1 var(--f-display);letter-spacing:-.05em;color:var(--navy)}
.road li.now .n{color:var(--navy-pale)}
.road p{font-size:.96rem;opacity:.78}
.status{justify-self:start;font:600 .8rem/1 var(--f-body);padding:.42rem .7rem;border-radius:999px;background:#fff;color:var(--mute)}
.road li.now .status{background:var(--navy-pale);color:var(--navy-deep)}
@media(max-width:900px){.road{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.road{grid-template-columns:minmax(0,1fr)}}

/* ---------- presenter ---------- */
.pres{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2rem;align-items:center;text-align:start;
  border-radius:28px;padding:clamp(1.6rem,4.5vw,3.2rem);color:#fff;background:var(--navy)}
.pres .badge{width:110px;height:110px;border-radius:32px;display:grid;place-items:center;background:#fff;color:var(--navy);
  font:600 2.2rem var(--f-display);letter-spacing:.02em}
.pres .eyebrow{color:var(--navy-pale)}
.pres h2{font-size:clamp(1.8rem,3.8vw,2.8rem);margin-block:.4rem .8rem;color:#fff}
.pres p{font-size:1.1rem;color:#C9D6E8;max-width:58ch}
.pres .stats{display:flex;flex-wrap:wrap;gap:1.8rem;margin-top:1.3rem}
.pres .stats div{display:grid}
.pres .stats b{font:600 2rem/1 var(--f-display);letter-spacing:-.04em;color:#fff}
.pres .stats span{font-size:.88rem;color:#C9D6E8;font-weight:500}
.creds{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.1rem}
.creds span{font-size:.84rem;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:.45rem .85rem}
@media(max-width:600px){.pres{grid-template-columns:minmax(0,1fr)}.pres .badge{width:80px;height:80px;border-radius:24px;font-size:1.6rem}}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:.55rem;max-width:860px;margin-inline:auto;text-align:start;background:none;border:0;border-radius:0;overflow:visible}
.faq details{background:var(--soft);border-radius:18px;padding:0 1.3rem;transition:background .25s,color .25s}
.faq details[open]{background:var(--navy);color:#fff}
.faq summary{cursor:pointer;min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  font:600 1.06rem var(--f-body);letter-spacing:-.012em;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 1.7rem/1 var(--f-body);color:var(--navy);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg);color:#fff}
.faq .a,.faq details p{padding:0 0 1.3rem;opacity:.92;font-size:1.02rem;max-width:70ch;color:inherit}

/* ==========================================================================
   LEGACY COMPONENTS — inner pages
   ========================================================================== */
.crumbs{font-size:.84rem;color:var(--mute-2);padding:1.2rem 0 0}
.crumbs a{color:var(--mute)}
.crumbs a:hover{color:var(--ink)}
.hero-sub{padding:clamp(2.4rem,6vw,5rem) 0 clamp(1.6rem,4vw,2.6rem)}
.hero-sub h1{font-size:clamp(2.2rem,6vw,4.4rem);max-width:17ch}
.hero-sub .lede{color:var(--mute);font-size:clamp(1.06rem,2vw,1.3rem);max-width:50ch;margin:1.1rem 0 0;font-weight:500;letter-spacing:-.012em;line-height:1.48}
.hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.7rem}

.svc-grid{display:grid;gap:.8rem;grid-template-columns:1fr;background:none;border:0;border-radius:0;overflow:visible}
@media(min-width:680px){.svc-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.svc-grid{grid-template-columns:1fr 1fr 1fr}}
.svc{background:var(--soft);border-radius:var(--r);padding:clamp(1.4rem,3vw,2rem);display:block;
  transition:transform .35s var(--spring),background .25s,color .25s,box-shadow .35s}
a.svc:hover{transform:translateY(-6px);background:var(--navy);color:#fff;box-shadow:0 30px 60px -34px rgba(10,21,38,.5)}
a.svc:hover h3{color:#fff}
.svc h3{font-size:1.22rem;margin:0 0 .45rem;letter-spacing:-.025em}
.svc p{font-size:.98rem;color:var(--mute);margin:0;line-height:1.5}
a.svc:hover p{color:#C9D6E8}
.svc .more{display:inline-block;margin-top:.9rem;font-size:.9rem;font-weight:600;color:var(--navy)}
a.svc:hover .more{color:#fff}

.split{display:grid;gap:clamp(1.2rem,3.5vw,2.4rem);grid-template-columns:1fr}
@media(min-width:860px){.split{grid-template-columns:1fr 1fr}}
.split-wide{display:grid;gap:clamp(1.6rem,5vw,3.6rem);grid-template-columns:1fr;align-items:start}
@media(min-width:900px){.split-wide{grid-template-columns:.9fr 1.1fr}}
.panel{background:var(--soft);border:0;border-radius:var(--r);padding:clamp(1.4rem,3vw,2.2rem);transition:transform .35s var(--spring),box-shadow .35s}
.panel:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(10,21,38,.4)}
.panel p{font-size:1.02rem;color:var(--text-2);margin:0;line-height:1.6}
.sec-dark .panel{background:rgba(255,255,255,.08)}
.sec-dark .panel p{color:#C9D6E8}

.steps{display:grid;gap:.8rem;background:none;border:0;border-radius:0;overflow:visible}
.step{background:var(--soft);border-radius:var(--r);padding:clamp(1.3rem,3vw,2rem);display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start}
.step .n{font:600 1.4rem/1 var(--f-display);color:var(--navy);border:0;width:auto;height:auto;display:block;letter-spacing:-.04em}
.step h3{margin:0 0 .35rem;font-size:1.22rem}
.step p{font-size:1rem;color:var(--mute);margin:0;line-height:1.55}

.tickers{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.tickers li{position:relative;padding-left:1.6rem;font-size:1.04rem;color:var(--text-2);line-height:1.5}
.tickers li::before{content:"";position:absolute;left:0;top:.65rem;width:11px;height:2px;background:var(--navy)}
.sec-dark .tickers li{color:#C9D6E8}
.sec-dark .tickers li::before{background:var(--navy-pale)}

.diag{background:var(--navy);color:#fff;border-radius:28px;padding:clamp(1.6rem,4.5vw,3.2rem);display:grid;gap:1.8rem;grid-template-columns:1fr}
@media(min-width:860px){.diag{grid-template-columns:1.25fr .9fr;align-items:center}}
.diag .seclabel{color:var(--navy-pale)}
.diag h2{color:#fff}
.diag p{font-size:1.06rem;margin:0 0 1rem;max-width:52ch;color:#C9D6E8}
.diag p b{color:#fff;font-weight:600}
.diag-aside ul{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.diag-aside li{font-size:1rem;color:#C9D6E8;padding-left:1.4rem;position:relative;line-height:1.45}
.diag-aside li::before{content:"";position:absolute;left:0;top:.65rem;width:9px;height:2px;background:var(--navy-pale)}

.bio{display:grid;gap:clamp(1.2rem,3.5vw,2.6rem);grid-template-columns:1fr;align-items:start;background:var(--soft);border:0;border-radius:28px;padding:clamp(1.6rem,4vw,2.8rem)}
@media(min-width:760px){.bio{grid-template-columns:auto 1fr}}
.bio .mono{width:96px;height:96px;border-radius:28px;background:var(--navy);color:#fff;display:grid;place-items:center;font:600 2rem var(--f-display);letter-spacing:.02em;flex:none}
.bio h3{font-size:clamp(1.6rem,2.6vw,2.2rem);margin:0 0 .2rem}
.bio .role{font-size:.98rem;color:var(--navy);font-weight:600;margin:0 0 .9rem;letter-spacing:-.01em;text-transform:none}
.bio p{font-size:1.04rem;color:var(--text-2);margin:0 0 .8rem;max-width:62ch;line-height:1.6}
.bio .creds span{color:var(--navy);border-color:var(--line-2);background:#fff}
.lead-grid{display:grid;gap:.8rem;grid-template-columns:1fr}
@media(min-width:900px){.lead-grid{grid-template-columns:1fr 1fr}}
.lead-grid .lead{display:flex;gap:1rem;align-items:center;background:var(--soft);border:0;border-radius:var(--r);padding:1.3rem 1.5rem;font-size:1rem;color:var(--text);max-width:none;margin-top:0;font-weight:400;letter-spacing:-.011em}
.lead-grid .lead .mono{width:56px;height:56px;border-radius:16px;background:var(--navy);color:#fff;display:grid;place-items:center;font:600 1.05rem var(--f-display);flex:none}
.lead-grid .lead h3{margin:0 0 .1rem;font-size:1.15rem}
.lead-grid .lead .role{font-size:.92rem;color:var(--mute);margin:0}

.signals{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.signals-inner{display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;padding:1.1rem 0;align-items:center}
.signals .lbl{font:600 .86rem var(--f-body);color:var(--mute)}
.signals .sig{font:600 .96rem var(--f-body);color:var(--text);display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}
.signals .sig::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--navy)}
@media(max-width:600px){
  .signals-inner{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:.6rem 1.2rem;padding-right:1rem}
  .signals-inner::-webkit-scrollbar{display:none}
  .signals .lbl{flex:none}
}

/* ---------- industry feed ---------- */
.feed-head{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:baseline;justify-content:space-between;margin-bottom:1.5rem}
.feed-head .upd{font-size:.88rem;color:var(--mute-2)}
.feed-grid{display:grid;gap:.8rem;grid-template-columns:1fr;background:none;border:0;border-radius:0;overflow:visible}
@media(min-width:720px){.feed-grid{grid-template-columns:1fr 1fr}}
.feed-item{background:var(--soft);border-radius:var(--r);padding:1.3rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;
  transition:transform .35s var(--spring),background .25s,color .25s}
.feed-item:hover{transform:translateY(-5px);background:var(--navy);color:#fff}
.feed-item:hover h3{color:#fff}
.feed-item .src{font:600 .78rem var(--f-body);color:var(--navy);letter-spacing:.02em}
.feed-item:hover .src{color:var(--navy-pale)}
.feed-item h3{font-size:1.1rem;margin:0;line-height:1.3;letter-spacing:-.02em}
.feed-item p{font-size:.95rem;color:var(--mute);margin:0;line-height:1.5}
.feed-item .date{font-size:.82rem;color:var(--mute-2);margin-top:auto;padding-top:.3rem}
.feed-item:hover .date,.feed-item:hover p{color:#C9D6E8}
.feed-skel{background:var(--soft);border-radius:var(--r);padding:1.6rem;color:var(--mute);font-size:.96rem;grid-column:1/-1;text-align:center}
.feed-note{font-size:.86rem;color:var(--mute-2);margin-top:1.1rem;max-width:70ch;line-height:1.5}

/* ---------- articles ---------- */
article.post{background:transparent;border:0;padding:0;max-width:760px;margin-inline:auto}
article.post .meta{font:600 .9rem var(--f-body);color:var(--mute);margin:0 0 1rem}
article.post h1{font-size:clamp(2.1rem,5vw,3.7rem);max-width:20ch}
article.post h2{font-size:clamp(1.55rem,2.8vw,2.2rem);margin-top:2.6rem;max-width:28ch}
article.post p{font-size:1.1rem;color:var(--text-2);max-width:68ch;line-height:1.68;margin:0 0 1.1rem}
article.post ul,article.post ol{color:var(--text-2);font-size:1.06rem;padding-left:1.3rem}
article.post li{margin:.6rem 0;max-width:64ch}
article.post strong{color:var(--text)}
.post-list{display:grid;gap:.8rem}
.post-card{background:var(--soft);border:0;border-radius:var(--r);padding:clamp(1.4rem,3vw,2.1rem);display:block;
  transition:transform .35s var(--spring),background .25s,color .25s,box-shadow .35s}
.post-card:hover{transform:translateY(-6px);background:var(--navy);color:#fff;box-shadow:0 30px 60px -34px rgba(10,21,38,.5)}
.post-card:hover h3{color:#fff}
.post-card h3{font-size:clamp(1.35rem,2.6vw,1.95rem);max-width:30ch;letter-spacing:-.03em}
.post-card .meta{font:600 .86rem var(--f-body);color:var(--mute);margin:0 0 .45rem}
.post-card:hover .meta,.post-card:hover p{color:#C9D6E8}
.post-card p{font-size:1rem;color:var(--mute);margin:.45rem 0 0;max-width:70ch;line-height:1.55}
.post-card .more{display:inline-block;margin-top:.85rem;font-size:.9rem;font-weight:600;color:var(--navy)}
.post-card:hover .more{color:#fff}
.related{display:grid;gap:.8rem;grid-template-columns:1fr}
@media(min-width:860px){.related{grid-template-columns:1fr 1fr 1fr}}

/* ---------- forms ---------- */
form.site-form{background:var(--soft);border:0;border-radius:28px;padding:clamp(1.4rem,4vw,2.6rem);max-width:760px}
.sec-dark form.site-form{background:#fff;color:var(--text)}
.sec-dark form.site-form h2{color:var(--text)}
form.site-form h2{font-size:clamp(1.6rem,3vw,2.2rem)}
form.site-form label,form.site-form legend{display:block;font-weight:600;font-size:.96rem;color:var(--text);margin:1rem 0 .4rem;letter-spacing:-.01em}
form.site-form input,form.site-form select,form.site-form textarea{width:100%;font:400 1.04rem var(--f-body);color:var(--text);
  background:#fff;border:1px solid var(--line-2);border-radius:14px;min-height:54px;padding:.85rem 1rem}
form.site-form textarea{min-height:0}
form.site-form input::placeholder,form.site-form textarea::placeholder{color:var(--mute-2)}
form.site-form input:focus,form.site-form select:focus,form.site-form textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(20,49,92,.15)}
form.site-form .row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
@media(max-width:620px){form.site-form .row{grid-template-columns:1fr}}
form.site-form button{margin-top:1.4rem;width:100%;min-height:60px;border:0;border-radius:999px;background:var(--navy);color:#fff;
  font:600 1.08rem var(--f-body);cursor:pointer;transition:background .2s,transform .3s var(--spring)}
form.site-form button:hover{background:var(--navy-hover)}
form.site-form button:active{transform:scale(.97)}
form.site-form fieldset{border:none;margin:1rem 0 0;padding:0}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem}
form.site-form .checks label{display:flex;align-items:center;gap:.6rem;font-weight:500;font-size:.98rem;margin:0;color:var(--text-2);
  min-height:44px;padding:.45rem .7rem;border-radius:12px;background:#fff;border:1px solid var(--line);cursor:pointer}
form.site-form .checks label:hover{border-color:var(--navy)}
form.site-form .checks input,form.site-form input[type="checkbox"],form.site-form input[type="radio"]{
  width:20px;height:20px;min-height:0;padding:0;margin:0;border:0;background:transparent;border-radius:4px;accent-color:var(--navy);flex:none}
.fineprint{font-size:.86rem;color:var(--mute-2);margin-top:1rem;max-width:70ch;line-height:1.5}
.form-status{margin-top:1rem;font-size:.96rem;font-weight:600;color:var(--navy);display:none}
.form-status.on{display:block}

/* ---------- CTA band ---------- */
.cta{background:var(--navy);border-radius:28px;padding:clamp(2.2rem,6vw,5rem) clamp(1.4rem,5vw,3.6rem);text-align:center;color:#fff}
.cta h2{color:#fff;margin:0 auto .8rem;max-width:20ch}
.cta p{color:#C9D6E8;font-size:1.08rem;max-width:52ch;margin:0 auto 1.8rem;line-height:1.5}
.cta .seclabel{color:var(--navy-pale)!important}
.cta-row{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center}
.cta-row .btn-primary{background:#fff;color:var(--navy)}
.cta-row .btn-primary:hover{background:#EAF0F8}
.cta-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;justify-content:center;margin-top:1.6rem;font-size:.96rem;color:#C9D6E8}
.cta-meta a{color:#fff;border-bottom:1px solid rgba(255,255,255,.35)}
.cta-meta a:hover{border-color:#fff}

/* ---------- sticky phone bar ---------- */
.sticky-cta{position:fixed;inset:auto 0 0 0;z-index:25;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);border-top:1px solid var(--line);
  padding:.65rem max(16px,env(safe-area-inset-right,0px)) calc(.65rem + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
  transform:translateY(130%);transition:transform .4s var(--ease)}
.sticky-cta.up{transform:none}
.sticky-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:.7rem}
.sticky-cta .txt{display:grid;line-height:1.25;min-width:0;font-weight:700;font-size:.98rem;letter-spacing:-.02em;color:var(--text)}
.sticky-cta .txt small{font-size:.84rem;color:var(--mute);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-actions{margin-inline-start:auto;display:flex;gap:.5rem;flex:none}
.sticky-cta .btn{min-height:50px;padding:0 1.2rem;font-size:.98rem;box-shadow:none}
.sticky-cta .btn-on-dark{color:var(--navy);border-color:var(--navy)}
@media(min-width:861px){.sticky-cta{display:none}}
@media(max-width:760px){.sticky-cta .txt{display:none}.sticky-actions{width:100%;margin-inline-start:0}.sticky-cta .btn{flex:1 1 0;padding:0 .6rem;font-size:.96rem}}

/* ---------- footer ---------- */
footer.ft{padding-block:clamp(2.4rem,5vw,3.6rem);border-top:1px solid var(--line);background:var(--soft)}
.ft-inner{display:flex;flex-wrap:wrap;gap:1.8rem 3rem;justify-content:space-between;align-items:flex-start}
.ft .wm{font:600 1rem var(--f-display);letter-spacing:.1em;color:var(--ink)}
.ft small{color:var(--mute);font-size:.86rem;display:block;margin-top:.8rem;max-width:40ch;line-height:1.5}
.ft-cols{display:flex;gap:clamp(1.4rem,5vw,4rem);flex-wrap:wrap}
.ft-nav{display:flex;flex-direction:column;gap:.45rem;font-size:.94rem;color:var(--mute)}
.ft-nav b{font:600 .8rem var(--f-body);color:var(--ink);margin-bottom:.3rem}
.ft-nav a:hover{color:var(--navy)}

/* ---------- final panel ---------- */
.final{padding:10px}
.final .pnl{min-height:70svh;justify-content:center;align-items:center;text-align:center}
.final .pt{font-size:clamp(2.2rem,8cqi,6rem)}
.final .ps{margin-inline:auto;text-align:center}
.final .pgo{justify-content:center;gap:1.2rem;width:100%}
@media(max-width:860px){.final .pnl{min-height:58svh}.final .p-main .pgo{background:none;color:#fff;min-height:0;margin:1.2rem 0 0;padding:0;border-radius:0}.final .p-main .pgo .circ{background:#fff}.final .p-main .pgo .circ svg{color:var(--navy)}}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
html.no-js .reveal{opacity:1;transform:none}

/* ==========================================================================
   Nov 4 additions: big actions, situation chooser, icon service cards, chat
   ========================================================================== */
.ic-svg{width:26px;height:26px;flex:none}
.ic-btn{width:20px;height:20px;flex:none}

/* three big action buttons under the hero */
.actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:.4rem 0 1.4rem}
.action{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:.1rem .9rem;align-items:center;
  background:var(--soft);border-radius:20px;padding:1.1rem 1.2rem;min-height:84px;color:var(--text);
  transition:transform .35s var(--spring),background .25s,color .25s}
.action .ic-svg{grid-row:1/3;width:30px;height:30px;color:var(--navy)}
.action b{font:600 1.08rem var(--f-display);letter-spacing:-.02em}
.action span{font-size:.88rem;color:var(--mute)}
.action:hover{transform:translateY(-4px);background:var(--navy);color:#fff}
.action:hover .ic-svg{color:#fff}.action:hover span{color:#C9D6E8}
@media(max-width:700px){.actions{grid-template-columns:1fr;gap:.55rem}.action{min-height:68px;padding:.9rem 1rem}}

/* situation chooser: big tappable tiles */
.chooser{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.choose{display:flex;align-items:center;gap:.9rem;min-height:76px;padding:1rem 1.15rem;border-radius:20px;
  background:#fff;border:2px solid var(--line);color:var(--text);font:600 1.06rem var(--f-display);letter-spacing:-.02em;
  transition:transform .35s var(--spring),background .25s,color .25s,border-color .25s}
.choose .ic-svg{color:var(--navy);width:28px;height:28px}
.choose:hover,.choose.on{background:var(--navy);border-color:var(--navy);color:#fff;transform:translateY(-3px)}
.choose:hover .ic-svg,.choose.on .ic-svg{color:#fff}
@media(max-width:860px){.chooser{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.chooser{grid-template-columns:1fr}.choose{min-height:64px}}

/* icon service cards (infographic style) */
.svc-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
@media(min-width:1000px){.svc-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.svc-cards{grid-template-columns:1fr}}
.svc-card{display:flex;flex-direction:column;gap:.55rem;background:#fff;border-radius:var(--r);padding:clamp(1.3rem,2.6vw,1.8rem);
  color:var(--text);border:1px solid var(--line);scroll-margin-top:140px;transition:transform .35s var(--spring),box-shadow .35s,border-color .25s}
.svc-card:hover,.svc-card.hit{transform:translateY(-5px);box-shadow:0 30px 60px -34px rgba(10,21,38,.4);border-color:var(--navy)}
.svc-ic{width:52px;height:52px;border-radius:15px;background:var(--navy);color:#fff;display:grid;place-items:center;margin-bottom:.3rem}
.svc-ic .ic-svg{width:26px;height:26px}
.svc-when{font:600 .88rem var(--f-body);color:var(--navy);margin:0}
.svc-card h3{font-size:1.28rem;margin:0;letter-spacing:-.025em}
.svc-out{list-style:none;margin:.2rem 0 .6rem;padding:0;display:grid;gap:.4rem}
.svc-out li{position:relative;padding-left:1.6rem;font-size:.98rem;color:var(--text-2);line-height:1.4}
.svc-out li::before{content:"";position:absolute;left:0;top:.2rem;width:16px;height:16px;border-radius:50%;background:var(--soft);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314315C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");
  background-size:10px;background-position:center;background-repeat:no-repeat}
.svc-btn{margin-top:auto;align-self:flex-start;min-height:48px;padding:0 1.3rem;font-size:.98rem}
.svc-card-state{background:var(--navy);color:#fff;border-color:var(--navy)}
.svc-card-state h3{color:#fff}.svc-card-state .svc-when{color:var(--navy-pale)}.svc-card-state .svc-out li{color:#C9D6E8}
.svc-card-state .svc-ic{background:#fff;color:var(--navy)}.svc-card-state .svc-btn{background:#fff;color:var(--navy)}
.svc-card-state .svc-out li::before{background:rgba(255,255,255,.15);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");background-size:10px;background-position:center;background-repeat:no-repeat}

/* service detail pages: hero icon + checklist tiles */
.svc-hero-ic{width:60px;height:60px;border-radius:18px;background:var(--navy);color:#fff;display:grid;place-items:center;margin-bottom:1rem}
.svc-hero-ic .ic-svg{width:30px;height:30px}
.facts .prose{background:var(--soft);border-radius:var(--r);padding:clamp(1.2rem,2.6vw,1.8rem)}
.facts .prose ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.facts .prose li{position:relative;padding-left:1.7rem;margin:0;font-size:1rem;line-height:1.45}
.facts .prose li::before{content:"";position:absolute;left:0;top:.25rem;width:17px;height:17px;border-radius:50%;background:#fff;border:1.5px solid var(--navy);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314315C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");background-size:10px;background-position:center;background-repeat:no-repeat}

/* homepage service rows get an icon */
.stoprow{grid-template-columns:auto minmax(0,1fr) auto}
.row-ic{width:44px;height:44px;border-radius:13px;background:var(--soft);color:var(--navy);display:grid;place-items:center;flex:none}
.row-ic .ic-svg{width:22px;height:22px}
.stoprow:hover .row-ic{background:rgba(255,255,255,.15);color:#fff}
@media(max-width:600px){.row-ic{width:38px;height:38px}}

/* ---------- chat ---------- */
.chat-fab{position:fixed;z-index:35;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(92px + env(safe-area-inset-bottom,0px));
  height:56px;padding:0 1.2rem 0 1rem;border-radius:999px;border:0;background:var(--navy);color:#fff;cursor:pointer;
  display:flex;align-items:center;gap:.55rem;font:600 1rem var(--f-body);box-shadow:0 16px 40px -12px rgba(10,21,38,.6);
  transition:transform .3s var(--spring),opacity .3s}
.chat-fab svg{width:24px;height:24px}
.chat-fab:hover{transform:scale(1.06)}
.chat-fab.off{opacity:0;transform:scale(.4);pointer-events:none}
@media(min-width:861px){.chat-fab{bottom:calc(24px + env(safe-area-inset-bottom,0px))}}
@media(max-width:480px){.chat-fab span{display:none}.chat-fab{width:56px;padding:0;justify-content:center}}
.chat{position:fixed;z-index:45;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));
  width:min(420px,calc(100vw - 32px));height:min(640px,calc(100vh - 110px));background:#fff;color:var(--text);border-radius:26px;
  display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden;box-shadow:0 40px 100px -30px rgba(10,21,38,.5),0 0 0 1px var(--line);
  animation:chatpop .35s var(--spring)}
@keyframes chatpop{from{transform:translateY(24px) scale(.96);opacity:0}}
@media(max-width:560px){.chat{inset:calc(8px + env(safe-area-inset-top,0px)) 8px calc(8px + env(safe-area-inset-bottom,0px)) 8px;width:auto;height:auto}}
.chat-h{background:var(--navy);color:#fff;padding:1rem 1.1rem;display:flex;align-items:center;gap:.7rem}
.chat-mark{width:40px;height:40px;border-radius:12px;background:#fff;color:var(--navy);display:grid;place-items:center;font:600 1.2rem var(--f-display)}
.chat-h b{display:block;font-size:1.05rem}.chat-h small{opacity:.8;font-size:.82rem}
.chat-x{margin-inline-start:auto;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:1.4rem;cursor:pointer}
.chat-msgs{overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.55rem;overscroll-behavior:contain}
.chat-m{max-width:88%;padding:.75rem .95rem;border-radius:18px;line-height:1.45;font-size:.98rem;overflow-wrap:anywhere}
.chat-m.bot{align-self:flex-start;background:var(--soft);border-bottom-left-radius:6px}
.chat-m.me{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:6px}
.chat-m.typing{color:var(--mute)}
.chat-links{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.chat-links .btn{min-height:40px;padding:0 .95rem;font-size:.9rem;box-shadow:none}
.chat-lead{display:grid;gap:.45rem;margin-top:.7rem}
.chat-lead input,.chat-lead textarea{font:400 .98rem var(--f-body);border:1px solid var(--line-2);border-radius:12px;padding:.7rem .85rem;background:#fff;color:var(--text);width:100%}
.chat-lead button{min-height:46px;font-size:.98rem}
.chat-chips{display:flex;gap:.4rem;overflow-x:auto;padding:.2rem 1rem .7rem;scrollbar-width:none}
.chat-chips::-webkit-scrollbar{display:none}
.chat-chips button{flex:none;border:0;background:var(--soft);color:var(--navy);border-radius:999px;min-height:40px;padding:0 .95rem;font:600 .9rem var(--f-body);cursor:pointer}
.chat-chips button:hover{background:var(--navy);color:#fff}
.chat-form{display:flex;gap:.5rem;padding:.7rem;border-top:1px solid var(--line)}
.chat-form input{flex:1;min-width:0;font:400 1rem var(--f-body);border:1px solid var(--line);border-radius:999px;padding:0 1rem;min-height:48px;background:var(--soft);color:var(--text)}
.chat-form input:focus{outline:none;border-color:var(--navy);background:#fff}
.chat-form button{width:48px;height:48px;border-radius:50%;border:0;background:var(--navy);color:#fff;cursor:pointer;display:grid;place-items:center;flex:none}
.chat-form button svg{width:20px;height:20px}

/* footer disclosures */
.ft-legal{margin-top:clamp(1.6rem,4vw,2.6rem);padding-top:1.4rem;border-top:1px solid var(--line);display:grid;gap:.6rem}
.ft-legal p{font-size:.84rem;line-height:1.5;color:var(--mute);max-width:100ch;margin:0}
.ft-legal strong{color:var(--text);font-weight:600}
.ft-legal a{color:var(--navy);font-weight:500}

/* nav: two CTAs sit tight together; the tab strip's Contact pill reads as a button */
.nav-links .nav-cta+.nav-cta{margin-left:-.6rem}
.tabstrip a.tab-cta{background:var(--navy);color:#fff}
.tabstrip a.tab-cta[aria-current="page"]{background:var(--navy-deep)}
