@layer page{:root{
--c-primary:#141414;--c-btn:#141414;--c-on-primary:#ffffff;--c-link:#141414;
--c-secondary:#141414;--c-accent:#FFDD00;--c-accent-on-dark:#FFDD00;
--c-ink:#141414;--c-ink-soft:#535250;--c-surface:#F6F3EA;--c-muted:#FFDD00;
--c-dark:#141414;--c-on-dark:#ffffff;--c-on-dark-soft:#c4c4c4;
--c-line:#dbd8d0;--c-primary-soft:#dbd8d0;
--L-ink:#141414;--L-ink-soft:#535250;--L-link:#141414;--L-line:#dbd8d0;--L-primary-soft:#dbd8d0;--L-surface:#F6F3EA;
--c-brand-bg:#141414;--c-on-brand:#ffffff;--c-on-brand-soft:#d0d0d0;
--c-brand-card:#121212;--c-dark-card:#222222;
--ring-surface:none;--ring-dark:0 0 0 2px rgba(255,255,255,.55);
--c-cta:#141414;--c-on-cta:#ffffff;--c-cta-dark:#141414;--c-on-cta-dark:#ffffff;--c-cta-brand:#ffffff;--c-on-cta-brand:#0f172a;
--f-head:"Bricolage Grotesque",ui-serif,Georgia,system-ui,sans-serif;
--f-body:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
--r-btn:2px;--r-card:4px;
--w-head:800;--track-head:-0.03em;--eyebrow-case:uppercase;--eyebrow-track:.12em;
--s:1.333;
--c-em:#8b6e00;--c-em-brand:#FFDD00;--em-style:normal;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;overflow-wrap:break-word;font-family:var(--f-body);font-size:clamp(1.0625rem,1.024rem + .158vw,1.125rem);line-height:1.6;color:var(--c-ink);background:var(--c-surface);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
a{color:var(--c-link);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
a[href^="tel:"]:not(.btn){white-space:nowrap}
p{margin:0 0 1em;max-width:68ch;text-wrap:pretty}
ul,ol{margin:0 0 1em;padding-left:1.2em}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:var(--w-head);letter-spacing:var(--track-head);line-height:1.12;margin:0 0 .5em;color:inherit;text-wrap:balance}
h1{font-size:clamp(2.25rem,1.6rem + 3.2vw,calc(1rem * var(--s) * var(--s) * var(--s) * var(--s) * var(--s) * 1.15))}
h2{font-size:clamp(1.75rem,1.35rem + 1.9vw,calc(1rem * var(--s) * var(--s) * var(--s) * var(--s)))}
h3{font-size:clamp(1.15rem,1.08rem + .4vw,calc(1rem * var(--s) * var(--s)));line-height:1.25}
h4{font-size:1.05rem}
:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px;border-radius:4px}
.nw,a[href^="tel:"]:not(.btn){white-space:nowrap}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--c-ink);color:#fff;padding:.75rem 1rem}
.skip:focus{left:1rem;top:1rem}
.wrap{width:min(100% - 2.5rem,1200px);margin-inline:auto}
.wrap.narrow{width:min(100% - 2.5rem,780px)}
.icon{width:1.25em;height:1.25em;flex:none;stroke-width:1.75}

/* ---------- buttons ---------- */
.btn{--bg:var(--c-cta);--fg:var(--c-on-cta);max-width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:.75em 1.4em;border-radius:var(--r-btn);border:2px solid var(--bg);background:var(--bg);color:var(--fg);font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;cursor:pointer;font-family:inherit;text-align:center}
.btn:not(.secondary):not(.ghost):not(.link){box-shadow:var(--ring-surface)}
.tone-dark .btn:not(.secondary):not(.ghost):not(.link),.hero.on-media .btn:not(.secondary):not(.ghost):not(.link),.cta-card .box .btn:not(.secondary):not(.ghost):not(.link){box-shadow:var(--ring-dark)}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px -10px color-mix(in srgb,var(--bg) 70%,transparent);text-decoration:none}
.btn.secondary{--fg:var(--c-ink);background:transparent;border-color:color-mix(in srgb,currentColor 25%,transparent);color:var(--fg)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--c-link);padding-inline:.6em}
.btn.link{background:none;border:0;padding:0;min-height:0;color:var(--c-link);font-weight:600;justify-content:flex-start;text-align:left}
.btn.link .icon{transition:transform .2s}
.btn.link:hover .icon{transform:translateX(3px)}
.btns{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.tone-dark .btn.secondary,.tone-brand .btn.secondary,.hero.on-media .btn.secondary{--fg:#fff;border-color:rgba(255,255,255,.45)}
.tone-dark .btn:not(.secondary):not(.ghost):not(.link),.hero.on-media .btn:not(.secondary):not(.ghost):not(.link){--bg:var(--c-cta-dark);--fg:var(--c-on-cta-dark)}
.tone-brand .btn:not(.secondary):not(.ghost):not(.link){--bg:var(--c-cta-brand);--fg:var(--c-on-cta-brand)}
.tone-dark .btn.link,.tone-dark .btn.ghost{color:var(--c-accent-on-dark)}
.tone-brand .btn.link,.tone-brand .btn.ghost{color:var(--c-on-brand)}

/* ---------- header ---------- */
.utility{background:var(--c-dark);color:var(--c-on-dark-soft);font-size:.875rem}
.utility .wrap{display:flex;justify-content:flex-end;gap:1.25rem;padding-block:.4rem;flex-wrap:wrap}
.utility a{color:inherit;text-decoration:none;display:inline-flex;gap:.4em;align-items:center}
.utility a:hover{color:#fff}
@media (max-width:520px){.utility .wrap{justify-content:center;gap:1rem;font-size:.8125rem}.utility a[href^="mailto:"]{display:none}}
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--c-surface) 92%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.site-header.scrolled{border-color:var(--c-line);box-shadow:0 6px 24px -18px rgba(0,0,0,.35)}
.site-header .wrap{display:flex;align-items:center;gap:1.5rem;min-height:72px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--c-ink);font-family:var(--f-head);font-weight:700;font-size:1.2rem;margin-right:auto;flex:none}
.brand:has(>span){flex:0 1 auto;min-width:0;line-height:1.15}
.brand img{max-height:56px;width:auto;max-width:220px;object-fit:contain}
.logo-large .brand img{max-height:76px;max-width:300px}.logo-small .brand img{max-height:42px;max-width:170px}
@media (max-width:767px){.logo-large .brand img{max-height:62px;max-width:230px}}
.nav{display:none}
.nav>ul{display:flex;gap:.25rem;list-style:none;margin:0;padding:0;align-items:center}
.nav a,.nav button{white-space:nowrap;display:inline-flex;align-items:center;gap:.25rem;padding:.55rem .75rem;border-radius:8px;color:var(--c-ink);text-decoration:none;font-weight:500;font-size:.975rem;background:none;border:0;font-family:inherit;cursor:pointer}
.nav a:hover,.nav button:hover,.nav a[aria-current=page]{background:var(--c-primary-soft);color:var(--c-link)}
.nav li{position:relative}
.nav .sub{position:absolute;top:100%;left:0;min-width:240px;list-style:none;margin:0;padding:.5rem;background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);box-shadow:0 18px 40px -20px rgba(0,0,0,.3);opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s ease}
.nav .sub a{display:flex;width:100%}
.nav>ul>li:nth-last-child(-n+2)>.sub{left:auto;right:0}
.nav li:hover>.sub,.nav li:focus-within>.sub,.nav li.open>.sub{opacity:1;visibility:visible;transform:none}
.header-cta{display:none}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:10px;border:1px solid var(--c-line);background:var(--c-surface);color:var(--c-ink);cursor:pointer}
.drawer{position:fixed;inset:0;z-index:60;background:var(--c-surface);padding:1rem 1.25rem 2rem;overflow-y:auto;transform:translateX(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);visibility:hidden}
.drawer.open{transform:none;visibility:visible}
.drawer-top{display:flex;justify-content:space-between;align-items:center;min-height:56px;margin-bottom:1rem}
.drawer ul{list-style:none;margin:0;padding:0}
.drawer>nav>ul>li{border-bottom:1px solid var(--c-line)}
.drawer a{display:block;padding:.9rem .25rem;color:var(--c-ink);text-decoration:none;font-weight:600;font-size:1.125rem}
.drawer .sub a{font-weight:500;font-size:1rem;padding:.55rem 1rem;color:var(--c-ink-soft)}
.drawer .btn{width:100%;margin-top:1.5rem}
body.drawer-open{overflow:hidden}
@media (min-width:1024px){body:not(.nav-long) .nav{display:block}body:not(.nav-long) .header-cta{display:inline-flex}body:not(.nav-long) .menu-btn{display:none}}
@media (min-width:1280px){.nav-long .nav{display:block}.nav-long .header-cta{display:inline-flex}.nav-long .menu-btn{display:none}.nav-long .nav a,.nav-long .nav button{padding-inline:.6rem}}
.header-cta .btn{white-space:nowrap}
.site-header .nav,.site-header .header-cta{flex:none}
/* measured fallback: if the desktop nav doesn't fit next to the logo, use the drawer */
body.nav-fit .site-header .nav,body.nav-fit .site-header .header-cta{display:none!important}
body.nav-fit .site-header .menu-btn{display:inline-flex!important}
.site-header .wrap,.utility .wrap{width:min(100% - 2.5rem,1360px)}
.site-header .wrap{gap:1rem}
@media (min-width:1280px){.nav-long .nav a,.nav-long .nav button{padding-inline:.45rem;font-size:.94rem}.nav-long .brand img{max-width:190px}.nav-long .nav>ul{gap:0}}

/* ---------- sections ---------- */
.section{padding-block:clamp(3.5rem,2.5rem + 5vw,7rem);position:relative}
.section.tight{padding-block:clamp(2rem,1.5rem + 2vw,3rem)}
.tone-light{background:var(--c-surface);color:var(--c-ink)}
.tone-muted{background:var(--c-muted);color:var(--c-ink)}
.tone-dark{background:var(--c-dark);color:var(--c-on-dark)}
.tone-brand{background:var(--c-brand-bg);color:var(--c-on-brand)}
.tone-dark a:not(.btn){color:var(--c-accent-on-dark)}
.tone-brand a:not(.btn){color:var(--c-on-brand)}
.head{max-width:760px;margin-bottom:clamp(2rem,1.5rem + 2vw,3.25rem)}
.head.center{margin-inline:auto;text-align:center}
.eyebrow{display:inline-block;font-size:.8125rem;font-weight:700;letter-spacing:var(--eyebrow-track,.12em);text-transform:var(--eyebrow-case);color:var(--c-link);margin-bottom:.9rem}
.tone-dark .eyebrow{color:var(--c-accent-on-dark)}
.tone-brand .eyebrow{color:var(--c-on-brand-soft)}
.intro{font-size:clamp(1.05rem,1rem + .35vw,1.25rem);color:var(--c-ink-soft);margin:0}
.head.center .intro{margin-inline:auto}
.tone-dark .intro{color:var(--c-on-dark-soft)}
.tone-brand .intro{color:var(--c-on-brand-soft)}
.prose{max-width:68ch}
.prose h2{margin-top:1.6em}.prose h3{margin-top:1.4em}
.prose li{margin-bottom:.35em}
/* long link lists (an index of 20-70 coverage pages) flow into columns instead of one narrow strip */
@media (min-width:768px){.prose ul:has(> li:nth-child(9)){columns:2;column-gap:2.5rem}.prose ul:has(> li:nth-child(9)) li{break-inside:avoid}}
@media (min-width:1100px){.prose:has(> ul > li:nth-child(25)){max-width:none}.prose ul:has(> li:nth-child(25)){columns:3}}
.prose hr,.section hr{border:0;border-top:1px solid var(--c-line);margin:1.75em 0}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero h1{margin-bottom:.35em}
.hero .lede{font-size:clamp(1.1rem,1rem + .55vw,1.375rem);max-width:60ch;margin:0 0 2rem;color:var(--c-ink-soft)}
.hero.tone-dark .lede,.hero.on-media .lede{color:var(--c-on-dark-soft)}
.hero.tone-brand .lede{color:var(--c-on-brand-soft)}
.badges{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-top:2rem;padding:0;list-style:none;font-size:.925rem;font-weight:500;opacity:.92}
.badges li{display:inline-flex;align-items:center;gap:.45rem}
.badges .icon{color:var(--c-link)}
.tone-dark .badges .icon,.on-media .badges .icon{color:var(--c-accent-on-dark)}
.hero-split .wrap{display:grid;gap:clamp(2rem,1rem + 4vw,4rem);align-items:center}
.hero-split .media{position:relative}
.hero-split .media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-card);box-shadow:0 30px 60px -30px rgba(0,0,0,.45)}
.hero-split .media::before{content:"";position:absolute;inset:auto -14px -14px 14px;height:100%;border-radius:var(--r-card);background:var(--c-primary-soft);z-index:-1}
.tone-dark.hero-split .media::before{background:color-mix(in srgb,var(--c-accent) 30%,transparent)}
@media (min-width:900px){.hero-split .wrap{grid-template-columns:1.1fr .9fr}}
.hero-centered{text-align:center}
.hero-centered .lede{margin-inline:auto}
.hero-centered .btns,.hero-centered .badges{justify-content:center}
.hero-centered .media{margin-top:3rem}
.hero-centered .media img{border-radius:var(--r-card);width:100%;max-height:560px;object-fit:cover}
.hero.on-media{color:#fff;min-height:min(88vh,820px);display:flex;align-items:center;padding-block:clamp(6rem,4rem + 8vw,10rem)}
.hero.on-media .bg{position:absolute;inset:0;z-index:-2}
.hero.on-media .bg img{width:100%;height:100%;object-fit:cover}
.hero.on-media::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,color-mix(in srgb,var(--c-dark) 92%,transparent) 0%,color-mix(in srgb,var(--c-dark) 70%,transparent) 50%,color-mix(in srgb,var(--c-dark) 25%,transparent) 100%)}
.hero.on-media .content{max-width:760px}
.hero-motion{background:var(--c-dark)}
.hero-motion::after{background:linear-gradient(100deg,color-mix(in srgb,var(--c-dark) 82%,transparent) 0%,color-mix(in srgb,var(--c-dark) 45%,transparent) 55%,transparent 100%)!important}
.motion{position:absolute;inset:0;z-index:-2;overflow:hidden}
.motion canvas,.motion svg,.motion .motion-svg{width:100%;height:100%;display:block}
.motion .motion-svg{object-fit:cover}
.motion svg{object-fit:cover}

/* aurora preset */
.m-aurora .blob{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(70px);opacity:.55;mix-blend-mode:screen;animation:drift 22s ease-in-out infinite alternate}
.m-aurora .blob:nth-child(2){animation-duration:28s;animation-delay:-6s}
.m-aurora .blob:nth-child(3){animation-duration:34s;animation-delay:-12s}
@keyframes drift{0%{transform:translate(-20%,-10%) scale(1)}50%{transform:translate(30%,20%) scale(1.2)}100%{transform:translate(60%,-15%) scale(.9)}}
/* kenburns preset */
.m-kenburns img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:kb 24s linear infinite}
@keyframes kb{0%{opacity:0;transform:scale(1.02) translate(0,0)}6%{opacity:1}33%{opacity:1}40%{opacity:0;transform:scale(1.14) translate(-2%,-2%)}100%{opacity:0}}
/* grid preset */
.m-grid{background-image:linear-gradient(color-mix(in srgb,var(--c-accent) 18%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--c-accent) 18%,transparent) 1px,transparent 1px);background-size:56px 56px;animation:gridpan 30s linear infinite;mask-image:radial-gradient(ellipse at 70% 40%,#000 0%,transparent 70%)}
@keyframes gridpan{to{background-position:56px 56px,56px 56px}}
@media (prefers-reduced-motion:reduce){.motion *,.m-grid{animation:none!important}.m-kenburns img:first-child{opacity:1}}

/* ---------- grid helpers / cards ---------- */
/* Explicit column steps (never auto-fit), so the item count chosen by the renderer
   is what you get at every width; a short last row is centered, never left hanging. */
.grid,.tiles{--g:clamp(1rem,.75rem + 1vw,1.75rem);--n:1;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g)}
.grid>*,.tiles>*{flex:0 0 calc((100% - (var(--n) - 1) * var(--g)) / var(--n));max-width:100%}
@media (min-width:640px){.grid.cols-2,.grid.cols-3,.grid.cols-4,.tiles.cols-2,.tiles.cols-3,.tiles.cols-4{--n:2}}
@media (min-width:1024px){.grid.cols-3,.tiles.cols-3{--n:3}}
@media (min-width:1100px){.grid.cols-4,.tiles.cols-4{--n:4}}
.card{background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-line);border-radius:var(--r-card);padding:clamp(1.4rem,1.1rem + 1vw,2rem);display:flex;flex-direction:column;gap:.25rem;transition:transform .2s ease,box-shadow .25s ease,border-color .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 24px 48px -28px rgba(0,0,0,.35);border-color:color-mix(in srgb,var(--c-primary) 35%,var(--c-line))}
.card h3{margin-bottom:.35rem}
.card p{color:var(--c-ink-soft);margin-bottom:.75rem}
.card .btn.link{margin-top:auto;align-self:flex-start}
.card .ic{width:52px;height:52px;border-radius:calc(var(--r-card) * .7);display:grid;place-items:center;background:var(--c-primary-soft);color:var(--c-link);margin-bottom:1rem}
.card .ic .icon{width:26px;height:26px}
.tone-dark .card,.tone-brand .card{background:color-mix(in srgb,#fff 6%,transparent);border-color:color-mix(in srgb,#fff 14%,transparent);color:inherit}
.tone-dark .card p{color:var(--c-on-dark-soft)}
.tone-dark .card .ic{background:color-mix(in srgb,var(--c-accent) 20%,transparent);color:var(--c-accent-on-dark)}
.card.img-card{padding:0;overflow:hidden}
.card.img-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.card.img-card .body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;flex:1}
.feat-icons .item{display:flex;gap:1rem;align-items:flex-start}
.feat-icons .ic{flex:none;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--c-primary-soft);color:var(--c-link)}
.tone-dark .feat-icons .ic{background:color-mix(in srgb,var(--c-accent) 20%,transparent);color:var(--c-accent-on-dark)}
.feat-icons h3{font-size:1.125rem;margin-bottom:.25rem}
.feat-icons p{margin:0;color:var(--c-ink-soft)}
.tone-dark .feat-icons p{color:var(--c-on-dark-soft)}
.feat-list{list-style:none;padding:0;margin:0;display:grid;gap:0}
.feat-list li{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--c-line)}
.feat-list li .icon{color:var(--c-link);margin-top:.2rem}
.section-cta{margin-top:2.5rem;text-align:center}

/* ---------- split ---------- */
.split .wrap{display:grid;gap:clamp(2rem,1rem + 4vw,5rem);align-items:center}
.split .media img{width:100%;border-radius:var(--r-card);aspect-ratio:5/4;object-fit:cover}
@media (min-width:900px){.split .wrap{grid-template-columns:1fr 1fr}.split.img-left .media{order:-1}.split.no-media .wrap{grid-template-columns:1fr;max-width:820px}}
.checks{list-style:none;padding:0;margin:1.25rem 0 1.75rem;display:grid;gap:.65rem}
.checks li{display:flex;gap:.65rem;align-items:flex-start}
.checks .icon{color:var(--c-link);margin-top:.2rem}
.tone-dark .checks .icon{color:var(--c-accent-on-dark)}

/* ---------- stats ---------- */
.stats{--g:1.5rem;--n:2;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g);text-align:center}
.stats>*{flex:0 0 calc((100% - (var(--n) - 1) * var(--g)) / var(--n));min-width:0}
@media (min-width:600px){.stats.n-3{--n:3}}
@media (min-width:900px){.stats.n-4{--n:4}}
.stat .v{font-family:var(--f-head);font-weight:var(--w-head);font-size:clamp(2.25rem,1.75rem + 2.5vw,3.5rem);line-height:1;letter-spacing:var(--track-head);color:var(--c-link)}
.tone-dark .stat .v{color:var(--c-accent-on-dark)}
.tone-brand .stat .v{color:var(--c-on-brand)}
.stat .l{margin-top:.5rem;font-weight:500;opacity:.85}

/* ---------- logos ---------- */
.logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.25rem 2.75rem;max-width:calc(var(--per-row,99) * (150px + 2.75rem));margin-inline:auto}
/* grayscale on the image, not the box: a filter on the box isolates the image, so its multiply blend
   never reached the band and a logo's white box showed as a white rectangle */
.logos .logo{display:flex;align-items:center;justify-content:center;height:56px;min-width:110px;transition:.2s;font-weight:700;color:var(--c-ink-soft);font-family:var(--f-head);text-align:center}
.logos .logo img{filter:grayscale(1);transition:filter .2s,opacity .2s}
.logos .logo:hover img{filter:none}
.logos-names{list-style:none;margin:0 auto;padding:0;max-width:60rem;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.6rem 2.25rem;font-family:var(--f-head);font-weight:var(--w-head);font-size:clamp(1.05rem,.95rem + .45vw,1.35rem);letter-spacing:var(--track-head);line-height:1.25;color:var(--c-ink);text-align:center}
.logos-names a{color:inherit;text-decoration:none}
.logos-names a:hover{color:var(--c-link)}
.logos .logo img{max-height:48px;max-width:150px;width:auto;object-fit:contain}
/* carrier logos arrive in mismatched white/grey boxes: on light sections, multiply drops the white box so the row reads as one set */
.tone-light .logos .logo img,.tone-muted .logos .logo img{mix-blend-mode:multiply}
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee .track{display:flex;gap:3rem;width:max-content}
.marquee:hover .track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee .track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}}

/* ---------- testimonials ---------- */
.quote{margin:0;display:flex;flex-direction:column;gap:1rem;height:100%}
.quote blockquote{margin:0;font-size:1.05rem;line-height:1.6}
.quote .stars{color:#f5a524;display:flex;gap:2px}
.quote .stars .icon{width:18px;height:18px;fill:currentColor}
.quote figcaption{margin-top:auto;display:flex;gap:.75rem;align-items:center;font-weight:600}
.quote figcaption small{display:block;font-weight:400;color:var(--c-ink-soft)}
.quote figcaption img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.featured-quote{max-width:880px;margin-inline:auto;text-align:center}
.featured-quote blockquote{font-family:var(--f-head);font-size:clamp(1.35rem,1.1rem + 1.2vw,2rem);line-height:1.35;letter-spacing:var(--track-head)}
.featured-quote figcaption{justify-content:center}
.tone-dark .quote figcaption small{color:var(--c-on-dark-soft)}

/* ---------- team ---------- */
.team .member{text-align:left}
.team .member .photo{aspect-ratio:4/5;border-radius:var(--r-card);overflow:hidden;background:var(--c-primary-soft);margin-bottom:1rem}
.team .member .photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.team .member:hover .photo img{transform:scale(1.04)}
.team .member .initials{width:100%;height:100%;display:grid;place-items:center;font-family:var(--f-head);font-size:3rem;color:var(--c-link);font-weight:700}
.team .member h3{margin:0 0 .15rem;font-size:1.15rem}
.team .member .role{color:var(--c-link);font-weight:600;font-size:.925rem;margin-bottom:.5rem}
.team .member .bio{color:var(--c-ink-soft);font-size:.95rem}
.team .member .contact{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}
.team .member .contact a{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--c-line);color:var(--c-ink-soft)}
.team .member .contact a:hover{color:var(--c-link);border-color:var(--c-link)}
.team-list .member{display:grid;gap:1.5rem;align-items:start;padding:2rem 0;border-bottom:1px solid var(--c-line)}
@media (min-width:760px){.team-list .member{grid-template-columns:240px 1fr}}

/* ---------- cta ---------- */
.cta-band .wrap{display:flex;flex-wrap:wrap;gap:2rem;align-items:center;justify-content:space-between}
.cta-band h2{margin:0 0 .35rem;max-width:22ch}
.cta-band p{margin:0;max-width:56ch}
.cta-card .box{border-radius:calc(var(--r-card) * 1.4);padding:clamp(2rem,1.5rem + 3vw,4rem);text-align:center;background:var(--c-dark);color:var(--c-on-dark);position:relative;overflow:hidden;isolation:isolate}
.cta-card .box::before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--c-primary) 55%,transparent),transparent 45%),radial-gradient(circle at 80% 70%,color-mix(in srgb,var(--c-accent) 40%,transparent),transparent 40%);z-index:-1}
.cta-card .box .btns{justify-content:center}
.cta-card .box .btn.link,.cta-card .box .btn.ghost{color:var(--c-accent-on-dark)}
.cta-card .box::before{display:none} /* research: no gradient blobs — a template tell */
.cta-card .box .btn.secondary{--fg:#fff;border-color:rgba(255,255,255,.45)}
.cta-card .box .btn:not(.secondary):not(.ghost):not(.link){--bg:var(--c-cta-dark);--fg:var(--c-on-cta-dark)}
.cta-card .box .eyebrow{color:var(--c-accent-on-dark)}
.cta-card .box p{max-width:56ch;margin:0 auto 1.75rem;color:var(--c-on-dark-soft)}

/* ---------- faq ---------- */
.faq{max-width:860px;margin-inline:auto}
.faq details{border-bottom:1px solid var(--c-line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.25rem 0;font-weight:600;font-size:1.075rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary .icon{transition:transform .25s;color:var(--c-link)}
.faq details[open] summary .icon{transform:rotate(45deg)}
.faq .a{padding:0 0 1.25rem;color:var(--c-ink-soft)}
.tone-dark .faq .a{color:var(--c-on-dark-soft)}

/* ---------- steps ---------- */
.steps{counter-reset:step;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.step{position:relative;padding-top:3.75rem}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);position:absolute;top:0;left:0;font-family:var(--f-head);font-weight:800;font-size:2.25rem;line-height:1;color:var(--c-link);opacity:.9}
.step::after{content:"";position:absolute;top:1.1rem;left:3.75rem;right:-.75rem;height:2px;background:linear-gradient(90deg,var(--c-line),transparent)}
.step:last-child::after{display:none}
.tone-dark .step::before{color:var(--c-accent-on-dark)}
.step h3{font-size:1.15rem}
.step p{color:var(--c-ink-soft);margin:0}
.tone-dark .step p{color:var(--c-on-dark-soft)}

/* ---------- forms ---------- */
.form-wrap{display:grid;gap:clamp(1.5rem,1rem + 2vw,2.5rem);align-items:start}
@media (min-width:900px){.form-wrap{grid-template-columns:.85fr 1.15fr;grid-template-areas:"intro form" "aside form";column-gap:clamp(2rem,1rem + 4vw,4rem);row-gap:1.25rem;grid-template-rows:auto 1fr}.form-intro{grid-area:intro}.form-wrap>.form-card{grid-area:form}.form-aside{grid-area:aside}}
.form-card{background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-line);border-radius:var(--r-card);padding:clamp(1.25rem,1rem + 1.5vw,2.25rem);box-shadow:0 30px 60px -40px rgba(0,0,0,.35)}
.fields{display:grid;gap:1rem 1.25rem;grid-template-columns:1fr}
@media (min-width:600px){.fields{grid-template-columns:1fr 1fr}.field.full{grid-column:1/-1}}
.field label,.field legend{display:block;font-weight:600;font-size:.925rem;margin-bottom:.4rem}
.field .req{color:#c2410c;margin-left:2px}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:16px;padding:.8rem .95rem;border:1.5px solid var(--c-line);border-radius:10px;background:var(--c-surface);color:var(--c-ink);transition:border-color .15s,box-shadow .15s;min-height:48px}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--c-primary) 18%,transparent)}
.field fieldset{border:0;padding:0;margin:0}
.field .opts{display:flex;flex-wrap:wrap;gap:.5rem}
.field .opt{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .85rem;border:1.5px solid var(--c-line);border-radius:999px;font-weight:500;cursor:pointer;font-size:.95rem}
.field .opt:has(input:checked){border-color:var(--c-primary);background:var(--c-primary-soft)}
.field .opt input{width:auto;min-height:0;accent-color:var(--c-primary)}
.field .help{font-size:.85rem;color:var(--c-ink-soft);margin-top:.3rem}
.consent{font-size:.8rem;color:var(--c-ink-soft);margin:1rem 0 0}
.member .photo a.member-link{display:block}.member h3 a,.team-more strong a{color:inherit;text-decoration:none}.member h3 a:hover,.team-more strong a:hover{text-decoration:underline;text-underline-offset:.18em}
.more-pages h2{font-size:var(--fs-h3,1.5rem)}.more-pages ul{list-style:none;margin:1.25rem 0 0;padding:0;columns:4 15rem;column-gap:2.5rem}.more-pages li{break-inside:avoid}.more-pages a{display:block;padding:.7rem 0;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)}.more-pages a:hover{text-decoration-thickness:2px}
.form-actions{margin-top:1.25rem}
.form-actions .btn{width:100%}
.hp{position:absolute;left:-5000px}
.form-status{margin-top:1rem;padding:1rem;border-radius:10px;display:none}
.form-status.ok{display:block;background:#ecfdf5;color:#065f46}
.form-status.err{display:block;background:#fef2f2;color:#991b1b}
form.sent .fields,form.sent .form-actions,form.sent .consent{display:none}
.contact-info{display:grid;gap:1.25rem;margin-top:1.5rem}
.contact-info .row{display:flex;gap:.9rem;align-items:flex-start}
.contact-info .row .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--c-primary-soft);color:var(--c-link);flex:none}
.tone-dark .contact-info .row .ic{background:color-mix(in srgb,var(--c-accent) 20%,transparent);color:var(--c-accent-on-dark)}
.contact-info a{color:inherit;font-weight:600}
.contact-info small{display:block;opacity:.7;font-size:.85rem}
.map{position:relative;margin-top:1.5rem;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--c-line);aspect-ratio:16/10;background:var(--c-primary-soft)}
.map .map-fallback{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:.5rem;text-align:center;color:var(--c-link);font-weight:600;text-decoration:none;padding:1rem}
.map .map-fallback .icon{width:32px;height:32px}
.map iframe{position:relative;z-index:1}
.map iframe{width:100%;height:100%;border:0}
.hours{width:100%;border-collapse:collapse;font-size:.95rem}
.hours td{padding:.3rem 0}.hours td:last-child{text-align:right}

/* ---------- gallery / locations ---------- */
.gallery{columns:3 260px;column-gap:1rem}
.gallery img{width:100%;margin-bottom:1rem;border-radius:var(--r-card);break-inside:avoid}

/* ---------- footer ---------- */
.site-footer{background:var(--c-dark);color:var(--c-on-dark-soft);padding:clamp(3rem,2rem + 4vw,5rem) 0 2rem;font-size:.95rem}
.site-footer a{color:var(--c-on-dark-soft);text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.f-grid{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
@media (min-width:900px){.f-grid{grid-template-columns:1.6fr repeat(var(--fc,3),1fr)}}
.f-brand img{max-height:52px;width:auto;margin-bottom:1rem}
.f-brand .name{font-family:var(--f-head);color:#fff;font-size:1.3rem;font-weight:700;display:block;margin-bottom:.75rem}
.site-footer h4{color:#fff;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;font-family:var(--f-body)}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.f-contact li{display:flex;gap:.6rem;align-items:flex-start}
.socials{display:flex;gap:.6rem;margin-top:1.25rem}
.socials a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2)}
.f-legal{border-top:1px solid rgba(255,255,255,.12);margin-top:3rem;padding-top:1.5rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.85rem;opacity:.85}
.f-legal p{margin:0;max-width:90ch}

/* ---------- v2: tone-scoped color variables ---------- */
.tone-dark{--c-ink:var(--c-on-dark);--c-ink-soft:var(--c-on-dark-soft);--c-link:var(--c-accent-on-dark);--c-line:color-mix(in srgb,#fff 16%,transparent);--c-primary-soft:color-mix(in srgb,#fff 9%,transparent);--c-surface:var(--c-dark-card)}
.tone-brand{--c-ink:var(--c-on-brand);--c-ink-soft:var(--c-on-brand-soft);--c-link:var(--c-on-brand);--c-line:color-mix(in srgb,var(--c-on-brand) 24%,transparent);--c-primary-soft:color-mix(in srgb,var(--c-on-brand) 12%,transparent);--c-surface:var(--c-brand-card)}
.tone-dark .card,.tone-brand .card{background:var(--c-surface)}
/* white cards inside dark sections/heroes: every "on dark" token falls back to its light-surface value */
.form-card,.quote-starter{--c-cta-dark:var(--c-cta);--c-on-cta-dark:var(--c-on-cta);--ring-dark:var(--ring-surface);--c-cta-brand:var(--c-cta);--c-on-cta-brand:var(--c-on-cta)}
.tone-dark .form-card .btn:not(.secondary):not(.ghost):not(.link),.tone-brand .form-card .btn:not(.secondary):not(.ghost):not(.link),.hero.on-media .quote-starter .btn:not(.secondary):not(.ghost):not(.link){--bg:var(--c-cta);--fg:var(--c-on-cta);box-shadow:var(--ring-surface)}
.form-card,.quote-starter,.nav .sub{--c-ink:var(--L-ink);--c-ink-soft:var(--L-ink-soft);--c-link:var(--L-link);--c-line:var(--L-line);--c-primary-soft:var(--L-primary-soft);--c-surface:var(--L-surface)}
.tone-brand .card,.tone-dark .card{color:var(--c-ink)}
.logos .logo{opacity:1}.logos .logo img{opacity:.92}.logos .logo:hover img{opacity:1}
.logos .logo.pale img{filter:grayscale(1) brightness(.5)}
.logos .logo.pale:hover img{filter:brightness(.5)}

/* ---------- v2: robustness ---------- */
.f-contact li>*,.contact-info .row>div,.contact-info a{min-width:0;overflow-wrap:anywhere}
.contact-info a{display:inline-block;padding-block:.15rem}
.utility a{padding-block:.3rem}
.btn.link{padding-block:.5rem}
.card .btn.link{margin-top:auto}
h1,h2,h3,h4,.eyebrow{overflow-wrap:break-word;hyphens:manual}
.btn span{min-width:0;overflow-wrap:anywhere}
p,li,blockquote,dd,td,figcaption,label,legend{overflow-wrap:break-word}
.grid>*,.split .wrap>*,.hero-split .wrap>*,.form-wrap>*,.f-grid>*,.btns>*{min-width:0}
.head.left{text-align:left;margin-inline:0}
@media (min-width:900px){.head.left.has-intro{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:1rem 4rem;align-items:end}.head.left.has-intro .intro{padding-bottom:.4rem}.head.left.has-intro>*:not(.intro){grid-column:1}.head.left.has-intro .intro{grid-column:2;grid-row:1/span 2}}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:1.6rem;height:2px;background:currentColor;opacity:.6;flex:none}
.head.center .eyebrow::before{display:none}
.split .text,.hero .content{max-width:640px}
.hero-split .content{max-width:none}

/* ---------- v2: photo tiles ---------- */
.tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(300px,24vw,380px);border-radius:var(--r-card);overflow:hidden;color:#fff;text-decoration:none;isolation:isolate;padding:clamp(1.25rem,1rem + 1vw,1.75rem)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 12%,color-mix(in srgb,var(--c-dark) 62%,transparent) 42%,color-mix(in srgb,var(--c-dark) 94%,transparent) 100%)}
.tile:hover img{transform:scale(1.05)}
.tile h3{color:#fff;margin:0 0 .35rem}
.tile p{color:rgba(255,255,255,.86);margin:0 0 .9rem;font-size:.975rem}
.tile .more{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:#fff}
.tile .more .icon{transition:transform .2s}
.tile:hover .more .icon{transform:translateX(3px)}
.tile:focus-visible{outline-offset:3px}

/* ---------- v2: video hero ---------- */
.hero-video .bg{position:absolute;inset:0;z-index:-2;background:var(--c-dark)}
.hero-video .bg img,.hero-video .bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-video .bg video{opacity:0;transition:opacity .8s ease}
.hero-video .bg video.on{opacity:1}
.vid-toggle{position:absolute;right:clamp(1rem,2vw,2rem);bottom:clamp(1rem,2vw,2rem);z-index:2;display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.5rem .9rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.35);color:#fff;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;backdrop-filter:blur(6px)}
.vid-toggle .icon{width:1rem;height:1rem}
.vid-toggle[hidden]{display:none}

/* ---------- v2: quote starter ---------- */
.quote-starter{margin-top:2rem;background:var(--c-surface);color:var(--c-ink);border-radius:var(--r-card);padding:clamp(1rem,.8rem + 1vw,1.5rem);box-shadow:0 30px 60px -30px rgba(0,0,0,.45);max-width:560px;border:1px solid var(--c-line)}
.quote-starter legend{font-weight:700;font-size:1.05rem;margin-bottom:.75rem;padding:0;font-family:var(--f-head)}
.quote-starter fieldset{border:0;margin:0;padding:0;min-width:0}
.qs-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.9rem}
.qs-row input{flex:1 1 140px;min-width:0;font:inherit;font-size:16px;min-height:48px;padding:.7rem .9rem;border:1.5px solid var(--c-line);border-radius:10px;background:var(--c-surface);color:var(--c-ink)}
.qs-row .btn{flex:1 1 180px}
.hero-call{margin-top:1rem;font-size:.95rem}
.hero-call a{font-weight:700}
.hero.on-media .hero-call,.hero.tone-dark .hero-call{color:var(--c-on-dark-soft)}
.hero.on-media .hero-call a,.hero.tone-dark .hero-call a{color:#fff}

/* ---------- v2: option tiles (forms + quote starter) ---------- */
.tiles-opts{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,128px),1fr))}
/* balanced rows on wide forms: 5, 6 or 9 options in threes (never 4 + a lonely 2) */
@media (min-width:768px){.field .tiles-opts.n-5,.field .tiles-opts.n-6,.field .tiles-opts.n-9{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tile-opt{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-height:84px;padding:.7rem .5rem;border:1.5px solid var(--c-line);border-radius:12px;background:var(--c-surface);color:var(--c-ink);font-weight:600;font-size:.925rem;line-height:1.2;text-align:center;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.tile-opt .icon{width:24px;height:24px;color:var(--c-link)}
/* inside a form field, ".field label{display:block}" would win: tiles stay centred flex boxes */
.field .tile-opt{display:flex;margin-bottom:0}
.tile-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.tile-opt:hover{border-color:color-mix(in srgb,var(--c-primary) 50%,var(--c-line))}
.tile-opt:has(input:checked){border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:inset 0 0 0 1px var(--c-primary)}
.tile-opt:has(input:focus-visible){outline:3px solid var(--c-accent);outline-offset:2px}

/* ---------- v2: multi-step forms ---------- */
.steps-head{display:flex;gap:.4rem;margin-bottom:1.25rem;list-style:none;padding:0}
.steps-head li{flex:1;min-width:0;font-size:.8rem;font-weight:600;color:var(--c-ink-soft)}
.steps-head li::before{content:"";display:block;height:4px;border-radius:4px;background:var(--c-line);margin-bottom:.45rem}
.steps-head li.done::before,.steps-head li.cur::before{background:var(--c-primary)}
.steps-head li.cur{color:var(--c-ink)}
.steps-head span{display:block;line-height:1.25;overflow-wrap:anywhere}
.bs-form[data-steps] .fstep{display:none}
.bs-form[data-steps] .fstep.cur{display:grid}
.field[hidden]{display:none!important}
.step-actions{display:flex;gap:.6rem;margin-top:1.25rem}
.step-actions .btn{flex:1}
.step-actions .btn.secondary{flex:0 0 auto}
.bs-form[data-steps] .form-actions{display:none}
.bs-form[data-steps].last .form-actions{display:flex;gap:.6rem}
.bs-form[data-steps].last .step-actions{display:none}
.bs-form[data-steps]:not(.first) .step-actions .back,.bs-form[data-steps].last .form-actions .back{display:inline-flex}
.bs-form .back{display:none}
form.sent .steps-head,form.sent .step-actions,form.sent .fstep{display:none!important}
.bs-form[data-steps]:not(.last) .consent{display:none}
.bs-form[data-steps] .form-actions .btn[type=submit]{flex:1;width:auto}
.bs-form[data-steps] .form-actions .back{flex:0 0 auto;width:auto}

/* ---------- v2: click-to-play video ---------- */
.vfacade{position:relative;aspect-ratio:16/9;border-radius:var(--r-card);overflow:hidden;background:var(--c-dark);box-shadow:0 30px 60px -36px rgba(0,0,0,.5)}
.vfacade img,.vfacade video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-wide .vfacade{max-width:1000px;margin-inline:auto}
.vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:.7rem;min-height:56px;padding:.5rem 1.4rem .5rem .55rem;border:0;border-radius:999px;background:rgba(255,255,255,.94);color:#111;font:inherit;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 12px 30px -10px rgba(0,0,0,.5);transition:transform .2s}
.vplay:hover{transform:translate(-50%,-50%) scale(1.04)}
.vplay-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--c-cta);color:var(--c-on-cta)}
.vplay-ic .icon{width:20px;height:20px;fill:currentColor;margin-left:2px}
.video-split .wrap{display:grid;gap:clamp(2rem,1rem + 4vw,4rem);align-items:center}
@media (min-width:900px){.video-split .wrap{grid-template-columns:.9fr 1.1fr}}

/* ---------- v2: image placeholder (keeps a row of cards consistent) ---------- */
.img-ph{aspect-ratio:16/10;display:grid;place-content:center;justify-items:center;gap:.5rem;background:linear-gradient(135deg,var(--c-primary-soft),color-mix(in srgb,var(--c-primary) 22%,var(--c-surface)));color:var(--c-link);font-family:var(--f-head);font-weight:var(--w-head);font-size:1.15rem;text-align:center;padding:1rem}
.img-ph .icon{width:2rem;height:2rem}

/* ---------- v2: comparison table ---------- */
.cmp{max-width:880px;margin-inline:auto;border:1px solid var(--c-line);border-radius:var(--r-card);overflow:hidden;background:var(--c-surface)}
.cmp-row{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(var(--cols),minmax(0,1fr));align-items:center;border-top:1px solid var(--c-line)}
.cmp-row:first-child{border-top:0}
.cmp-row>*{padding:.85rem 1rem;min-width:0}
.cmp-head{font-family:var(--f-head);font-weight:var(--w-head);font-size:1rem;line-height:1.25}
.cmp-c{text-align:center;display:flex;justify-content:center;align-items:center;gap:.3rem;height:100%}
.cmp-c.hi{background:var(--c-primary-soft)}
.cmp-head .cmp-c.hi{color:var(--c-link)}
.tone-dark .cmp-head .cmp-c.hi{color:var(--c-on-dark)}
.cmp .yes{width:1.4rem;height:1.4rem;color:var(--c-link);stroke-width:2.5}
.cmp .no{color:var(--c-ink-soft);opacity:.6}
/* phones: the row label takes its own line, values sit in even columns beneath it */
@media (max-width:640px){.cmp-row{grid-template-columns:repeat(var(--cols),minmax(0,1fr))}.cmp-row>.cmp-l{grid-column:1/-1;padding-bottom:.2rem;font-weight:600}.cmp-head>.cmp-l{display:none}.cmp-row>*{padding:.6rem .5rem;font-size:.925rem}.cmp-row>.cmp-c{padding-top:.35rem}.cmp-head{font-size:.875rem}}

/* ---------- v2: rating badge ---------- */
.rating-badge{display:flex;justify-content:center;margin:-1rem 0 2rem}
.rating-badge>a,.rating-badge>div{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .6rem;padding:.6rem 1.1rem;border-radius:999px;background:var(--c-surface);border:1px solid var(--c-line);color:var(--c-ink);text-decoration:none;font-size:.975rem}
.rating-badge .stars{display:inline-flex;gap:1px;color:#f5a524}
.rating-badge .stars .icon{width:18px;height:18px;fill:currentColor}
.rating-badge .stars .icon.off{fill:none;opacity:.45}
.rating-badge strong{font-size:1.1rem}
.rating-badge span:last-child{color:var(--c-ink-soft)}


/* ---------- v3: header on phones — one utility link, the rest live in the drawer ---------- */
@media (max-width:767px){.utility .wrap{justify-content:center}.utility a:not(.u-keep){display:none}}
.drawer .drawer-util{margin-top:1.25rem}
.drawer .drawer-util a{display:flex;align-items:center;gap:.6rem;padding:.65rem .25rem;font-weight:500;font-size:1rem;color:var(--c-ink-soft)}

/* ---------- v3: hero rhythm + first screen ---------- */
/* Never a full-screen hero: at most ~85% of the viewport, so the next section always peeks in;
   tight top padding so the primary action lands in the first screen. */
.hero:not(.on-media){padding-block:clamp(2rem,1.25rem + 2.2vw,3.25rem) clamp(2.5rem,1.5rem + 3vw,4.5rem)}
.hero.on-media{min-height:min(72vh,680px);padding-block:clamp(3rem,2rem + 3vw,4.75rem)}
.hero .hero-h{font-size:clamp(2.125rem,1.4rem + 2.9vw,calc(2.9rem * var(--s)));line-height:1.08}
.hero.h-long .hero-h{font-size:clamp(1.875rem,1.3rem + 2.2vw,calc(2.3rem * var(--s)))}
.hero .lede{font-size:clamp(1.0625rem,1rem + .4vw,1.25rem);margin-bottom:1.5rem}
.hero .eyebrow{margin-bottom:.75rem}
.hero-editorial .eyebrow,.hero-panel .eyebrow,.hero-collage .eyebrow{display:flex;width:fit-content}
@media (max-width:599px){.hero .btns .btn{flex:1 1 auto}}
.hero-centered .media img{max-height:min(52vh,520px)}
.hero .hero-h em{font-style:var(--em-style);color:var(--c-em)}
.hero.tone-dark,.hero.on-media{--c-em:var(--c-accent-on-dark)}
.hero.tone-brand{--c-em:var(--c-em-brand)}
@media (min-width:900px){.hero-split .wrap{grid-template-columns:1.2fr .8fr}}
/* phones: text never sits on a photo — the photo becomes a band above the copy */
@media (max-width:767px){
  .hero.on-media.hero-fullbleed,.hero.on-media.hero-video,.hero.on-media.hero-motion:has(.m-kenburns){display:block;min-height:0;padding-block:0 clamp(2.5rem,8vw,3.25rem)}
  .hero.on-media.hero-fullbleed .bg,.hero.on-media.hero-video .bg,.hero.on-media.hero-motion:has(.m-kenburns) .motion{position:relative;inset:auto;z-index:0;height:32vh;height:clamp(200px,32svh,300px)}
  .hero.on-media.hero-fullbleed::after,.hero.on-media.hero-video::after,.hero.on-media.hero-motion:has(.m-kenburns)::after{display:none}
  .hero.on-media.hero-fullbleed .wrap,.hero.on-media.hero-video .wrap,.hero.on-media.hero-motion:has(.m-kenburns) .wrap{padding-top:1.5rem}
  .hero.on-media.hero-video .vid-toggle{top:calc(32vh - 3.5rem);top:calc(clamp(200px,32svh,300px) - 3.5rem);bottom:auto}
}

/* ---------- v3: proof strip (looks best with 2–3 facts) ---------- */
.proof-w{container-type:inline-size;margin-top:2rem}
.proof{--n:3;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,15rem));justify-content:start;gap:1.1rem clamp(.9rem,4cqi,2rem)}
.proof.n-1{--n:1}.proof.n-2{--n:2}.proof.n-4{--n:2}
@container (min-width:36rem){.proof.n-4{--n:4}}
.proof li{display:flex;flex-direction:column;gap:.3rem;min-width:0;padding-left:clamp(.7rem,3cqi,1.1rem);border-left:2px solid var(--c-line)}
.proof .pv{font-family:var(--f-head);font-weight:var(--w-head);font-size:clamp(1.15rem,4.4cqi,1.875rem);line-height:1.08;letter-spacing:var(--track-head);font-variant-numeric:lining-nums tabular-nums;color:var(--c-ink);overflow-wrap:anywhere}
.proof .pl{font-size:.875rem;line-height:1.35;color:var(--c-ink-soft);overflow-wrap:anywhere}
.proof .pv{overflow-wrap:normal;hyphens:manual}
@container (max-width:34rem){
  .proof.long{--n:2}
  /* three facts never sit 2 + a lonely 1: a short list, each value beside its label */
  .proof.long.n-3{grid-template-columns:max-content minmax(0,1fr);row-gap:.55rem}
  .proof.long.n-3 li{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:baseline;column-gap:.85rem}
}
.hero-centered .proof{justify-content:center;justify-items:center;text-align:center}
.hero-centered .proof li{border-left:0;padding-left:0;align-items:center}

/* ---------- v3: compact quote starter — icon + label rows, 3 columns (2 on phones) ---------- */
.quote-starter{margin-top:1.5rem;padding:clamp(.9rem,.75rem + .6vw,1.25rem)}
.quote-starter legend{margin-bottom:.6rem;font-size:1rem}
.quote-starter .tiles-opts{grid-template-columns:repeat(3,minmax(0,1fr))}
.quote-starter .tiles-opts.n-2,.quote-starter .tiles-opts.n-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.quote-starter .tile-opt{flex-direction:row;justify-content:flex-start;min-height:48px;padding:.5rem .7rem;text-align:left;gap:.55rem}
.quote-starter .tile-opt .icon{width:20px;height:20px}
.quote-starter .qs-row{margin-top:.7rem}
.quote-starter .qs-row input{flex:1 1 6.5rem;min-width:6.5rem}
.quote-starter .qs-row .btn{flex:1 0 auto}
@media (max-width:767px){.tiles-opts,.quote-starter .tiles-opts{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-starter .tile-opt{min-height:46px}}

/* ---------- v3: editorial hero (type-led) ---------- */
/* sized so headline + lede + quote starter + proof fit a 1440×900 or 1536×864 first screen,
   and the quote starter fits 1366×768 (the lab's first-screen check holds this) */
.hero.hero-editorial{padding-block:clamp(1.5rem,.5rem + 2.4vw,3.25rem) clamp(2.5rem,1.5rem + 3.2vw,4.75rem)}
.hero-editorial .eyebrow::before{width:2.75rem;height:3px;opacity:1;background:var(--c-em)}
.hero-editorial .hero-h{font-size:clamp(2.125rem,1.25rem + 4vw,calc(3rem * var(--s)));line-height:1.03;max-width:21ch;margin-bottom:clamp(1rem,.5rem + 1.2vw,1.75rem)}
.hero-editorial.h-long .hero-h{font-size:clamp(1.875rem,1.2rem + 3vw,calc(2.5rem * var(--s)));max-width:26ch}
.hero-editorial .ed-row{position:relative;display:grid;gap:clamp(2rem,1rem + 3vw,4.5rem);align-items:start}
.hero-editorial .content{max-width:40rem}
.hero-editorial .proof-w{margin-top:1.5rem}
.hero-editorial .hero-call{margin-top:.75rem}
.ed-media{margin:0}
.ed-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-card)}
@media (min-width:960px){
  .hero-editorial.has-media .ed-row{grid-template-columns:minmax(0,1fr) minmax(0,.56fr)}
  .hero-editorial.has-media .content{max-width:none}
  .ed-media{margin-top:.35rem}
  .ed-media img{aspect-ratio:3/2}
}
/* no photo: the proof facts become a "by the numbers" column beside the actions */
@media (min-width:960px){
  .hero-editorial .ed-row.has-side{grid-template-columns:minmax(0,1fr) minmax(0,.6fr)}
  .hero-editorial .ed-row.has-side .content{max-width:none}
  .ed-side .proof-w{margin-top:.25rem}
  .ed-side .proof{grid-template-columns:minmax(0,1fr);gap:0}
  .ed-side .proof li{border-left:0;padding:1rem 0 1.05rem;border-top:1px solid var(--c-line)}
  .ed-side .proof li:first-child{border-top:3px solid var(--c-em)}
  .ed-side .proof .pv{font-size:clamp(1.75rem,.9rem + 1.5vw,2.5rem)}
  .ed-side .proof .pl{font-size:.9375rem}
  .ed-side .proof.long.n-3{grid-template-columns:minmax(0,1fr);row-gap:0}
  .ed-side .proof.long.n-3 li{display:flex;flex-direction:column;gap:.3rem}
}
.ed-mark{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:-1;font-family:var(--f-head);font-weight:var(--w-head);font-size:clamp(7rem,2rem + 10vw,13rem);line-height:1;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--c-em);opacity:.4;pointer-events:none;user-select:none;font-variant-numeric:lining-nums}
/* only where the free column beside the 40rem copy is wide enough for four digits */
@media (max-width:1099px){.ed-mark{display:none}}

/* ---------- v3: panel hero (photo + overlapping card) ---------- */
.hero.hero-panel{padding-top:0}
.hero-panel .panel-media img{width:100%;aspect-ratio:3/2;object-fit:cover}
.hero-panel .panel-card{position:relative;max-width:none;margin-top:-2.5rem;background:var(--c-surface);color:var(--c-ink);border-radius:var(--r-card);padding:clamp(1.4rem,1rem + 2.2vw,3rem);box-shadow:0 1px 2px rgba(15,23,42,.06),0 30px 70px -30px rgba(15,23,42,.4)}
.hero.hero-panel.no-media{padding-top:clamp(2rem,1.25rem + 2.2vw,3.25rem)}
.hero-panel.no-media .panel-card{margin-top:0}
.hero-panel .lede{font-size:clamp(1.0625rem,1rem + .35vw,1.25rem)}
@media (min-width:900px){
  .hero.hero-panel{display:flex;align-items:center;min-height:min(72vh,680px);padding-block:clamp(2.5rem,1.25rem + 3vw,4.5rem)}
  .hero-panel .panel-media{position:absolute;inset:0 0 0 auto;width:58%;z-index:-1}
  .hero-panel .panel-media img{height:100%;aspect-ratio:auto}
  .hero-panel .panel-card{margin-top:0;width:min(580px,50%)}
  .hero-panel.h-long .panel-card{width:min(680px,58%)}
  .hero-panel .hero-h{font-size:clamp(2.125rem,1.1rem + 2.2vw,calc(2.35rem * var(--s)))}
  .hero-panel.h-long .hero-h{font-size:clamp(1.875rem,1rem + 1.7vw,calc(2.15rem * var(--s)))}
}

/* ---------- v3: collage hero (2–3 photo mosaic) ---------- */
.hero-collage .wrap{display:grid;gap:clamp(2rem,1rem + 3.5vw,4.5rem);align-items:center}
.hero-collage .content{max-width:none}
.collage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.6rem,.35rem + .9vw,1.1rem)}
.collage .c{position:relative;overflow:hidden;border-radius:var(--r-card);background:var(--c-primary-soft)}
.collage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.collage.n-3 .c1{grid-column:1/-1;aspect-ratio:16/9}
.collage.n-3 .c2,.collage.n-3 .c3{aspect-ratio:4/3}
.collage.n-2 .c{aspect-ratio:4/5}
.collage.n-2 .c2{margin-top:clamp(1.5rem,5vw,3.5rem)}
.collage.n-1 .c1{grid-column:1/-1;aspect-ratio:4/3}
@media (min-width:960px){
  .hero-collage .wrap{grid-template-columns:minmax(0,1.16fr) minmax(0,1fr);align-items:stretch}
  .hero-collage .content{align-self:center}
  /* the copy shares the width with photos: a smaller headline cap keeps the proof facts in the first screen */
  .hero-collage .hero-h,.hero-split .hero-h{font-size:clamp(2.125rem,1.2rem + 2.2vw,calc(2.5rem * var(--s)))}
  .hero-collage .proof-w,.hero-split .proof-w{margin-top:1.5rem}
  /* the mosaic always fills the copy column's height: one wide photo over two staggered ones */
  .collage{min-height:30rem}
  .collage .c,.collage.n-3 .c1,.collage.n-3 .c2,.collage.n-3 .c3,.collage.n-2 .c,.collage.n-1 .c1{aspect-ratio:auto;margin:0}
  .collage.n-3{grid-template-rows:minmax(0,1.1fr) minmax(0,1fr)}
  .collage.n-3 .c2{margin-bottom:clamp(2rem,4vw,3.5rem)}
  .collage.n-3 .c3{margin-top:clamp(2rem,4vw,3.5rem)}
  .collage.n-2{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr))}
  .collage.n-2 .c{width:86%}
  .collage.n-2 .c2{justify-self:end}
}

/* ---------- v3: interactive modules (shared) ---------- */
.mod-act{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem}
.mod-call{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;font-weight:600;color:var(--c-link);text-decoration:none}
.mod-call:hover{text-decoration:underline}
.mod-call .icon{width:1.1em;height:1.1em}
.mod-note{margin:0;font-size:.8125rem;line-height:1.5;color:var(--c-ink-soft)}
.fd [hidden],.calc [hidden],.ck [hidden]{display:none!important}

/* ---------- v3: coverage finder ---------- */
.fd{display:grid;gap:clamp(1.5rem,1rem + 2vw,2.75rem);align-items:start}
.fd-side{min-width:0}
.fd-side .head,.fd-side .head.left.has-intro{display:block;max-width:none;margin-bottom:clamp(1.5rem,1rem + 1.5vw,2.25rem)}
/* inside a column (beside a form) a header stacks: the side-by-side heading/intro grid squeezed the intro into ~140px */
.form-intro .head,.form-intro .head.left.has-intro,.form-wrap .head.left.has-intro{display:block;max-width:none;margin-bottom:1.25rem}
.form-intro .head .intro{padding-bottom:0}
/* an FAQ under a left-aligned heading lines up with it instead of sitting centred */
.head.left + .faq{margin-inline:0}
.fd-side .head .intro{max-width:34rem}
.fd-panel{scroll-margin-top:96px}
.fd-jump{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;margin-top:.75rem;font-weight:600;color:var(--c-link);text-decoration:none}
.fd-jump .icon{width:1.1em;height:1.1em}
@media (min-width:960px){.fd-jump{display:none!important}}
.fd-legend{font-family:var(--f-head);font-weight:var(--w-head);font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem);line-height:1.25;letter-spacing:var(--track-head);margin:0 0 1.1rem}
.fd-hint{display:block;margin-top:.35rem;font-family:var(--f-body);font-weight:500;font-size:.875rem;letter-spacing:0;color:var(--c-ink-soft)}
.fd-chips{display:flex;flex-wrap:wrap;gap:.6rem}
.fd-chip{display:inline-flex;align-items:center;gap:.6rem;max-width:100%;min-height:50px;padding:.5rem .7rem .5rem .9rem;border:1.5px solid color-mix(in srgb,var(--c-ink) 20%,transparent);border-radius:var(--r-btn);background:var(--c-surface);color:var(--c-ink);font:inherit;font-weight:600;font-size:.975rem;line-height:1.25;text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s,box-shadow .15s}
.fd-chip>.icon{width:1.3em;height:1.3em;color:var(--c-link)}
.fd-l{min-width:0;overflow-wrap:anywhere}
.fd-tick{flex:none;display:grid;place-items:center;width:1.375rem;height:1.375rem;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--c-ink) 28%,transparent);color:transparent;transition:background-color .15s,border-color .15s,color .15s}
.fd-tick .icon{width:.8rem;height:.8rem;stroke-width:3.25}
.fd-chip:hover{border-color:color-mix(in srgb,var(--c-link) 60%,transparent)}
.fd-chip[aria-pressed=true]{border-color:var(--c-link);background:var(--c-primary-soft);box-shadow:inset 0 0 0 1px var(--c-link)}
.fd-chip[aria-pressed=true] .fd-tick{background:var(--c-link);border-color:var(--c-link);color:var(--c-surface)}
.fd-panel{background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-line);border-radius:var(--r-card);padding:clamp(1.25rem,.9rem + 1.4vw,2.25rem);box-shadow:0 30px 60px -44px rgba(15,23,42,.45)}
.fd-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1rem;margin-bottom:.75rem}
.fd-title{font-size:clamp(1.2rem,1.1rem + .4vw,1.4rem);margin:0}
.fd-count{margin:0;font-size:.875rem;font-weight:600;color:var(--c-ink-soft)}
/* a calm tinted panel, not a dashed drop zone: the dashed box read as a module that failed to load */
.fd-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:12rem;margin:0;max-width:none;padding:1.75rem 1.5rem;text-align:center;color:var(--c-ink-soft);background:var(--c-primary-soft);border-radius:calc(var(--r-card) * .75)}
.fd-empty .icon{box-sizing:content-box;width:1.5rem;height:1.5rem;padding:.7rem;border-radius:999px;background:var(--c-surface);color:var(--c-link)}
.fd-empty span{max-width:24rem}
.fd-groups{display:grid;gap:1.75rem 2.5rem}
.fd-gh{display:flex;align-items:center;gap:.55rem;font-size:1.1rem;margin:0 0 .35rem}
.fd-gh .icon{color:var(--c-link)}
.fd-list{list-style:none;margin:0;padding:0}
.fd-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;padding:1rem 0;border-top:1px solid var(--c-line)}
.fd-ic{color:var(--c-link);margin-top:.2rem}
.fd-t{margin:0 0 .2rem;font-weight:700;line-height:1.35}
.fd-t a{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none}
.fd-t a .icon{width:1em;height:1em;transition:transform .2s}
.fd-t a:hover{text-decoration:underline}
.fd-t a:hover .icon{transform:translateX(3px)}
.fd-x{margin:0;font-size:.95rem;color:var(--c-ink-soft)}
.fd-foot{display:grid;gap:.9rem;margin-top:.5rem;padding-top:1.25rem;border-top:1px solid var(--c-line)}
@media (min-width:760px){.fd:not(.on) .fd-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fd.on .fd-groups{display:block}
.fd.on .fd-gh{display:none}
@media (min-width:960px){.fd.on{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}.fd.on .fd-side{align-self:stretch}}
/* the chips follow a long result list — only where the screen is tall enough to show them all */
@media (min-width:960px) and (min-height:820px){.fd.on .fd-q{position:sticky;top:100px}}

/* ---------- v3: life insurance needs estimator ---------- */
.calc{display:grid;gap:clamp(1.5rem,1rem + 2vw,3rem);align-items:start}
.calc:not(.on){max-width:46rem}
.calc-in{display:grid;gap:1.75rem;min-width:0}
.calc-in fieldset{border:0;margin:0;padding:0;min-width:0}
.calc-in legend{font-family:var(--f-head);font-weight:var(--w-head);font-size:1.15rem;letter-spacing:var(--track-head);padding:0;margin-bottom:.35rem}
.cf-row{display:grid;column-gap:clamp(.75rem,.5rem + 1vw,1.25rem);grid-template-columns:minmax(0,1fr)}
@media (min-width:360px){.cf-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cf{display:grid;grid-row:span 3;grid-template-rows:subgrid;min-width:0}
.cf label{align-self:end;font-weight:600;font-size:.95rem;line-height:1.3;margin-bottom:.4rem}
.cf-in{position:relative}
.cf-in input{width:100%;min-height:50px;padding:.7rem .8rem;font:inherit;font-size:max(16px,1.0625rem);font-weight:600;font-variant-numeric:tabular-nums;border:1.5px solid color-mix(in srgb,var(--c-ink) 50%,transparent);border-radius:10px;background:var(--c-surface);color:var(--c-ink);transition:border-color .15s,box-shadow .15s}
.cf-in.money input{padding-left:1.7rem}
.cf-in.unit input{padding-right:4rem}
.cf-in input:focus{outline:none;border-color:var(--c-link);box-shadow:0 0 0 4px color-mix(in srgb,var(--c-link) 22%,transparent)}
.cf-pre,.cf-unit{position:absolute;top:50%;transform:translateY(-50%);color:var(--c-ink-soft);pointer-events:none}
.cf-pre{left:.8rem;font-weight:600}
.cf-unit{right:.8rem;font-size:.875rem}
.cf-hint{margin:.35rem 0 0;font-size:.8125rem;line-height:1.4;color:var(--c-ink-soft)}
.calc-priv{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.875rem;color:var(--c-ink-soft)}
.calc-card{container-type:inline-size;min-width:0;background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-line);border-radius:var(--r-card);padding:clamp(1.25rem,.9rem + 1.5vw,2.25rem);box-shadow:0 30px 60px -40px rgba(15,23,42,.45)}
.calc-k{margin:0 0 .35rem;font-size:.8125rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-soft)}
.calc-v{margin:0;font-family:var(--f-head);font-weight:var(--w-head);font-size:clamp(2.25rem,13cqi,3.75rem);line-height:1.05;letter-spacing:var(--track-head);font-variant-numeric:lining-nums tabular-nums;color:var(--c-link);overflow-wrap:anywhere}
.calc-line{margin:.8rem 0 1.25rem;font-size:.95rem;line-height:1.5;color:var(--c-ink-soft)}
.calc-line strong{color:var(--c-ink)}
.calc-tb{width:100%;border-collapse:collapse;font-size:.95rem;font-variant-numeric:tabular-nums}
.calc-tb th{text-align:left;font-weight:500;padding:.55rem 0;border-top:1px solid var(--c-line);vertical-align:top}
.calc-tb td{text-align:right;padding:.55rem 0 .55rem 1rem;border-top:1px solid var(--c-line);white-space:nowrap;font-weight:600;vertical-align:top}
.calc-tb small{display:block;font-size:.8125rem;color:var(--c-ink-soft)}
.calc-tb tfoot th,.calc-tb tfoot td{border-top:2px solid currentColor;font-weight:700}
.calc-how{margin-top:1.25rem;border-top:1px solid var(--c-line)}
.calc-how summary{display:flex;align-items:center;gap:.5rem;min-height:48px;cursor:pointer;font-weight:600;list-style:none}
.calc-how summary::-webkit-details-marker{display:none}
.calc-how summary .icon{color:var(--c-link)}
.calc-how-b{color:var(--c-ink-soft);font-size:.95rem}
.calc-how-b p:last-child{margin-bottom:.25rem}
.calc-disc{margin:1rem 0 1.25rem;font-size:.8125rem;line-height:1.5;color:var(--c-ink-soft)}
@media (min-width:960px){.calc.on{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}}
@media (min-width:960px) and (min-height:880px){.calc.on .calc-card{position:sticky;top:96px}}

/* ---------- v3: coverage checkup ---------- */
.ck{display:grid;gap:clamp(1.5rem,1rem + 2vw,2.5rem)}
.ck-groups{display:grid;gap:1.75rem 2.75rem;grid-template-columns:minmax(0,1fr)}
.ck-groups.n-1{max-width:46rem}
@media (min-width:760px){.ck-groups.n-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.ck-groups.n-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ck-group{border:0;margin:0;padding:0;min-width:0}
.ck-gt{font-family:var(--f-head);font-weight:var(--w-head);font-size:1.2rem;letter-spacing:var(--track-head);padding:0;margin-bottom:.5rem}
.ck-list{list-style:none;margin:0;padding:0}
.ck-item{padding:.35rem 0 .9rem;border-top:1px solid var(--c-line)}
.ck-row{display:flex;align-items:center;gap:.8rem;min-height:44px;font-weight:600;line-height:1.35;cursor:pointer}
.ck-row input{appearance:none;-webkit-appearance:none;flex:none;font-size:1rem;display:grid;place-items:center;width:1.5rem;height:1.5rem;margin:-.05rem 0 0;border:1.5px solid color-mix(in srgb,var(--c-ink) 50%,transparent);border-radius:calc(var(--r-btn) * .3 + 3px);background:var(--c-surface);cursor:pointer;transition:background-color .15s,border-color .15s}
.ck-row input::after{content:"";width:.42rem;height:.78rem;margin-top:-.15rem;border:solid var(--c-surface);border-width:0 .17rem .17rem 0;transform:rotate(45deg) scale(0);transition:transform .15s ease-out}
.ck-row input:checked{background:var(--c-link);border-color:var(--c-link)}
.ck-row input:checked::after{transform:rotate(45deg) scale(1)}
.ck-row input:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px}
.ck-why{margin:-.3rem 0 0 2.3rem;font-size:.925rem;line-height:1.5;color:var(--c-ink-soft)}
.ck-sum{display:grid;gap:1.25rem 2.5rem;align-items:center;background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-line);border-radius:var(--r-card);padding:clamp(1.25rem,.9rem + 1.4vw,2.25rem);box-shadow:0 30px 60px -44px rgba(15,23,42,.45)}
@media (min-width:900px){.ck-sum{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}
.ck-status{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem 1.25rem;align-items:center}
@media (max-width:599px){.ck-status{row-gap:.85rem}.ck-msg{grid-column:1/-1}}
@media (min-width:600px){.ck-score{grid-row:1/span 2}}
.ck-score{margin:0;font-family:var(--f-head);font-weight:var(--w-head);font-size:clamp(2.25rem,1.8rem + 1.6vw,3rem);line-height:1;letter-spacing:var(--track-head);font-variant-numeric:lining-nums tabular-nums;color:var(--c-link)}
.ck-of{font-size:.5em;color:var(--c-ink-soft)}
.ck-meter{height:6px;border-radius:6px;background:var(--c-line);overflow:hidden}
.ck-meter span{display:block;height:100%;background:var(--c-link);transform-origin:left;transform:scaleX(var(--p,0));transition:transform .3s ease-out}
.ck-msg{margin:0;min-height:3em;font-weight:500;line-height:1.5}
.ck-end{display:grid;gap:.75rem}
@media (prefers-reduced-motion:reduce){.fd-chip,.fd-tick,.ck-row input,.ck-row input::after,.ck-meter span{transition:none}}

/* ---------- reveal on scroll ---------- */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
.mobile-bar{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;gap:.5rem;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--c-surface) 95%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--c-line)}
.mobile-bar .btn{flex:1;min-height:46px;padding-inline:.75rem;font-size:.95rem}
body:has(.mobile-bar){padding-bottom:72px}
@media (min-width:1024px){body:not(.nav-long) .mobile-bar{display:none}body:not(.nav-long):has(.mobile-bar){padding-bottom:0}}
@media (min-width:1280px){.mobile-bar{display:none}body:has(.mobile-bar){padding-bottom:0}}

/* a page that leads straight into a form (the quote page) keeps its hero short, so the form starts in the first screen */
.hero-centered:has(+ .section .bs-form){padding-block:clamp(1.75rem,1.25rem + 2vw,3rem)}
.hero-centered:has(+ .section .bs-form) h1{font-size:clamp(1.9rem,1.5rem + 1.7vw,2.9rem)}
.hero-centered:has(+ .section .bs-form) .lede{margin-bottom:1rem}
.hero-centered:has(+ .section .bs-form) .badges{margin-top:.9rem}
.hero-centered:has(+ .section .bs-form) + .section{padding-top:clamp(1.25rem,1rem + 1.5vw,2.25rem)}

/* breadcrumbs (inner pages): quiet trail above the hero; phones show only the parent link */
.crumbs{font-size:.875rem;padding-block:.75rem 0;color:var(--c-ink-soft)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.25rem .5rem;margin:0;padding:0;list-style:none}
.crumbs li+li::before{content:"›";margin-right:.5rem;opacity:.55}
.crumbs a{color:var(--c-link);text-decoration:none;display:inline-block;padding-block:.35rem}
.crumbs a:hover{text-decoration:underline}
.crumbs [aria-current]{display:inline-block;padding-block:.35rem}
/* team members without a photo: a short text list under the photo grid (never initials placeholders) */
.team-more{margin-top:clamp(2rem,1.5rem + 2vw,3rem)}
.team-more h3{font-size:1rem;font-family:var(--f-body);font-weight:600;color:var(--c-ink-soft);margin:0 0 1rem}
.team-more ul{list-style:none;margin:0;padding:0;display:grid;gap:1rem 2rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr))}
.team-more li{display:flex;flex-direction:column;gap:.15rem;border-left:2px solid var(--c-line);padding-left:.9rem;min-width:0}
.team-more span{color:var(--c-ink-soft);font-size:.925rem}
.team-more a{font-size:.925rem;overflow-wrap:anywhere}
.tone-dark .team-more span,.tone-dark .team-more h3{color:var(--c-on-dark-soft)}
@media (max-width:767px){.crumbs li,.crumbs li[aria-current]{display:none}.crumbs li:nth-last-child(2){display:block}.crumbs li:nth-last-child(2)::before{content:"‹";margin-right:.4rem;opacity:.7}}
}