/* ==========================================================================
   Brightline CFO — Elegant editorial system
   Antic Didone display + Jost UI. Navy, gold, warm light. Airy by default.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Antic+Didone&family=Jost:wght@300;400;500;600&family=Montserrat:wght@400;700&display=swap');

:root{
  --navy:#1B3050;
  --navy-deep:#0F2338;
  --navy-soft:#2C435C;
  --gold:#C9A227;
  --gold-deep:#816816;
  --gold-pale:#F3EAD2;
  --cream:#FBF8F2;
  --mist:#EEEFEE;
  --line:#E2E4E6;
  --ink:#16273A;
  --body:#5A6470;
  --muted:#666C73;
  --white:#FFFFFF;
  --display:'Antic Didone',Georgia,serif;
  --sans:'Jost',system-ui,sans-serif;
  --ease:cubic-bezier(.16,.84,.44,1);
  --shadow-soft:0 2px 6px rgba(22,39,58,.04),0 18px 44px rgba(22,39,58,.09);
  --shadow-lift:0 4px 10px rgba(22,39,58,.06),0 26px 60px rgba(22,39,58,.14);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--sans);font-weight:400;color:var(--body);background:var(--white);line-height:1.8;font-size:19.5px;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 30px;}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;color:var(--navy);line-height:1.18;letter-spacing:.004em;}
h1{font-size:clamp(36px,3.5vw,54px);}
h2{font-size:clamp(30px,3.5vw,46px);}
h3{font-size:22px;}
::selection{background:var(--gold-pale);color:var(--navy);}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;}

/* ---------- motion ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .85s var(--ease),transform .85s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal[data-d="1"]{transition-delay:.1s;}
.reveal[data-d="2"]{transition-delay:.2s;}
.reveal[data-d="3"]{transition-delay:.3s;}
.reveal[data-d="4"]{transition-delay:.4s;}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;}
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;}
}

/* ---------- brand wordmark: company name always set in the logo face ---------- */
/* Garet (Type Forward / Spacetype), self-hosted. The free cuts are Book and Heavy;
   they are mapped to 400 and 700 so the existing .brand weights keep working.
   Montserrat stays as the fallback if a font file fails to load. */
@font-face{font-family:"Garet";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/garet-book.woff") format("woff");}
@font-face{font-family:"Garet";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/garet-heavy.woff") format("woff");}
/* Inline in running text the wordmark is set in Garet Book at 92% of the surrounding type.
   Capitals read larger than lowercase, and the only free heavy cut of Garet (Heavy) is a step
   past the logo's Bold, so it overpowered sentences (Dalton, 2026-09-23). Book at 92% sits
   closest to the logo's weight inline. The footer wordmark (.fword) is standalone at display
   size and keeps the Heavy/Book pairing of the logo. */
.brand{font-family:"Garet","Montserrat",var(--sans);font-weight:400;font-size:.96em;letter-spacing:.02em;text-transform:none;white-space:nowrap;}
.brand em{font-style:normal;font-weight:400;}
strong > .brand{font-weight:400;}

/* ---------- type helpers ---------- */
.caps,.eyebrow{font-family:var(--sans);font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:15.5px;color:var(--gold-deep);display:block;}
.eyebrow{margin-bottom:18px;}
.lede{font-family:var(--sans);font-weight:300;font-size:25px;line-height:1.6;color:var(--navy-soft);}
strong{color:var(--ink);font-weight:500;}
.section-head{max-width:720px;margin:0 auto 68px;text-align:center;}
.section-head h2 + p{margin-top:20px;}
.rule{width:64px;height:1px;background:var(--gold);margin:26px 0;}
.section-head .rule{margin-left:auto;margin-right:auto;}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:999px;padding:16px 38px;font-family:var(--sans);font-size:18px;font-weight:500;letter-spacing:.02em;cursor:pointer;border:1.5px solid transparent;transition:background-color .25s,color .25s,border-color .25s,box-shadow .25s,transform .2s var(--ease);}
.btn:hover{transform:translateY(-2px);}
.btn-primary,.btn-gold{background:var(--gold);color:var(--navy-deep);border-color:var(--gold);font-weight:600;}
.btn-primary:hover,.btn-gold:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:var(--white);box-shadow:0 12px 26px rgba(166,133,28,.28);}
.btn-secondary,.btn-navy-outline,.btn-gold-outline{background:transparent;color:var(--navy);border-color:var(--navy);}
.btn-secondary:hover,.btn-navy-outline:hover,.btn-gold-outline:hover{background:var(--navy);color:var(--white);}
.btn-navy{background:var(--navy);color:var(--white);border-color:var(--navy);}
.btn-navy:hover{background:var(--navy-deep);}
.btn-ghost{background:transparent;color:var(--navy);border-color:transparent;padding-left:14px;padding-right:14px;}
.btn-ghost:hover{color:var(--gold-deep);}
.darkstrip .btn-secondary,.darkstrip .btn-navy-outline,.darkstrip .btn-gold-outline{color:var(--white);border-color:rgba(255,255,255,.45);}
.darkstrip .btn-secondary:hover{background:var(--white);color:var(--navy);border-color:var(--white);}

/* ---------- dark bands ---------- */
.darkstrip{position:relative;background:var(--navy-deep);color:#C6D0DC;overflow:hidden;}
.darkstrip h2,.darkstrip h3{color:var(--white);}
.darkstrip::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:radial-gradient(760px 380px at 10% 0%,rgba(201,162,39,.14),transparent 62%),
             radial-gradient(720px 400px at 92% 100%,rgba(27,48,80,.85),transparent 60%);}
.darkstrip > *{position:relative;z-index:1;}

/* ---------- announcement + header ---------- */
.announce{background:var(--navy);color:var(--white);text-align:center;padding:11px 16px;}
.announce .caps{color:var(--white);font-size:15px;letter-spacing:.18em;font-weight:400;display:inline;}
.announce .caps b{color:var(--gold);font-weight:500;}

.nav{background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(10px);position:sticky;top:0;z-index:60;}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:14px;border-bottom:1px solid var(--navy);}
.nav .logo img{height:92px;width:auto;mix-blend-mode:multiply;filter:brightness(1.03);}
.nav ul{display:flex;list-style:none;gap:28px;align-items:center;}
.nav ul a{font-size:16px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);padding-bottom:3px;border-bottom:1.5px solid transparent;transition:border-color .25s,color .25s;}
.nav ul a:hover{border-color:var(--gold);}
.nav ul a.active{border-color:var(--gold);}
/* primary CTA in the header: a gold pill, present on every page (client request 2026-09-22) */
.nav ul a.bookcall{background:var(--gold);color:var(--navy-deep);font-weight:600;font-size:14.5px;letter-spacing:.12em;
  padding:11px 22px;border-radius:999px;border-bottom:none;white-space:nowrap;
  transition:background-color .25s,color .25s,transform .2s var(--ease);}
.nav ul a.bookcall:hover{background:var(--gold-deep);color:var(--white);border-bottom:none;transform:translateY(-1px);}

/* ---------- mobile menu button (shown at 940px and below) ---------- */
.navtoggle{display:none;align-items:center;gap:10px;min-height:44px;padding:0 18px;background:none;
  border:1px solid var(--navy);border-radius:999px;font-family:inherit;font-size:13px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--navy);cursor:pointer;}
.navtoggle .bars{position:relative;display:block;width:18px;height:12px;}
.navtoggle .bars i{position:absolute;left:0;right:0;height:1.5px;background:currentColor;
  transition:transform .25s var(--ease),opacity .2s;}
.navtoggle .bars i:nth-child(1){top:0;}
.navtoggle .bars i:nth-child(2){top:5.25px;}
.navtoggle .bars i:nth-child(3){top:10.5px;}
.nav.open .navtoggle .bars i:nth-child(1){transform:translateY(5.25px) rotate(45deg);}
.nav.open .navtoggle .bars i:nth-child(2){opacity:0;}
.nav.open .navtoggle .bars i:nth-child(3){transform:translateY(-5.25px) rotate(-45deg);}

/* ---------- services dropdown ---------- */
.nav li.has-sub{position:relative;}
.nav li.has-sub > a::after{content:"";display:inline-block;margin-left:7px;width:5px;height:5px;vertical-align:middle;
  border-right:1.5px solid var(--gold-deep);border-bottom:1.5px solid var(--gold-deep);transform:translateY(-2px) rotate(45deg);}
.nav .submenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);
  display:block;min-width:290px;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow-soft);
  padding:10px 0;margin-top:14px;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .2s var(--ease),transform .2s var(--ease);z-index:70;}
.nav li.has-sub:hover .submenu,
.nav li.has-sub:focus-within .submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
/* invisible bridge so the menu survives the gap between link and panel */
.nav li.has-sub::after{content:"";position:absolute;left:0;right:0;top:100%;height:20px;}
.nav .submenu li{display:block;width:100%;}
.nav .submenu a{display:block;padding:9px 22px;font-size:14px;font-weight:400;letter-spacing:.04em;
  text-transform:none;color:var(--navy-soft);border-bottom:none;white-space:nowrap;transition:background-color .2s,color .2s;}
.nav .submenu a:hover,.nav .submenu a:focus-visible{background:var(--cream);color:var(--navy);border-bottom:none;}
@media (max-width:940px){
  /* no hover on touch: the Services link goes to the index page instead */
  .nav .submenu{display:none;}
  .nav li.has-sub > a::after{display:none;}
  .nav li.has-sub::after{content:none;}
}

/* ==========================================================================
   HERO — elegant serif left, warm photo bleeding right
   ========================================================================== */
.hero{position:relative;overflow:hidden;background:var(--white);}
.hero .grid{display:grid;grid-template-columns:1.24fr .76fr;align-items:center;}
.hero .copy{padding:62px 76px 70px max(30px,calc((100vw - 1180px)/2 + 30px));justify-self:stretch;position:relative;z-index:2;}
.hero h1{max-width:26ch;}
.hero .sub{font-family:var(--sans);font-weight:300;font-size:clamp(24px,2.3vw,32px);line-height:1.42;color:var(--navy-soft);margin-top:18px;max-width:36ch;}
.hero p.body{margin-top:18px;max-width:52ch;font-size:19px;line-height:1.75;}
.hero p.body strong{color:var(--navy);font-weight:500;}
.hero .cta-row{margin-top:28px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.hero .assure{margin-top:22px;font-size:17px;color:var(--muted);display:flex;align-items:center;gap:9px;}
.hero .assure svg{width:16px;height:16px;stroke:var(--gold-deep);fill:none;stroke-width:2.2;flex-shrink:0;}
.hero .shot{position:absolute;right:0;top:0;bottom:0;width:50%;z-index:1;}
.hero .shot::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,rgba(255,255,255,.5),rgba(255,255,255,0) 44%);}
.hero .shot img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:brightness(1.16) saturate(.92);
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 26%);
  mask-image:linear-gradient(to right,transparent 0%,#000 26%);}

/* ---------- credentials bar ---------- */
.creds{background:var(--navy-deep);position:relative;padding:44px 0;overflow:hidden;}
.creds::before{content:'';position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:radial-gradient(700px 300px at 50% 0%,rgba(201,162,39,.12),transparent 65%);}
.creds > *{position:relative;z-index:1;}
.creds .caps{color:#9FAEBF;text-align:center;margin-bottom:28px;font-size:14.5px;}
.creds .row{display:flex;align-items:center;justify-content:center;gap:26px 44px;flex-wrap:wrap;}
.creds .item{display:flex;align-items:center;gap:11px;color:var(--white);font-size:16.5px;font-weight:300;letter-spacing:.02em;white-space:nowrap;}
.creds .item svg{width:20px;height:20px;stroke:var(--gold);fill:none;stroke-width:1.5;flex-shrink:0;}
.creds img{height:62px;width:auto;background:var(--white);padding:7px 10px;border-radius:3px;}

/* ==========================================================================
   SECTIONS
   ========================================================================== */
section{padding:112px 0;}
.section-soft{background:var(--mist);}
.section-cream{background:var(--cream);}

/* feature columns — airy, no boxes */
.cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;}
.feature{text-align:center;}
.feature .icon{width:72px;height:72px;margin:0 auto 26px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;position:relative;}
.feature .icon::after{content:'';position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(201,162,39,.4);}
.feature .icon svg{width:26px;height:26px;stroke:var(--navy);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.feature h3{margin-bottom:14px;font-size:24px;}
.feature p{font-size:19px;}

/* split rows */
.split,.path .grid,.svc .grid,.meet .grid,.beliefs .grid,.study .grid,.founder{display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:center;}
.split.flip .media,.svc .grid.flip .photo{order:-1;}
.photo img,.split .media img{box-shadow:var(--shadow-soft);}
.checklist,.path ul,.svc ul{list-style:none;margin-top:28px;display:flex;flex-direction:column;gap:18px;}
.checklist li,.path li,.svc li{padding-left:34px;position:relative;font-size:19px;}
.checklist li::before,.path li::before,.svc li::before{content:'';position:absolute;left:0;top:11px;width:9px;height:9px;border-radius:50%;background:var(--gold);}
.split .btn,.path .btn,.svc .btn,.meet .btn{margin-top:36px;}
.svc .caps,.study .caps,.meet .caps,.path .caps{display:block;margin-bottom:16px;}
.svc.alt{background:var(--mist);}
.help .wrap-head,.section-head{max-width:720px;margin:0 auto 68px;text-align:center;}
.help .cardgrid{max-width:1180px;margin:0 auto;padding:0 30px;}

/* ---------- page hero (interior) ---------- */
.pagehero{padding:96px 0 88px;text-align:center;background:var(--mist);}
.darkstrip.pagehero{background:var(--mist);color:var(--body);}
.darkstrip.pagehero::before{content:none;}
.pagehero h1{color:var(--navy);}
.pagehero .caps{margin-bottom:18px;}
.pagehero p.sub{max-width:740px;margin:24px auto 0;font-family:var(--sans);font-weight:300;font-size:23px;line-height:1.6;color:var(--navy-soft);}

/* ---------- result cards ---------- */
.metricgrid,.cases .cards,.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:96px;}
.metric,.case-card{position:relative;background:var(--navy);color:#D3DCE6;padding:140px 32px 40px;text-align:center;border:none;border-radius:0;box-shadow:none;}
.metric .avatar,.case-card .medal{position:absolute;top:26px;left:50%;transform:translateX(-50%);width:92px;height:92px;border-radius:50%;background:var(--gold);color:var(--navy-deep);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--display);font-size:25px;line-height:1.05;border:none;}
.case-card .medal small,.metric .avatar small{font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.12em;text-transform:uppercase;display:block;margin-top:1px;}
.metric h3,.case-card h3{font-family:var(--sans);font-weight:500;letter-spacing:.18em;text-transform:uppercase;font-size:16px;color:var(--white);padding-bottom:16px;margin-bottom:18px;position:relative;}
.metric h3::after,.case-card h3::after{content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:64px;height:1px;background:rgba(255,255,255,.35);}
.metric p,.case-card p{font-size:18px;font-weight:300;line-height:1.75;color:#D3DCE6;}
.metric p strong,.case-card p strong{color:var(--white);font-weight:500;}
.metric .tag,.case-card .caps{display:block;margin-top:22px;font-size:14.5px;letter-spacing:.2em;color:var(--gold);}
.metric .big{display:none;}
.cases h2.center,.cases h2{text-align:center;}

/* ---------- quote ---------- */
.quote-panel,.quotebox{position:relative;background:var(--navy);color:var(--white);padding:66px 64px;text-align:center;border-radius:0;box-shadow:none;max-width:900px;margin:0 auto;}
.quote-panel .mark{font-family:var(--display);font-size:66px;line-height:1;color:var(--gold);}
.quote-panel p.q,.quotebox p.q{font-family:var(--sans);font-weight:300;font-size:23px;line-height:1.7;color:#E2E9F0;margin:0 auto;max-width:56ch;}
.quote-panel p.q strong,.quotebox p.q strong{color:var(--white);font-weight:500;}
.quote-panel .by,.quotebox .caps{margin-top:26px;display:block;color:var(--gold);font-size:15px;letter-spacing:.2em;}
.quotebox-zone{padding:0 30px;}

/* ---------- process (double-ring numbers) ---------- */
.timeline,.how .steps{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:26px;}
.tstep,.step-card{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;background:var(--white);padding:34px 42px;box-shadow:var(--shadow-soft);border:none;border-radius:0;}
.tstep .dot,.step-card .num{position:relative;width:86px;height:86px;border-radius:50%;border:1.5px solid var(--gold);background:transparent;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:400;font-size:32px;color:var(--navy);flex-shrink:0;}
.tstep .dot::after,.step-card .num::after{content:'';position:absolute;inset:6px;border-radius:50%;border:1px solid rgba(201,162,39,.45);}
.tstep .body{background:none;border:none;padding:0;box-shadow:none;}
.tstep h3,.step-card h3{margin-bottom:8px;font-size:25px;}
.tstep p,.step-card p{font-size:19px;}
.timeline::before{display:none;}
.how h2{text-align:center;margin-bottom:64px;}
.how .bgphoto{display:none;}
.how .mentnote{text-align:center;margin-top:44px;font-size:18px;color:var(--muted);}
.how.darkstrip .mentnote{color:#C6D0DC;}
.how.darkstrip .mentnote strong{color:var(--gold);}

/* ---------- founder ---------- */
.founder .shot,.meet .photo{position:relative;}
.founder .shot img.portrait,.meet .photo img.portrait{box-shadow:var(--shadow-soft);}
.founder .shot .badge,.meet .photo img.badge{position:absolute;right:-20px;bottom:-24px;width:104px;background:var(--white);padding:10px;box-shadow:var(--shadow-soft);}
.founder blockquote{margin:28px 0;padding-left:24px;border-left:2px solid var(--gold);font-family:var(--display);font-size:23px;line-height:1.5;color:var(--navy);}
.meet p{margin-bottom:18px;}

/* ---------- specialties ---------- */
.special,.darkstrip.special{padding:64px 0;text-align:center;background:var(--white);color:var(--body);}
.darkstrip.special::before{content:none;}
.special .caps{color:var(--muted);margin-bottom:28px;}
.special .logos{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;}
.special .logos span{font-family:var(--display);font-size:22px;color:var(--white);background:var(--navy);border:1px solid var(--navy);border-radius:999px;padding:11px 30px;}
.special .logos span.dot{display:none;}

/* ---------- stats ---------- */
.stats{padding:88px 0;}
.stats .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:38px;text-align:center;}
.stats .num{font-family:var(--display);font-size:52px;color:var(--gold);line-height:1;}
.stats .lbl{color:#A8B6C4;font-size:15px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;margin-top:16px;}

/* ---------- beliefs ---------- */
.beliefs{padding-top:132px;}
.beliefs h2{text-align:center;margin-top:18px;margin-bottom:64px;}
.beliefs .item{border-top:1px solid rgba(255,255,255,.16);padding:22px 0;}
.beliefs .item:last-child{border-bottom:1px solid rgba(255,255,255,.16);}
.beliefs .item p{font-size:18.5px;font-weight:300;color:#C6D0DC;}
.beliefs .item p strong{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-size:15px;font-weight:500;display:block;margin-bottom:4px;}
.beliefs p.intro{font-weight:300;color:#C6D0DC;}
.beliefs p.intro strong{color:var(--white);font-weight:500;}

/* ---------- team ---------- */
.team{background:var(--mist);}
.team h2{text-align:center;margin-bottom:18px;}
.team p.teamintro{text-align:center;max-width:680px;margin:0 auto 76px;}
.team .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
.team .grid.two{grid-template-columns:repeat(2,1fr);max-width:780px;margin:0 auto;}
.team-card{position:relative;background:var(--white);padding:76px 32px 40px;text-align:center;box-shadow:var(--shadow-soft);border:none;border-radius:0;}
.team-card .avatar{position:absolute;top:-46px;left:50%;transform:translateX(-50%);width:92px;height:92px;border-radius:50%;background:var(--navy);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:28px;overflow:hidden;border:5px solid var(--white);}
.team-card .avatar img{width:100%;height:100%;object-fit:cover;}
.team-card h3{font-size:25px;}
.team-card .caps{margin:10px 0 16px;font-size:14.5px;}
.team-card p{font-size:18px;}
.team-card .ph{margin-top:16px;font-size:15px;color:var(--muted);font-style:italic;}

/* ---------- studies ---------- */
.study .grid{grid-template-columns:.9fr 1.1fr;gap:72px;align-items:start;}
.study .photo{position:sticky;top:120px;}
.study h3{font-family:var(--sans);font-weight:500;color:var(--gold-deep);letter-spacing:.18em;text-transform:uppercase;font-size:15px;margin:28px 0 8px;}
.study p{font-size:19px;}
.study .payoff{background:var(--navy);color:#D3DCE6;padding:30px 34px;margin-top:30px;border-radius:0;}
.study .payoff strong{color:var(--gold);font-weight:500;}
.study.alt{background:var(--mist);}

/* ---------- FAQ ---------- */
.faq h2{text-align:center;margin-bottom:56px;}
.faq .list{max-width:820px;margin:0 auto;}
.faq details{background:var(--white);border:none;border-bottom:1px solid var(--line);margin-bottom:0;border-radius:0;}
.faq details[open]{box-shadow:none;}
.faq summary{cursor:pointer;padding:26px 58px 26px 0;font-family:var(--display);font-weight:400;color:var(--navy);font-size:21px;list-style:none;position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'';position:absolute;right:8px;top:50%;width:11px;height:11px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--ease);}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg);}
.faq details p{padding:0 58px 26px 0;font-size:19px;}

/* ---------- CTA ---------- */
.cta{text-align:center;}
.cta h2 + p{margin:22px auto 0;max-width:660px;font-family:var(--sans);font-weight:300;font-size:22px;line-height:1.65;color:var(--navy-soft);}
.cta .btn{margin-top:36px;}
.cta-panel{background:transparent;color:var(--body);padding:0;text-align:center;box-shadow:none;border-radius:0;}
.cta-panel::before{content:none;}
.cta-panel h2{color:var(--navy);}
.cta-panel p{margin:22px auto 0;max-width:640px;font-family:var(--sans);font-weight:300;font-size:22px;color:var(--navy-soft);}
.cta-panel .btn{margin-top:36px;}
.cta-panel .meta{margin-top:26px;font-size:17px;color:var(--muted);font-weight:400;}

/* ---------- lead magnet ---------- */
.leadmag,.darkstrip.leadmag{padding:88px 0;background:var(--navy-deep);color:#C6D0DC;}
.darkstrip.leadmag::before{content:'';position:absolute;inset:0;opacity:.55;pointer-events:none;
  background:radial-gradient(760px 380px at 12% 0%,rgba(201,162,39,.14),transparent 62%);}
.leadmag .grid{display:grid;grid-template-columns:auto 1fr;gap:60px;align-items:center;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none;}
.guide-mock{width:210px;transform:rotate(-2.5deg);}
.guide-mock .sheet{position:relative;background:var(--white);padding:30px 24px 26px;box-shadow:0 20px 46px rgba(0,0,0,.4);overflow:hidden;}
.guide-mock .sheet::before{content:'';position:absolute;left:0;top:0;right:0;height:5px;background:var(--gold);}
.guide-mock .sheet .caps{font-size:13px;color:var(--gold-deep);}
.guide-mock .sheet h3{font-size:22px;margin-top:12px;line-height:1.28;color:var(--navy);}
.guide-mock .sheet .bar{height:1px;background:var(--line);margin-top:18px;}
.guide-mock .sheet .author{margin-top:14px;font-size:14.5px;color:var(--muted);font-weight:300;}
.leadmag h2.caps-title{font-family:var(--sans);font-weight:500;font-size:16px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.leadmag p{max-width:660px;font-weight:300;color:#C6D0DC;margin-top:16px;}
.leadmag p strong{color:var(--white);font-weight:500;}
.lead-form{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;}
.lead-form input{flex:1 1 210px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06);padding:15px 22px;font-family:var(--sans);font-size:18px;font-weight:300;color:var(--white);outline:none;transition:border-color .25s,background-color .25s;}
.lead-form input::placeholder{color:#93A2B2;}
.lead-form input:focus{border-color:var(--gold);background:rgba(255,255,255,.1);}

/* ---------- footer ---------- */
footer{background:var(--navy-deep);color:#A8B6C4;position:relative;overflow:hidden;}
footer::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:radial-gradient(700px 300px at 18% 0%,rgba(201,162,39,.1),transparent 62%);}
footer > *{position:relative;z-index:1;}
footer .links{text-align:center;padding:44px 16px 0;}
footer .links a{font-size:15.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--white);margin:0 15px;transition:color .25s;}
footer .links a:hover{color:var(--gold);}
footer .grid{display:grid;grid-template-columns:auto 1fr auto;gap:52px;align-items:center;max-width:1080px;margin:34px auto 0;padding:38px 30px;border-top:1px solid rgba(255,255,255,.14);}
/* Footer carries the same logo file as the nav (client request 2026-09-24). The logo's navy
   lettering would disappear on the navy footer, so it sits on a light card. The tagline is
   already part of the logo artwork. */
.fword a{display:inline-block;background:var(--white);padding:12px 18px;border-radius:4px;line-height:0;}
.fword img{height:74px;width:auto;display:block;}
.fword small{display:block;font-family:var(--sans);font-weight:400;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:#7E8FA0;margin-top:10px;}
footer .desc{font-size:17.5px;font-weight:300;text-align:center;line-height:1.75;}
footer .desc strong{color:var(--white);font-weight:500;}
footer .contactcol{font-size:17px;font-weight:300;text-align:right;display:flex;flex-direction:column;gap:8px;}
footer .contactcol a:hover{color:var(--gold);}
footer .fine{text-align:center;font-size:15.5px;font-weight:300;color:#7E8FA0;padding:10px 16px 42px;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (min-width:1800px){
  body{font-size:21px;zoom:1.2;}
  .wrap{max-width:1360px;}
  .hero .copy{padding-left:max(30px,calc((100vw - 1360px)/2 + 30px));}
}
@media (max-width:1100px){
  .split,.path .grid,.svc .grid,.meet .grid,.beliefs .grid,.study .grid,.founder{gap:56px;}
  .cardgrid{gap:38px;}
  .metricgrid,.cases .cards,.cards,.team .grid{gap:26px;}
  .hero .copy{padding:80px 40px 80px 30px;}
}
@media (max-width:940px){
  section,.path,.svc,.meet,.help,.cases,.how,.cta,.team,.faq,.study,.beliefs{padding:72px 0;}
  .hero .grid{grid-template-columns:1fr;min-height:0;}
  .hero .copy{padding:56px 30px 0;max-width:none;justify-self:stretch;}
  .hero .shot{position:relative;width:100%;height:340px;margin-top:44px;}
  .hero .shot img{-webkit-mask-image:none;mask-image:none;object-position:center 20%;}
  .hero h1,.hero .sub{max-width:none;}
  .split,.path .grid,.svc .grid,.meet .grid,.beliefs .grid,.study .grid,.founder{grid-template-columns:1fr;gap:48px;}
  .cardgrid,.metricgrid,.cases .cards,.cards,.team .grid{grid-template-columns:1fr;max-width:520px;margin-left:auto;margin-right:auto;}
  .team .grid.two{grid-template-columns:1fr;max-width:520px;}
  .metricgrid,.cases .cards,.cards{margin-top:80px;gap:80px;}
  .team .grid{gap:80px;}
  .split.flip .media,.svc .grid.flip .photo{order:0;}
  .study .photo{position:static;}
  .stats .grid{grid-template-columns:repeat(2,1fr);gap:40px;}
  .leadmag .grid{grid-template-columns:1fr;text-align:center;gap:40px;}
  .guide-mock{margin:0 auto;}
  .lead-form{justify-content:center;}
  .quote-panel,.quotebox{padding:44px 32px;}
  .tstep,.step-card{grid-template-columns:1fr;text-align:center;gap:20px;padding:36px 28px;}
  .tstep .dot,.step-card .num{margin:0 auto;}
  /* header: logo left, Menu button right, links collapsed into a panel below */
  .nav .wrap{flex-wrap:wrap;padding-top:10px;padding-bottom:10px;}
  .nav .logo img{height:64px;}
  .navtoggle{display:inline-flex;}
  .nav nav{flex-basis:100%;display:none;max-height:calc(100vh - 96px);overflow-y:auto;}
  .nav.open nav{display:block;}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;margin-top:10px;}
  .nav nav > ul > li{border-top:1px solid var(--line);}
  .nav ul a{display:block;font-size:15px;padding:15px 2px;border-bottom:none;}
  .nav ul a.active{border-left:2px solid var(--gold);padding-left:12px;}
  .nav nav > ul > li:last-child{border-top:none;padding:10px 0 6px;}
  .nav ul a.bookcall{text-align:center;padding:14px 22px;}
  .pagehero{padding:64px 0 56px;}
  .creds .row{gap:20px 34px;}
  footer .grid{grid-template-columns:1fr;text-align:center;gap:28px;padding:32px 24px;}
  footer .contactcol{text-align:center;}
  .founder .shot .badge,.meet .photo img.badge{right:8px;}
}
/* scripts off: no button to open the panel, so show the links */
@media (max-width:940px) and (scripting:none){
  .navtoggle{display:none;}
  .nav nav{display:block;}
}
@media (max-width:640px){
  body{font-size:18.5px;}
  .announce{display:none;}
  .wrap{padding:0 20px;}
  section,.path,.svc,.meet,.help,.cases,.how,.cta,.team,.faq,.study,.beliefs{padding:56px 0;}
  h1{font-size:clamp(31px,9vw,40px);}
  h2{font-size:clamp(26px,7.4vw,34px);}
  .hero .copy{padding:40px 20px 0;}
  .hero .sub{font-size:22px;}
  .hero .shot{height:270px;margin-top:32px;}
  .hero .cta-row{flex-direction:column;align-items:stretch;}
  .hero .cta-row .btn{width:100%;}
  .cta .btn,.path .btn,.svc .btn,.meet .btn,.split .btn{display:flex;width:100%;}
  .lede,.pagehero p.sub{font-size:20.5px;}
  .creds{padding:36px 0;}
  .creds img{height:52px;}
  .team-card{padding:66px 24px 34px;}
  .metric,.case-card{padding:132px 24px 34px;}
  .quote-panel,.quotebox{padding:36px 24px;}
  .quote-panel p.q,.quotebox p.q{font-size:20.5px;}
  .tstep,.step-card{padding:32px 22px;}
  .tstep h3,.step-card h3{font-size:22px;}
  .faq summary{font-size:18.5px;padding:22px 44px 22px 0;}
  .faq details p{padding:0 44px 22px 0;font-size:18px;}
  .stats .grid{gap:32px;}
  .stats .num{font-size:40px;}
  .special .logos span{font-size:16px;padding:8px 20px;}
  .study .payoff{padding:24px;}
  footer .links a{display:inline-block;margin:6px 10px;}
  .fword{font-size:32px;}
}

/* ==========================================================================
   Crinkled paper texture on every dark navy surface
   ========================================================================== */
.announce,.metric,.case-card,.study .payoff{position:relative;}
.darkstrip::after,
.creds::after,
footer::after,
.announce::after,
.quote-panel::after,
.quotebox::after,
.metric::after,
.case-card::after,
.study .payoff::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.46;
  mix-blend-mode:overlay;
  background-size:640px 640px;
  background-repeat:repeat;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='700'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.021' numOctaves='5' seed='11' result='n'/%3E%3CfeDiffuseLighting in='n' lighting-color='%23ffffff' surfaceScale='4'%3E%3CfeDistantLight azimuth='55' elevation='58'/%3E%3C/feDiffuseLighting%3E%3C/filter%3E%3Crect width='700' height='700' filter='url(%23c)'/%3E%3C/svg%3E");
}
.announce::after{opacity:.34;}
.metric::after,.case-card::after,.study .payoff::after{opacity:.4;background-size:460px 460px;}

/* keep all content crisp above the texture */
.announce > *,
.quote-panel > *,
.quotebox > *,
.metric > *,
.case-card > *,
.study .payoff > *{position:relative;z-index:1;}
.case-card .medal,.metric .avatar{z-index:2;}

/* white cards sitting inside a dark band keep their own dark text */
.darkstrip .step-card,.darkstrip .tstep{color:var(--body);}
.darkstrip .step-card h3,.darkstrip .tstep h3{color:var(--navy);}
.darkstrip .step-card p,.darkstrip .tstep p{color:var(--body);}

/* light-background variants of .darkstrip must not take the dark texture */
.darkstrip.pagehero::after,.darkstrip.special::after,.darkstrip.leadmag.is-light::after{content:none;}

/* ==========================================================================
   Scroll motion
   ========================================================================== */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease);will-change:opacity,transform;}
.reveal.in{opacity:1;transform:none;}
.reveal[data-d="1"]{transition-delay:.09s;}
.reveal[data-d="2"]{transition-delay:.18s;}
.reveal[data-d="3"]{transition-delay:.27s;}
.reveal[data-d="4"]{transition-delay:.36s;}
.reveal[data-d="5"]{transition-delay:.45s;}

/* directional variants */
.reveal-l{opacity:0;transform:translateX(-38px);transition:opacity .95s var(--ease),transform .95s var(--ease);}
.reveal-r{opacity:0;transform:translateX(38px);transition:opacity .95s var(--ease),transform .95s var(--ease);}
.reveal-l.in,.reveal-r.in{opacity:1;transform:none;}

/* photos ease out of a gentle zoom */
.split .media,.path .photo,.svc .photo,.study .photo,.beliefs .photo,.help .media{overflow:hidden;}
.split .media img,.path .photo img,.svc .photo img,.study .photo img,.beliefs .photo img{
  transform:scale(1.08);transition:transform 1.6s var(--ease);will-change:transform;}
.reveal.in img{transform:none;}

/* the gold hairline draws itself */
.rule{transition:width 1s var(--ease) .3s;}
.reveal:not(.in) .rule{width:0;}

/* medallions and avatars pop in */
.case-card .medal,.metric .avatar,.team-card .avatar{
  transition:transform .75s var(--ease) .16s,opacity .75s var(--ease) .16s;}
.reveal:not(.in) .medal,.reveal:not(.in) .avatar{opacity:0;transform:translateX(-50%) scale(.62);}

/* double-ring step numbers spin up softly */
.tstep .dot,.step-card .num{transition:transform .8s var(--ease) .12s,opacity .8s var(--ease) .12s;}
.reveal:not(.in) .dot,.reveal:not(.in) .num{opacity:0;transform:scale(.7);}

/* feature icon rings */
.feature .icon{transition:transform .8s var(--ease) .1s,opacity .8s var(--ease) .1s;}
.reveal:not(.in) .icon{opacity:0;transform:scale(.72);}

/* hero entrance */
.hero .copy > *{opacity:0;transform:translateY(26px);animation:heroIn .95s var(--ease) forwards;}
.hero .copy > *:nth-child(1){animation-delay:.12s;}
.hero .copy > *:nth-child(2){animation-delay:.24s;}
.hero .copy > *:nth-child(3){animation-delay:.36s;}
.hero .copy > *:nth-child(4){animation-delay:.48s;}
@keyframes heroIn{to{opacity:1;transform:none;}}
.hero .shot{opacity:0;animation:shotIn 1.5s var(--ease) .1s forwards;}
@keyframes shotIn{to{opacity:1;}}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-l,.reveal-r{opacity:1!important;transform:none!important;}
  .reveal:not(.in) .rule{width:64px;}
  .reveal:not(.in) .medal,.reveal:not(.in) .avatar{opacity:1;transform:translateX(-50%);}
  .reveal:not(.in) .dot,.reveal:not(.in) .num,.reveal:not(.in) .icon{opacity:1;transform:none;}
  .split .media img,.path .photo img,.svc .photo img,.study .photo img,.beliefs .photo img{transform:none;}
  .hero .copy > *,.hero .shot{opacity:1;animation:none;transform:none;}
}

/* split rows drift in from their own side */
.reveal.from-l{transform:translate3d(-34px,20px,0);}
.reveal.from-r{transform:translate3d(34px,20px,0);}
.reveal.from-l.in,.reveal.from-r.in{transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal.from-l,.reveal.from-r{transform:none!important;}
}

/* ==========================================================================
   One continuous dark band (beliefs + lead magnet share a single surface)
   ========================================================================== */
.deepband > .beliefs,
.deepband > .leadmag{background:transparent;}
.deepband > .beliefs::before,.deepband > .beliefs::after,
.deepband > .leadmag::before,.deepband > .leadmag::after{content:none;}
.deepband > .leadmag{padding-top:24px;padding-bottom:104px;}
.deepband > .beliefs{padding-bottom:64px;}
/* no lead magnet after it: close the navy band with full padding */
.deepband > .beliefs:last-child{padding-bottom:110px;}
@media (max-width:940px){.deepband > .beliefs:last-child{padding-bottom:72px;}}
@media (max-width:640px){.deepband > .beliefs:last-child{padding-bottom:56px;}}

/* any scaled photo stays inside its frame */
.media{overflow:hidden;}
