/* XXI Wealth — delta layer: self-hosted fonts + the approved design-review changes.
   Loads AFTER assets/orig/<page>.css (byte-equivalent copy of the approved site's per-page CSS).
   Every rule here is an intentional, reviewed change. Parity with advisors.rezex.com lives in orig/. */
@font-face{font-family:'Switzer';font-style:normal;font-weight:200;font-display:swap;src:url('/assets/fonts/switzer-200.woff2') format('woff2')}
@font-face{font-family:'Switzer';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/switzer-300.woff2') format('woff2')}
@font-face{font-family:'Switzer';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/switzer-400.woff2') format('woff2')}
@font-face{font-family:'Switzer';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/switzer-500.woff2') format('woff2')}
@font-face{font-family:'Switzer';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/switzer-600.woff2') format('woff2')}
nav.scrolled{background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--hair-l);border-bottom:0}
/* ===== Design review pass — 2026-07-24 (appended overrides = highest priority) ===== */
.hero h1{font-weight:300}
.hero h1 .l2{font-weight:300;color:var(--acc-l)}
/* Inner-page hero typography canon = about page (Natalie 2026-07-24): weight 200, tracking -.02em */
.pagehero h1,.bio h1,.bhero h1{font-weight:200;letter-spacing:-.02em}
.pagehero h1 span{color:var(--acc-l)!important}
.hero .wrap{transform:translateY(13%)}
.scrollcue{display:none!important}
.vidtoggle{display:flex!important;left:auto;right:var(--edge);width:38px;height:38px;border-radius:50%;border-width:1px}
.vidtoggle svg{width:11px;height:11px}
.scard{transition:box-shadow .35s,transform .35s}
.scard:hover{box-shadow:0 24px 55px -32px rgba(23,24,27,.45);transform:translateY(-4px)}
.scard .simg img{transition:transform .5s}
.scard:hover .simg img{transform:scale(1.05)}
.cform input,.cform select,.cform textarea{font:400 15px/1.45 var(--sans)}
a[href^="tel:"]{color:#3d5aa8;border-bottom:1px solid transparent;transition:border-color .25s}
a[href^="tel:"]:hover{border-color:#3d5aa8}
.addrlink{color:#3d5aa8!important}
@media(max-width:1100px){
  .approach .eyebrow,.approach h2,.approach .rest,.approach .connect{grid-row:auto!important}
  nav{padding-top:env(safe-area-inset-top,0)}
  .mnav .login,.mnav details.login{display:block;width:100%}
  .mnav .login>summary{display:block;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:#C6C9CD;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,.07);list-style:none}
  .mnav .login .menu{position:static;transform:none;background:transparent;border:0;box-shadow:none;min-width:0;padding-left:14px;display:flex}
  .mnav .login .menu a{color:#C6C9CD;border-bottom:0;padding:12px 2px}
}
/* ===== Queued list finish — 2026-07-24 ===== */
footer .login .menu{background:#F1F2F3;border-color:#D8D8D5}
footer .login .menu a{color:#101113}
footer .login .menu a:hover{background:#E7E9EC}
.band img{transition:transform 9s cubic-bezier(.22,.61,.24,1)}
.band.in img{transform:scale(1.14)}
.stmt .bgimg img{transition:transform 12s cubic-bezier(.22,.61,.24,1)}
.stmt.in .bgimg img{transform:scale(1.1)}
.band img,.stmt .bgimg img{will-change:transform}
.sig .cval,footer .legal p,footer .base,.disc,.cside .cval{font-family:var(--sans);font-variant-numeric:lining-nums}
a.addrlink,a[href*="maps"]{color:#3d5aa8;border-bottom:1px solid transparent}
a.addrlink:hover,a[href*="maps"]:hover{border-color:#3d5aa8}

/* ===== Preview-review round — Natalie 2026-07-24 ===== */
/* dark contexts keep the pale accent (readable on dark) */
footer a[href^="tel:"],footer a.addrlink,footer a[href*="maps"],footer a[href^="mailto:"],.pg.dk a[href^="tel:"],.cta a[href^="tel:"]{color:var(--acc)!important}
footer a[href^="tel:"]:hover,footer a.addrlink:hover,footer a[href^="mailto:"]:hover{border-color:var(--acc);color:var(--acc-l)!important}
/* footer link hover = blue, not white */
footer .fcol a:hover,footer .legal a:hover,footer .base a:hover,footer .login>summary:hover{color:var(--acc)}
/* footer client-login dropdown: keep dark text on hover (was flashing white on light menu) */
footer .login .menu a:hover{color:#101113;background:#E4E8EF}
/* contact form privacy note: smaller, muted, breathing room under the button */
.cprivacy{font-size:13px;color:#6B6E6F;margin-top:18px;max-width:52ch}
/* section rhythm canon: about-page paddings minus 15%, applied site-wide (Natalie 2026-07-24) */
/* !important required: the original homepage CSS carries its own !important padding blanket */

/* ===== Review round 3 — Natalie 2026-07-24 ===== */
.cform .hp{display:none!important} /* honeypot — hiding rule lived only in the retired merged sheet */
/* statement text canon = about page 19px */
/* 2026-08-07: deleted three 19px!important statement-text overrides (from 616730f "review round 3").
   Natalie ruled the Approved Design folder is the exact standard; orig values restored by inheritance. */
body.page-contact h1 .l2{color:var(--acc-l)!important}

/* ===== MOBILE LAYER (Natalie 2026-07-24) — the original had no mobile type scale; this defines it. ===== */
@media(max-width:700px){
  /* Nav: solid light bar always, filling the iOS notch/safe-area; dark sheet only when menu open */
  /* Solid nav bg is ALSO iOS 26 Safari's chrome-tint source: Safari samples fixed-element background
     at the viewport edge to paint the pill/status zone (no viewport-fit=cover = Nike/ESPN pattern). */
  /* Chrome-zone canvas: iOS paints over/under-scroll and chrome gaps with the CANVAS color.
     Our body is dark (--ink) while the mobile bar is light — that mismatch is the visible strip.
     html bg shows ONLY in chrome/overscroll zones, so this is invisible everywhere else. */
  html{background:#F4F4F2!important}
  /* No body-level overflow control on mobile (vinco pattern): ANY non-visible overflow
     on an ancestor breaks position:sticky containment on iOS. Pages verified: zero
     horizontal overflow at 390px, so nothing needs clipping here. Desktop keeps clip. */
  html,body{overflow-x:visible!important}
  /* STICKY, not fixed: iOS 26 clips+lags fixed layers against its animating chrome
     (the ghost-strip bug). Sticky is page-attached — immune — and the bar is opaque
     so in-flow placement is visually identical. Its solid bg also tints Safari's chrome zone. */
  /* The film-grain overlay is a FULL-VIEWPORT position:fixed layer at z-index 200 — ABOVE the
     nav. iOS paints the top chrome zone based on the topmost layer at the viewport edge; a
     transparent fixed sheet over everything makes Safari smear content there instead of
     rendering a solid fill (none of the reference sites have such a layer). Invisible at
     1.8% opacity on phones anyway. */
  body::before{display:none!important;content:none!important}
  /* Complete mobile bar state machine — EVERY state dark (rest, scrolled, open).
     nav.scrolled carries the desktop white bar at higher specificity; it must be
     overridden here or the scrolled bar goes white under light type (v14 bug). */
  /* WHITE bar (owner directive 2026-07-24) — ALL THREE STATES pinned (rest/.scrolled/.open-bar-area).
     State-machine rule: nav.scrolled must be overridden here or the desktop rule leaks in. */
  nav,nav.scrolled{position:sticky!important;top:0!important;background:#F4F4F2!important;border-bottom:1px solid #D8D8D5!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  nav .logo,nav.scrolled .logo{color:#17181A!important}
  nav .menub span,nav.scrolled .menub span{background:#17181A!important}
  nav.open,nav.open.scrolled{background:rgba(18,19,22,.98)!important}
  nav.open .logo{color:#F4F4F2!important}
  nav.open .menub span{background:#F4F4F2!important}
  /* Type scale — one system for every page */
  .hero h1{font-size:clamp(36px,10.3vw,42px)!important;font-weight:300!important}
  /* Mobile hero: no 13% push-down, shorter stage — copy starts higher (was ~55% deep) */
  .hero .wrap{transform:none!important}
  .hero{min-height:88svh!important;height:auto!important}
  .pagehero h1,.bio h1,.bhero h1,header h1{font-weight:300!important}
  .approach h2,.serve h2,.serve2 h2,.indep2 .sh,.pg h2,.firmlt h2,.prin h2{font-size:clamp(26px,7.5vw,30px)!important}
  .cta .big,.cta h2{font-size:clamp(28px,8.2vw,32px)!important}
  .approach .rest p,.approach p{font-size:18px!important}
  .pg .lede,.indep2 .body p,body.page-how-we-work section.pg .body p,.firmlt .flede,.cintro .lede,.pagehero .lead{font-size:18px!important}
  .pg.dk .facts li{font-size:18px}
  /* Uniform section rhythm */
  section.pg:not(.dk):not(.bleed),section.firmlt:not(.bleed),section.prin,section.approach{padding-top:64px!important;padding-bottom:64px!important}
  section.cta{padding-top:72px!important;padding-bottom:72px!important}
  /* Page heroes: kill the dead vertical space (was ~185px top / 76px bottom) */
  .pagehero{padding-top:calc(96px + env(safe-area-inset-top,0))!important;padding-bottom:44px!important;min-height:0!important}
  /* Bio pages: photo full width, no orphan gutter */
  .bgrid{display:block!important}
  .ph2,.ph2 img{width:100%!important;max-width:100%!important}
}

/* ===== Round 5 — Natalie 2026-07-24 ===== */
/* iOS fixed-nav fix: overflow-x:hidden on body makes Safari treat body as a scroll container,
   detaching position:fixed during bottom-URL-bar scroll. clip blocks sideways scroll WITHOUT that. */
html,body{overflow-x:clip!important}
@media(max-width:700px){
  .pagehero{padding-top:calc(128px + env(safe-area-inset-top,0))!important}
  .contactwrap{padding-top:48px!important}
  .indkicker,.indep2 .body p.indkicker{font-size:13px!important;letter-spacing:.12em!important}
  .approach h2,.firmlt h2,.prin h2,section.pg h2,.indep2 .sh,.serve h2,.serve2 h2{letter-spacing:0!important}
  /* Key-facts bands (home + about): about canon minus 25% (Natalie 2026-07-24) */
  section.pg.dk{padding-top:91px!important;padding-bottom:91px!important}
}

/* ===== Batch 2026-07-24 v19 (footer + team cards + band alignment) ===== */
footer .fl .h{color:var(--acc)!important}                       /* FIRM / CONNECT / LEGAL -> pale link blue */
footer .brandcol p{color:#F4F4F2!important;opacity:.95}          /* tagline matches logo, 95% */
footer .fhome{display:inline-block}
footer .fhome:hover .logo{color:var(--acc)!important}            /* logo hover = link blue; links home */
/* v19's 35px card-name override REMOVED 2026-07-27 — names now inherit site.css's
   approved 21px (identical to orig/team.css:133, the approved design's own value). */
@media(min-width:1101px){
  .pg.dk.indent .eyebrow{margin-left:12%}   /* mirrors .indent > .wrap > .facts — aligned at every width the indent exists */
}
/* 2026-08-07 PADDING: deleted 3 top-level desktop section-padding overrides (the -15% rhythm cut) -> approved orig clamps restored on desktop/tablet. Mobile @media padding rules untouched per Natalie (mobile is perfect). */
/* 2026-08-07 FONT AUDIT vs Approved Design PNGs (exported 7/21, the approval snapshot):
   DELETED 10 undocumented desktop typography overrides (nlinks 12/12.5, hsub shrink, eyebrow .15em,
   sig 15/11.5, cintro lede clamp, footer legal+base 14px, facts li 22px) - approved orig values now
   inherit. KEPT: documented canon (inner heroes 200, home hero 300), new elements (.cprivacy, .mnav),
   mobile type scale (PNGs are desktop-only), scopy 17px (Natalie 2026-08-07). */
/* ===== Batch 2026-08-07 (headshot ratio) ===== */
/* Team cards: regular portrait headshot ratio (was 1/0.8 - 1/0.96 square-ish per breakpoint) - Natalie 2026-08-07 */
.pcard .ph{aspect-ratio:4/5!important}
/* Bio pages: large portrait matches the team-card 4:5 headshot ratio site-wide - Natalie 2026-08-07 */
.bgrid .ph2{aspect-ratio:4/5!important}
/* WWD solution cards: description matches Who We Serve body exactly (17px/1.6, was 17.5/1.65) - Natalie 2026-08-07 */
.scard .scopy{font-size:17px!important;line-height:1.6!important}
/* Bio-page contact block: email matches address/phone link color - Natalie 2026-08-07 */
.sig a[href^="mailto:"]{color:#3d5aa8!important}
/* Team + Home cards: partner photos -10% (approx 400px -> 360px height); bio pages untouched - Natalie 2026-08-07 */
body.page-team .pcard .ph,body.page-home .pcard .ph{width:90%}
/* Contact form (Natalie 2026-08-07): custom dropdown chevron inset 14px with matched padding; first label top-aligns with Correspondence (honeypot input was eating the :first-child margin reset) */
.cform select{-webkit-appearance:none;appearance:none;padding:10px 38px 10px 11px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235A616B' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:11px auto}
.cform label[for="it"]{margin-top:0}
/* Footer disclosures: +2pt, brighter paper-light, wider tracking for legibility/accessibility - Natalie 2026-08-07 (BlackRock reference standard) */
footer .legal p{font-size:13.5px;line-height:1.65;letter-spacing:.02em;color:#C6CACE} /* -1pt, Natalie 2026-08-07 */
footer .base,footer .base a,footer .base span{font-size:13.5px;letter-spacing:.02em} /* matches disclosure paragraphs - Natalie 2026-08-07 */
footer .base{color:#C6CACE}
/* Footer column links brightened to #FAFAFA (hover stays link blue) - Natalie 2026-08-07 */
footer .fl>a,footer .login>summary{color:#FAFAFA}
/* READ BIO: direct-hover only (card keeps its lift; button fills dark with paper text on ITS OWN hover) - Natalie 2026-08-07, supersedes the 7/24 card-level white fill */
.pcard .btn.dark::before{background:#101113}
.pcard .btn.dark:hover{color:#F4F4F2}
/* kb band: kill the 7s transition so scroll-linked zoom tracks 1:1 */
.band[data-kb] img{transition:none}
/* Key Facts band: desktop bottom padding -25% (approved 66/9vh/120 -> 49/6.75vh/90) - Natalie 2026-08-07 */
@media(min-width:701px){section.pg.dk{padding-top:clamp(49px,6.75vh,90px)!important;padding-bottom:clamp(49px,6.75vh,90px)!important}} /* symmetric bands site-wide; About had 117/54 lopsided - Natalie 2026-08-07 */
/* Statement h2s (.sh) hold one scale site-wide - the how-we-work instance was falling through to the larger generic h2 rule - Natalie 2026-08-07 */
h2.sh{font-size:clamp(24px,3vw,44px)!important}
/* Two-tone verdict (Natalie 2026-08-07): blue rejected on light statements. Section h2s go weight 300 with payoff in darkest ink; the color pop lives in the HOME HERO second line only. */
.pg h2,h2.sh,.approach h2,.serve h2,.serve2 h2,.firmlt h2,.prin h2,.split h2{font-weight:300!important}
.sh .mut,section.pg.light .mut,section.pg.light.surf .mut{color:#101113!important}
h1.lit .l2{color:var(--acc-l)!important}
/* Contact success/error status: breathing room from CTA + accent circle-check on success - Natalie 2026-08-07 */
.cstatus{margin-top:28px;font-size:15px;line-height:1.5;color:#17181A}
.cstatus.ok{display:flex;align-items:center;gap:11px}
.cstatus.ok::before{content:"";width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:#3d5aa8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath d='M1 5.2 4.4 8.6 11 1.4' fill='none' stroke='%23FFFFFF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px auto no-repeat}
.cstatus.err{color:#8C3A38}
