*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--brand-paper);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
/* The container query context is the body, so it is full-width and fixed-position
   descendants (drawer, scrim, dev bar) resolve against the viewport box. */
body{container-type:inline-size;container-name:page}
/* The page is full width. Every max-width constraint lives on .container, so a section that
   changes background changes it edge to edge while its content stays on the 12-column grid. */
.page{background:var(--brand-paper);overflow:clip}
a{color:var(--brand-navy);text-decoration:none}
.page a:where(:not(.ds-btn,.hdrcta,.tri-panel)),footer.site a:where(:not(.ds-btn,.hdrcta)){text-decoration:none;border-bottom:0}
.page a:where(:not(.ds-btn,.hdrcta,.tri-panel)):hover,footer.site a:where(:not(.ds-btn,.hdrcta)):hover{border-bottom-color:transparent}
/* Inline prose links keep the design system's Sky rule and its Sun hover. */
.page p a.inline,.page li a.inline{border-bottom:1px solid var(--rule-accent)}
.page p a.inline:hover,.page li a.inline:hover{border-bottom-color:var(--sun-500)}
a:hover{color:var(--sun-700)}
.container{max-width:1440px;margin:0 auto;padding:0 32px}
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.eyebrow{font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-eyebrow);margin:0}
.eyebrow.inv{color:var(--sky-300)}
.rule48{width:48px;border-top:2px solid var(--brand-accent);display:block;margin-bottom:16px}
.rule60{width:60px;border-top:4px solid var(--brand-accent);display:block;margin-bottom:18px}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;color:var(--text-heading);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
/* utility strip */
/* ---- utility layer: an intentional band, not microtype ---- */
.util{background:var(--navy-800);color:#D7E4EE}
.util .container{height:48px;display:flex;align-items:center;justify-content:flex-start}
.util .ic{flex:0 0 auto;opacity:.9}
.util-phone{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;color:#D7E4EE;font-size:12.5px;letter-spacing:.02em;text-decoration:none}
.util-phone__l{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-sky)}
.util-phone__n{font-weight:600;font-variant-numeric:tabular-nums;color:var(--white)}
.util-phone:hover .util-phone__n{color:var(--brand-sky)}
.utilr{display:flex;align-items:stretch;gap:0;position:relative;height:48px}
.loginbtn,.util-search{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;height:48px;padding:0 18px;background:none;border:0;border-left:1px solid rgba(145,195,235,.22);font-family:var(--font-sans);font-size:12.5px;font-weight:600;letter-spacing:.06em;color:#D7E4EE;cursor:pointer;text-decoration:none}
.util-search{padding-right:0}
.loginbtn:hover,.util-search:hover,.loginbtn[aria-expanded="true"]{color:var(--white)}
.loginbtn[aria-expanded="true"] .lucide-chevron-down{transform:rotate(180deg)}
.logindrop{position:absolute;top:42px;right:0;min-width:250px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-raised);padding:6px 0;z-index:60}
.logindrop a,.logindrop span.dis{display:block;padding:11px 18px;font-size:11px;letter-spacing:.04em;text-transform:none;color:var(--brand-navy)}
.logindrop a small,.logindrop span.dis small{display:block;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-top:3px}
.logindrop a:hover{background:var(--navy-050)}
.logindrop span.dis{color:var(--text-muted);cursor:default}
/* header */
/* ---- primary masthead ---- */
header.site{position:sticky;top:0;z-index:50;height:100px;background:rgba(247,244,238,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
/* Direct child only — the mega panel also contains a .container and must not inherit the
   84px flex header row. */
/* Three zones: brand, centered primary navigation, action. Grid keeps the navigation group
   compositionally centred in the masthead regardless of logo and CTA widths. */
header.site>.container{height:100px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:40px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand .ds-logo{height:56px}
nav.main{display:flex;align-items:stretch;justify-content:center;gap:34px;height:100px;grid-column:2}
/* Each primary control fills the masthead height and carries its state on the masthead's own
   bottom edge, so the active item physically connects to the tray below it. */
nav.main>.navitem{display:flex;position:static}
nav.main>a,nav.main .navtoggle{display:flex;align-items:center;height:100%;box-sizing:border-box}
nav.main>a{font-family:var(--font-sans);font-size:15.5px;font-weight:500;letter-spacing:.005em;color:var(--brand-navy);text-decoration:none}
/* Compact navigation panel: centred beneath the navigation group, sized by its content,
   anchored to the masthead's bottom edge so the open control's Sun rule connects to it. */
.navpanel{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:max-content;min-width:760px;max-width:900px;background:var(--white);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius-control) var(--radius-control);box-shadow:var(--shadow-raised);z-index:45;display:none}
.navmenu{display:flex;align-items:flex-start;gap:32px;padding:26px 28px}
.navmenu__group{flex:1 1 0;min-width:0}
.navmenu__glabel{font-family:var(--font-sans);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin:0 0 12px}
.navmenu__group ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.navmenu__group li a{display:inline-block;padding:3px 0;font-family:var(--font-sans);font-size:15px;font-weight:500;line-height:1.35;color:var(--brand-navy)}
.navmenu__group li a:hover,.navmenu__group li a:focus-visible{color:var(--sun-700)}
.navmenu__group li a.lead{font-weight:600}
.navmenu__group li a.lead span{display:inline-block;transition:transform var(--duration-hover) var(--ease-standard)}
.navmenu__group li a.lead:hover span{transform:translateX(3px)}

/* Without JavaScript, hover and focus-within open the panel. With JavaScript, the script is
   the single authority via data-open, so Escape can actually close it. */
html:not(.js) .navitem:hover>.navpanel,html:not(.js) .navitem:focus-within>.navpanel,html.js .navitem>.navpanel[data-open="true"]{display:block}
.navitem{position:static}
.navtoggle{position:relative;background:none;border:0;padding:0;font-family:var(--font-sans);font-size:15.5px;font-weight:500;letter-spacing:.005em;color:var(--brand-navy);cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.navtoggle .ic{transition:transform var(--duration-hover) var(--ease-standard);opacity:.75}
.navitem.is-open .navtoggle .ic{transform:rotate(180deg);opacity:1}
.navitem.is-open .navtoggle{font-weight:600}
a:focus-visible,button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
.navpanel ul{margin:0;padding:0;list-style:none}
/* sections */
section{position:relative}
.sec{padding:88px 0}
.sec.tight{padding:64px 0}
.paper{background:var(--brand-paper)}.white{background:var(--white)}.fog{background:var(--brand-fog)}
.navy{background:var(--brand-navy)}.navy h2,.navy h3{color:var(--text-inverse)}
/* hero */
.hero{padding:56px 0 48px}
.hero h1{font-size:72px;line-height:.98;letter-spacing:-.03em;max-width:13ch}
.hero .lead{font-size:20px;line-height:1.55;color:var(--text-secondary);max-width:36ch;margin-top:22px}
.heroactions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
@media (max-height:880px){.hero{padding:36px 0 32px}.hero h1{font-size:60px}.hero .lead{margin-top:18px;font-size:19px}.heroactions{margin-top:20px}}
/* triage */
.triage{padding:0 0 4px;background:var(--brand-fog)}
.triage .container{padding-top:34px;padding-bottom:34px}
.triage h2{font-size:30px;line-height:1.05;max-width:8ch;margin-top:10px}
.tri-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--line);gap:1px}
.tri-rows>*{background:var(--brand-fog)}
/* generic */
.measure{max-width:65ch}
.smallcaps{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.withheld{font-family:var(--font-display);font-weight:500;font-size:30px;line-height:1;color:var(--brand-navy)}
.withheld.inv{color:var(--text-inverse)}
.withheldnote{font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--text-muted);margin-top:6px}
.withheldnote.inv{color:var(--sky-300)}
/* index rows */
.rows{border-top:2px solid var(--brand-navy)}
.rowlink{display:grid;grid-template-columns:2.6fr 1.4fr 1.4fr .9fr 24px;gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line);transition:background-color var(--duration-hover) var(--ease-standard)}
.rowlink:hover{background:var(--navy-050)}
.rowlink .t{font-family:var(--font-display);font-weight:500;font-size:20px;line-height:1.15;color:var(--brand-navy)}
.rowlink .m{font-size:13px;color:var(--text-secondary)}
.rowlink .ar{color:var(--brand-navy);font-size:15px;text-align:right}
/* insight teaser */
.fchip{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sky-800);border:1px solid var(--sky-300);background:var(--sky-100);padding:5px 7px}
.imeta{font-size:12px;color:var(--text-muted);margin-top:12px;display:flex;gap:14px;flex-wrap:wrap}
.imeta b{font-weight:500;color:var(--text-secondary)}
/* footer */
footer.site{background:var(--navy-800);color:var(--sky-300);padding:70px 0 34px}
footer.site .foot-h{font-size:11px;font-weight:700;font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brand-sky);margin:0 0 16px}
.foot-brand{margin-top:-5px}
.foot-cols{grid-column:4 / span 9;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
/* The column label IS the primary nav item, so it is a link that keeps the label styling. */
footer.site .foot-h a{color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit}
footer.site .foot-h a:hover{color:var(--white)}
footer.site ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
footer.site a{color:var(--text-inverse);font-size:13.5px}
footer.site a:hover{color:var(--text-inverse)}
footer.site .legal{margin-top:72px;border-top:1px solid rgba(255,255,255,.18);padding:26px 0 6px;display:flex;justify-content:space-between;align-items:baseline;gap:16px 24px;flex-wrap:wrap}
footer.site .legal p{font-size:11.5px;line-height:1.65;color:var(--sky-300)}
footer.site .legal-copy{margin:0}
/* full-width bottom disclosure band — long approved compliance language only */
footer.site .legal-band{margin-top:30px;border-top:1px solid rgba(255,255,255,.14);padding:44px 0 10px}
footer.site .legal-band p{font-size:12.5px;line-height:1.7;color:var(--sky-300)}
footer.site .legal-band .disc{max-width:74ch}
footer.site .legal-band .disc+.disc{margin-top:10px}
/* Contextual inline disclosure under investment-oriented Success Story figures: secondary, legible, never tiny. */
.disc-inline{grid-column:1 / -1;margin-top:28px;max-width:78ch;font-family:var(--font-sans);font-size:12.5px;line-height:1.65;color:var(--text-muted)}
.disc-inline p{margin:0}.disc-inline p+p{margin-top:6px}
.disc-inline.inv{color:var(--sky-300)}
/* Step 7Y: homepage past-performance line spans the full stories grid (it had auto-placed into one 1/12 column), sits once beneath the rail and qualifies every figure; the longer disclosure follows tighter. */
.stories-pastperf{grid-column:1 / -1;margin-top:30px;font-size:13.5px;color:var(--text-secondary);text-wrap:pretty}
.stories-pastperf+.disc-inline{margin-top:10px}
.slotnote{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--sun-700);border-bottom:1px solid var(--brand-accent);padding-bottom:2px}
/* reveal */
html.js .rv{opacity:0;transform:translateY(18px);transition:opacity 620ms var(--ease-standard),transform 620ms var(--ease-standard)}
html.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
/* responsive */
/* --- development placeholders --- */
/* Public/production default: governance labels stay in the DOM (declarations + build audit)
   but never render. ?mode=development (enhance.js) restores the visible dev layer. */
.ap-ph{font-size:9.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--sun-700);border-bottom:1px solid var(--brand-accent);padding-bottom:2px;display:none}
.ap-ph.inv{color:var(--brand-sky);border-bottom-color:var(--brand-sky)}
[data-ap-mode="development"] .ap-ph{display:inline-block}
.ap-devbar{position:fixed;right:18px;bottom:18px;z-index:200;font-family:var(--font-sans);display:flex;flex-direction:column;align-items:flex-end}
.ap-devbar-row{display:flex;gap:1px}
.ap-devbar-x{background:var(--navy-800);color:var(--sky-300);border:0;border-radius:0 3px 3px 0;padding:0 10px;font-size:11px;cursor:pointer;min-height:34px}
.ap-devbar-x:hover{color:var(--text-inverse)}
.ap-devbar-btn{display:block;background:var(--navy-800);color:var(--text-inverse);border:0;border-radius:3px 0 0 3px;padding:11px 14px;font:700 10px/1 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;box-shadow:var(--shadow-raised)}
.ap-devbar-btn b{color:var(--brand-accent)}
.ap-devbar-btn span{color:var(--sky-300);margin-left:8px;font-weight:400}
.ap-devbar-panel{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-raised);padding:16px 18px;margin-bottom:8px;max-width:340px}
.ap-devbar-h{font:700 9px/1.4 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-navy);margin-bottom:10px}
.ap-devbar-k{font-size:11.5px;line-height:1.6;color:var(--text-secondary)}
.ap-devbar-k b{color:var(--brand-navy)}
.ap-devbar-k em{font-style:normal;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--sun-700)}
.ap-devbar-f{font-size:10px;line-height:1.5;color:var(--text-muted);margin-top:10px;border-top:1px solid var(--line);padding-top:9px}
@media print{.ap-devbar{display:none}}
/* --- drawer navigation --- */
.navtrigger{display:none;align-items:center;gap:10px;background:none;border:0;cursor:pointer;font:700 11px/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-navy);min-height:44px;padding:0 2px}
.navtrigger i{display:block;width:22px;height:1.5px;background:var(--brand-navy);position:relative}
.navtrigger i::before,.navtrigger i::after{content:"";position:absolute;left:0;width:22px;height:1.5px;background:var(--brand-navy)}
.navtrigger i::before{top:-6px}.navtrigger i::after{top:6px}
.scrim{position:fixed;inset:0;background:rgba(0,27,54,.42);backdrop-filter:blur(2px);z-index:70;border:0}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,100%);background:var(--brand-paper);z-index:80;display:flex;flex-direction:column;box-shadow:var(--shadow-overlay,0 18px 50px rgba(0,43,84,.10))}
.drawer-top{display:flex;align-items:center;justify-content:space-between;height:84px;padding:0 24px;border-bottom:1px solid var(--line);flex:0 0 auto}
.drawer-close{background:none;border:0;cursor:pointer;font:700 11px/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-navy);min-height:44px;padding:0 4px}
.drawer-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch}
.drawer-util{display:flex;gap:0;border-bottom:1px solid var(--line);background:var(--brand-fog)}
.drawer-util a{flex:1;min-height:56px;display:flex;align-items:center;justify-content:center;font:700 10px/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-navy);border-left:1px solid var(--line)}
.drawer-util a:first-child{border-left:0}
.drawer-sec{border-bottom:1px solid var(--line)}
.drawer-head{display:flex;align-items:stretch}
.drawer-link{flex:1;min-width:0;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;min-height:64px;padding:16px 12px 16px 24px;color:var(--brand-navy);text-decoration:none}
.drawer-toggle{flex:0 0 auto;background:none;border:0;cursor:pointer;padding:0 24px;display:flex;align-items:center;font-family:inherit}
.drawer-link .n{font-family:var(--font-display);font-weight:500;font-size:22px;line-height:1;color:var(--text-numeral)}
.drawer-link .t{font-family:var(--font-display);font-weight:500;font-size:23px;line-height:1.1;color:var(--brand-navy)}
.drawer-link .t small{display:block;font-family:var(--font-sans);font-size:12.5px;font-weight:400;line-height:1.45;color:var(--text-muted);margin-top:4px}
.drawer-toggle .c{font-size:20px;color:var(--brand-navy)}
.drawer-sub{padding:0 24px 20px;background:var(--white);border-top:1px solid var(--line)}
.drawer-sub a{display:block;min-height:52px;display:flex;align-items:center;font-size:15px;color:var(--brand-navy);border-bottom:1px solid var(--line)}
.drawer-sub .act{padding-top:18px}
.drawer-plain a{display:flex;align-items:center;min-height:60px;padding:0 24px;font-family:var(--font-display);font-weight:500;font-size:21px;color:var(--brand-navy);border-bottom:1px solid var(--line)}
.drawer-logins{padding:20px 24px 26px;background:var(--brand-fog)}
.drawer-logins h5{font:700 10px/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-eyebrow);margin:0 0 6px}
.drawer-logins a,.drawer-logins span{display:block;min-height:52px;display:flex;flex-direction:column;justify-content:center;font-size:14.5px;color:var(--brand-navy);border-bottom:1px solid var(--line)}
.drawer-logins span{color:var(--text-muted)}
.drawer-logins small{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-top:3px}
.drawer-foot{flex:0 0 auto;padding:16px 24px;border-top:1px solid var(--line);background:var(--brand-paper)}
/* Nav breakpoint set from measured fit: the header's intrinsic need is 843px
   (logo 150 + nav 6 items 508 + CTA 121 + gaps and padding). Drawer engages at 1000px,
   which leaves ~157px of slack so the nav is never crowded against the logo or the CTA.
   Grid stacking is a separate, later breakpoint — an 8/4 hero still reads well at 1024. */
@container page (max-width:1280px){
  nav.main{gap:22px}
  nav.main>div>a,nav.main>a{font-size:13px}
}
@container page (max-width:1000px){
  nav.main{display:none}
  .navtrigger{display:inline-flex;grid-column:2;justify-self:end}
  header.site>.container{grid-template-columns:1fr auto}
  .util .container{height:44px}
  .utilr,.loginbtn,.util-search{height:44px}
  .utilsoc .soc{height:44px}
  header.site,header.site>.container{height:84px}
  .brand .ds-logo{height:40px}
  header.site .hdrcta{display:none !important}
  header.site>.container{gap:20px}
}
@container page (max-width:900px){
  .g12>*,.navpanel .inner>*,footer.site .legal>*{grid-column:1 / -1 !important}
  .hero{padding:40px 0 36px}
  .hero h1{font-size:56px;max-width:none}
  .hero .lead{max-width:38ch}
  .heromedia{max-width:560px;margin-top:36px}
  .heromedia figure{height:auto;aspect-ratio:16 / 9}
  .sec{padding:64px 0}
  .tri-rows{grid-template-columns:1fr;margin-top:26px}
}
@container page (max-width:720px){
  .g12{gap:16px}
  .container{padding:0 20px}
  .hero{padding:24px 0 22px}
  .hero h1{font-size:40px}
  .hero .lead{font-size:16.5px;max-width:34ch}
  .heromedia{max-width:none;margin-top:24px}
  .heromedia figure{height:auto;aspect-ratio:16 / 9}
  .heroactions{margin-top:18px}
  .triage .container{padding-top:26px;padding-bottom:26px}
  .rowlink{grid-template-columns:1fr;gap:5px}
  .rowlink .ar{display:none}
  .sec{padding:52px 0}
  .util .container{justify-content:space-between}
  .util a[href="#search"]{display:none}
}
/* --- site menu: static markup, :target fallback, JS upgrades it to an overlay drawer --- */
.sitemenu{display:none;background:var(--brand-paper);border-top:1px solid var(--line)}
.sitemenu:target{display:block}
html.js .sitemenu{display:none}
html.js body.menu-open .sitemenu{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;width:min(430px,100%);z-index:80;border-top:0;box-shadow:0 18px 50px rgba(0,43,84,.18)}
html.js body.menu-open .scrim{display:block}
.scrim{display:none;position:fixed;inset:0;background:rgba(0,27,54,.42);backdrop-filter:blur(2px);z-index:70;border:0;width:100%}
body.menu-open{overflow:hidden}
.sitemenu .drawer-top{display:none}
html.js .sitemenu .drawer-top{display:flex}

/* ==== design-system component classes (parity with the React components) ==== */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--brand-navy);color:#fff;padding:12px 16px;z-index:300;font:700 11px/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase}
.skip:focus{left:0}
.ds-logo{width:auto;display:block}
.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:600;text-transform:uppercase;letter-spacing:.10em;border-radius:var(--radius-control);border:1px solid transparent;text-decoration:none;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}
.ds-btn--sm{font-size:.625rem;padding:11px 15px;min-height:36px}
.ds-btn--md{font-size:.6875rem;padding:13px 16px;min-height:42px}
.ds-btn--lg{font-size:.75rem;padding:16px 22px;min-height:48px}
.ds-btn--full{width:100%}
.ds-btn--primary{background:var(--action-primary-bg);color:var(--action-primary-fg);border-color:var(--action-primary-bg)}
.ds-btn--primary:hover{background:var(--action-primary-bg-hover);border-color:var(--action-primary-bg-hover);color:var(--action-primary-fg)}
.ds-btn--secondary{background:transparent;color:var(--action-secondary-fg);border-color:var(--action-secondary-border)}
.ds-btn--secondary:hover{background:var(--action-secondary-bg-hover);color:var(--action-secondary-fg)}
.ds-btn--inverse-outline{background:transparent;color:var(--text-inverse);border-color:rgba(255,255,255,.55)}
.ds-btn--inverse-outline:hover{background:rgba(255,255,255,.10);border-color:var(--text-inverse);color:var(--text-inverse)}
.ds-sh{display:flex;flex-direction:column;align-items:flex-start}
.ds-sh__rule{width:48px;border-top:2px solid var(--brand-accent);margin-bottom:var(--space-4)}
.ds-sh__rule--feature{width:60px;border-top-width:4px;margin-bottom:18px}
.ds-sh__eyebrow{font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-eyebrow)}
.ds-sh__title{font-family:var(--font-display);font-weight:500;font-size:var(--type-display-2);line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--text-heading);margin:15px 0 0;max-width:var(--measure-headline)}
.ds-sh__lede{font-family:var(--font-sans);font-size:var(--type-lead);line-height:var(--leading-normal);color:var(--text-secondary);max-width:65ch;margin:20px 0 0}
.ds-sh--navy .ds-sh__eyebrow{color:var(--sky-300)}
.ds-sh--navy .ds-sh__title{color:var(--text-inverse)}
.ds-sh--navy .ds-sh__lede{color:#CFDEE8}
.ds-media{position:relative;margin:0;overflow:hidden;display:flex;align-items:flex-end}
/* Responsive images: the build injects the master's intrinsic width/height on every <img> with
   variants (a CLS guard). Those attributes map to a presentational height, which would otherwise
   beat a CSS `aspect-ratio` rule and render the full portrait master (e.g. 4240px tall). This base
   rule neutralizes the mapped height; any rule that sets a real height (0,1,1 or higher) wins. */
img{height:auto}
.ds-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ds-media--property{background:linear-gradient(180deg,#9ECFE5 0 28%,#E7EEF1 28% 44%,#C6B7A5 44% 61%,#8F7056 61%)}
.ds-media--place{background:linear-gradient(180deg,#9FCFE5 0 46%,#B8C8CF 46% 54%,#846E57 54%)}
.ds-media--people{background:linear-gradient(135deg,#C8D0D6,#7B8A91)}
.ds-media--details{background:repeating-linear-gradient(90deg,#B1A18D 0 22px,#D0C5B7 22px 44px)}
.ds-media--construction{background:linear-gradient(135deg,#7F939D,#C2B39F)}
/* Authored crops. One class per commissioned ratio; container queries restate them. */
.ds-media--ar-3x2{aspect-ratio:3 / 2}.ds-media--ar-4x3{aspect-ratio:4 / 3}.ds-media--ar-16x9{aspect-ratio:16 / 9}.ds-media--ar-21x9{aspect-ratio:21 / 9}.ds-media--ar-4x5{aspect-ratio:4 / 5}.ds-media--ar-16x7{aspect-ratio:16 / 7}.ds-media--ar-1x1{aspect-ratio:1 / 1}
.ds-media__scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,25,45,.72))}
.ds-media__cap{position:relative;padding:22px;color:var(--text-inverse)}
.ds-media__label{display:block;font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ds-media__desc{display:block;font-family:var(--font-sans);font-size:13px;line-height:1.5;color:#E9EEF1;margin-top:5px}
.proofband{background:var(--brand-navy)}
.proofband .container{padding-top:52px;padding-bottom:52px}
.ds-proof{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;color:var(--text-inverse);align-items:start}
.ds-proof__intro{grid-column:span 3;padding-right:28px}
.ds-proof__eyebrow{display:block;color:var(--brand-sky);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.18em}
.ds-proof__title{font-family:var(--font-display);font-weight:500;font-size:28px;line-height:1.1;letter-spacing:-.02em;margin:10px 0 0;color:#fff}
.ds-proof__lead{margin:12px 0 0;font-family:var(--font-sans);font-size:14px;line-height:1.6;color:#C3D3DE;max-width:34ch}
.ds-proof__item{grid-column:span 2;padding-left:24px;border-left:1px solid var(--border-inverse);display:grid;grid-template-rows:minmax(40px,auto) minmax(16px,auto) auto;row-gap:10px;align-content:start}
.ds-proof__value{display:block;align-self:start;font-family:var(--font-display);font-weight:500;font-size:38px;line-height:1;letter-spacing:-.02em;color:#fff}
.ds-proof__value.tnum{font-variant-numeric:tabular-nums}
.ds-proof__item--wide{grid-column:span 3}
.ds-proof__item--wide .ds-proof__value{font-size:34px;line-height:1.04}
.ds-proof__pending{display:block;align-self:start;width:86px;height:26px;background:rgba(145,195,235,.16);border-bottom:2px solid rgba(145,195,235,.42)}
.ds-proof__label{display:block;align-self:start;color:var(--brand-sky);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;line-height:1.3}
.ds-proof__qual{display:block;font-family:var(--font-sans);font-size:13.5px;line-height:1.45;color:#D3DFE9;text-wrap:pretty}
.ds-proof__title--solo{margin-top:0}
/* ==== Tier 1 proof band (shared): page-level statistical evidence on Navy. Same geometry
   language as the homepage Track Record band, at page-opening scale. Metric territories are
   equal, divided by hairlines, with every value on one baseline row and labels beneath. No
   cards, no per-metric background. ==== */
.ds-pband{background:var(--brand-navy);color:var(--text-inverse)}
.ds-pband__g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 24px;padding-top:44px;padding-bottom:46px;align-items:start}
.ds-pband__head{grid-column:1 / span 3;padding-right:28px}
.ds-pband__title{font-family:var(--font-display);font-weight:500;font-size:30px;line-height:1.1;letter-spacing:-.02em;color:var(--text-inverse);margin:0}
.ds-pband__lead{margin:12px 0 0;font-size:14.5px;line-height:1.55;color:var(--sky-300);max-width:28ch}
.ds-pband__set{grid-column:4 / span 9;display:grid;grid-template-columns:repeat(var(--pb-n,3),minmax(0,1fr));gap:0}
.ds-pband__i{padding:0 26px;border-left:1px solid var(--border-inverse);display:grid;grid-template-rows:minmax(58px,auto) auto auto;row-gap:12px;align-content:start}
.ds-pband__i:first-child{padding-left:28px}
.ds-pband__i:last-child{padding-right:0}
.ds-pband__v{display:block;align-self:start;font-family:var(--font-display);font-weight:500;font-size:56px;line-height:1;letter-spacing:-.03em;color:var(--text-inverse);font-variant-numeric:tabular-nums}
.ds-pband__v sup{font-size:.34em;vertical-align:super;line-height:1}
.ds-pband__l{display:block;align-self:start;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;line-height:1.35;color:var(--brand-sky)}
.ds-pband__q{display:block;font-size:13.5px;line-height:1.45;color:#D3DFE9;text-wrap:pretty}
.ds-pband__fn{grid-column:1 / -1;margin-top:34px;border-top:1px solid rgba(145,195,235,.24);padding-top:14px;font-size:11.5px;line-height:1.55;color:var(--sky-300);max-width:96ch}
.ds-pband__dev{grid-column:1 / -1}
/* Inset variant: the same band, quieter, for use inside a section that already provides the
   Navy ground (it contributes no background and no container padding of its own). */
.ds-pband--inset{background:none}
.ds-pband--inset .ds-pband__g{max-width:none;padding:22px 0 0;border-top:2px solid rgba(145,195,235,.42)}
.ds-pband--inset .ds-pband__title{font-size:22px}
.ds-pband--inset .ds-pband__v{font-size:40px}
.ds-pband--inset .ds-pband__fn{margin-top:26px;border-top:0;padding-top:0}
@container page (max-width:1240px){
  .ds-pband__v{font-size:46px}
  .ds-pband__title{font-size:27px}
  .ds-pband--inset .ds-pband__v{font-size:36px}
}
@container page (max-width:1100px){
  .ds-pband__head{grid-column:1 / -1;padding-right:0}
  .ds-pband__set{grid-column:1 / -1;margin-top:28px}
  .ds-pband__i:first-child{padding-left:22px}
  .ds-pband__i{padding:0 20px}
}
@container page (max-width:700px){
  .ds-pband__set{grid-template-columns:1fr;gap:24px}
  .ds-pband__i,.ds-pband__i:first-child{padding:0 0 0 20px;grid-template-rows:auto auto auto;row-gap:10px}
  .ds-pband__v{font-size:40px}
}
.ds-arow{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-3);align-items:center;padding:22px 18px 22px 22px;border-left:1px solid var(--line);text-decoration:none;background:transparent;transition:background-color var(--duration-hover) var(--ease-standard)}
.ds-arow:hover{background:var(--white)}
.ds-arow__n{font-family:var(--font-display);font-weight:500;font-size:28px;line-height:1;color:var(--text-numeral)}
.ds-arow__t{display:block;font-family:var(--font-display);font-weight:500;font-size:22px;line-height:1.05;color:var(--text-heading);margin-bottom:4px}
.ds-arow__d{display:block;font-family:var(--font-sans);font-size:12px;line-height:1.45;color:var(--text-muted)}
.ds-arow__a{font-size:18px;color:var(--brand-navy);transition:transform var(--duration-hover) var(--ease-standard)}
.ds-arow:hover .ds-arow__a{transform:translateX(3px)}
.ds-facts{margin:0;display:grid;column-gap:var(--space-6)}
.ds-facts__row{padding:15px 0;border-top:1px solid var(--line)}
.ds-facts__row--first{border-top:0}
.ds-facts__label{font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-eyebrow)}
.ds-facts__value{margin:5px 0 0;font-family:var(--font-sans);font-size:14px;color:var(--brand-navy)}
.ds-facts--navy .ds-facts__row{border-top-color:var(--border-inverse)}
.ds-facts--navy .ds-facts__label{color:var(--brand-sky)}
.ds-facts--navy .ds-facts__value{color:var(--text-inverse)}
/* ==== header / menus ==== */
.navlink{font-size:13.5px;color:var(--brand-navy);padding:6px 0;display:inline-block}

.loginbtn{background:none;border:0;padding:0;font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-inverse);cursor:pointer}
.loginbtn:hover{color:var(--brand-sky)}
.logindrop{display:none}
.logindrop[data-open="true"]{display:block}
.logindrop span.dis small,.logindrop a small{display:block}
/* ==== home sections ==== */
.hero-copy{grid-column:1 / span 8;display:flex;flex-direction:column;justify-content:center}
.heromedia{grid-column:9 / span 4}
.tm{font-size:.38em;vertical-align:super;letter-spacing:0}
.triage-intro{grid-column:1 / span 3;display:flex;flex-direction:column;justify-content:center}
.tri-rows{grid-column:4 / span 9}
.feat-copy{grid-column:1 / span 5;display:flex;flex-direction:column;justify-content:center}
.feat-media{grid-column:6 / span 7}
.qlist{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:1px;background:var(--line)}
.qlist li{background:var(--white);display:grid;grid-template-columns:auto 1fr;gap:14px;padding:12px 0}
.qlist__n{font-family:var(--font-display);font-weight:500;font-size:18px;line-height:1.2;color:var(--text-numeral)}
.qlist__q{font-family:var(--font-sans);font-size:13.5px;font-weight:600;color:var(--brand-navy)}
.qlist__q small{display:block;font-weight:400;font-size:12.5px;line-height:1.5;color:var(--text-muted);margin-top:2px}
.feat-facts{margin:30px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.feat-facts__row{border-top:1px solid var(--line);padding:14px 0}
.feat-facts__row--top{border-top:2px solid var(--brand-navy)}
.feat-facts dt{font-size:10px}
.feat-facts dd{margin:7px 0 0}
.slotline{margin-top:18px}
/* California judgment. The media column bleeds to the left viewport edge: --caj-edge is the
   distance from the viewport to the container content box, so the negative margin cancels the
   gutter at every width without a viewport-height rule. Height comes from the crop, capped. */
.caj{--caj-edge:max(32px,(100cqw - 1376px)/2);padding:72px 0}
.caj-media{grid-column:1 / span 7;align-self:center;margin-left:calc(-1 * var(--caj-edge))}
.caj-media .ds-media{width:100%;max-height:540px}
.caj-photo{margin:0;width:100%;aspect-ratio:3 / 2;max-height:540px;overflow:hidden;background:var(--brand-fog);border-radius:0 6px 6px 0}
.caj-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 50%;display:block}
.caj-copy{grid-column:8 / span 5;align-self:center;padding-top:0}
.caj-copy .ds-sh__lede{max-width:36ch}
.caj-sub{margin:20px 0 0;max-width:36ch;font-size:15px;line-height:1.65;color:var(--text-secondary)}
.caj-link{display:inline-block;white-space:nowrap;margin-top:30px;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-navy)}
.caj-link:hover{color:var(--sun-700)}
.caj-dev{grid-column:1 / -1;margin-top:22px}
/* --- Client testimonials: full-width Navy band rail — the approved 3-up composition at
   desktop, 2-up tablet, 1-up mobile. The viewport scrolls horizontally with snap (touch,
   trackpad); enhance.js drives the heading-region prev/next controls + indicator and hides
   them while every record is already visible. --- */
.testi{background:var(--brand-navy)}
.testi.sec{padding:76px 0}
.testi-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.testi-h{color:var(--text-inverse);font-size:40px;line-height:1.08;margin-top:14px}
.testi-nav{display:flex;align-items:center;gap:10px;padding-bottom:5px}
.testi-nav[hidden]{display:none}
.testi-ind{font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:.14em;color:var(--sky-300);font-variant-numeric:tabular-nums;margin-right:8px}
.testi-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid rgba(145,195,235,.38);border-radius:4px;background:transparent;color:var(--white);cursor:pointer;transition:border-color var(--duration-hover) var(--ease-standard),background-color var(--duration-hover) var(--ease-standard)}
.testi-btn svg{width:18px;height:18px}
.testi-btn:hover:not(:disabled){border-color:rgba(145,195,235,.75);background:rgba(145,195,235,.08)}
.testi-btn:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
.testi-btn:disabled{opacity:.42;cursor:default}
/* Editorial asymmetric composition: the leftmost visible voice leads at ~5 columns,
   supporting voices at ~3.5; the featured class travels with the rail (enhance.js).
   Sun rules open each quote as punctuation; no borders, no cards. */
.testi-viewport{margin-top:16px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}
.testi-viewport::-webkit-scrollbar{display:none}
.testi-list{display:flex;--testi-sup:.291667;--testi-pv:3}
.testi-item{box-sizing:border-box;margin:0;flex:0 0 29.1667%;min-width:0;padding:0 48px 0 0;display:flex;flex-direction:column;scroll-snap-align:start}
.testi-item.is-featured{flex-basis:41.6667%;padding-right:72px}
.testi-rule{display:block;width:40px;height:2px;background:var(--brand-accent);margin-bottom:20px}
.testi-q{margin:0;font-family:var(--font-display);font-weight:400;font-size:20px;line-height:1.45;color:#E9EEF1;text-wrap:pretty}
.testi-item.is-featured .testi-q{font-size:26px;line-height:1.42}
.testi-attr{display:flex;flex-direction:column;gap:5px;margin-top:30px}
.testi-name{font-family:var(--font-display);font-size:15.5px;font-weight:400;color:var(--white)}
.testi-role{font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-300)}
/* JS-managed slot rotation: the records travel between fixed slots — on advance the next
   record moves into the leftmost featured slot and enlarges while the others shift along.
   Position, width and quote type all transition; nothing is swapped abruptly. enhance.js
   locks the list height to the tallest record at both geometries, so changing testimonials
   never changes the Navy band's height or the position of the page below. */
.testi-win{overflow:hidden;scroll-snap-type:none}
.testi-win .testi-list{display:block;position:relative}
.testi-win .testi-item{position:absolute;top:0;left:0;width:29.1667%;padding:0 48px 0 0;transform-origin:0 0;transition:left 640ms var(--ease-standard),width 640ms var(--ease-standard),padding-right 640ms var(--ease-standard),transform 640ms var(--ease-standard),opacity 240ms linear}
/* The record scales as it travels: the incoming quote grows into the featured slot while the
   outgoing one recedes. Transforms stay at ITEM level only — the children carry the section's
   locked entrance motion (mo-l rule draw, mo-r rise) and must not be out-specified. */
.testi-win .testi-q{transition:font-size 640ms var(--ease-standard),line-height 640ms var(--ease-standard)}
.testi-win .testi-item[data-slot="off-l"]{z-index:0;transform:translateX(-70px) scale(.94);transform-origin:0 40%;transition-duration:320ms,320ms,320ms,320ms,110ms}
.testi-win .testi-item[data-slot="off-r"]{z-index:0;transform:translateX(22px) scale(.985);transition-duration:320ms,320ms,320ms,320ms,110ms}
.testi-win .testi-item[data-slot="0"]{z-index:2;left:0;width:41.6667%;padding-right:72px;opacity:1;visibility:visible;transform:none}
.testi-win .testi-item[data-slot="1"]{z-index:1;left:41.6667%;opacity:1;visibility:visible;transform:none}
.testi-win .testi-item[data-slot="2"]{z-index:1;left:70.8333%;opacity:1;visibility:visible;transform:none}
.testi-win .testi-item[data-slot="off-l"]{left:-16%;width:41.6667%;padding-right:72px;opacity:0;visibility:hidden}
.testi-win .testi-item[data-slot="off-r"]{left:100%;opacity:0;visibility:hidden}
.testi-win .testi-item.is-leaving{visibility:visible}
.testi-measure{position:absolute;top:0;left:0;width:100%;height:0;overflow:visible;visibility:hidden;pointer-events:none}
.testi-measure .testi-item{transition:none}
@media (prefers-reduced-motion:reduce){.testi-win .testi-item,.testi-win .testi-q{transition:none}.testi-win .testi-item[data-slot="off-l"],.testi-win .testi-item[data-slot="off-r"]{transform:none}}
.testi-devtag{font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-accent)}
@container page (max-width:1100px){.testi-list{--testi-sup:.416667;--testi-pv:2}.testi-item{flex-basis:41.6667%}.testi-item.is-featured{flex-basis:58.3333%;padding-right:56px}.testi-win .testi-item{width:41.6667%}.testi-win .testi-item[data-slot="0"],.testi-win .testi-item[data-slot="off-l"]{width:58.3333%;padding-right:56px}.testi-win .testi-item[data-slot="1"]{left:58.3333%}.testi-win .testi-item[data-slot="off-l"]{left:-22%}}
@container page (max-width:720px){.testi.sec{padding:56px 0}.testi-h{font-size:30px}.testi-viewport{margin-top:14px}.testi-list{--testi-sup:1;--testi-pv:1}.testi-item{flex-basis:100%;padding:0}.testi-item.is-featured{flex-basis:100%;padding-right:0}.testi-item.is-featured .testi-q{font-size:22px}.testi-win .testi-item{width:100%}.testi-win .testi-item[data-slot="0"],.testi-win .testi-item[data-slot="off-l"]{width:100%;padding-right:0}.testi-win .testi-item[data-slot="off-l"]{left:-100%}}
/* --- Insights: publishing front page. 6 / [gutter] / 5, one image, hairline rows. --- */
.insv.sec{padding:0}
.insv .container{padding-top:64px;padding-bottom:64px}
.insv-head{grid-column:1 / span 8}
.insv-eyebrow{position:relative;padding-top:18px}
.insv-eyebrow::before{content:"";position:absolute;top:0;left:0;width:48px;height:2px;background:var(--brand-accent)}
.insv-h{font-family:var(--font-display);font-weight:500;font-size:38px;line-height:1.1;letter-spacing:-.02em;color:var(--text-heading);margin-top:14px;max-width:22ch;text-wrap:balance}
.insv-all{grid-column:9 / span 4;justify-self:end;align-self:start;margin-top:65px;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--brand-navy)}
.insv-all:hover{color:var(--sun-700)}
.insv-lead{grid-column:1 / span 6;margin-top:16px}
.insv-lead--solo{grid-column:1 / span 8}
.insv-rail{grid-column:8 / span 5;margin-top:16px;display:flex;flex-direction:column}
.ilead{display:block;color:inherit;text-decoration:none}
.ilead__media{display:block;position:relative;overflow:hidden}
.ilead__media .ds-media{margin:0}
.ilead__play{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border:1.5px solid rgba(255,255,255,.9);border-radius:50%;background:rgba(0,27,54,.42)}
.ilead__play::after{content:"";position:absolute;left:22px;top:18px;border-left:16px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent}
.ilead__meta{display:block;margin-top:18px;font-family:var(--font-sans);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-eyebrow)}
.ilead__h{display:block;font-family:var(--font-display);font-weight:500;font-size:35px;line-height:1.1;letter-spacing:-.02em;color:var(--text-heading);margin-top:12px;max-width:none;text-wrap:pretty}
.ilead:hover .ilead__h{color:var(--sun-700)}
.ilead__s{display:block;margin-top:14px;font-size:15.5px;line-height:1.62;color:var(--text-secondary);max-width:62ch}
.ilead__a{display:inline-block;margin-top:16px;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--brand-navy)}
.ilead:hover .ilead__a{color:var(--sun-700)}
.ilead:focus-visible,.irow:focus-visible{outline:2px solid var(--brand-accent);outline-offset:4px}
.irow{display:block;border-top:1px solid var(--line);padding:28px 0;color:inherit;text-decoration:none}
.irow:last-child{border-bottom:1px solid var(--line)}
.irow__meta{display:block;font-family:var(--font-sans);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-eyebrow)}
.irow__h{display:block;font-family:var(--font-display);font-weight:500;font-size:24px;line-height:1.18;letter-spacing:-.015em;color:var(--text-heading);margin-top:10px;text-wrap:pretty}
.irow:hover .irow__h{color:var(--sun-700)}
.irow__s{display:block;margin-top:9px;font-size:14.5px;line-height:1.58;color:var(--text-secondary)}
.irow__a{display:inline-block;margin-top:12px;font-family:var(--font-sans);font-size:12.5px;font-weight:600;letter-spacing:.06em;color:var(--brand-navy)}
.irow:hover .irow__a{color:var(--sun-700)}
.insv-dev{grid-column:1 / -1}
.rowhead{display:grid;grid-template-columns:2.6fr 1.4fr 1.4fr .9fr 24px;gap:24px;padding:0 0 8px;font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}
.rowempty{border-bottom:1px solid var(--line);padding:26px 0}
/* final CTA — navy closing band: invitation 1-4, three peer audience rows 5-12.
   Hairline under the section divides it from the footer so the two read as one navy
   conclusion with separate roles. */
.final{border-bottom:1px solid rgba(145,195,235,.24)}
.final .eyebrow{color:var(--sky-300)}
.final-h{font-size:60px;line-height:1;letter-spacing:-.03em;max-width:11ch;margin-top:18px}
.final-invite{grid-column:1 / span 4}
.final-lead{margin-top:20px;font-size:16px;line-height:1.6;color:var(--brand-paper);max-width:36ch}
.final-promise{margin-top:12px;font-size:13.5px;line-height:1.6;color:var(--sky-300);max-width:36ch}
.final-paths{grid-column:5 / span 8;align-self:center}
.fpath{display:grid;grid-template-columns:150px 1fr auto;gap:24px;align-items:baseline;padding:32px 10px 32px 0;border-top:1px solid rgba(145,195,235,.28);transition:background-color var(--duration-hover) var(--ease-standard)}
.fpath:last-of-type{border-bottom:1px solid rgba(145,195,235,.28)}
/* quiet secondary general-inquiry line in the left editorial column */
.final-alt{margin:18px 0 0;display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:0 7px;font-family:var(--font-sans);font-size:13px;line-height:1.5;color:var(--sky-300)}
.final-alt__a{color:var(--white);font-weight:600;letter-spacing:.02em;text-decoration:none}
.final-alt__a:hover{color:var(--sun-300, #E8A87C)}
.final-alt__a:focus-visible{outline:2px solid var(--brand-accent);outline-offset:3px}
.fpath:hover{background:rgba(145,195,235,.08)}
.fpath:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
.fpath__t{font-family:var(--font-display);font-weight:500;font-size:25px;line-height:1.1;color:var(--white)}
.fpath__i{font-size:14.5px;line-height:1.55;color:var(--sky-300)}
.fpath__a{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--white);white-space:nowrap}
.fpath__ar{display:inline-block;color:var(--brand-sky);transition:transform var(--duration-hover) var(--ease-standard)}
.fpath:hover .fpath__ar{transform:translateX(4px)}
.final-dev{grid-column:1 / -1}
@container page (max-width:1100px){.final-invite{grid-column:1 / -1}.final-paths{grid-column:1 / -1;margin-top:38px}}
@container page (max-width:720px){.fpath{grid-template-columns:1fr;gap:7px;padding:22px 0}}
/* ==== footer ==== */
.foot-rule{display:block;width:40px;height:2px;background:var(--brand-accent);margin-top:20px}
/* Footer lead-in: one brand line plus the single Success Stories destination. No CTA here —
   Next Steps above the footer owns conversion. The footer's one warm accent rule lives here. */
.foot-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding-bottom:26px;margin-bottom:40px;border-bottom:1px solid rgba(255,255,255,.18)}
.foot-brandline{display:flex;align-items:center;margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--sky-300)}
.foot-brandline__n{font-weight:600;color:var(--text-inverse)}
.foot-brandline .foot-rule--cta{flex:none;width:28px;margin:0 16px 0 0}
.foot-dot{color:var(--brand-accent);margin:0 8px}
footer.site .foot-cta__alt{font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.10em;text-transform:uppercase;color:var(--brand-sky)}
footer.site .foot-cta__alt:hover{color:var(--white)}
.foot-rule--cta{margin-top:0;width:48px}
@container page (max-width:900px){.foot-top{padding-bottom:28px;margin-bottom:48px}}
.foot-line{font-size:13.5px;line-height:1.65;color:var(--sky-300);margin-top:22px;max-width:26ch}
.foot-contact{font-size:13.5px;line-height:1.9;color:var(--text-inverse);margin-top:26px}
/* The two numbers read as one line: unbreakable, sized to content so a narrow brand column
   cannot leave a dangling separator (it borrows the gutter before .foot-cols instead). */
.foot-phones{display:flex;flex-wrap:nowrap;align-items:baseline;gap:0 12px;width:max-content;white-space:nowrap}
.foot-psep{color:var(--sky-300)}
/* Narrower brand columns cannot hold both numbers on one line — they stack cleanly there
   rather than overflowing into the navigation or leaving a dangling separator. */
@container page (max-width:1180px){.foot-phones{display:block;width:auto;white-space:normal}.foot-num{display:block}.foot-psep{display:none}}
.legal-links{margin:0;display:flex;gap:16px;flex-wrap:wrap}
footer.site .legal-links a,footer.site .legal-links__btn{font-size:13.5px;color:var(--text-inverse);line-height:1.65}
.legal-links__btn{background:none;border:0;padding:0;font-family:inherit;cursor:pointer}
footer.site .legal-links__btn:hover{color:var(--text-inverse)}
/* ==== chooser, stubs, article ==== */
.chooser{grid-column:9 / span 4;align-self:end}
.chooser__opt{display:block;border-top:2px solid var(--brand-navy);padding:20px 0 22px;transition:background-color var(--duration-hover) var(--ease-standard)}
.chooser__opt:hover{background:var(--white)}
.chooser__n{font-family:var(--font-display);font-weight:500;font-size:26px;color:var(--text-numeral)}
.chooser__t{display:block;font-family:var(--font-display);font-weight:500;font-size:24px;line-height:1.1;color:var(--text-heading);margin-top:10px}
.chooser__d{display:block;font-size:13.5px;line-height:1.55;color:var(--text-muted);margin-top:6px}
.chooser__c{display:inline-block;margin-top:14px;font-size:11px;font-weight:700;letter-spacing:.10em;text-transform:uppercase;color:var(--brand-navy)}
.chooser__alt{margin-top:26px;font-size:13px;line-height:1.6;color:var(--text-muted)}
.stublist{margin:26px 0 0;padding:0;list-style:none;border-top:2px solid var(--brand-navy)}
.stublist li{border-bottom:1px solid var(--line)}
.stublist a{display:block;padding:15px 0;font-family:var(--font-display);font-weight:500;font-size:20px;color:var(--brand-navy)}
/* Production page templates. Destination lists extend the existing hairline .stublist;
   .pg-actions is the shared action row. No new type, color or spacing values. */
.stublist--dest a{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.stublist--dest small{display:block;margin-top:4px;font-family:var(--font-sans);font-size:13px;font-weight:400;line-height:1.45;color:var(--text-secondary);max-width:52ch}
.stublist--dest .ar{flex:0 0 auto;font-size:15px;line-height:1.3;color:var(--brand-navy)}
.pg-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;margin-top:26px}
.pg-p{font-family:var(--font-sans);font-size:17px;line-height:1.65;color:var(--text-secondary);max-width:62ch;margin:18px 0 0;text-wrap:pretty}
.pg-tel{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-sans);font-size:14.5px;font-weight:600;color:var(--brand-navy);text-decoration:none}
.pg-tel:hover{color:var(--sun-700)}
.stublist--dest small,.stublist a small{display:block;margin-top:4px;font-family:var(--font-sans);font-size:13px;font-weight:400;line-height:1.45;color:var(--text-secondary);max-width:52ch}
.pg-rail{border-top:2px solid var(--brand-navy);padding-top:18px}
.pg-rail .eyebrow{margin-bottom:6px}
.pg-deeper{margin-top:38px}
.pg-slots{list-style:none;margin:34px 0 0;padding:0;display:grid;gap:1px;background:var(--line)}
.pg-slots li{background:var(--brand-paper);padding:22px 0 22px}
.pg-slots__n{display:block;font-family:var(--font-display);font-size:19px;color:var(--brand-accent)}
.pg-slots__t{display:block;margin-top:6px;font-family:var(--font-display);font-size:22px;line-height:1.2;color:var(--brand-navy)}
.art-h{font-size:54px;line-height:1.04;letter-spacing:-.025em;margin:16px 0 0;max-width:22ch}
.art-s{font-size:20px;line-height:1.55;color:var(--text-secondary);margin-top:18px;max-width:56ch}
/* ==== container-driven stacking for the new blocks ==== */
@container page (max-width:1180px){
  .caj-media .ds-media{max-height:440px}
  .caj-photo{max-height:440px}
}
@container page (max-width:1100px){
  .insv-lead,.insv-lead--solo{grid-column:1 / -1}
  .insv-rail{grid-column:1 / -1;margin-top:34px}
  .ilead__h{max-width:26ch}
}
@container page (max-width:900px){
  .insv-head,.insv-all{grid-column:1 / -1}
  .insv-all{justify-self:start;margin-top:26px;order:9}
}
@container page (max-width:720px){
  .insv .container{padding-top:44px;padding-bottom:44px}
  .insv-h{font-size:29px}
  .insv-lead{margin-top:10px}
  .ilead__h{font-size:28px}
  .irow__h{font-size:22px}
}
@container page (max-width:900px){
  .caj-media{grid-column:1 / -1;align-self:start;margin-right:calc(-1 * var(--caj-edge))}
  .caj-media .ds-media{aspect-ratio:4 / 3;max-height:400px}
  .caj-photo{aspect-ratio:4 / 3;max-height:400px}
  .caj-photo img{object-position:64% 52%}
  .caj-photo{border-radius:0}
  .caj-copy{grid-column:1 / -1;align-self:start;padding-top:34px}
  .caj-copy .ds-sh__lede,.caj-sub{max-width:52ch}
  .rowhead{display:none}
  .iteaser__t{font-size:32px;max-width:none}
  .final-h{font-size:44px;max-width:none}
  .chooser{justify-self:start}
}
@container page (max-width:720px){
  .caj{--caj-edge:20px}
  .caj-photo{aspect-ratio:4 / 5;max-height:none}
  .caj-photo img{object-position:58% 42%}
  .proofband .container{padding-top:44px;padding-bottom:44px}
  .ds-proof{grid-template-columns:1fr;gap:22px}
  .ds-proof__title{font-size:29px}
  .ds-proof__item,.ds-proof__item--wide{grid-template-rows:auto 16px auto;padding-left:16px}
  .ds-proof__item--wide .ds-proof__value{font-size:27px}
  .ds-proof__value{font-size:27px}
  .ds-proof__pending{width:100%;max-width:78px;height:22px}

  .art-h{font-size:36px}
  .iteaser__t{font-size:27px}
}



@container page (max-width:1000px){
  .navpanel{display:none !important}
}
@container page (max-width:1200px){

}

/* ---- primary masthead action ---- */
.hdrcta{display:inline-flex;align-items:center;justify-content:center;gap:10px;flex:0 0 auto;grid-column:3;justify-self:end;min-height:50px;min-width:182px;padding:0 22px;background:var(--action-primary-bg);color:var(--action-primary-fg);border:1px solid var(--action-primary-bg);border-radius:var(--radius-control);font-family:var(--font-sans);font-size:15.5px;font-weight:600;letter-spacing:.01em;text-decoration:none;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}
.hdrcta:hover{background:var(--action-primary-bg-hover);border-color:var(--action-primary-bg-hover);color:var(--action-primary-fg)}
.hdrcta .ic{transition:transform var(--duration-hover) var(--ease-standard)}
.hdrcta:hover .ic{transform:translateX(3px)}
@container page (max-width:1240px){
  nav.main{gap:26px}
  nav.main>a,.navtoggle{font-size:14.5px}
  .hdrcta{min-width:auto}
  .navpanel{min-width:700px}
}

/* ContourField (design system, components/brand/ContourField.jsx) — survey pattern, navy tone,
   opacity 0.16, 64px grid. CSS line work only; supports content, never carries a layout. */
.contourfield{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(0,43,84,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(0,43,84,.16) 1px,transparent 1px);background-size:64px 64px}

/* Primary-nav base: a transparent 2px border keeps control heights stable; its colour NEVER
   changes. The single .nav-label::after underline is the only desktop indicator. */
nav.main>a,nav.main .navtoggle{border:0;border-bottom:2px solid transparent}


/* ---- primary navigation: one rule set for every top-level control ----
   A control with a dropdown (.navitem > .navlink, upgraded to .navtoggle by enhance.js) and a
   direct link (nav.main > a) must be identical in height, baseline, type and state geometry.
   Declared last so it beats both the design system's bare `a` and .navtoggle's own resets. */
nav.main{flex-wrap:nowrap}
/* Label link and chevron toggle are BOTH visible controls: the label navigates to the landing
   page, the chevron toggles the menu. */
nav.main>.navitem{display:flex;align-items:stretch;position:static;gap:7px}
nav.main>a,
nav.main>.navitem>.navlink,
nav.main>.navitem>.navtoggle{display:flex;align-items:center;gap:7px;height:100%;box-sizing:border-box;padding:0;background:none;border:0;border-bottom:2px solid transparent;font-family:var(--font-sans);font-size:15.5px;font-weight:500;letter-spacing:.005em;line-height:1;white-space:nowrap;color:var(--brand-navy);text-decoration:none;cursor:pointer;transition:border-color var(--duration-hover) var(--ease-standard),color var(--duration-hover) var(--ease-standard)}
nav.main .navitem.is-open>.navlink{font-weight:600}
/* ONE desktop nav indicator system — a single pseudo (.navlink::after) flush at the nav bar's
   bottom edge, 3px tall, spanning the nav item (label + chevron). No line beneath the text, no
   second pseudo, no header-bottom border. Base is transparent; INACTIVE hover/focus-within/open =
   orange; CURRENT = Navy. The Navy (active) rule is declared AFTER the orange (hover/open) rule at
   equal specificity, so active always wins, including active+hover and active+open. Grouped items
   extend the width past the 7px gap + ~9px chevron; About (a direct link, no chevron) is label-width. */
nav.main .navlink::after{content:"";position:absolute;left:0;bottom:-2px;height:3px;width:100%;background:transparent;pointer-events:none;transition:background-color var(--duration-hover) var(--ease-standard)}
nav.main .navitem .navlink::after{width:calc(100% + 16px)}
nav.main>.navitem:hover .navlink::after,nav.main>.navitem:focus-within .navlink::after,nav.main .navitem.is-open .navlink::after,nav.main>a:hover::after,nav.main>a:focus-visible::after{background:var(--brand-accent)}
nav.main .navitem.is-current .navlink::after,nav.main>a[aria-current]::after{background:var(--brand-navy)}
.drawer-sec.is-current>.drawer-head{box-shadow:inset 2px 0 0 var(--brand-navy)}
.drawer-plain a[aria-current]{color:var(--brand-navy);font-weight:600}

/* Utility strip at small widths: the phone label and the search word are dropped before the
   row can overlap itself. */
@container page (max-width:720px){
  .util .container{gap:10px}
  .util-phone__l,.util-follow__l{display:none}
  .loginbtn,.util-search{padding:0 12px;font-size:11.5px}
  .util-search{font-size:0;gap:0}
}
@container page (max-width:520px){
  .loginbtn{font-size:0;gap:0;padding:0 10px}
  .loginbtn .ic{display:none}
  .loginbtn::after{content:"Login";font-size:11.5px;font-weight:600;letter-spacing:.06em}
}

/* Nav fit, measured rather than assumed: with the JavaScript chevrons the five controls plus
   logo and CTA need ~1235px at full size. One compaction step, then the drawer — never a
   wrapped masthead. */
@container page (max-width:1340px){
  nav.main{gap:26px}
  nav.main>a,nav.main>.navitem>.navlink,nav.main>.navitem>.navtoggle{font-size:14.5px}
  .hdrcta{font-size:14.5px}
}
@container page (max-width:1260px){
  nav.main{gap:20px}
  nav.main>a,nav.main>.navitem>.navlink,nav.main>.navitem>.navtoggle{font-size:14px}
  .hdrcta{min-width:auto;padding:0 18px;font-size:14px}
  header.site>.container{gap:28px}
}
@container page (max-width:1199px){
  nav.main{display:none}
  .navpanel{display:none !important}
  .navtrigger{display:inline-flex;grid-column:2;justify-self:end}
  header.site,header.site>.container{height:84px}
  header.site>.container{grid-template-columns:1fr auto;gap:20px}
  .brand .ds-logo{height:40px}
  .util .container{height:44px}
  .utilr,.loginbtn,.util-search{height:44px}
  .utilsoc .soc{height:44px}
  header.site .hdrcta{display:none !important}
}

/* ==== hero: full-width background media (hero-only overrides) ==== */
.hero--media{position:relative;padding:0;background:var(--navy-800);display:flex;align-items:center;min-height:clamp(430px,50vh,520px);overflow:hidden}
.hero--media .hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:75% 48%}
/* Navy scrim, strongest left, clear by the right third so the property and the California
   light stay visible. Not a black cinematic wash. */
.hero--media .hero__scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,27,54,.93) 0%,rgba(0,27,54,.85) 26%,rgba(0,27,54,.44) 50%,rgba(0,27,54,.12) 70%,rgba(0,27,54,0) 84%)}
.hero--media .container{position:relative;width:100%;padding-top:72px;padding-bottom:76px}
.hero--media .hero-copy{grid-column:1 / span 6;display:block}
.hero--media .rule48{margin-bottom:12px}
.hero--media .eyebrow{color:var(--brand-sky)}
/* Headline widened to a two-line break ("Capitalize on / the Opportunity") — eyebrow +
   headline + lead read as one editorial group; CTAs sit apart from the narrative. */
.hero--media h1{color:var(--text-inverse);font-size:72px;line-height:.99;letter-spacing:-.03em;max-width:15ch;margin-top:17px}
.hero--media .lead{color:#E2EAF1;font-size:20px;line-height:1.47;max-width:40ch;margin-top:27px}
.hero--media .heroactions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.hero--media .hero__ph{margin-top:26px}
/* Hero-only expressive treatment: Sun Accent carries the primary action against the
   photograph, with Navy text for contrast. The global Button and the masthead CTA stay Navy. */
.hero--media .heroactions .ds-btn--primary{background:var(--brand-accent);border-color:var(--brand-accent);color:var(--brand-navy)}
.hero--media .heroactions .ds-btn--primary:hover{background:var(--sun-600,#C9622E);border-color:var(--sun-600,#C9622E);color:var(--brand-navy)}
.hero--media .heroactions .ds-btn--inverse-outline{border-color:rgba(255,255,255,.62);color:var(--text-inverse)}
.hero--media .heroactions .ds-btn--inverse-outline:hover{background:rgba(255,255,255,.12);border-color:var(--text-inverse)}
/* Short desktop viewports (~768px): step the display size one notch and tighten the frame so
   the Choose Your Path intro crests the fold. Mirrors the existing max-height pattern above. */
@media (max-height:820px){.hero--media .container{padding-top:36px;padding-bottom:28px}.hero--media h1{font-size:64px}.hero--media .lead{margin-top:20px}.hero--media .heroactions{margin-top:30px}}
@container page (max-width:1100px){
  .hero--media h1{font-size:60px}
  .hero--media .hero-copy{grid-column:1 / span 8}
  .hero--media .hero__img{object-position:78% 50%}
  .hero--media .hero__scrim{background:linear-gradient(90deg,rgba(0,27,54,.94) 0%,rgba(0,27,54,.88) 38%,rgba(0,27,54,.60) 62%,rgba(0,27,54,.24) 82%,rgba(0,27,54,.06) 100%)}
}
@container page (max-width:720px){
  .hero--media{min-height:470px}
  .hero--media .container{padding-top:40px;padding-bottom:40px}
  .hero--media .hero-copy{grid-column:1 / -1}
  .hero--media h1{font-size:42px;max-width:none}
  .hero--media .lead{font-size:16.5px;max-width:32ch}
  /* No mobile crop exists yet: hold the building in frame and carry the copy on a stronger
     vertical scrim rather than centre-cropping the photograph blindly. */
  .hero--media .hero__img{object-position:76% 42%}
  .hero--media .hero__scrim{background:linear-gradient(180deg,rgba(0,27,54,.90) 0%,rgba(0,27,54,.70) 46%,rgba(0,27,54,.40) 100%)}
  .hero--media .heroactions{gap:10px}
  .hero--media .ds-btn{width:100%}
}

/* Dropdown indicator. Explicit inline SVG, currentColor stroke, one interactive target
   with its label. About has no panel and therefore no chevron. */
nav.main .nav-chevron{display:block;width:9px;height:6px;flex:0 0 9px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.7;overflow:visible;transition:transform 180ms ease,opacity 180ms ease}
nav.main [aria-expanded="true"] .nav-chevron,nav.main .navitem.is-open>.navtoggle .nav-chevron{transform:rotate(180deg);opacity:1}
nav.main>.navitem:hover>.navtoggle .nav-chevron,nav.main>.navitem>.navtoggle:focus-visible .nav-chevron{opacity:1}
html:not(.js) nav.main .navitem:hover>.navtoggle .nav-chevron{transform:rotate(180deg);opacity:1}

/* ==== Choose your path (homepage only) ====
   Three selection panels on the full-width Coastal Fog. Local classes: the global AudienceCard
   is untouched. */
.triage{background:var(--brand-fog);padding:0}
.triage .container{padding-top:54px;padding-bottom:58px;align-items:stretch}
.triage-intro{grid-column:1 / span 3;display:flex;flex-direction:column;justify-content:center;padding-right:12px}
.triage h2{font-size:32px;line-height:1.05;max-width:none;margin-top:0}
.triage-intro__l{margin-top:14px;font-size:14px;line-height:1.55;color:var(--text-secondary);max-width:26ch}
.tri-rows{grid-column:4 / span 9;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;background:none;border:0}
.tri-panel{display:flex;flex-direction:column;background:var(--brand-paper);border:1px solid var(--line);border-radius:3px;padding:26px 24px 22px;position:relative;text-decoration:none;transition:background-color 200ms var(--ease-standard),border-color 200ms var(--ease-standard)}
.tri-panel::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:transparent;border-radius:3px 3px 0 0;transition:background-color 200ms var(--ease-standard)}
.tri-panel__t{font-family:var(--font-display);font-weight:500;font-size:27px;line-height:1.08;color:var(--text-heading);margin-top:0;transition:color 200ms var(--ease-standard)}
/* Two-line minimum so the intent zone is structural, not copy-dependent, and the three action
   lines share one baseline without manual line breaks. */
.tri-panel__i{font-size:15.5px;line-height:1.45;color:var(--text-primary);margin:10px 0 22px;min-height:calc(2 * 1.45 * 15.5px)}
.tri-panel__a{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font-family:var(--font-sans);font-size:12.5px;font-weight:600;letter-spacing:.06em;color:var(--brand-navy);display:flex;align-items:center;gap:8px;transition:color 200ms var(--ease-standard)}
.tri-panel__ar{display:inline-block;transition:transform 200ms var(--ease-standard)}
.tri-panel:hover,.tri-panel:focus-visible{background:var(--white);border-color:var(--brand-navy)}
.tri-panel:hover::before,.tri-panel:focus-visible::before{background:var(--brand-accent)}
.tri-panel:hover .tri-panel__t,.tri-panel:focus-visible .tri-panel__t{color:var(--brand-navy)}
.tri-panel:hover .tri-panel__a,.tri-panel:focus-visible .tri-panel__a{color:var(--sun-700)}
.tri-panel:hover .tri-panel__ar{transform:translateX(5px)}
@container page (max-width:1100px){
  .triage-intro{grid-column:1 / -1;padding-right:0}
  .triage-intro__l{max-width:46ch}
  .tri-rows{grid-column:1 / -1;margin-top:26px;gap:16px}
}
@container page (max-width:760px){
  .triage .container{padding-top:38px;padding-bottom:42px}
  .tri-rows{grid-template-columns:1fr;gap:14px}
  .tri-panel{padding:22px 20px 20px}
  .tri-panel__t{font-size:25px}
  .tri-panel__i{min-height:0}
}
/* Success stories — three funded transactions, open editorial 4/4/4.
   No card borders: the photography, hairline and type carry the structure. Local classes only. */
.stories .container{padding-top:84px;padding-bottom:84px;align-items:end}
.stories-head{grid-column:1 / span 8}
.stories-eyebrow{position:relative;padding-top:18px}
.stories-eyebrow::before{content:"";position:absolute;top:0;left:0;width:48px;height:2px;background:var(--brand-accent)}
.stories-h{font-family:var(--font-display);font-weight:500;font-size:38px;line-height:1.1;letter-spacing:-.02em;color:var(--text-heading);margin-top:14px;max-width:26ch;text-wrap:balance}
.stories-sub{margin-top:14px;font-size:16.5px;line-height:1.6;color:var(--text-secondary);max-width:56ch}
.stories-all{grid-column:9 / span 4;justify-self:end;align-self:start;margin-top:65px;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--brand-navy)}
.stories-all:hover{color:var(--sun-700)}
.stories-list{grid-column:1 / -1;margin-top:46px;padding-top:0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.story{display:flex;flex-direction:column;padding-top:26px;color:inherit;text-decoration:none}
.story__photo{margin:0;aspect-ratio:16 / 10;background:var(--brand-fog);overflow:hidden}
.story__photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 520ms cubic-bezier(.2,.6,.2,1)}
.story:hover .story__photo img{transform:scale(1.02)}
.story__meta{margin-top:16px;font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-eyebrow)}
.story__h{font-family:var(--font-display);font-weight:500;font-size:23px;line-height:1.2;letter-spacing:-.015em;color:var(--text-heading);margin-top:10px;text-wrap:pretty}
.story__t{margin-top:10px;font-size:15px;line-height:1.6;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.story__a{margin-top:auto;padding-top:20px;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--brand-navy)}
.story:hover .story__a{color:var(--sun-700)}
.story:focus-visible{outline:2px solid var(--brand-accent);outline-offset:4px}
.devonly{display:none}
[data-dev="true"] .devonly{display:block;margin-top:14px;font-size:11px;line-height:1.9;color:var(--text-muted)}
[data-dev="true"] .stories-dev{grid-column:1 / -1}
[data-dev="true"] .ds-proof__dev{display:block;margin-top:10px;font-size:10px;letter-spacing:.06em;color:var(--brand-sky)}
[data-dev="true"] .ds-proof__dev .ap-ph{display:inline}
@container page (max-width:1400px){
  .insv-h{font-size:34px}
  .ilead__h{font-size:31px}
  .proofband .container{padding-top:48px;padding-bottom:48px}
  .testi-h{font-size:34px}
  .testi-q{font-size:19px}
  .testi-item.is-featured .testi-q{font-size:24px}
  .ds-proof__title{font-size:26px}
  .ds-proof__value{font-size:34px}
  .ds-proof__item{grid-template-rows:minmax(36px,auto) minmax(16px,auto) auto}
  .ds-proof__item--wide .ds-proof__value{font-size:31px}
  .stories .container{padding-top:72px;padding-bottom:72px}
  .stories-h{font-size:34px}
  .stories-list{gap:0 28px;margin-top:40px}
  .story__h{font-size:21.5px}
}
@container page (max-width:1180px){
  .ds-proof{grid-template-columns:repeat(2,1fr);gap:28px 24px}
  .ds-proof__intro{grid-column:1 / -1;padding-right:0}
  .ds-proof__item,.ds-proof__item--wide{grid-column:span 1;min-height:0}
}
@container page (max-width:1100px){
  .stories-head{grid-column:1 / -1}
  .stories-all{grid-column:1 / -1;justify-self:start;align-self:start;margin-top:20px}
  .stories-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 28px;margin-top:34px}
}
@container page (max-width:760px){
  .stories .container{padding-top:56px;padding-bottom:56px}
  .stories-h{font-size:30px}
  .stories-list{grid-template-columns:1fr;gap:32px}
  .story__photo{aspect-ratio:3 / 2}
}

/* ==== T1 refinement pass: tablet footer columns, mobile hit areas, mobile triage tightening ==== */
.skip{display:inline-flex;align-items:center;min-height:44px}
@container page (max-width:900px){
  .foot-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px}
}
@container page (max-width:720px){
  .utilr,.loginbtn,.util-search{height:44px}
  .util-phone{min-height:44px}
  footer.site ul{gap:0}
  footer.site ul a{display:flex;align-items:center;min-height:44px}
  .legal-links{flex-wrap:wrap;gap:0 20px}
  .legal-links a,.legal-links__btn{display:inline-flex;align-items:center;min-height:44px}
  .stories-all,.caj-link,.insv-all{display:inline-flex;align-items:center;min-height:44px}
  .triage .container{padding-top:36px;padding-bottom:36px}
  .tri-rows{gap:12px;margin-top:20px}
  .tri-panel{padding:18px 18px 16px}
  .tri-panel__i{margin:8px 0 16px;min-height:0}
  .tri-panel__a{padding-top:12px}
  .triage-intro__l{margin-top:10px}
}
@container page (max-width:520px){
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 16px}
}
/* Narrow-phone fallback: two nav columns get cramped below ~360px. */
@container page (max-width:359px){
  .foot-cols{grid-template-columns:1fr;gap:26px}
}

/* ==== social clusters: utility strip, drawer, footer. The SVGs carry their own rounded-square
   perimeter; boxes below are hit areas only. ==== */
.soc{display:inline-flex;align-items:center;justify-content:center;color:var(--sky-300)}
.soc svg{width:16px;height:16px;display:block}
a.soc:hover{color:var(--white)}
/* Follow + social: one compact cluster. Auto margins on the cluster and on .utilr split the
   strip's free space, seating the cluster mid-right rather than glued to Client login.
   Badges: 20px artwork in 27px-wide boxes (7px visible gaps, 48px-tall targets) — the box no
   longer dictates the visual rhythm. */
.util-follow{display:flex;align-items:center;margin-left:auto}
.util-follow__l{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-sky);margin-right:9px}
.utilsoc{display:flex;align-items:center}
.utilsoc .soc{width:27px;height:48px;--soc-glyph:var(--navy-800)}
.utilsoc .soc svg{width:20px;height:20px}
.utilr{margin-left:auto}
.drawer-soc{display:flex;gap:6px;padding:2px 12px;border-bottom:1px solid var(--line);background:var(--brand-fog)}
.drawer-soc .soc{width:48px;height:48px;color:var(--brand-navy);--soc-glyph:var(--brand-fog)}
.drawer-soc .soc svg{width:20px;height:20px}
.drawer-soc a.soc:hover{color:var(--sun-700)}
.foot-soc{display:flex;gap:7px;margin:20px 0 0}
.foot-soc .soc{width:30px;height:30px;opacity:.72;--soc-glyph:var(--navy-800)}
.foot-soc a.soc:hover{opacity:1}
.foot-soc .soc svg{width:24px;height:24px}
.soc:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
@container page (max-width:720px){.foot-soc .soc{width:44px;height:44px}}
@container page (max-width:520px){
  .util-follow{display:none}
}

/* Client login reads as one group: 5px label-to-chevron, 26px chevron-to-divider (Search side of the divider keeps its 18px). */
.loginbtn{padding-right:26px}
.loginbtn .lucide-chevron-down{margin-left:-3px}

/* ==== V2.1 mega menu, destination-row model (prototype: Borrowers, Insights) ==== */
.navpanel--mega{min-width:0;max-width:none;width:min(1376px,calc(100% - 64px));overflow:hidden}
.megamenu{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding:26px 40px 28px;align-items:start}
.mega-main{grid-column:1 / span 8}
.mega-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.mega-cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mega-glabel{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-eyebrow);margin:0 0 4px;padding:0 10px}
.mega-row{display:flex;gap:12px;align-items:flex-start;padding:9px 10px;border-radius:4px;transition:background-color var(--duration-hover) var(--ease-standard)}
.mega-row:hover,.mega-row:focus-visible{background:var(--brand-fog)}
.mega-row__ic{flex:0 0 auto;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:var(--sky-100);border-radius:4px;color:var(--brand-navy);transition:color var(--duration-hover) var(--ease-standard)}
.mega-row__t{display:block;font-size:14.5px;font-weight:600;line-height:1.3;color:var(--brand-navy)}
.mega-row__d{display:block;margin-top:2px;font-size:13px;line-height:1.42;color:var(--text-secondary);max-width:270px}
.mega-rail{grid-column:9 / span 4;background:var(--brand-fog);align-self:stretch;margin:-26px -40px -28px 0;padding:26px 28px;display:flex;flex-direction:column;gap:10px}
.mega-rail .mega-glabel{padding:0}
/* Rail teaser: the record's own standfirst, clamped so the rail height never shifts. */
.mega-mini__d{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin-top:4px;font-size:12.5px;line-height:1.45;color:var(--text-secondary)}
.mega-mini{display:flex;gap:14px;align-items:flex-start;padding:8px;margin:0 -8px;border-radius:4px;transition:background-color var(--duration-hover) var(--ease-standard)}
.mega-mini:hover{background:rgba(255,255,255,.66)}
.mega-mini__th{flex:0 0 92px;width:92px;aspect-ratio:4 / 3;overflow:hidden;display:block;border-radius:6px}
.mega-mini__th img,.mega-mini__th .ds-media{width:100%;height:100%;object-fit:cover;display:block}
.mega-mini__meta{display:block;font-size:9.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--text-eyebrow)}
.mega-mini__h{display:block;font-family:var(--font-display);font-weight:500;font-size:17px;line-height:1.28;color:var(--text-heading);margin-top:4px;text-wrap:pretty}
.mega-mini:hover .mega-mini__h{color:var(--sun-700)}
.mega-mini__a{display:inline-block;margin-top:5px;font-size:11.5px;font-weight:600;color:var(--brand-navy);white-space:nowrap}
/* Step 7E stacked feature (Investors rail): 3:2 landscape frame across the rail width, copy below. */
.mega-mini--stack{flex-direction:column;gap:10px}
.mega-mini--stack{padding:6px 8px}
.mega-mini__th--wide{flex:none;width:100%;aspect-ratio:16 / 9}
.mega-mini__th--wide img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block}
.mega-mini--stack .mega-mini__h{font-size:17px;line-height:1.25}
/* Step 7G: the published standfirsts are one long sentence and read as clipped at any clamp, so
   stacked rails show eyebrow, title and action only (matching the Success Story rails). */
.mega-mini--stack .mega-mini__d{display:none}
.mega-mini--stack .mega-mini__meta{margin-top:2px}
.mega-mini--stack .mega-mini__a{margin-top:8px}
.mega-rail__sep{margin-top:auto;padding-top:14px;border-top:1px solid var(--brand-stone)}
.mega-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-navy)}
.mega-cta .ar{transition:transform var(--duration-hover) var(--ease-standard)}
.mega-cta:hover{color:var(--sun-700)}
.mega-cta:hover .ar{transform:translateX(4px)}
/* .navlink is the positioning context for the single desktop indicator (.navlink::after). */
.navlink{position:relative}

/* --- Header logo: one-shot reveal. The SVG is inlined in the masthead (a <style> inside an
   <img>-referenced SVG is stripped in delivery), so the motion lives here. Default state is
   the FINISHED lockup — the mask windows are open and the sweep is transparent in the markup,
   so a failed stylesheet or reduced-motion preference simply shows the completed logo. The
   animation runs once on load with fill:both; nothing loops and nothing replays on hover. --- */
.brand .ap-logo{display:block;height:56px;width:auto}
.ap-logo .ap-wipe{animation-timing-function:var(--ease-standard);animation-iteration-count:1;animation-fill-mode:both}
.ap-logo .ap-wipe--word{animation-name:apWipeInL;animation-delay:80ms;animation-duration:740ms}
.ap-logo .ap-wipe--portfolio{animation-name:apWipeInR;animation-delay:820ms;animation-duration:420ms}
/* The arrow is drawn LEFT→RIGHT, in the stroke’s own direction of travel, and starts while
   the stroke is still arriving — the sweep hands off into the mark rather than the mark
   appearing after it. No opacity reveal on the arrow: it is only ever the wipe. */
.ap-logo .ap-wipe--arrow{animation-name:apWipeInR;animation-delay:1000ms;animation-duration:420ms}
.ap-logo .ap-sweep{animation:apLogoSweep 1200ms var(--ease-standard) 120ms 1 both}
@keyframes apWipeInL{from{transform:translateX(700px)}to{transform:translateX(0)}}
@keyframes apWipeInR{from{transform:translateX(-700px)}to{transform:translateX(0)}}
@keyframes apLogoSweep{0%{opacity:0;transform:skewX(-6deg) translateX(-620px)}10%{opacity:.85}68%{opacity:.85}88%{opacity:.46}100%{opacity:0;transform:skewX(-6deg) translateX(-40px)}}
@media (prefers-reduced-motion:reduce){.ap-logo .ap-wipe,.ap-logo .ap-sweep{animation:none}}


/* ===== Top-level landing hero (Sep 2026 global standard) — full-bleed photographic hero with a
   controlled Navy gradient scrim, left-aligned copy. Mirrors the approved Borrowers hero system.
   Applied to /brokers/, /fund/, /about/ (/borrowers/ already uses its own identical .bw-hero).
   Per-page image + object-position keep crops/compositions distinct. ===== */
.t1hero{position:relative;background:var(--brand-navy);isolation:isolate;overflow:hidden}
.t1hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.t1hero__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(0,27,45,.86) 0%,rgba(0,27,45,.72) 34%,rgba(0,27,45,.28) 62%,rgba(0,27,45,.10) 100%)}
.t1hero__g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px 40px;min-height:70vh;align-content:center;padding-top:104px;padding-bottom:104px}
.t1hero__copy{grid-column:1 / span 6}
.t1hero__h{font-family:var(--font-display);font-weight:500;font-size:72px;line-height:.98;letter-spacing:-.032em;color:#fff;margin:10px 0 0;max-width:14ch;text-wrap:balance}
.t1hero__l{margin-top:22px;font-family:var(--font-sans);font-size:19px;line-height:1.58;color:#DCE6EE;max-width:46ch}
.t1hero__a{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;margin-top:32px}
.t1hero__tel,.t1hero__sec{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-sans);font-size:14.5px;font-weight:600;color:var(--brand-sky);text-decoration:none}
.t1hero__tel:hover,.t1hero__sec:hover{color:#fff}
@container page (max-width:1240px){.t1hero__h{font-size:58px}.t1hero__copy{grid-column:1 / span 7}}
@container page (max-width:900px){.t1hero__g{min-height:0;padding-top:88px;padding-bottom:72px}.t1hero__copy{grid-column:1 / -1}.t1hero__h{font-size:42px;max-width:16ch}.t1hero__l{font-size:17px}}
@container page (max-width:620px){.t1hero__h{font-size:34px}}


/* ===== "How Alliance Portfolio thinks" brand cue (refined Sep 2026): an abstract coastal-contour
   field — flowing horizon / topography lines only (the earlier grid / parcel-box shapes were
   removed). A restrained recurring signal on underwriting / evaluation / diligence / execution
   Navy sections only. Full browser width, behind content, low contrast, never on legibility.
   STATIC (Sep 2026): no animation of any kind — the field is fully visible immediately at opacity
   .11, no opacity transition, no path drawing, no IntersectionObserver, no scroll trigger, no
   `.is-in` dependency, no JS. Motion may be reintroduced later only on explicit request. ===== */
.ap-field{position:relative;isolation:isolate}
.ap-mfield{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;z-index:-1;opacity:var(--ap-field-o,.02);pointer-events:none}
/* Step 7Z: ONE strength for every decorative contour field (shared .ap-mfield + About's .ab-mth__field).
   The page reveals (.bk/.bw/.iv/... .X-rv>*, specificity 0,2,0+) matched the field as a direct child and
   drove it to opacity 1 once a section revealed; this guard pins it static at the token. */
:root{--ap-field-o:.02}
.ap-field>.ap-mfield,.ab-mth>.ab-mth__field{opacity:var(--ap-field-o)!important;transform:none!important;transition:none!important}

/* ===== SHARED INTERIOR SPLIT-HERO SYSTEM (Sep 2026) — ONE geometry for every interior content
   hero: loan-programs, how-a-loan-works, working-with-alliance (.lp-hero/.hlw-hero), trust deeds,
   Alliance Mortgage Fund, the investor-type heroes (family offices, self-directed IRA), private
   investors, RIAs, and the Borrower/Broker Questions FAQ heroes. Uniqueness = photography, crop,
   headline, copy — NEVER geometry: a 5/5 twelve-column split, copy vertically centred left at a
   consistent measure, a FIXED 3:2 image right (width:100%, object-fit:cover, 6px radius) over the
   pale-Sky offset panel. Desktop-scoped (min-width:901px), so each page's own <=900 stacking stays
   authoritative on mobile. !important because page sheets load after styles.css at equal
   specificity; this layer is the single source of truth for interior-hero geometry. */
@container page (min-width:901px){
  .lp-hero,.hlw-hero,.iv-hero,.ra-hero,.amf-hero,.td-hero,.pi-hero{padding:72px 0 80px!important}
  .lp-hero__g,.hlw-hero__g,.iv-hero__g,.ra-hero__g,.amf-hero__g,.td-hero__g,.pi-hero__g{align-items:center!important;min-height:0!important;gap:0 40px!important}
  .lp-hero__copy,.hlw-hero__copy,.iv-hero__copy,.ra-hero__copy,.amf-hero__copy,.td-hero__copy,.pi-hero__copy{grid-column:1 / span 5!important;align-self:center!important}
  .lp-hero__ph,.hlw-hero__ph,.iv-hero__ph,.ra-hero__ph,.amf-hero__ph,.td-hero__ph,.pi-hero__ph{grid-column:7 / span 6!important;align-self:center!important;width:100%!important;height:auto!important;max-width:none!important;margin:0!important;position:relative;isolation:isolate}
  .lp-hero__ph::before,.hlw-hero__ph::before,.iv-hero__ph::before,.ra-hero__ph::before,.amf-hero__ph::before,.td-hero__ph::before,.pi-hero__ph::before{content:""!important;position:absolute;inset:26px 44px -26px -26px!important;background:rgba(145,195,235,.30)!important;border-radius:6px!important;z-index:-1;display:block!important}
  .lp-hero__ph img,.hlw-hero__ph img,.iv-hero__ph img,.ra-hero__ph img,.amf-hero__ph img,.td-hero__ph img,.pi-hero__ph img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:1 / 1!important;max-height:none!important;object-fit:cover!important;border-radius:6px!important}
  .bq-hero .iq-hero__copy,.bq-hero .iq-search,.bkq-hero .iq-hero__copy,.bkq-hero .iq-search{grid-column:1 / span 5!important}
  .bq-hero__ph,.bkq-hero__ph{grid-column:7 / span 6!important;grid-row:1 / span 2!important;align-self:center!important;max-width:none!important}
  .bq-hero__ph::before,.bkq-hero__ph::before{inset:26px 44px -26px -26px!important}
  .bq-hero__ph img,.bkq-hero__ph img{aspect-ratio:1 / 1!important;height:auto!important;max-height:none!important}
}

/* ==== CTA arrow standard (Sep 2026) ==== */
/* Label may wrap on narrow widths, but the last word and the arrow are one unbreakable unit, so
   the arrow can never sit on a line by itself. The arrow never shrinks. No hover insertion. */
.ap-cta__end{white-space:nowrap}
.ap-cta__ar{display:inline-block;flex:0 0 auto;margin-left:.1em}
/* Cookie banner open: reserve the banner's measured height so nothing sits underneath it. */
html.cs-open body{padding-bottom:var(--cs-banner-h,0px)}

/* Step 5B investor risk band (verbatim approved block, above the footer on listed investor routes) */
.ap-invrisk{padding:40px 0 48px;background:var(--brand-paper);border-top:1px solid var(--line)}.ap-invrisk .fdp-disc{max-width:860px;margin:0;padding:14px 18px;border-left:3px solid var(--brand-navy);background:#F3F5F6}.ap-invrisk .fdp-disc p{margin:0;font-family:var(--font-sans);font-size:13px;line-height:1.55;color:var(--text-secondary)}
.ap-pastperf{margin:14px 0 0;font-family:var(--font-sans);font-size:13px;line-height:1.5;color:var(--text-muted)}

/* ==== STEP 7A (Sep 29, 2026): fund-forward homepage + Investors mega-menu hierarchy ==== */
/* Investors panel (Step 7D): four jobs in four columns. Col 1 Alliance Mortgage Fund anchors the
   menu through typography alone (no card, no icon) with a hairline + subordinate Trust Deed link;
   cols 2-3 are standard destination columns; col 4 is the Fog editorial/action rail (one featured
   Fund Insight above START A CONVERSATION). Main 9 / rail 3; col 1 is 1.25x the other two. */
/* Step 7G shared system: every lead-column panel (all five) shares the stretch layout, a 340px
   minimum menu height (the Borrowers/About level) and the same rail geometry; Investors and
   Insights grow naturally past it. */
.megamenu--inv{align-items:stretch;min-height:340px}
.megamenu--inv .mega-main{grid-column:1 / span 9;display:flex}
.megamenu--inv .mega-main>.mega-cols{flex:1}
.megamenu--inv .mega-rail{grid-column:10 / span 3}
.megamenu--inv .mega-cols--3{grid-template-columns:1.3fr 1fr 1fr;gap:10px 28px;align-items:stretch}
.mega-lead{padding-right:20px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.mega-lead .mega-glabel{white-space:nowrap}
.mega-lead__act{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:14px 10px 0}
.mega-lead__btn{white-space:nowrap}
.mega-lead__sec{font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--brand-navy);white-space:nowrap}
.mega-lead__sec:hover{color:var(--sun-700)}
.mega-lead__c{display:flex;flex-direction:column;align-items:flex-start;padding:4px 10px 6px;border-radius:4px;text-decoration:none}
.mega-lead__t{display:block;font-family:var(--font-display);font-weight:500;font-size:26px;line-height:1.08;letter-spacing:-.018em;color:var(--brand-navy);transition:color var(--duration-hover) var(--ease-standard)}
.mega-lead__c:hover .mega-lead__t,.mega-lead__c:focus-visible .mega-lead__t{color:var(--sun-700)}
.mega-lead__d{display:block;margin-top:10px;font-size:13.5px;line-height:1.5;color:var(--text-secondary);max-width:34ch;text-wrap:pretty}
.mega-lead__a{display:inline-block;margin-top:14px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-navy)}
.mega-lead__a .ar{display:inline-block;transition:transform var(--duration-hover) var(--ease-standard)}
.mega-lead__c:hover .mega-lead__a .ar{transform:translateX(4px)}
.mega-lead__alt{display:block;margin:auto 10px 0;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.45;color:var(--text-secondary);text-decoration:none}
.mega-lead__altq{display:block}
.mega-lead__alt b{display:inline-block;margin-top:3px;font-weight:600;color:var(--brand-navy);white-space:nowrap}
.mega-lead__alt:hover b{color:var(--sun-700)}
@container page (max-width:1180px){.megamenu--inv .mega-cols--3{grid-template-columns:1.15fr 1fr 1fr;gap:10px 20px}.mega-lead{padding-right:12px}}
/* Hero: Fund-forward headline is three lines, so the display size steps down one notch. */
/* Step 7I: pixel measure (not ch) so the 1440 wrap lands "Private real estate investing, / built on California lending / since 1996."; copy column widened to 7 for the room. */
.hero--fund .hero-copy{grid-column:1 / span 7}
.hero--fund h1{font-size:54px;line-height:1.05;max-width:740px;text-wrap:pretty}
.hero--fund .lead{max-width:44ch}
.hero-tert{margin:22px 0 0;font-family:var(--font-sans);font-size:13.5px;line-height:1.5;color:#C3D3DE}
.hero-tert a{color:#fff;font-weight:600;letter-spacing:.02em}
.hero-tert a:hover{color:var(--sun-300,#E8A87C)}
@media (max-height:820px){.hero--fund h1{font-size:56px;max-width:670px}}
@container page (max-width:1100px){.hero--fund .hero-copy{grid-column:1 / span 8}.hero--fund h1{font-size:54px;max-width:650px}}
@container page (max-width:720px){.hero--fund h1{font-size:38px;max-width:none}.hero-tert{margin-top:18px}}
/* Fund today: the shared proof strip with a disclosure foot. */
.fproof .container{padding-top:44px;padding-bottom:44px}
/* 7L/7M: THREE ROWS. Row 1 intro (full width, CTA beneath the lead) / Row 2 four equal statistics,
   56px figures, one hairline anchor on every column (7N) / Row 3 the verbatim disclosure on a ~100ch measure.
   Proof-section padding (not a stats bar). */
.fproof .container{padding-top:64px;padding-bottom:64px}
.fproof .ds-proof{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 32px}
.fproof .ds-proof__intro{grid-column:1 / -1;padding:0 0 40px;margin-bottom:52px;border-bottom:1px solid rgba(145,195,235,.24)}
.fproof .ds-proof__title{font-size:30px}
.fproof .ds-proof__lead{font-size:15px;max-width:72ch}
.fproof .ds-proof__item{grid-column:span 1;padding-left:26px;grid-template-rows:auto auto auto;row-gap:12px}
.fproof .ds-proof__value{font-size:56px;letter-spacing:-.025em}
.fproof .ds-proof__qual{font-size:13.5px;line-height:1.5;color:#C3D3DE;max-width:26ch}
.fproof-foot{margin-top:56px;padding-top:28px;border-top:1px solid rgba(145,195,235,.24)}
.fproof-link{display:inline-block;margin-top:18px;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.06em;color:#fff;white-space:nowrap}
.fproof-link:hover{color:var(--sun-300,#E8A87C)}
.fproof-disc{margin:0;font-family:var(--font-sans);font-size:12px;line-height:1.55;color:#AFC3D2;max-width:100ch;text-wrap:pretty}
.fproof-disc+.fproof-disc{margin-top:10px}
@container page (max-width:1100px){.fproof .ds-proof{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}.fproof .ds-proof__intro{grid-column:1 / -1;margin-bottom:16px}.fproof .ds-proof__value{font-size:48px}}
@container page (max-width:720px){.fproof .ds-proof{grid-template-columns:1fr;gap:30px 0}.fproof .ds-proof__intro{padding-bottom:30px;margin-bottom:8px}.fproof .ds-proof__title{font-size:27px}.fproof .ds-proof__value{font-size:44px}.fproof .ds-proof__qual{max-width:none}.fproof .ds-proof__item{padding-left:22px}.fproof-foot{margin-top:44px}}
/* Why the Fund: 4 / 8, hairline 2x2 with serif numerals. */
.wfund .container{align-items:start}
.wfund-head{grid-column:1 / span 4;position:sticky;top:112px}
.wfund-h{font-size:38px;line-height:1.1;letter-spacing:-.02em;margin-top:12px;max-width:14ch;text-wrap:balance}
.wfund-l{margin:16px 0 28px;font-size:16px;line-height:1.6;color:var(--text-secondary);max-width:36ch}
.wfund-grid{grid-column:5 / span 8;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.wfund-pt{background:var(--white);padding:0 28px 34px 0}
.wfund-pt:nth-child(n+3){padding-top:32px}
.wfund-pt:nth-child(2n){padding-left:28px}
.wfund-n{display:block;font-family:var(--font-display);font-size:18px;color:var(--text-numeral,var(--brand-accent))}
.wfund-pt__t{font-family:var(--font-display);font-weight:500;font-size:24px;line-height:1.15;color:var(--text-heading);margin-top:14px}
.wfund-pt__d{margin-top:12px;font-size:15px;line-height:1.6;color:var(--text-secondary);max-width:38ch}
.wfund-dev{grid-column:1 / -1}
/* Operating platform (7R): TWO COLUMNS on Navy. Left 1/span 6: idea + quiet CTA + three compact
   credentials (34px, hairline-divided) directly beneath. Right 8/span 5: the five-step operating
   sequence as a VERTICAL timeline, centred against the left block. Geometry is locked per step:
   each li carries its own 12px marker (left:-40px, top:2px, so its centre sits at x=-34px on the
   first text line) and its own 1px connector segment (::after at left:-34.5px, from the marker's
   bottom edge to the next li's marker top edge). Segments, not one long line, so the line can never
   drift relative to the markers regardless of step height; the last li draws no segment. */
.plat .container{align-items:start}
.plat-copy{grid-column:1 / span 5}
.plat-h{color:#fff;font-size:40px;line-height:1.05;letter-spacing:-.025em;margin-top:12px;max-width:16ch;text-wrap:balance}
.plat-l{margin-top:18px;font-size:16px;line-height:1.6;color:#D3DFE9;max-width:48ch}
.plat-cta{display:inline-block;margin-top:18px;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.06em;color:#fff;white-space:nowrap}
.plat-cta:hover{color:var(--sun-300,#E8A87C)}
.plat-stats{grid-column:1 / span 5;margin-top:40px;padding-top:28px;border-top:1px solid rgba(145,195,235,.24);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px}
.plat-stat{padding-left:16px;border-left:1px solid rgba(145,195,235,.32)}
.plat-stat:first-child{padding-left:0;border-left:0}
.plat-stat__v{font-family:var(--font-display);font-weight:500;font-size:34px;line-height:1;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.plat-stat__l{margin-top:10px;font-size:13px;line-height:1.45;color:#C3D3DE;text-wrap:pretty}
.plat-steps{grid-column:7 / span 6;grid-row:1 / span 2;align-self:center;list-style:none;margin:0;padding:0 0 0 48px;display:block}
.plat-step{position:relative;display:grid;grid-template-columns:30px 156px minmax(0,1fr);gap:0 18px;align-items:baseline;padding-bottom:46px}
.plat-step:last-child{padding-bottom:0}
.plat-step::before{content:"";position:absolute;left:-48px;top:5px;width:14px;height:14px;box-sizing:border-box;border-radius:50%;background:var(--brand-navy);border:1px solid var(--brand-sky)}
.plat-step::after{content:"";position:absolute;left:-41.5px;top:19px;bottom:-5px;width:1px;background:rgba(145,195,235,.36)}
.plat-step:last-child::after{display:none}
.plat-step__h{display:contents}
.plat-step__n{display:block;font-family:var(--font-display);font-weight:400;font-size:20px;line-height:24px;color:var(--brand-accent);font-variant-numeric:tabular-nums}
.plat-step__t{display:block;white-space:nowrap;font-family:var(--font-sans);font-size:16px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:24px;color:#fff}
.plat-step__d{display:block;margin:0;font-family:var(--font-sans);font-size:15.5px;line-height:24px;color:#D3DFE9;text-wrap:pretty}
.plat-dev{grid-column:1 / -1}
/* Investor pathways: three hairline columns. */
.ipath.sec{padding:64px 0}
.ipath-head{grid-column:1 / span 8}
.ipath-eyebrow{position:relative;padding-top:18px}
.ipath-eyebrow::before{content:"";position:absolute;top:0;left:0;width:48px;height:2px;background:var(--brand-accent)}
.ipath-h{font-size:32px;line-height:1.1;letter-spacing:-.02em;margin-top:14px}
.ipath-all{grid-column:9 / span 4;justify-self:end;align-self:end;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--brand-navy)}
.ipath-all:hover{color:var(--sun-700)}
.ipath-rows{grid-column:1 / -1;margin-top:30px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.ipath-r{display:flex;flex-direction:column;padding:22px 0 24px;border-top:1px solid var(--line);text-decoration:none}
.ipath-r__t{font-family:var(--font-display);font-weight:500;font-size:24px;line-height:1.15;color:var(--text-heading)}
.ipath-r__d{margin-top:8px;font-size:14.5px;line-height:1.55;color:var(--text-secondary)}
.ipath-r__a{margin-top:auto;padding-top:14px;font-family:var(--font-sans);font-size:12.5px;font-weight:600;letter-spacing:.06em;color:var(--brand-navy)}
.ipath-r:hover .ipath-r__t,.ipath-r:hover .ipath-r__a{color:var(--sun-700)}
/* Fund close: actions in the invitation column; lending routes as quieter rows on the right. */
.final--fund .final-invite{grid-column:1 / span 6}
.final--fund .final-paths{grid-column:8 / span 5}
.final-actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}
.ds-btn--onnavy{background:#fff;border-color:#fff;color:var(--brand-navy)}
.ds-btn--onnavy:hover{background:var(--brand-sky);border-color:var(--brand-sky);color:var(--brand-navy)}
.final-paths__k{margin:0 0 8px;font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sky-300)}
.final--fund .fpath{grid-template-columns:110px 1fr auto;padding:24px 10px 24px 0}
.final--fund .fpath__t{font-size:20px}
.final--fund .final-h{max-width:13ch}
@container page (max-width:900px){
  .plat-stats{margin-top:34px}.plat-steps{grid-row:auto;align-self:start;margin-top:40px;padding:30px 0 0 36px;border-top:1px solid rgba(145,195,235,.24)}.plat-step::before{left:-36px}.plat-step::after{left:-29.5px}
}
@container page (max-width:1150px){.plat-stats{gap:0 14px;grid-template-columns:auto auto auto;justify-content:start}.plat-stat{padding-left:12px;padding-right:6px}.plat-stat__v{font-size:26px;white-space:nowrap}.plat-stat__l{font-size:12.5px}.plat-steps{padding-left:40px}.plat-step{grid-template-columns:30px minmax(0,1fr);gap:2px 16px;padding-bottom:34px}.plat-step__d{grid-column:2;font-size:15px;line-height:22px;max-width:40ch}.plat-step::before{left:-40px}.plat-step::after{left:-33.5px}.plat-step__t{font-size:15px}}
@container page (max-width:1100px){
  .wfund-head{grid-column:1 / -1;position:static}.wfund-grid{grid-column:1 / -1;margin-top:34px}
  .plat-h{font-size:34px}.plat-l{font-size:15.5px}.plat-stats{gap:0 14px;margin-top:34px;padding-top:24px;grid-template-columns:auto auto auto;justify-content:start}.plat-stat{padding-left:12px;padding-right:6px}.plat-stat__v{font-size:26px;white-space:nowrap}.plat-stat__l{font-size:12.5px}
  .final--fund .final-invite{grid-column:1 / -1}.final--fund .final-paths{grid-column:1 / -1}
}
@container page (max-width:760px){
  .fproof .container{padding-top:52px;padding-bottom:52px}
  .wfund-h{font-size:30px}.wfund-grid{grid-template-columns:1fr}.wfund-pt,.wfund-pt:nth-child(2n){padding:26px 0 26px}.wfund-pt:first-child{padding-top:0}
  .plat-h{font-size:32px}.plat-stats{grid-template-columns:1fr;gap:18px 0;padding-top:24px}.plat-stat,.plat-stat:first-child{padding-left:16px;border-left:1px solid rgba(145,195,235,.32)}.plat-stat__v{font-size:32px}.plat-steps{margin-top:36px;padding:26px 0 0 34px}.plat-step{padding-bottom:30px}.plat-step:last-child{padding-bottom:0}.plat-step::before{left:-34px}.plat-step::after{left:-27.5px}.plat-step__t{font-size:15px}.plat-step__d{font-size:15px;max-width:none}
  .ipath-head{grid-column:1 / -1}.ipath-all{grid-column:1 / -1;justify-self:start;margin-top:14px}.ipath-rows{grid-template-columns:1fr;margin-top:22px}
  .final-actions .ds-btn{width:100%}.final--fund .fpath{grid-template-columns:1fr;gap:7px;padding:20px 0}
}
