/* GroRight — corporate insurance advisory. Design system. */

/* Fraunces and Inter, self-hosted (site/assets/fonts/), replacing the earlier Google Fonts
   @import/<link>. Both are variable fonts: one file per subset covers the full weight range
   used on the site (Fraunces 400-600, Inter 400-700), so the browser loads one file per
   subset actually needed for the page's characters, not one per weight. Licensed under the
   SIL Open Font License, same terms as serving them from Google Fonts. */
@font-face{
  font-family:'Fraunces';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('fonts/fraunces-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Fraunces';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('fonts/fraunces-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  --ink:#0B0F19;
  --ink-soft:#161d2c;
  --navy:#1a2130;
  --white:#FFFFFF;
  --paper:#F7F8FA;
  --paper-2:#EEF1F5;
  --pink:#FF2D7A;
  --pink-deep:#FF2D7A;
  --pink-pale:#FFEDF3;
  --pink-pale-line:#FFD2E3;
  --muted:#5c6675;
  --muted-dark:#9aa6b6;
  --line:#E2E7EE;
  --line-dark:#262f40;
  --radius:6px;
  --serif:'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --wordmark: Arial, Helvetica, sans-serif;
  --max:1240px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font:400 18px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration-color:var(--line);text-underline-offset:4px}
a:hover{color:var(--pink-deep)}
:focus-visible{outline:2.5px solid var(--pink-deep);outline-offset:3px}

/* Scroll-reveal: restrained fade + small upward move, applied only once JS confirms it can
   run (see assets/reveal.js). Without that class on <html>, every .reveal element is simply
   visible — no JS, a failed script, or prefers-reduced-motion all fall back to plain content. */
html.js-anim .reveal{opacity:0;transform:translateY(14px);transition:opacity .4s ease-out, transform .4s ease-out}
html.js-anim .reveal.in-view{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html.js-anim .reveal{opacity:1;transform:none;transition:none}
}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--white);padding:14px 20px;z-index:50;border-radius:0 0 6px 0}
.skip:focus{left:0}

.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}

/* Typography */
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;color:var(--ink);letter-spacing:-0.01em;margin:0 0 18px}
h1{font-size:clamp(36px,5.2vw,62px);line-height:1.05;letter-spacing:-0.02em;font-weight:500}
h2{font-size:clamp(28px,3.2vw,40px);line-height:1.15;letter-spacing:-0.015em}
h3{font-size:22px;line-height:1.3;font-weight:500}
h4{font-size:17px;font-family:var(--sans);font-weight:600;letter-spacing:0}
p{margin:0 0 20px}
.lead{font-size:20px;line-height:1.6;color:var(--muted)}
.eyebrow{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--pink-deep);margin-bottom:16px}
.eyebrow.on-dark{color:var(--pink)}
.small{font-size:14px;color:var(--muted)}
.prose{max-width:720px}
.prose h2{margin-top:8px}
.prose p{color:#333c49}
.prose ul,.prose ol{padding-left:22px;color:#333c49}
.prose li{margin:10px 0}
strong{font-weight:600}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px;border-radius:var(--radius);
  font:600 15px/1 var(--sans);text-decoration:none;
  border:1.5px solid var(--ink);color:var(--ink);background:transparent;
  transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover{background:var(--ink);color:var(--white)}
.btn.primary{background:var(--pink);border-color:var(--pink);color:var(--ink)}
.btn.primary:hover{background:var(--pink-deep);border-color:var(--pink-deep);color:var(--white)}
.btn.on-dark{border-color:rgba(255,255,255,.5);color:var(--white)}
.btn.on-dark:hover{background:var(--white);color:var(--ink);border-color:var(--white)}
.link-arrow{font-weight:600;font-size:15px;text-decoration:none;white-space:nowrap}
.link-arrow:hover{color:var(--pink-deep)}

/* Notice bar */
.notice{background:var(--ink);color:#cfd6e2;font-size:12.5px;letter-spacing:.02em;padding:10px 0;border-bottom:3px solid var(--pink)}
.notice .wrap{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.notice strong{color:var(--white)}
.notice a{color:var(--pink);text-decoration:underline}
.notice a:hover{color:var(--white)}

/* Header */
header{border-bottom:1px solid var(--line);background:var(--white);position:relative;z-index:30}
.nav{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.brand svg{width:26px;height:auto;flex:none}
.brand .word{font:700 23px/1 var(--wordmark);letter-spacing:-.02em;color:var(--ink)}
.brand .word em{font-style:normal;color:var(--pink)}
.navlinks{display:flex;align-items:center;gap:32px}
.navlinks ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:15px;font-weight:500}
.navlinks a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.navlinks a:hover{color:var(--ink);border-color:var(--pink)}
.navlinks a[aria-current="page"]{color:var(--pink-deep);border-color:var(--pink);font-weight:600}
.navcta{display:flex;align-items:center;gap:16px}
.navtoggle{display:none}
.navlinks-cta{display:none}

/* Mobile nav */
@media (max-width:880px){
  .navlinks{position:fixed;inset:0;top:72px;background:var(--white);display:flex;flex-direction:column;align-items:flex-start;padding:32px 24px;gap:28px;transform:translateX(100%);transition:transform .25s ease;overflow-y:auto}
  .navlinks ul{flex-direction:column;gap:22px;font-size:22px}
  .navlinks.open{transform:translateX(0)}
  .navlinks-cta{display:inline-flex}
  .navcta .btn.primary{display:none}
  .nav{min-height:72px}
  .navtoggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid var(--line);border-radius:var(--radius);background:none;cursor:pointer}
  .navtoggle span,.navtoggle span::before,.navtoggle span::after{content:"";display:block;width:18px;height:2px;background:var(--ink);position:relative;transition:transform .2s ease,opacity .2s ease}
  .navtoggle span::before{position:absolute;top:-6px}
  .navtoggle span::after{position:absolute;top:6px}
  .navtoggle[aria-expanded="true"] span{background:transparent}
  .navtoggle[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
  .navtoggle[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
}
@media (min-width:881px){.navtoggle{display:none !important}}
@media (min-width:881px) and (max-width:1120px){
  .nav{gap:16px}
  .navlinks{gap:18px}
  .navlinks ul{gap:16px;font-size:14px}
  .btn.primary{padding:13px 18px;font-size:14px}
}

/* Breadcrumb */
.crumbs{font-size:13px;color:var(--muted);padding:18px 0}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--pink-deep)}
.crumbs .sep{margin:0 8px;color:var(--line)}

/* Home hero — split navy copy / plan graphic */
.hero-split{display:grid;grid-template-columns:minmax(0,56%) 1fr;min-height:560px}
.hero-copy{background:var(--ink);color:var(--white);display:flex;align-items:center;padding:72px 0}
.hero-copy .wrap{margin:0;margin-left:auto;max-width:620px;padding:0 32px 0 48px}
.hero-copy h1{color:var(--white)}
.hero-copy h1 .accent{color:var(--pink)}
.hero-copy p{color:#b9c2d1}
.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:34px}
.hero-graphic{background:var(--paper-2);position:relative;overflow:hidden}
.hero-graphic svg{width:100%;height:100%;display:block}
.hero-graphic .cap{position:absolute;left:32px;bottom:28px;font-size:12px;color:var(--muted);letter-spacing:.04em}
@media (max-width:880px){
  .hero-split{grid-template-columns:1fr}
  .hero-copy{padding:56px 0 48px}
  .hero-copy .wrap{margin:0 auto;max-width:none;padding:0 24px}
  .hero-graphic{min-height:260px}
}

/* Photography — unifying duotone treatment across disparate licensed photos */
.photo{position:relative;overflow:hidden;background:var(--paper-2)}
.photo picture{display:block;width:100%;height:100%}
.photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.03) contrast(1.02)}
.photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(to top, rgba(6,9,16,.5), rgba(6,9,16,0));pointer-events:none}
.photo .cap{position:absolute;left:28px;bottom:22px;z-index:2;font-size:11.5px;color:rgba(255,255,255,.85);letter-spacing:.03em;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.photoband{margin:0;border-radius:var(--radius);overflow:hidden}
.photoband img{width:100%;height:auto;aspect-ratio:16/7.5;object-fit:cover}
.photoband-caption{font-size:13px;color:var(--muted);margin-top:10px}

/* Service index (homepage / solutions hub) */
.svc-index{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.svc-kicker{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--pink-deep);margin-bottom:16px}
.svc-list{border-top:1px solid var(--line)}
.svc-item{display:block;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
a.svc-item:hover .svc-title{color:var(--pink-deep)}
.svc-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;font-size:16.5px;color:var(--ink);font-family:var(--serif)}
.svc-title .go{font-family:var(--sans);font-size:14px;color:var(--pink-deep);flex:none}
.svc-desc{margin:8px 0 0;color:var(--muted);font-size:14.5px;line-height:1.55}
.svc-item.soon .svc-title{color:var(--muted-dark)}
.tag-soon{font-family:var(--sans);font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:var(--muted-dark);border:1px solid var(--line);border-radius:999px;padding:3px 9px;white-space:nowrap}
@media (max-width:760px){.svc-index{grid-template-columns:1fr;gap:36px}}

/* Benefit / limitation pairs */
.pairs{border-top:1px solid var(--line)}
.pair{padding:28px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:32px}
.pair .kicker{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:8px}
.pair .adv .kicker{color:var(--pink-deep)}
.pair .lim{border-left:2px solid var(--line);padding-left:26px}
.pair .lim .kicker{color:var(--muted-dark)}
.pair p{margin:0;color:#333c49;font-size:15.5px;line-height:1.65}
@media (max-width:760px){.pair{grid-template-columns:1fr;gap:14px}.pair .lim{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:14px}}

/* Inner page hero — simple banner */
.page-hero{background:var(--paper);border-bottom:1px solid var(--line);padding:56px 0 60px}
.page-hero .eyebrow{margin-bottom:14px}
.page-hero .lead{max-width:680px}
.page-hero .hero-actions{margin-top:30px}

/* Sections */
.section{padding:96px 0;border-top:1px solid var(--line)}
.section.tight{padding:64px 0}
.section.paper{background:var(--paper)}
.section.blush{background:var(--pink-pale);border-top-color:var(--pink-pale-line)}
.section.blush .callout{background:var(--white)}
.section.blush .wl-summary{border-top-color:var(--pink-pale-line)}
.section.dark{background:var(--ink);color:var(--white);border-top-color:var(--line-dark)}
.section.dark p{color:#b9c2d1}
.section.dark h2{color:var(--white)}
.section-head{max-width:640px;margin-bottom:48px}
@media (max-width:800px){.section{padding:56px 0}.section-head{margin-bottom:32px}}

/* Editorial row list (service paths, no cards) */
.rowlist{border-top:1px solid var(--line)}
.rowlist .row{display:grid;grid-template-columns:72px 1.2fr 1.6fr auto;gap:32px;align-items:start;padding:34px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.rowlist .row:hover{background:var(--paper)}
.rowlist .row:hover .idx{color:var(--pink-deep)}
.rowlist .idx{font-family:var(--serif);font-size:16px;color:var(--muted-dark)}
.rowlist h3{margin:0}
.rowlist p{margin:0;color:var(--muted)}
.rowlist .go{align-self:center;font-weight:600;font-size:14px;white-space:nowrap}
@media (max-width:760px){
  .rowlist .row{grid-template-columns:1fr;gap:10px;padding:26px 0}
  .rowlist .idx{order:-1}
}

/* Homepage situations — three entry points in varied editorial treatments,
   deliberately not a repeating card grid: a photo-paired feature, a large
   statement, and a compact grounded row. */
.situations{border-top:1px solid var(--line)}
.situation{padding:48px 0;border-bottom:1px solid var(--line)}
.situation-num{display:block;font-family:var(--serif);font-size:15px;color:var(--pink-deep);margin-bottom:14px}
.situation h3{margin:0 0 14px;font-weight:500}
.situation p{margin:0 0 16px;color:var(--muted);line-height:1.65;max-width:560px}

.situation-feature{display:grid;grid-template-columns:1fr 0.85fr;gap:48px;align-items:center}
.situation-feature .situation-copy{max-width:480px}
.situation-feature h3{font-size:26px}
.situation-photo{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3}
.situation-photo picture,.situation-photo img{display:block;width:100%;height:100%;object-fit:cover}

.situation-statement{max-width:760px}
.situation-statement h3{font-size:32px;line-height:1.2;max-width:620px}
.situation-statement p{font-size:16.5px}

.situation-compact{display:grid;grid-template-columns:48px 1fr;gap:24px}
.situation-compact .situation-num{margin-bottom:0}
.situation-compact h3{font-size:20px}

@media (max-width:760px){
  .situation-feature{grid-template-columns:1fr;gap:24px}
  .situation-feature .situation-copy{max-width:none}
  .situation-compact{grid-template-columns:1fr;gap:10px}
}

/* Tax-planning section — balanced two-column: media + compact considerations,
   so the section reads in one screen instead of a long single-column scroll. */
.tax-compact{display:grid;grid-template-columns:0.85fr 1.15fr;gap:40px;align-items:start;margin-top:8px}
.tax-compact .situation-photo{aspect-ratio:4/3;margin:0}
.tax-compact-list{display:flex;flex-direction:column}
.tax-point{padding:18px 0;border-bottom:1px solid var(--pink-pale-line)}
.tax-point:last-child{border-bottom:none}
.tax-point h4{margin:0 0 6px;color:var(--pink-deep);font-size:16px}
.tax-point p{margin:0;color:#333c49;font-size:14.5px;line-height:1.55}
@media (max-width:760px){
  .tax-compact{grid-template-columns:1fr;gap:20px}
}

/* Approach / numbered steps */
.steps{border-top:1px solid var(--line-dark);max-width:880px}
.steps .step{padding:30px 0;border-bottom:1px solid var(--line-dark);display:grid;grid-template-columns:64px 1fr;gap:24px}
.steps .step span{color:var(--pink);font-family:var(--serif);font-size:19px}
.steps h3{color:var(--white);margin:0 0 8px}
.steps p{margin:0}
.steps.on-light{border-top-color:var(--line)}
.steps.on-light .step{border-bottom-color:var(--line)}
.steps.on-light h3{color:var(--ink)}
.steps.on-light span{color:var(--pink-deep)}
@media (max-width:600px){.steps .step{grid-template-columns:40px 1fr;gap:16px;padding:22px 0}}

/* Commitments list appended under the dark "approach" steps — combines the former
   separate process + client-care sections into one, with a divider between them. */
.section.dark h3{color:var(--white)}
.approach-commitments{margin-top:56px;padding-top:40px;border-top:1px solid var(--line-dark);max-width:680px}
.approach-commitments ul{margin:16px 0;padding-left:22px}
.approach-commitments li{color:#b9c2d1;margin:10px 0}
.approach-commitments li::marker{color:var(--pink)}
.approach-commitments .small{color:#8b96a8;margin-top:16px}

/* Homepage logo strip — text wordmarks pending confirmed brand assets; see
   MISSING-FACTS.md. No carousel/autoplay: a plain, accessible wrapped row. */
.logo-strip-label{text-align:center;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted-dark);margin:0 0 28px}
.logo-strip{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 20px}
.logo-strip-item{
  display:flex;align-items:center;justify-content:center;
  background:var(--white);border-radius:var(--radius);
  height:64px;padding:12px 22px;
}
.logo-strip-item img{height:100%;width:auto;max-width:140px;object-fit:contain;display:block}
@media (max-width:600px){
  .logo-strip{gap:14px}
  .logo-strip-item{height:52px;padding:10px 16px}
  .logo-strip-item img{max-width:110px}
}

/* Callout (editorial hold / transparency notice) */
.diagram{border:1px solid var(--line);border-top:3px solid var(--pink);border-radius:var(--radius);background:var(--white);padding:28px;margin:28px 0 8px}
.diagram-scroll{overflow-x:auto;position:relative}
.diagram-scroll:focus-visible{outline:2.5px solid var(--pink-deep);outline-offset:3px;border-radius:4px}
.diagram svg{width:100%;min-width:680px;height:auto;display:block}
.diagram-caption{font-size:13px;color:var(--muted);margin-top:14px;max-width:640px}
.diagram-summary{font-size:15px;color:#333c49;margin-top:12px;max-width:680px}
.diagram-scroll-hint{display:none;font-size:12.5px;color:var(--pink-deep);margin-top:10px;font-weight:600}
@media (max-width:760px){
  .diagram{padding:20px}
  /* Below this width the SVG's 680px min-width exceeds the viewport, so the scroll
     affordance is real here (not shown as a false cue on wide screens where the
     whole diagram already fits without scrolling). */
  .diagram-scroll-hint{display:block}
  .diagram-scroll{mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent 100%)}
}

.callout{border-left:3px solid var(--pink);background:var(--paper);padding:24px 28px;border-radius:0 var(--radius) var(--radius) 0}
.callout .tag{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--pink-deep);margin-bottom:10px}
.callout p{margin:0;color:var(--muted)}
.callout p + p{margin-top:12px}

/* FAQ */
.faqlist{border-top:1px solid var(--line)}
details.faq{border-bottom:1px solid var(--line);padding:22px 0}
details.faq summary{font-family:var(--serif);font-size:21px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:22px;color:var(--pink-deep);flex:none}
details.faq[open] summary::after{content:"\2212"}
details.faq .a{max-width:760px;color:var(--muted);margin-top:14px}

/* CTA band */
.ctaband{background:var(--ink);color:var(--white);padding:84px 0;text-align:center;border-top:1px solid var(--line-dark)}
.ctaband h2{color:var(--white);max-width:640px;margin:0 auto 18px}
.ctaband p{color:#b9c2d1;max-width:520px;margin:0 auto 32px}
.ctaband .hero-actions{justify-content:center}

/* Closing CTA band with a photo panel — same split structure as the homepage hero,
   scaled down for a bottom-of-page close rather than a first screen. */
.ctaband-photo{display:grid;grid-template-columns:minmax(0,56%) 1fr;min-height:420px;border-top:1px solid var(--line-dark)}
.ctaband-copy{background:var(--ink);color:var(--white);display:flex;align-items:center;padding:72px 0}
.ctaband-copy .wrap{margin:0;margin-left:auto;max-width:560px;padding:0 32px 0 48px}
.ctaband-copy h2{color:var(--white);margin:0 0 16px}
.ctaband-copy p{color:#b9c2d1;margin:0}
.ctaband-copy .hero-actions{margin-top:28px}
@media (max-width:880px){
  .ctaband-photo{grid-template-columns:1fr}
  .ctaband-copy{padding:56px 0 48px}
  .ctaband-copy .wrap{margin:0 auto;max-width:none;padding:0 24px}
  .ctaband-graphic{min-height:260px}
}

/* Forms */
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px;min-width:0}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:0;min-width:0}
.field label{font-size:13px;font-weight:600;color:var(--ink)}
.field input,.field select,.field textarea{
  width:100%;min-width:0;box-sizing:border-box;
  font:400 16px/1.4 var(--sans);padding:13px 14px;border:1.5px solid var(--line);border-radius:var(--radius);
  background:var(--white);color:var(--muted-dark);
}
.field.full{grid-column:1/-1}
.field-legend{font-size:13px;font-weight:600;color:var(--ink);display:block;margin-bottom:8px}
.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}
@media (max-width:520px){.checkbox-grid{grid-template-columns:1fr}}
.checkbox-field{flex-direction:row;align-items:flex-start;gap:10px;font-size:14px;font-weight:400;color:var(--muted-dark);cursor:pointer}
.checkbox-field input{width:auto;margin-top:3px;flex:none}
.form-disabled{opacity:.85}
.form-disabled input,.form-disabled select,.form-disabled textarea{background:var(--paper);cursor:not-allowed}
.form-disabled .checkbox-field{cursor:not-allowed}
.form-note{display:flex;gap:12px;align-items:flex-start;background:var(--paper-2);border-radius:var(--radius);padding:18px 20px;margin-bottom:28px}
.form-note strong{display:block;margin-bottom:4px}
.form-note p{margin:0;color:var(--muted);font-size:15px}
@media (max-width:700px){.formgrid{grid-template-columns:1fr}}

/* Intake form — added 2026-11-04, matches the existing .field/.formgrid/
   .checkbox-grid scaffolding above rather than introducing a second system. */
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.field-required{color:var(--pink-deep)}
.field-hint{font-size:12.5px;color:var(--muted);margin-top:2px}
.field-error-text{font-size:13px;color:var(--pink-deep);margin-top:4px;display:none}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--pink-deep)}
.field.has-error .field-error-text{display:block}
.form-status{border-radius:var(--radius);padding:18px 20px;margin-top:24px;font-size:15px;display:none}
.form-status.visible{display:block}
.form-status.success{background:#f0fbf4;border:1.5px solid #bfe8cd;color:#145a32}
.form-status.error{background:#fff5f5;border:1.5px solid #ffd4d4;color:#8a1f1f}
.form-status.pending{background:var(--paper-2);border:1.5px solid var(--line);color:var(--muted)}
.form-submit-row{display:flex;align-items:center;gap:16px;margin-top:8px}
.form-submit-row .btn[disabled]{opacity:.6;cursor:not-allowed}

/* Consultation prep checklist */
.prep-checklist{border-top:1px solid var(--line);margin-top:28px}
.prep-item{display:grid;grid-template-columns:40px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}
.prep-num{font-family:var(--serif);color:var(--pink-deep);font-size:16px}
.prep-item p{margin:0;color:#333c49}

/* Whole Life — concise "in short" summary grid above the detailed sections */
.wl-summary{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;border-top:1px solid var(--line);padding-top:32px}
.wl-summary p{margin:8px 0;color:#333c49;font-size:15px;line-height:1.6}
@media (max-width:700px){.wl-summary{grid-template-columns:1fr;gap:24px}}

/* Ownership roles (owner / insured / beneficiary) */
.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0;margin:8px 0}
.role-label{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--pink-deep);margin-bottom:10px}
.role p{margin:0;color:#333c49;font-size:15px;line-height:1.55}
@media (max-width:760px){.roles{grid-template-columns:1fr;gap:20px}}

/* Illustrative example callout */
.example{background:var(--paper-2);border-radius:var(--radius);padding:22px 26px;margin:24px 0}
.example-tag{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:10px}
.example p{margin:0;color:#333c49;font-style:italic}

/* Related links */
.related{border-top:1px solid var(--line);padding-top:28px}
.related h3{margin-bottom:16px;color:var(--muted);font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:0}
.related ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}

/* Table */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-top:3px solid var(--pink);border-radius:var(--radius);background:var(--white)}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--pink-deep);font-weight:700;background:var(--paper)}
td:first-child,th:first-child{font-weight:600;color:var(--ink)}
tr:last-child td{border-bottom:none}

/* Status badge */
.badge{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--pink-deep);background:#fff0f5;border:1px solid #ffd4e4;padding:6px 12px;border-radius:999px}

/* Footer */
footer{background:#060910;color:#cfd6e2}
.foot-top{padding-top:72px;padding-bottom:48px;display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:32px;border-bottom:1px solid var(--line-dark)}
.foot-brand .brand{margin-bottom:16px}
.foot-brand .brand .word{color:var(--white)}
.foot-brand p{color:#9aa6b6;max-width:320px;font-size:15px}
.foot-brand a{color:var(--pink);text-decoration:none}
.foot-brand a:hover{color:var(--white)}
.foot-label{color:var(--white);font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 18px}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:15px}
.foot-col a{text-decoration:none;color:#b9c2d1}
.foot-col a:hover{color:var(--white)}
.foot-bottom{padding-top:32px;padding-bottom:32px}
.foot-legal{color:#8089a0;font-size:13px;line-height:1.7;max-width:980px}
.foot-legal p{margin:0 0 12px}
.foot-legal a{color:#b9c2d1;text-decoration-color:var(--line-dark)}
.foot-legal a:hover{color:var(--white)}
.foot-legal-links{margin-top:18px;color:#b9c2d1}
.foot-copy{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:24px;font-size:13px;color:#8089a0}
@media (max-width:1100px){.foot-top{grid-template-columns:1.2fr 1fr 1fr;gap:32px}.foot-brand{grid-column:1/-1}}
@media (max-width:880px){.foot-top{grid-template-columns:1fr 1fr;gap:36px}.foot-brand{grid-column:auto}}
@media (max-width:560px){.foot-top{grid-template-columns:1fr}}

/* 404 */
.notfound{padding:140px 0;text-align:center}
.notfound .eyebrow{justify-content:center;display:flex}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none !important}}

/* =====================================================================
   Premium redesign (Phase 6, 2026-11-06). A layer on top of the base
   system above: deep navy, a restrained pink glow, Inter display type,
   pill controls and frosted panels. Reference: user-supplied "Tidewell"
   hero, adapted to GroRight's navy + pink.
   ===================================================================== */
:root{
  --night:#0A1020;
  --night-2:#101A30;
  --night-3:#18233F;
  --pink:#FF2D7A;
  --pink-deep:#FF2D7A;
  --pink-soft:#FF6FA3;
  --serif:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --radius:14px;
  --radius-lg:22px;
  --glass:rgba(255,255,255,.06);
  --glass-line:rgba(255,255,255,.14);
  --on-dark:#C9D1DF;
  --on-dark-muted:#8E9AB0;
  --max:1240px;
}
body{font-size:17px;line-height:1.7;color:#1b2333}
h1,h2,h3,h4{font-family:var(--sans);color:#0B0F19}
h1{font-weight:400;letter-spacing:-.035em;line-height:1.03;font-size:clamp(38px,5vw,64px)}
h2{font-weight:400;letter-spacing:-.03em;line-height:1.1;font-size:clamp(30px,3.4vw,46px)}
h3{font-weight:500;letter-spacing:-.015em}
h4{font-weight:600}
.lead{font-size:clamp(17px,1.4vw,19px);line-height:1.65}
.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:600;display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pink);flex:none}
::selection{background:var(--pink);color:#fff}

/* Buttons: pills */
.btn{border-radius:999px;padding:14px 24px;font-size:15px;letter-spacing:-.005em;border-width:1px;min-height:48px;justify-content:center}
.btn.primary{background:var(--pink-deep);border-color:var(--pink-deep);color:#fff;box-shadow:0 8px 24px -10px rgba(255,45,122,.7)}
.btn.primary:hover{background:#FF4A8C;border-color:#FF4A8C;color:#fff}
.link-arrow.on-dark{color:#fff}
.link-arrow.on-dark:hover{color:var(--pink-soft)}

/* Header: dark, glass pill navigation */
header{background:var(--night);border-bottom:1px solid rgba(255,255,255,.07)}
.nav{min-height:80px}
.brand .word{color:#fff}
.navlinks ul{background:var(--glass);border:1px solid var(--glass-line);border-radius:999px;padding:5px;gap:2px;font-size:14.5px}
.navlinks a{color:var(--on-dark);border:none;padding:9px 16px;border-radius:999px;display:inline-flex;align-items:center;gap:8px;transition:background-color .15s ease,color .15s ease}
.navlinks a:hover{color:#fff;background:rgba(255,255,255,.07)}
.navlinks a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.10);font-weight:500}
.navlinks a[aria-current="page"]::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pink)}
.navcta .btn.primary{padding:12px 20px;min-height:44px}
.navlinks a.navlinks-cta{display:none}
@media (max-width:880px){
  .nav{min-height:68px}
  .navlinks{top:68px;background:var(--night);padding:28px 20px calc(28px + env(safe-area-inset-bottom))}
  .navlinks ul{background:none;border:none;padding:0;gap:6px;font-size:22px;width:100%}
  .navlinks li{width:100%}
  .navlinks a{color:#fff;padding:14px 4px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.08);width:100%}
  .navlinks a:hover{background:none}
  .navlinks a[aria-current="page"]{background:none}
  .navlinks a.navlinks-cta{display:inline-flex;width:100%;color:#fff;border-bottom:none;border-radius:999px;padding:14px 24px;margin-top:8px;justify-content:center}
  .navtoggle{border-color:var(--glass-line);background:var(--glass)}
  .navtoggle span,.navtoggle span::before,.navtoggle span::after{background:#fff}
  .navtoggle[aria-expanded="true"] span{background:transparent}
}
@media (min-width:881px) and (max-width:1120px){.navlinks a{padding:8px 11px}.navlinks ul{font-size:13.5px}}

/* Breadcrumbs sit on the dark band between header and page hero */
.crumbs{color:var(--on-dark-muted);background:var(--night);box-shadow:0 0 0 100vmax var(--night);clip-path:inset(0 -100vmax);padding:16px 32px 0}
.crumbs a{color:var(--on-dark-muted)}
.crumbs a:hover{color:#fff}
.crumbs span:last-child{color:var(--on-dark)}
.crumbs .sep{color:rgba(255,255,255,.22)}

/* Shared atmospheric background: soft glow + fine ribbed-glass texture */
.hp-bg,.page-hero::before,.hero-copy::before,.ctaband::before,.ctaband-copy::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.028) 0 1px,transparent 1px 8px),
    radial-gradient(42% 58% at 56% 46%,rgba(255,45,122,.42),rgba(255,45,122,0) 70%),
    radial-gradient(38% 50% at 18% 28%,rgba(84,112,190,.38),rgba(84,112,190,0) 70%),
    radial-gradient(50% 55% at 92% 90%,rgba(52,74,140,.45),rgba(52,74,140,0) 70%),
    linear-gradient(180deg,#0B1224 0%,#0A1020 100%);
}

/* Home hero */
.hero-premium{position:relative;isolation:isolate;overflow:hidden;background:var(--night);color:#fff}
.hp-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,16,32,0) 55%,rgba(10,16,32,.85) 100%)}
.hp-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.85fr);gap:48px;align-items:end;min-height:clamp(540px,calc(100svh - 210px),720px);padding-top:44px;padding-bottom:36px}
.hp-copy h1{color:#fff;font-size:clamp(42px,6vw,84px);line-height:.98;letter-spacing:-.045em;margin:0 0 30px;max-width:13ch}
.hp-copy h1 .accent{color:var(--pink-soft)}
.hp-sub{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px}
.hp-sub .lead{color:var(--on-dark);max-width:560px;margin:0;font-size:16.5px}
.hp-sub .hero-actions{margin:0}
.hp-card{align-self:start;margin-top:12px;background:rgba(255,255,255,.07);border:1px solid var(--glass-line);border-radius:var(--radius-lg);padding:14px 14px 16px;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.hc-handle{display:block;width:36px;height:3px;border-radius:3px;background:rgba(255,255,255,.55);margin:2px auto 12px}
.hc-title{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--on-dark);margin:0 4px 12px}
.hc-title .hi{width:15px;height:15px}
.hc-row{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px}
.hc-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.hc-top strong{font-size:15px;font-weight:600;color:#fff}
.hc-top span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pink-soft)}
.hc-cols{display:flex;justify-content:space-between;gap:16px;margin-top:8px}
.hc-cols small{display:block;font-size:11.5px;color:var(--on-dark-muted);line-height:1.4}
.hc-cols b{display:block;font-size:15.5px;font-weight:500;color:#fff;letter-spacing:-.01em;line-height:1.35}
.hc-cols .r{text-align:right}
.hc-pill{display:inline-flex;margin-top:4px;padding:8px 14px;border-radius:999px;background:var(--pink-deep);color:#fff;font-size:12.5px;font-weight:600}
.hp-features{list-style:none;margin:0;padding:20px 0 26px;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;border-top:1px solid rgba(255,255,255,.14);position:relative}
.hp-features::before{content:"";position:absolute;left:0;top:-1px;width:150px;height:2px;background:var(--pink)}
.hp-features li{display:flex;flex-direction:column;gap:10px;font-size:13.5px;line-height:1.4;color:var(--on-dark)}
.hp-features li:first-child{color:var(--pink-soft)}
.hp-features .hi{width:19px;height:19px}
@media (max-width:1020px){
  .hp-grid{grid-template-columns:1fr;align-items:start;min-height:0;padding-top:48px;gap:36px}
  .hp-card{max-width:520px;margin-top:0}
  .hp-features{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:600px){
  .hp-grid{padding-top:36px;gap:28px}
  .hp-copy h1{font-size:clamp(40px,11.5vw,52px);margin-bottom:22px}
  .hp-sub{flex-direction:column;align-items:stretch}
  .hp-sub .hero-actions{flex-direction:column;align-items:stretch;gap:16px}
  .hp-sub .hero-actions .btn{width:100%}
  .hp-sub .hero-actions .link-arrow{text-align:center;padding:6px 0}
  .hp-features{grid-template-columns:1fr 1fr;gap:18px 16px;padding-bottom:28px}
  .hp-features li:last-child{grid-column:1/-1}
}

/* Inner page heroes */
.page-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--night);border-bottom:none;padding:64px 0 76px;color:#fff}
.page-hero h1{color:#fff;max-width:18ch}
.page-hero .lead{color:var(--on-dark)}
.page-hero .eyebrow{color:var(--pink-soft)}
.page-hero .link-arrow{color:#fff}
.hero-split{background:var(--night);min-height:540px}
.hero-copy{position:relative;isolation:isolate;overflow:hidden;background:var(--night)}
.hero-copy .lead,.hero-copy p{color:var(--on-dark)}
.hero-copy h1 .accent{color:var(--pink-soft)}
.hero-graphic.photo{background:var(--night)}
.photo::after{background:linear-gradient(to top,rgba(10,16,32,.45),rgba(10,16,32,0))}

/* Sections: more air, quieter dividers */
.section{padding:112px 0;border-top:none}
.section + .section{border-top:1px solid var(--line)}
.section.paper,.section.blush,.section.dark{border-top:none}
.section.tight{padding:64px 0}
.section.dark{background:var(--night)}
.section.dark p,.section.dark li{color:var(--on-dark)}
.section.blush{background:linear-gradient(180deg,#FFF4F8 0%,#FFFFFF 100%)}
.section-head{max-width:720px;margin-bottom:56px}
@media (max-width:800px){.section{padding:72px 0}.section.tight{padding:48px 0}.section-head{margin-bottom:36px}}
.situation-photo,.photoband,.tax-compact .situation-photo{border-radius:var(--radius-lg)}
.callout{border-left:none;border-radius:var(--radius-lg);background:#F5F7FB;border:1px solid var(--line);padding:28px 30px}
.callout .tag{letter-spacing:.14em}
.tablewrap,.diagram{border-radius:var(--radius-lg);border-top:1px solid var(--line)}
.diagram{border-top:3px solid var(--pink)}
.rowlist .row{border-radius:12px;padding-left:12px;padding-right:12px}
details.faq summary{font-weight:500;letter-spacing:-.015em;font-size:19px}

/* Logo banner (nine approved logos) */
.logo-strip-label{color:var(--on-dark-muted);letter-spacing:.18em}
.logo-strip-item{border-radius:12px;height:62px}

/* Closing bands */
.ctaband{position:relative;isolation:isolate;overflow:hidden;background:var(--night);border-top:none;padding:104px 0}
.ctaband p{color:var(--on-dark)}
.ctaband-photo{border-top:none;background:var(--night)}
.ctaband-copy{position:relative;isolation:isolate;overflow:hidden;background:var(--night)}
.ctaband-copy p{color:var(--on-dark)}

/* Forms: softer fields */
.field input,.field select,.field textarea{border-radius:12px;border:1px solid #D5DCE6;color:#1b2333;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--pink-deep);box-shadow:0 0 0 4px rgba(255,45,122,.12)}
.checkbox-field{color:#3b4556}
.form-status{border-radius:var(--radius)}

/* Social links */
.social{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.social a{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 16px 0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.16);color:#E6EAF1;text-decoration:none;font-size:14px;font-weight:500;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.social a:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3);color:#fff}
.social svg{width:20px;height:20px;flex:none}
.foot-brand .social a{color:#E6EAF1}
.social.on-light a{border-color:#D5DCE6;color:#0B0F19;background:#fff}
.social.on-light a:hover{border-color:var(--pink-deep);color:var(--pink-deep);background:#fff}

/* Footer */
footer{background:#070B16}
.foot-top{padding-top:88px;padding-bottom:56px}
.foot-bottom{padding-top:32px;padding-bottom:calc(32px + env(safe-area-inset-bottom))}
.foot-label{font-size:12px;letter-spacing:.14em;color:#fff}
.foot-col ul{gap:13px;font-size:14.5px}
.foot-col a{color:#AEB8C9}

/* 404 on dark to match the header band */
.notfound{background:var(--night);color:#fff}
.notfound h1{color:#fff}
.notfound .lead{color:var(--on-dark)}

/* Marketing-cookie consent banner (consent.js) */
.consent-banner{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:1000;max-width:860px;margin:0 auto;background:#fff;color:#0B0F19;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 24px 60px -20px rgba(10,16,32,.45)}
.consent-banner[hidden]{display:none}
.consent-inner{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;padding:18px 20px 18px 24px}
.consent-text{flex:1 1 360px;margin:0;font-size:14px;line-height:1.55;color:#3b4556}
.consent-text strong{color:#0B0F19}
.consent-text a{color:#0B0F19;text-decoration:underline}
.consent-actions{display:flex;gap:10px;flex:0 0 auto}
.consent-actions .btn{min-width:108px;min-height:44px;padding:11px 20px;font-size:14.5px}
.consent-choice{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0 6px}
@media (max-width:600px){
  .consent-banner{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));max-height:calc(100vh - 20px);overflow:auto}
  .consent-inner{padding:16px;gap:12px}
  .consent-text{flex:1 1 100%;font-size:13.5px}
  .consent-actions{flex:1 1 100%}
  .consent-actions .btn{flex:1 1 0;min-width:0}
}
@media (max-width:600px){
  .wrap{padding-left:22px;padding-right:22px}
  .crumbs{padding-left:22px;padding-right:22px}
  .callout{padding:24px 20px}
  .callout .btn{width:100%;padding:14px 18px;font-size:14.5px}
  .foot-top{padding-top:64px;padding-bottom:40px}
}

/* Dark panels between light sections: same atmosphere as the hero, and
   every component that can sit inside one gets an on-dark treatment. */
.section.dark{position:relative;isolation:isolate;overflow:hidden;color:#fff}
.section.dark::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.022) 0 1px,transparent 1px 8px),
    radial-gradient(40% 60% at 85% 20%,rgba(255,45,122,.22),rgba(255,45,122,0) 70%),
    radial-gradient(45% 60% at 8% 85%,rgba(84,112,190,.28),rgba(84,112,190,0) 70%),
    var(--night)}
.section.tight.dark::before{background:var(--night)}
.section.dark h2,.section.dark h3,.section.dark h4{color:#fff}
.section.dark .eyebrow{color:var(--pink-soft)}
.section.dark .prose p,.section.dark .prose li{color:var(--on-dark)}
.section.dark a:not(.btn){color:#fff;text-decoration-color:rgba(255,255,255,.35)}
.section.dark a:not(.btn):hover{color:var(--pink-soft)}
.section.dark .link-arrow{color:#fff}
.section.dark .small{color:var(--on-dark-muted)}
/* FAQ on dark */
.section.dark .faqlist,.section.dark details.faq{border-color:rgba(255,255,255,.12)}
.section.dark details.faq summary{color:#fff}
.section.dark details.faq summary::after{color:var(--pink-soft)}
.section.dark details.faq .a{color:var(--on-dark)}
/* Steps on dark: frosted rows */
.section.dark .steps{border-top-color:rgba(255,255,255,.12)}
.section.dark .steps .step{border-bottom-color:rgba(255,255,255,.12)}
.section.dark .steps .step span{color:var(--pink-soft)}
/* Tax points on dark: glass cards */
.section.dark .tax-compact-list{gap:12px}
.section.dark .tax-point{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:20px 22px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.section.dark .tax-point:last-child{border-bottom:1px solid rgba(255,255,255,.12)}
.section.dark .tax-point h4{color:var(--pink-soft)}
.section.dark .tax-point p{color:var(--on-dark)}
.section.dark .diagram{box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.section.dark .diagram-caption,.section.dark .diagram-summary{color:#3b4556}

/* ---- Moving hero glow (homepage) + primary CTA shimmer -------------- */
@keyframes hp-drift{
  0%{transform:translate3d(0,0,0) scale(1)}
  33%{transform:translate3d(-4%,3%,0) scale(1.08)}
  66%{transform:translate3d(3%,-2%,0) scale(1.04)}
  100%{transform:translate3d(0,0,0) scale(1)}
}
@keyframes hp-orb{
  0%{transform:translate3d(-10%,0,0)}
  50%{transform:translate3d(12%,-8%,0)}
  100%{transform:translate3d(-10%,0,0)}
}
.hero-premium .hp-bg{inset:-8%;animation:hp-drift 22s ease-in-out infinite;will-change:transform}
.hero-premium::after{content:"";position:absolute;z-index:-1;pointer-events:none;width:46vw;height:46vw;max-width:720px;max-height:720px;left:30%;top:18%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,45,122,.30) 0%,rgba(255,45,122,.10) 40%,rgba(255,45,122,0) 70%);filter:blur(30px);animation:hp-orb 18s ease-in-out infinite;will-change:transform}
@keyframes cta-shine{0%,70%{transform:translateX(-120%) skewX(-20deg)}100%{transform:translateX(220%) skewX(-20deg)}}
.hero-premium .hero-actions .btn.primary,.checkup-band .btn.primary{position:relative;overflow:hidden;isolation:isolate}
.hero-premium .hero-actions .btn.primary::after,.checkup-band .btn.primary::after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.35),rgba(255,255,255,0));animation:cta-shine 4.5s ease-in-out infinite;pointer-events:none}
@media (prefers-reduced-motion:reduce){
  .hero-premium .hp-bg,.hero-premium::after,.hero-premium .hero-actions .btn.primary::after,.checkup-band .btn.primary::after{animation:none}
}

/* ---- Business Owners hub ---------------------------------------------- */
.owners-hero{padding:72px 0 88px}
.owners-hero h1{max-width:20ch;font-size:clamp(36px,4.6vw,60px)}
.owners-hero .lead{max-width:720px}
.stat-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:22px 20px}
.stat b{display:block;font-size:clamp(30px,3vw,40px);font-weight:400;letter-spacing:-.03em;color:#fff;line-height:1.1}
.stat span{display:block;margin-top:8px;font-size:13.5px;line-height:1.5;color:var(--on-dark)}
.section.dark .stat-note{margin-top:16px;color:var(--on-dark-muted)}
.qualifiers{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);max-width:860px}
.qualifiers li{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}
.qualifiers span{color:var(--pink-deep);font-size:15px}
.qualifiers p{margin:0;font-size:18px;color:#1b2333}
.problem-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.problem{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);padding:28px}
.problem-num{color:var(--pink-soft);font-size:14px}
.problem h3{margin:10px 0 8px;font-size:21px}
.problem p{margin:0;font-size:15.5px}
.pillar-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.pillar{display:flex;flex-direction:column;gap:8px;padding:30px;border:1px solid var(--line);border-radius:var(--radius-lg);text-decoration:none;color:inherit;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.pillar:hover{border-color:var(--pink-deep);box-shadow:0 20px 40px -24px rgba(10,16,32,.35);transform:translateY(-2px);color:inherit}
.pillar-kicker{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--pink-deep)}
.pillar h3{margin:0;font-size:23px}
.pillar p{margin:0;color:var(--muted);font-size:15.5px}
.pillar-go{margin-top:auto;padding-top:8px;font-weight:600;font-size:14.5px}
.checkup-band{position:relative;isolation:isolate;overflow:hidden;background:var(--night);color:#fff;padding:72px 0}
.checkup-band::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(50% 120% at 85% 50%,rgba(255,45,122,.35),rgba(255,45,122,0) 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 8px),var(--night)}
.checkup-band-inner{display:flex;align-items:center;justify-content:space-between;gap:28px 48px;flex-wrap:wrap}
.checkup-band h2{color:#fff;margin:6px 0 10px}
.checkup-band p{color:var(--on-dark);margin:0;max-width:560px}
.checkup-band .eyebrow{color:var(--pink-soft)}
.guide-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.guide{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:inherit;min-height:112px;transition:border-color .15s ease}
.guide:hover{border-color:var(--pink-deep);color:inherit}
.guide span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--pink-deep);font-weight:600}
.guide b{font-weight:500;font-size:16px;line-height:1.35}
@media (max-width:1020px){.stat-tiles{grid-template-columns:repeat(2,1fr)}.guide-cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.problem-grid,.pillar-cards{grid-template-columns:1fr}.qualifiers li{grid-template-columns:40px 1fr}.qualifiers p{font-size:16.5px}.pillar{padding:24px}}
@media (max-width:420px){.stat-tiles,.guide-cards{grid-template-columns:1fr}}

/* ---- Checkup tool ------------------------------------------------------ */
.checkup{max-width:760px}
.checkup-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px;background:#fff;box-shadow:0 30px 60px -40px rgba(10,16,32,.35)}
.checkup-progress{height:4px;border-radius:4px;background:#EEF1F5;overflow:hidden;margin-bottom:18px}
.checkup-progress span{display:block;height:100%;background:var(--pink-deep);transition:width .3s ease}
.checkup-count{font-size:13px;color:var(--muted);margin:0 0 6px}
.checkup-q{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.checkup-q legend{font-size:clamp(22px,2.4vw,28px);letter-spacing:-.02em;line-height:1.25;margin-bottom:14px;padding:0;outline:none}
.checkup-opt{text-align:left;font:500 16px/1.4 var(--sans);color:#0B0F19;background:#fff;border:1px solid #D5DCE6;border-radius:12px;padding:16px 18px;min-height:52px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.checkup-opt:hover,.checkup-opt:focus-visible{border-color:var(--pink-deep);background:#FFF5F9}
.checkup-opt.selected{border-color:var(--pink-deep);background:#FFF0F6}
.checkup-back,.checkup-again{margin-top:16px;background:none;border:none;font:600 14.5px var(--sans);color:var(--muted);cursor:pointer;padding:8px 0}
.checkup-back:hover,.checkup-again:hover{color:var(--pink-deep)}
.checkup-result h2{outline:none;margin-bottom:12px}
.checkup-areas{display:flex;flex-direction:column;gap:10px;margin:16px 0 24px}
.checkup-area{display:block;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:inherit}
.checkup-area:hover{border-color:var(--pink-deep);color:inherit}
.checkup-area .tag{display:inline-block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--pink-deep);margin-bottom:4px}
.checkup-area b{display:block;font-weight:600;font-size:17px}
.checkup-area p{margin:6px 0 8px;color:var(--muted);font-size:15px;line-height:1.55}
.checkup-area .go{font-weight:600;font-size:14px}
.checkup-note{margin-top:18px;max-width:760px}
@media (max-width:600px){.checkup-card{padding:22px 18px}}

/* ---- Checkup prompt (pop-up) ------------------------------------------ */
.cp-overlay{position:fixed;inset:0;z-index:1100;background:rgba(10,16,32,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px;animation:cp-fade .25s ease-out}
@keyframes cp-fade{from{opacity:0}to{opacity:1}}
.cp-dialog{position:relative;width:100%;max-width:520px;background:#fff;border-radius:var(--radius-lg);padding:36px 36px 28px;box-shadow:0 40px 80px -30px rgba(0,0,0,.55);animation:cp-rise .3s ease-out}
@keyframes cp-rise{from{transform:translateY(12px);opacity:.6}to{transform:none;opacity:1}}
.cp-close{position:absolute;top:10px;right:10px;width:44px;height:44px;border:none;background:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;border-radius:50%}
.cp-close:hover{background:#F2F4F8;color:#0B0F19}
.cp-eyebrow{display:block;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--pink-deep);margin-bottom:12px}
.cp-dialog h2{font-size:clamp(24px,3vw,30px);line-height:1.2;margin:0 0 12px}
.cp-dialog h2 em{font-style:normal;color:var(--pink-deep)}
.cp-dialog p{color:#3b4556;font-size:15.5px;margin:0 0 22px}
.cp-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cp-later{background:none;border:none;font:600 14.5px var(--sans);color:var(--muted);cursor:pointer;padding:12px 4px;letter-spacing:.02em}
.cp-later:hover{color:#0B0F19}
.cp-meta{margin:18px 0 0 !important;font-size:12.5px !important;letter-spacing:.06em;color:var(--muted) !important}
@media (max-width:520px){.cp-dialog{padding:30px 22px 22px}.cp-actions .btn{width:100%}.cp-later{width:100%;text-align:center}}
@media (prefers-reduced-motion:reduce){.cp-overlay,.cp-dialog{animation:none}}
.cp-eyebrow{padding-right:40px}
.stat-head{display:flex;flex-direction:column;gap:6px;margin:0 0 18px;color:#fff;font-size:18px;letter-spacing:-.01em}
.stat-head .eyebrow{margin:0}
.section.dark .stat-note strong{color:#fff}

/* ---- Contact page (welcoming layout) ---------------------------------- */
.contact-hero{padding:64px 0 72px}
/* Contact is a landing page: same moving glow as the homepage hero */
.contact-hero::before{inset:-8%;animation:hp-drift 22s ease-in-out infinite;will-change:transform}
.contact-hero::after{content:"";position:absolute;z-index:-1;pointer-events:none;width:46vw;height:46vw;max-width:640px;max-height:640px;left:42%;top:-10%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,45,122,.30) 0%,rgba(255,45,122,.10) 40%,rgba(255,45,122,0) 70%);filter:blur(30px);animation:hp-orb 18s ease-in-out infinite;will-change:transform}
.contact-hero .hero-actions{margin-top:28px}
.contact-hero .hero-actions .btn.primary{position:relative;overflow:hidden;isolation:isolate}
.contact-hero .hero-actions .btn.primary::after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.35),rgba(255,255,255,0));animation:cta-shine 4.5s ease-in-out infinite;pointer-events:none}
@media (prefers-reduced-motion:reduce){.contact-hero::before,.contact-hero::after,.contact-hero .hero-actions .btn.primary::after{animation:none}}
.contact-hero h1{max-width:16ch}
.contact-chips{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.contact-chips li{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#E6EAF1;font-size:14px}
.contact-chips .hi{width:16px;height:16px;color:var(--pink-soft)}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);gap:28px;align-items:start}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px;box-shadow:0 30px 60px -40px rgba(10,16,32,.35)}
.contact-steps{display:flex;align-items:center;gap:10px;margin-bottom:26px;font-size:14px}
.contact-steps span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid #D5DCE6;color:var(--muted);font-weight:600;font-size:13px}
.contact-steps span.on{background:var(--pink-deep);border-color:var(--pink-deep);color:#fff}
.contact-steps b{font-weight:600;color:#0B0F19}
.contact-steps b.muted{color:var(--muted);font-weight:500}
.contact-steps i{flex:0 1 48px;height:1px;background:#D5DCE6}
.form-group{border:none;margin:0 0 26px;padding:0}
.form-group legend{font-size:19px;font-weight:500;letter-spacing:-.015em;color:#0B0F19;margin-bottom:14px;padding:0}
.form-group .formgrid{gap:16px 18px}
.field-legend .field-hint{display:block;font-weight:400;margin-top:4px}
.interest-grid .checkbox-field,.consent-grid .checkbox-field{border:1px solid #D5DCE6;border-radius:12px;padding:12px 14px;align-items:center;transition:border-color .15s ease,background-color .15s ease;color:#1b2333}
.interest-grid .checkbox-field:hover,.consent-grid .checkbox-field:hover{border-color:var(--pink-deep)}
.interest-grid .checkbox-field:has(input:checked),.consent-grid .checkbox-field:has(input:checked){border-color:var(--pink-deep);background:#FFF5F9}
.interest-grid .checkbox-field input,.consent-grid .checkbox-field input{margin-top:0;accent-color:var(--pink-deep);width:18px;height:18px}
.interest-grid .not-sure{grid-column:1/-1;border-style:dashed}
.consent-grid{grid-template-columns:repeat(3,1fr)}
.form-note-soft{background:#F5F7FB;border-radius:var(--radius);padding:16px 18px}
.form-note-soft b{display:block;font-size:14px;margin-bottom:4px}
.form-note-soft p{margin:0;font-size:14px;color:var(--muted);line-height:1.6}
.form-submit-row{gap:18px;flex-wrap:wrap;margin-top:22px}
.form-privacy{margin:18px 0 0}
.contact-aside{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}
.aside-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;text-decoration:none;color:inherit}
.aside-card h3{font-size:18px;margin:0 0 14px}
.expect{list-style:none;margin:0;padding:0;counter-reset:ex;display:flex;flex-direction:column;gap:14px}
.expect li{counter-increment:ex;display:grid;grid-template-columns:28px 1fr;gap:2px 12px}
.expect li::before{content:counter(ex);grid-row:span 2;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#FFF0F6;color:var(--pink-deep);font-size:13px;font-weight:600}
.expect b{font-weight:600;font-size:15px}
.expect span{font-size:14px;color:var(--muted);line-height:1.55}
.contact-line{display:flex;flex-direction:column;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:500}
.contact-line:hover{color:var(--pink-deep)}
.cl-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--pink-deep);font-weight:600;margin-bottom:2px}
.aside-card .small{margin-top:12px}
.aside-checkup{background:var(--night);border-color:var(--night);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.aside-checkup::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 120% at 100% 0%,rgba(255,45,122,.35),rgba(255,45,122,0) 70%)}
.aside-checkup .eyebrow{color:var(--pink-soft);margin-bottom:6px}
.aside-checkup b{display:block;font-weight:500;font-size:18px;line-height:1.35;color:#fff}
.aside-checkup .small{display:block;color:var(--on-dark);margin-top:8px}
.aside-checkup:hover{color:#fff}
.aside-checkup:hover b{color:var(--pink-soft)}
@media (max-width:980px){.contact-layout{grid-template-columns:1fr}.contact-aside{position:static}}
@media (max-width:600px){.contact-card{padding:22px 18px}.contact-steps{font-size:13px;gap:8px}.consent-grid{grid-template-columns:1fr 1fr 1fr}.aside-card{padding:22px}}
@media (max-width:380px){.consent-grid{grid-template-columns:1fr}}
.interest-grid .checkbox-field,.consent-grid .checkbox-field,.field[data-field="acknowledge"] .checkbox-field{display:flex;flex-direction:row;align-items:center;gap:12px;line-height:1.4}
.field[data-field="acknowledge"] .checkbox-field{align-items:flex-start}
.field[data-field="acknowledge"] .checkbox-field input{margin-top:3px;accent-color:var(--pink-deep);width:18px;height:18px;flex:none}
.contact-steps b{white-space:nowrap}
@media (max-width:600px){.contact-steps i{flex:1 1 16px;min-width:12px}.contact-steps b{font-size:13px}.contact-steps span{width:26px;height:26px;flex:none}}
@media (max-width:600px){.contact-steps i{display:none}.contact-steps b{margin-right:10px}}

/* ---- Hero background video (homepage + contact) ------------------------ */
/* Calgary skyline, handshakes and the logo, under the navy/pink gradient.   */
.hero-video{position:absolute;inset:0;z-index:-3;overflow:hidden;pointer-events:none;
  background:#0A1020 url(video/hero-calgary-poster.webp) center/cover no-repeat}
.hero-video video{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.hero-video video.playing{opacity:1}
.has-video .hp-bg,.contact-hero.has-video::before{
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 8px),
    radial-gradient(42% 58% at 58% 46%,rgba(255,45,122,.38),rgba(255,45,122,0) 70%),
    radial-gradient(38% 50% at 14% 26%,rgba(84,112,190,.30),rgba(84,112,190,0) 70%),
    linear-gradient(135deg,rgba(255,45,122,.20) 0%,rgba(10,16,32,0) 55%),
    linear-gradient(100deg,rgba(10,16,32,.92) 0%,rgba(10,16,32,.78) 42%,rgba(18,24,58,.58) 100%);
}
.has-video.hero-premium{background:#0A1020}
@media (max-width:760px){
  .hero-video{background-image:url(video/hero-calgary-poster-960.webp)}
  .has-video .hp-bg,.contact-hero.has-video::before{
    background:
      radial-gradient(60% 40% at 60% 40%,rgba(255,45,122,.32),rgba(255,45,122,0) 70%),
      linear-gradient(135deg,rgba(255,45,122,.18) 0%,rgba(10,16,32,0) 60%),
      linear-gradient(180deg,rgba(10,16,32,.86) 0%,rgba(10,16,32,.80) 60%,rgba(10,16,32,.92) 100%);
  }
}

/* =====================================================================
   Homepage layer (2026-11-07; warm tone and serif accents reverted the
   same day at the user's request). dark-to-light transition bands between
   panels, a soft pink/blue tint over stock photos, and the homepage
   sections modelled on goald.ca's flow.
   ===================================================================== */
:root{
  --warm:#FFFFFF;
  --warm-2:#F7F8FA;
  --ivory:#FFFFFF;
  --line:#E2E7EE;
  --paper:#F7F8FA;
  --paper-2:#EEF1F5;
  --accent-serif:var(--sans);
  --band:240px;
  --feather:44px;
}
body{background:var(--warm)}
.section{background:var(--warm)}
.section.paper{background:var(--warm-2)}
.section.blush{background:linear-gradient(180deg,#FFF4F8 0%,#FFFFFF 100%)}
.contact-card,.aside-card:not(.aside-checkup),.checkup-card,.pillar,.diagram,.tablewrap,.cp-dialog{background:var(--ivory)}
.checkup-opt{background:var(--ivory)}

/* Serif italic accent */
h1 em,h2 em{font-style:normal;color:var(--pink)}
.section.dark h2 em,.closing h2 em,.page-hero h1 em{color:var(--pink-soft)}
.idx{font-family:var(--sans);font-weight:500;font-size:14px;letter-spacing:.06em;line-height:1;color:var(--muted)}
.section-sub{max-width:660px;color:var(--muted);margin:18px 0 0;font-size:17.5px}
.section.dark .section-sub{color:var(--on-dark)}

/* Transition bands: a dark panel melts into the warm one below it, and a
   warm panel deepens into the dark one that follows (sibling selectors, so
   every page gets them automatically). */
.section:not(.dark){position:relative}
.section:not(.dark)>.wrap{position:relative;z-index:1}
:is(.hero-premium,.page-hero,.hero-split,.section.dark,.ctaband,.ctaband-photo,.checkup-band)+.section:not(.dark){padding-top:calc(112px + var(--band) - 70px);border-top:none}
:is(.hero-premium,.page-hero,.hero-split,.section.dark,.ctaband,.ctaband-photo,.checkup-band)+.section:not(.dark)::before{
  content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--feather));height:calc(var(--band) + var(--feather));pointer-events:none;z-index:0;
  background:
    radial-gradient(70% 40% at 50% 22%,rgba(255,45,122,.09),rgba(255,45,122,0) 70%),
    linear-gradient(180deg,rgba(10,16,32,0) 0%,#0A1020 100%) top/100% var(--feather) no-repeat,
    linear-gradient(180deg,rgba(10,16,32,1) 0%,rgba(10,16,32,0.987) 8%,rgba(10,16,32,0.951) 15%,rgba(10,16,32,0.896) 22%,rgba(10,16,32,0.825) 29%,rgba(10,16,32,0.741) 36%,rgba(10,16,32,0.648) 43%,rgba(10,16,32,0.55) 50%,rgba(10,16,32,0.45) 57%,rgba(10,16,32,0.352) 64%,rgba(10,16,32,0.259) 71%,rgba(10,16,32,0.175) 78%,rgba(10,16,32,0.104) 85%,rgba(10,16,32,0.049) 92%,rgba(10,16,32,0) 100%) 0 var(--feather)/100% var(--band) no-repeat}
.section:not(.dark):has(+ :is(.section.dark,.ctaband,.ctaband-photo,.checkup-band)){padding-bottom:calc(112px + var(--band) - 70px)}
.section:not(.dark):has(+ :is(.section.dark,.ctaband,.ctaband-photo,.checkup-band))::after{
  content:"";position:absolute;left:0;right:0;bottom:calc(-1 * var(--feather));height:calc(var(--band) + var(--feather));pointer-events:none;z-index:0;
  background:
    radial-gradient(70% 40% at 50% 78%,rgba(255,45,122,.09),rgba(255,45,122,0) 70%),
    linear-gradient(0deg,rgba(10,16,32,0) 0%,#0A1020 100%) bottom/100% var(--feather) no-repeat,
    linear-gradient(0deg,rgba(10,16,32,1) 0%,rgba(10,16,32,0.987) 8%,rgba(10,16,32,0.951) 15%,rgba(10,16,32,0.896) 22%,rgba(10,16,32,0.825) 29%,rgba(10,16,32,0.741) 36%,rgba(10,16,32,0.648) 43%,rgba(10,16,32,0.55) 50%,rgba(10,16,32,0.45) 57%,rgba(10,16,32,0.352) 64%,rgba(10,16,32,0.259) 71%,rgba(10,16,32,0.175) 78%,rgba(10,16,32,0.104) 85%,rgba(10,16,32,0.049) 92%,rgba(10,16,32,0) 100%) 0 0/100% var(--band) no-repeat}
.section.tight:not(.dark){padding-top:64px;padding-bottom:64px}
@media (max-width:760px){
  :root{--band:150px;--feather:32px}
  :is(.hero-premium,.page-hero,.hero-split,.section.dark,.ctaband,.ctaband-photo,.checkup-band)+.section:not(.dark){padding-top:calc(72px + var(--band) - 50px)}
  .section:not(.dark):has(+ :is(.section.dark,.ctaband,.ctaband-photo,.checkup-band)){padding-bottom:calc(72px + var(--band) - 50px)}
}

/* Soft pink / blue tint over stock photography */
.situation-photo,.who-photo,.photo picture,.photoband{position:relative}
.situation-photo img,.who-photo img,.photo img{filter:saturate(.88) contrast(1.03)}
.situation-photo::after,.who-photo::after,.photo picture::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(150deg,rgba(255,45,122,.18) 0%,rgba(255,45,122,0) 55%),linear-gradient(330deg,rgba(38,64,160,.22) 0%,rgba(38,64,160,0) 62%)}
.who-card:nth-child(2) .who-photo::after,.home-split .situation-photo::after{
  background:linear-gradient(150deg,rgba(38,64,160,.24) 0%,rgba(38,64,160,0) 58%),linear-gradient(330deg,rgba(255,45,122,.16) 0%,rgba(255,45,122,0) 60%)}

/* About split */
.home-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:center}
.home-split-copy h2{margin:16px 0 22px}
.home-split-copy p{color:#3a4252}
.home-split-links{display:flex;flex-wrap:wrap;gap:14px 32px;margin-top:26px}
.home-split .situation-photo{aspect-ratio:4/5}

/* What we actually do */
.do-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:72px;align-items:start}
.do-intro h2{margin:16px 0 22px}
.do-intro .do-strong{color:#fff;font-weight:500;margin:22px 0 28px}
.do-list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.12)}
.do-list a{display:grid;grid-template-columns:56px minmax(0,1fr) 24px;gap:16px;align-items:start;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.12);text-decoration:none;color:inherit}
.do-list .idx{color:var(--pink-soft);font-size:14px;padding-top:6px}
.do-list b{display:block;color:#fff;font-weight:500;font-size:19px;letter-spacing:-.01em;margin-bottom:6px}
.do-list .t span{color:var(--on-dark);font-size:15.5px;line-height:1.6}
.do-list .go{color:var(--pink-soft);transition:transform .2s ease;padding-top:2px}
.do-list a:hover b{color:var(--pink-soft)}
.do-list a:hover .go{transform:translateX(4px)}
.section.dark .do-list a{text-decoration:none}

/* Strategies */
.vehicles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.vehicle{display:flex;flex-direction:column;gap:12px;padding:34px 32px 30px;min-height:290px;background:var(--ivory);border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;color:inherit;position:relative;transition:background-color .2s ease}
.vehicle::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--pink-deep);transition:width .35s ease}
.vehicle:hover{background:#fff}
.vehicle:hover::before{width:100%}
.vehicle h3{font-size:22px;margin:6px 0 0}
.vehicle p{color:var(--muted);font-size:15.5px;margin:0}
.vehicle .link-arrow{margin-top:auto;padding-top:10px}
.vehicles-more{margin-top:28px}
@media (max-width:980px){.vehicles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .vehicles{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;border:none;gap:12px;padding-bottom:8px;margin-right:-20px;padding-right:20px}
  .vehicle{scroll-snap-align:start;border:1px solid var(--line);min-height:300px}
}

/* Who we work with */
.who-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.who-card{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit}
.who-photo{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;margin-bottom:10px}
.who-photo picture,.who-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.who-card:hover .who-photo img{transform:scale(1.04)}
.who-card .idx{font-size:13px}
.who-card h3{font-size:22px;margin:0}
.who-card p{color:var(--muted);font-size:15.5px;margin:0}
.who-card .link-arrow{margin-top:4px}
@media (max-width:880px){.who-grid{grid-template-columns:1fr;gap:40px}}

/* Professional circle wheel */
.circle{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.circle-wheel{position:relative;width:min(520px,100%);aspect-ratio:1;margin:0 auto}
.circle-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.circle-lines .ring{fill:none;stroke:#C9D0DB;stroke-width:.22}
.circle-lines .ring.dash{stroke-dasharray:.8 .8;stroke:#BCC4D1}
.circle-lines .ring.faint{stroke:#DDE2EA;stroke-dasharray:.4 .9}
.circle-lines line{stroke:#D5DBE4;stroke-width:.22}
.circle-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:31%;aspect-ratio:1;border-radius:50%;background:var(--night);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:0 24px 50px -24px rgba(10,16,32,.7)}
.circle-core span{font:600 clamp(13px,1.6vw,19px)/1 var(--wordmark);letter-spacing:.04em}
.circle-core em{font-style:normal;color:var(--pink)}
.circle-core small{font-size:clamp(8px,.8vw,10px);letter-spacing:.28em;text-transform:uppercase;color:var(--on-dark-muted);padding-top:8px;border-top:1px solid rgba(255,255,255,.25)}
.circle-node{position:absolute;transform:translate(-50%,-50%);width:21%;aspect-ratio:1;border-radius:50%;background:var(--ivory);border:1px solid #C2CAD6;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:4px;cursor:pointer;font:inherit;transition:background-color .25s ease,color .25s ease,box-shadow .25s ease,border-color .25s ease}
.circle-node i{font-style:normal;font-weight:500;font-size:clamp(11px,1vw,13px);line-height:1;padding-bottom:5px;border-bottom:1px solid currentColor;opacity:.75}
.circle-node b{font-weight:500;font-size:clamp(8px,.78vw,10px);letter-spacing:.16em;text-transform:uppercase;line-height:1.25;text-align:center}
.circle-node:hover{border-color:var(--pink-deep)}
.circle-node.on{background:var(--night);border-color:var(--night);color:#fff;box-shadow:0 0 0 5px #fff,0 0 0 6px var(--pink-deep)}
.circle-node:focus-visible{outline:2px solid var(--pink-deep);outline-offset:6px}
.circle-panel{position:relative;background:var(--ivory);border:1px solid var(--line);padding:44px 44px 36px}
.circle-corner{position:absolute;left:-1px;top:-1px;width:52px;height:52px;border-top:2px solid var(--night);border-left:2px solid var(--night)}
.circle-role{display:flex;align-items:baseline;gap:18px;margin:0 0 26px}
.circle-role i{font-style:normal;font-weight:300;font-size:46px;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.circle-role span{font-size:12.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.circle-label{font-size:12px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--ink);margin:0 0 10px}
.circle-gap{font-size:clamp(19px,1.7vw,22px);font-weight:400;letter-spacing:-.01em;line-height:1.45;color:var(--ink);margin:0 0 26px;padding-bottom:26px;border-bottom:1px solid var(--line)}
.circle-how{margin:0;color:#3a4252}
.circle-hint{margin:26px 0 0;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.circle:not(.js) .circle-detail+.circle-detail{margin-top:32px;padding-top:32px;border-top:1px solid var(--line)}
.circle:not(.js) .circle-hint{display:none}
.circle-detail[hidden]{display:none}
.circle-note{margin-top:28px;color:var(--muted)}
@media (max-width:980px){.circle{grid-template-columns:1fr;gap:36px}.circle-panel{padding:36px 28px 30px}}
@media (max-width:520px){
  .circle-node{width:24%}
  .circle-node b{font-size:7.5px;letter-spacing:.08em}
  .circle-node i{font-size:10px;padding-bottom:3px}
  .circle-core{width:30%}
  .circle-role i{font-size:38px}
}

/* Process steps on dark: serif numerals */


/* Resources */
.resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.resource{display:grid;grid-template-columns:minmax(0,1fr) 20px;grid-template-rows:auto 1fr;gap:10px 16px;padding:26px 26px 24px;background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color .2s ease,transform .2s ease}
.resource .tag{grid-column:1/-1;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--pink-deep);font-weight:600}
.resource b{font-weight:500;font-size:18px;line-height:1.4;letter-spacing:-.01em}
.resource .go{color:var(--pink-deep);align-self:end}
.resource:hover{border-color:var(--pink-deep);transform:translateY(-2px)}
@media (max-width:880px){.resources{grid-template-columns:1fr}}

/* Quick recap */
.recap{margin:0;border-top:1px solid rgba(255,255,255,.14);max-width:980px}
.recap-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.recap dt{font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.6;color:var(--pink-soft);padding-top:2px}
.recap dd{margin:0;color:var(--on-dark);font-size:17px}
@media (max-width:640px){.recap-row{grid-template-columns:1fr;gap:6px}}

/* Numbered FAQ */
.faq-numbered .faqlist{counter-reset:q}
.faq-numbered details.faq summary{justify-content:flex-start}
.faq-numbered details.faq summary::before{counter-increment:q;content:counter(q,decimal-leading-zero);font-size:14px;font-weight:500;letter-spacing:.06em;color:var(--pink-deep);min-width:44px;flex:none}
.faq-numbered details.faq summary::after{margin-left:auto}
.faq-numbered details.faq .a{padding-left:44px}
@media (max-width:600px){.faq-numbered details.faq .a{padding-left:0}}

/* Closing call */
.closing{padding:140px 0}
.closing-inner{max-width:860px;text-align:center}
.closing .eyebrow{justify-content:center}
.closing h2{font-size:clamp(34px,4.6vw,60px);margin:18px 0 22px}
.closing p{font-size:18px;max-width:640px;margin:0 auto}
.closing-steps{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:14px 40px;margin:36px 0 38px;padding:0;color:#fff;font-size:15px}
.closing-steps i{font-style:normal;font-weight:500;color:var(--pink-soft);font-size:13px;letter-spacing:.06em;margin-right:10px}
.closing .hero-actions{justify-content:center;align-items:center}
.closing .hero-actions .btn.primary{position:relative;overflow:hidden;isolation:isolate}
.closing .hero-actions .btn.primary::after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.35),rgba(255,255,255,0));animation:cta-shine 4.5s ease-in-out infinite;pointer-events:none}
@media (prefers-reduced-motion:reduce){.closing .hero-actions .btn.primary::after{animation:none}}

@media (max-width:880px){
  .home-split,.do-grid{grid-template-columns:1fr;gap:40px}
  .home-split .situation-photo{aspect-ratio:4/3}
  .closing{padding:96px 0}
}

/* Pink text on light backgrounds: a deeper shade keeps AA contrast */
:root{--pink-text:var(--pink-deep)}
.section:not(.dark) :is(.eyebrow,.prep-num,.tax-point h3,.tax-point h4,.resource .tag,.idx){color:var(--pink-text)}
.section:not(.dark) h2 em{color:var(--pink)}
.faq-numbered details.faq summary::before{color:var(--pink-text)}
.tax-point h3{margin:0 0 6px;color:var(--pink-text);font-size:16px;font-weight:600;letter-spacing:0}
.section.dark .tax-point h3{color:var(--pink-soft)}
.who-card .idx,.vehicle .idx{color:var(--muted)}
