/* ==========================================================================
   CHAIRO SOLUTIONS / Design System v2
   Revision brief: Chairo team feedback (Chairo Website.docx)
   - "The Bar": Chambers-style floating white pill nav with dropdown menus
   - Client logos: full-colour, continuous slider
   - Success stories + Latest Insights: featured layout driven as a slider
   - Awards & Testimonials replaces Learning & Capacity Development
   - Insights replaces Blog (all stories carried across)
   Palette: Chairo brand purple (#77479C) accent, plum-ink darks, slate-paper ground
   Type: Newsreader (display serif) / Geist (body + utility). Two families only.
   ========================================================================== */

/* Fonts are enqueued by the theme (see inc/enqueue.php), not @imported. */

:root{
  /* Brand purple sampled from the Chairo logo: #77479C.
     signal    = fills, buttons, icons        (white on it 6.6:1)
     signal-2  = accent text, links, nav      (8.3:1 on paper)
     heading   = display type                 (9.6:1 on paper)
     tint      = hover states, badges         */
  --ink:        #191228;
  --navy:       #241634;
  --navy-2:     #30204A;
  --graphite:   #3A3340;
  --paper:      #EFEEE9;
  --paper-2:    #E7E5DE;
  --stone:      #C9C3BC;
  --stone-2:    #A9A2A0;
  --line:       rgba(25,18,40,0.13);
  --line-dark:  rgba(239,238,233,0.16);
  --signal:     #77479C;
  --signal-2:   #5A327C;
  --signal-3:   #5F3880;
  --signal-tint:#EDE4F4;
  --heading:    #4E2B6B;
  --white:      #FFFFFF;
  --gold:       #C08A2E;

  /* type families: two only */
  --font-display: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --font-body:    'Geist', ui-sans-serif, system-ui, -apple-system, sans-serif;

  --fs-display: clamp(2.3rem, 3.7vw, 3.5rem);
  --fs-h1:      clamp(1.95rem, 2.8vw, 2.6rem);
  --fs-h2:      clamp(1.5rem, 1.9vw, 1.9rem);
  --fs-h3:      1.28rem;
  --fs-h4:      1.15rem;
  --fs-lg:      1.12rem;
  --fs-body:    1rem;
  --fs-sm:      0.9rem;
  --fs-xs:      0.78rem;

  --sp-1: 8px; --sp-2: 16px; --sp-3: 24px; --sp-4: 32px;
  --sp-5: 48px; --sp-6: 64px; --sp-7: 96px; --sp-8: 128px;

  --radius: 3px;
  --radius-lg: 4px;
  --radius-pill: 999px;
  --container: 1280px;
  --measure: 700px;
  --nav-h: 70px;

  --ease: cubic-bezier(.2,.7,.2,1);
  --shadow-pill: 0 10px 34px rgba(25,18,40,0.13);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
/* anchor targets must clear the fixed pill bar */
:target, [id]{ scroll-margin-top:calc(var(--nav-h) + 34px); }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.12;
  font-optical-sizing:auto;
  margin:0 0 var(--sp-2);
  letter-spacing:-0.012em;
  color:var(--heading);
}
h1{ font-size:var(--fs-h1); }
h2{ font-size:var(--fs-h2); }
h3{ font-size:var(--fs-h3); }
h4{ font-size:var(--fs-h4); font-family:var(--font-body); font-weight:600; }

p{ margin:0 0 var(--sp-2); }
a{ color:inherit; }
img{ max-width:100%; display:block; }
ul,ol{ margin:0; padding:0; list-style:none; }

.mono{ font-family:var(--font-body); font-variant-numeric:tabular-nums; letter-spacing:0.06em; }
.eyebrow{
  font-family:var(--font-body);
  font-size:0.72rem;
  font-weight:500;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--signal-2);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow--light{ color:var(--stone); }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--signal);
  outline-offset:3px;
}
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--ink); color:var(--white); padding:12px 18px; z-index:200; }
.skip-link:focus{ left:12px; top:12px; }

/* ============ layout helpers ============ */
.container{ max-width:var(--container); margin:0 auto; padding:0 var(--sp-3); }
.container--narrow{ max-width:920px; }
.section{ padding:68px 0; }
.section--tight{ padding:40px 0; }
.section--alt{ background:var(--paper-2); }
.section--dark{ background:var(--navy); color:var(--paper); }
.section--dark h1,.section--dark h2,.section--dark h3{ color:var(--white); }
.section--dark p{ color:var(--stone); }
.flex-between{ display:flex; justify-content:space-between; align-items:center; gap:var(--sp-2); }
.grid{ display:grid; gap:20px; }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:1000px){ .grid-4{ grid-template-columns:repeat(2,1fr); } .grid-3{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .grid-4,.grid-3,.grid-2{ grid-template-columns:1fr; } }
.text-center{ text-align:center; }
@media(max-width:700px){
  .section{ padding:48px 0; }
  .cta-band,.site-footer{ padding-top:48px; }
  .split,.story-slide,.insight-slide{ gap:26px; }
}

/* ==========================================================================
   THE BAR / Chambers-style floating pill navigation
   ========================================================================== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:120;
  padding:14px var(--sp-3);
  transition:padding .3s var(--ease);
}
.site-header.is-stuck{ padding-top:10px; padding-bottom:10px; }

.nav-shell{
  max-width:1360px; margin:0 auto;
  background:var(--white);
  border-radius:var(--radius-pill);
  box-shadow:var(--shadow-pill);
  height:var(--nav-h);
  padding:0 12px 0 22px;
  display:flex; align-items:center; gap:var(--sp-3);
  transition:height .3s var(--ease), box-shadow .3s var(--ease);
}
.site-header.is-stuck .nav-shell{ height:60px; box-shadow:0 8px 24px rgba(25,18,40,0.16); }

.nav-logo{ display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; }
/* Height only, never width: the mark keeps its own aspect ratio. Both values
   stay well inside --nav-h so the bar itself never grows. */
.nav-logo img{ height:44px; width:auto; display:block; transition:height .3s var(--ease); }
.site-header.is-stuck .nav-logo img{ height:38px; }

.primary-nav{ margin-left:auto; }
.nav-links{ display:flex; align-items:center; gap:2px; }
.nav-item{ position:relative; }
.nav-link{
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 13px;
  font-size:0.79rem; font-weight:500;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--signal-2); text-decoration:none;
  border-radius:var(--radius-pill);
  white-space:nowrap;
  transition:background .2s var(--ease), color .2s var(--ease);
}
.nav-link:hover, .nav-item.is-open > .nav-link, .nav-link[aria-current="page"]{
  background:var(--signal-tint); color:var(--signal-2);
}
.nav-link .caret{ width:8px; height:8px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s var(--ease); }
.nav-item.is-open .nav-link .caret{ transform:rotate(225deg) translateY(-2px); }

/* dropdown panels: one identical shell for every menu */
.dropdown{
  position:absolute; top:calc(100% + 14px); left:50%;
  transform:translateX(calc(-50% + var(--dd-shift, 0px))) translateY(-8px);
  background:var(--white);
  border-radius:14px;
  box-shadow:0 20px 50px rgba(25,18,40,0.18);
  padding:22px 24px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
  width:600px;                       /* same width for all four panels */
  max-width:calc(100vw - 40px);
}
.nav-item.is-open > .dropdown{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(calc(-50% + var(--dd-shift, 0px))) translateY(0); }
.dropdown::before{
  content:""; position:absolute; top:-7px; left:50%; margin-left:calc(-7px - var(--dd-shift, 0px));
  width:14px; height:14px; background:var(--white); transform:rotate(45deg);
  border-radius:2px;
}
.dropdown-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr auto;   /* links row, then footer pinned to the bottom */
  gap:18px 28px;
  min-height:266px;              /* every panel is the same height */
  position:relative; z-index:1;
}
.dd-group{ align-self:start; }
.dd-group > .dd-title{
  font-family:var(--font-body); font-weight:500; font-size:0.65rem; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--stone-2); display:block; margin-bottom:10px;
}
.dd-link{
  display:block; padding:6px 10px; margin:0 -10px;
  text-decoration:none; font-size:0.9rem; color:var(--ink);
  border-radius:6px; line-height:1.3;
  transition:background .16s var(--ease), color .16s var(--ease);
}
.dd-link span{ display:block; font-size:0.75rem; color:var(--stone-2); margin-top:1px; }
.dd-link:hover{ background:var(--paper); color:var(--signal-2); }
.dd-link:hover span{ color:var(--graphite); }
.dd-foot{
  grid-column:1 / -1; border-top:1px solid var(--line); margin-top:4px; padding-top:12px;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.dd-foot a{ font-size:0.8rem; font-weight:500; color:var(--signal-2); text-decoration:none; white-space:nowrap; }
.dd-foot a:hover{ text-decoration:underline; text-underline-offset:3px; }

.header-cta{ display:flex; align-items:center; gap:8px; flex-shrink:0; }
.icon-btn{ background:none; border:none; cursor:pointer; padding:8px; color:var(--signal-2); border-radius:50%; display:grid; place-items:center; }
.icon-btn:hover{ background:var(--paper); }
.mobile-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; }
.mobile-toggle span{ display:block; width:22px; height:2px; background:var(--signal-2); margin:5px 0; border-radius:2px; }

@media(max-width:1180px){
  .nav-link{ padding:10px 10px; font-size:0.76rem; }
  .header-cta .btn{ display:none; }
}
@media(max-width:960px){
  .primary-nav{ display:none; }
  .mobile-toggle{ display:block; margin-left:auto; }
  .header-cta .icon-btn{ display:none; }
  .nav-shell{ padding-right:14px; }
}

/* mobile drawer */
.mobile-overlay{
  position:fixed; inset:0; background:var(--paper); z-index:150;
  transform:translateY(-101%); transition:transform .4s var(--ease), visibility .4s;
  overflow-y:auto; padding-bottom:var(--sp-6);
  visibility:hidden;
}
.mobile-overlay.is-open{ transform:translateY(0); visibility:visible; }
.mobile-overlay .m-top{ display:flex; justify-content:space-between; align-items:center; padding:22px 0; }
.mobile-overlay .m-top img{ height:40px; width:auto; }
.mobile-close{ background:none; border:none; font-size:1.8rem; cursor:pointer; line-height:1; color:var(--ink); }
.m-acc{ border-top:1px solid var(--line); }
.m-acc-btn{
  width:100%; background:none; border:none; text-align:left; cursor:pointer;
  font-family:var(--font-display); font-size:1.15rem; color:var(--ink);
  padding:16px 0; display:flex; justify-content:space-between; align-items:center;
}
.m-acc-btn .plus{ font-family:var(--font-body); font-size:1.25rem; color:var(--signal-2); }
.m-acc-panel{ display:none; padding-bottom:12px; }
.m-acc.is-open .m-acc-panel{ display:block; }
.m-acc.is-open .m-acc-btn .plus{ transform:rotate(45deg); }
.m-acc-panel a{ display:block; padding:9px 0 9px 14px; font-size:0.95rem; color:var(--graphite); text-decoration:none; border-left:2px solid var(--line); }
.m-acc-panel a:hover{ color:var(--signal-2); border-color:var(--signal); }
.m-flat{ display:block; padding:16px 0; border-top:1px solid var(--line); font-family:var(--font-display); font-size:1.15rem; text-decoration:none; }
.mobile-cta{ margin-top:var(--sp-4); }
.mobile-cta .btn{ width:100%; justify-content:center; }

/* search overlay */
.search-overlay{
  position:fixed; inset:0; background:rgba(25,18,40,0.97); z-index:180;
  display:grid; place-items:center; opacity:0; pointer-events:none; transition:opacity .28s var(--ease);
}
.search-overlay.is-open{ opacity:1; pointer-events:auto; }
.search-box{ width:100%; max-width:680px; padding:0 var(--sp-3); }
.search-box input{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line-dark);
  color:var(--white); font-family:var(--font-display); font-size:1.8rem; padding:14px 0;
}
.search-box input:focus{ outline:none; border-color:var(--signal); }
.search-box input::placeholder{ color:var(--stone-2); }
.search-hint{ color:var(--stone); font-size:0.85rem; margin-top:16px; }
.search-close-row{ display:flex; justify-content:flex-end; max-width:680px; margin:0 auto 8px; padding:0 var(--sp-3); }
.search-close-row button{ background:none; border:none; color:var(--stone); font-size:0.85rem; cursor:pointer; }

/* ============ buttons ============ */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-size:0.85rem; font-weight:500;
  padding:11px 19px; border-radius:var(--radius-pill);
  text-decoration:none; border:1px solid transparent; cursor:pointer;
  font-family:var(--font-body); white-space:nowrap;
  transition:transform .2s var(--ease), background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.btn-primary{ background:var(--signal); color:var(--white); }
.btn-primary:hover{ background:var(--signal-3); transform:translateY(-1px); }
.btn-outline{ border-color:var(--signal-2); color:var(--signal-2); background:transparent; }
.btn-outline:hover{ background:var(--signal-2); color:var(--white); }
.btn-ghost-light{ border-color:var(--line-dark); color:var(--white); }
.btn-ghost-light:hover{ background:var(--white); color:var(--ink); }
.btn-sq{ border-radius:var(--radius); }
.btn-text{ font-weight:500; font-size:0.875rem; color:var(--signal-2); text-decoration:underline; text-underline-offset:4px; }
.btn-text::after{ content:"→"; margin-left:6px; transition:margin-left .2s var(--ease); display:inline-block; }
.btn-text:hover::after{ margin-left:10px; }

/* ============ page hero (image-backed) ============ */
.page-hero{
  position:relative; min-height:330px; display:flex; align-items:flex-end;
  padding:calc(var(--nav-h) + 66px) 0 44px;
  background:var(--navy); overflow:hidden; color:var(--white);
}
.page-hero__img{ position:absolute; inset:0; }
.page-hero__img img{ width:100%; height:100%; object-fit:cover; }
.page-hero__img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(25,18,40,0.94) 0%, rgba(25,18,40,0.80) 42%, rgba(25,18,40,0.42) 100%);
}
.page-hero .container{ position:relative; z-index:2; }
.page-hero h1{ color:var(--white); max-width:820px; }
.page-hero p{ color:var(--stone); max-width:560px; font-size:var(--fs-lg); }
.page-hero .eyebrow{ color:var(--signal-tint); }
.page-hero--tall{ min-height:430px; }

.breadcrumbs{
  font-family:var(--font-body); font-size:0.7rem; font-weight:500; letter-spacing:0.11em;
  text-transform:uppercase; color:var(--stone-2); padding:16px 0;
  border-bottom:1px solid var(--line);
}
.breadcrumbs a{ text-decoration:none; color:var(--stone-2); }
.breadcrumbs a:hover{ color:var(--signal-2); }
.breadcrumbs .sep{ margin:0 8px; }

/* ==========================================================================
   HOME HERO / full-bleed photographic slider
   Legibility comes from grading the photograph itself (brightness + contrast)
   rather than washing a flat grey scrim over it, which flattens the blacks.
   The gradients that remain are directional and light.
   ========================================================================== */
.hero-slider{ position:relative; background:var(--ink); overflow:hidden; }
.hero-slider .slider-viewport{ overflow:hidden; }
.hero-slider .slider-track{ display:flex; transition:transform .9s cubic-bezier(.16,.84,.28,1); }
.hero-slide{
  position:relative; min-width:100%; flex:0 0 100%;
  min-height:clamp(540px, 80vh, 800px);
  display:flex; align-items:center;
  overflow:hidden;
}
.hero-slide__img{ position:absolute; inset:0; overflow:hidden; }
.hero-slide__img img{
  width:100%; height:100%; object-fit:cover;
  /* graded, not greyed: keeps tonal depth so the image still looks rich */
  filter:brightness(.56) contrast(1.10) saturate(1.04);
  transform:scale(1.04);
}
/* slow drift on the active slide */
.hero-slide[aria-hidden="false"] .hero-slide__img img{ animation:heroDrift 11s ease-out forwards; }
@keyframes heroDrift{ from{ transform:scale(1.04); } to{ transform:scale(1.11); } }

.hero-slide__img::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 50% at 50% 46%, rgba(25,18,40,.46) 0%, rgba(25,18,40,.14) 62%, rgba(25,18,40,0) 82%),
    linear-gradient(to bottom, rgba(25,18,40,.44) 0%, rgba(25,18,40,0) 28%, rgba(25,18,40,0) 60%, rgba(25,18,40,.58) 100%);
}
.hero-slide__body{
  position:relative; z-index:2; width:100%;
  padding:calc(var(--nav-h) + 84px) 0 96px;
  text-align:center; color:var(--white);
}
.hero-slide__body .container{ max-width:880px; }

.hero-eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--font-body); font-size:0.7rem; font-weight:500;
  letter-spacing:0.22em; text-transform:uppercase;
  color:rgba(255,255,255,.82); margin-bottom:22px;
}
.hero-eyebrow i{ display:block; width:26px; height:1px; background:rgba(255,255,255,.55); }

.hero-slide__body h1{
  color:var(--white);
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(2.4rem, 4.9vw, 4.3rem);
  line-height:1.04; letter-spacing:-0.018em;
  margin:0 0 20px;
}
.hero-slide__body p{
  color:rgba(255,255,255,.90);
  font-size:clamp(1rem, 1.28vw, 1.14rem);
  line-height:1.6; font-weight:400;
  max-width:600px; margin:0 auto;
}
.hero-slide__body .hero-actions{
  display:flex; gap:14px; margin-top:36px; flex-wrap:wrap; justify-content:center;
}
.hero-slide__body .btn{ padding:13px 24px; }

/* side arrows, restrained */
.hero-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  z-index:3; width:52px; height:52px; padding:0;
  background:transparent;
  border:1px solid rgba(255,255,255,.30);
  border-radius:50%; color:rgba(255,255,255,.85); cursor:pointer;
  display:grid; place-items:center;
  transition:background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);
}
.hero-arrow svg{ width:20px; height:20px; }
.hero-arrow:hover{ background:var(--white); color:var(--ink); border-color:var(--white); }
.hero-arrow--prev{ left:clamp(14px, 3.4vw, 52px); }
.hero-arrow--next{ right:clamp(14px, 3.4vw, 52px); }
.hero-arrow--prev:hover{ transform:translateY(-50%) translateX(-3px); }
.hero-arrow--next:hover{ transform:translateY(-50%) translateX(3px); }

/* meta bar: measured rules and a counter instead of dots */
.hero-meta{ position:absolute; left:0; right:0; bottom:34px; z-index:3; }
.hero-meta .container{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
.hero-meta .slider-dots{ display:flex; gap:10px; margin:0; }
.hero-meta .slider-dot{
  width:40px; height:2px; border-radius:0; padding:0; border:none;
  background:rgba(255,255,255,.32); cursor:pointer;
  transition:background .3s var(--ease);
}
.hero-meta .slider-dot.is-active{ background:var(--white); transform:none; }
.hero-meta .slider-count{
  font-family:var(--font-body); font-size:0.72rem; font-weight:500;
  letter-spacing:0.18em; color:rgba(255,255,255,.66);
  font-variant-numeric:tabular-nums;
}

@media(max-width:820px){
  .hero-slide{ min-height:clamp(470px, 74vh, 640px); }
  .hero-arrow{ width:42px; height:42px; }
  .hero-arrow svg{ width:18px; height:18px; }
  .hero-slide__body{ padding-top:calc(var(--nav-h) + 60px); padding-bottom:86px; }
}
@media(max-width:700px){
  .hero-arrow{ display:none; }
  .hero-eyebrow{ font-size:0.62rem; letter-spacing:0.16em; margin-bottom:16px; display:block; }
  .hero-eyebrow i{ display:none; }   /* rule detaches when the label wraps */
  .hero-slide__body p{ font-size:0.97rem; }
  .hero-slide__body .hero-actions{ margin-top:26px; }
  .hero-meta{ bottom:24px; }
  .hero-meta .slider-dot{ width:26px; }
}

/* "I'm looking for" band, moved out of the hero */
.persona-band{
  background:var(--paper); border-bottom:1px solid var(--line);
  padding:26px 0;
}
.persona-band .label{
  font-family:var(--font-body); font-size:0.7rem; font-weight:500;
  letter-spacing:0.13em; text-transform:uppercase; color:var(--stone-2);
  margin-bottom:12px; display:block;
}
.pill-row{ display:flex; gap:12px; flex-wrap:wrap; }
.pill{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-pill);
  padding:9px 18px; font-size:0.9rem; text-decoration:none; color:var(--ink);
  box-shadow:0 2px 10px rgba(25,18,40,0.05);
  transition:transform .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.pill:hover{ border-color:var(--signal); color:var(--signal-2); transform:translateY(-2px); }

/* ==========================================================================
   CLIENT LOGO SLIDER / full colour, continuous marquee
   ========================================================================== */
.logo-band{ padding:34px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper); }
.logo-band .band-label{ text-align:center; margin-bottom:24px; }
.marquee{
  overflow:hidden; position:relative;
  mask-image:linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image:linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.marquee-track{ display:flex; width:max-content; align-items:center; gap:72px; animation:marquee 34s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee-track img{
  height:44px; width:auto; object-fit:contain;
  filter:none;              /* full colour, per feedback item 3 */
  opacity:1;
  transition:transform .3s var(--ease);
}
.marquee-track img:hover{ transform:scale(1.06); }
.marquee-track .word-logo{
  font-family:var(--font-body); font-weight:600; font-size:1.25rem;
  letter-spacing:0.02em; color:var(--graphite); white-space:nowrap;
}
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ============ trust / stats band ============ */
.trust-bar{ padding:44px 0; border-bottom:1px solid var(--line); }
.stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media(max-width:700px){ .stat-row{ grid-template-columns:repeat(2,1fr); } }
.stat-num{ font-family:var(--font-display); font-size:2.2rem; font-weight:600; color:var(--heading); line-height:1; }
.stat-label{ font-size:0.83rem; color:var(--graphite); margin-top:6px; }

/* ============ cards ============ */
.card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:22px; display:flex; flex-direction:column;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(25,18,40,0.09); border-color:var(--stone); }
.card--link{ text-decoration:none; color:inherit; }
.card-icon{ width:32px;height:32px; margin-bottom:14px; color:var(--signal); }
.card-eyebrow{ font-family:var(--font-body); font-weight:500; font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--stone-2); margin-bottom:8px; }
.card h3{ font-size:1.1rem; margin-bottom:7px; }
.card p{ font-size:0.89rem; color:var(--graphite); margin-bottom:0; flex-grow:1; }
.card-cta{ margin-top:14px; font-size:0.83rem; font-weight:600; color:var(--signal-2); }
.card-cta::after{ content:"→"; margin-left:6px; }
.card-list{ font-size:0.82rem; color:var(--stone-2); margin-top:10px; }
.card-list li{ padding:2px 0; }
.card--dark{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.card--dark h3{ color:var(--white); }
.card--dark p{ color:var(--stone); }
.card--dark .card-cta{ color:var(--white); }
.industry-card{ text-align:center; padding:20px 14px; }
.industry-card .card-icon{ margin:0 auto var(--sp-1); }
.industry-card h3{ font-size:0.99rem; margin:0; }

/* media card (image on top) */
.media-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.media-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(25,18,40,0.09); }
.media-card__img{ aspect-ratio:16/9; overflow:hidden; background:var(--paper-2); }
.media-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.media-card:hover .media-card__img img{ transform:scale(1.04); }
.media-card__body{ padding:20px; display:flex; flex-direction:column; flex-grow:1; }
.media-card__meta{ font-family:var(--font-body); font-weight:500; font-size:0.67rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--stone-2); margin-bottom:10px; }
.media-card__body h3{ font-size:1.02rem; line-height:1.28; }
.media-card__body p{ font-size:0.88rem; color:var(--graphite); flex-grow:1; }
.tag-row{ display:flex; flex-wrap:wrap; gap:6px; margin-top:var(--sp-2); }
.tag{ font-family:var(--font-body); font-weight:500; font-size:0.63rem; letter-spacing:0.09em; text-transform:uppercase; background:var(--paper-2); color:var(--graphite); padding:4px 8px; border-radius:2px; }

/* ============ section headers ============ */
.section-head{ max-width:660px; margin-bottom:34px; }
.section-head .eyebrow{ margin-bottom:12px; }
.section-head--center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head--split{ max-width:none; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.section-head--split > div{ max-width:640px; }

/* ==========================================================================
   SLIDER / shared engine for Success Stories + Latest Insights
   featured layout, one story at a time (feedback items 8 & 12)
   ========================================================================== */
.slider{ position:relative; }
.slider-viewport{ overflow:hidden; }
.slider-track{ display:flex; transition:transform .6s var(--ease); }
.slide{ min-width:100%; flex:0 0 100%; }

.story-slide{ display:grid; grid-template-columns:1.05fr 1fr; gap:44px; align-items:center; }
@media(max-width:900px){ .story-slide{ grid-template-columns:1fr; gap:var(--sp-4); } }
.story-slide__body .tag-row{ margin:0 0 var(--sp-2); }
.story-slide__body h3{ font-family:var(--font-display); font-size:clamp(1.4rem,2.1vw,1.85rem); font-weight:500; line-height:1.16; margin-bottom:14px; }
.story-slide__body p{ color:var(--graphite); }
.story-slide__result{ margin-top:20px; }
.result-stat{ font-family:var(--font-display); font-size:2.5rem; color:var(--signal-2); font-weight:600; line-height:1; }
.result-cap{ font-size:0.85rem; color:var(--stone-2); margin-top:4px; }

.media-frame{ position:relative; border:1px solid var(--line); background:var(--navy); aspect-ratio:4/3; overflow:hidden; }
.media-frame img{ width:100%; height:100%; object-fit:cover; }
.media-frame .corner{ position:absolute; width:18px; height:18px; border:1.5px solid var(--white); opacity:0.85; }
.media-frame .corner.tl{ top:12px; left:12px; border-right:none; border-bottom:none; }
.media-frame .corner.br{ bottom:12px; right:12px; border-left:none; border-top:none; }

.slider-controls{ display:flex; align-items:center; gap:18px; margin-top:26px; }
.slider-btn{
  width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
  background:var(--white); cursor:pointer; display:grid; place-items:center;
  color:var(--ink); transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.slider-btn:hover{ background:var(--signal); color:var(--white); border-color:var(--signal); }
.slider-btn[disabled]{ opacity:0.35; cursor:not-allowed; }
.slider-dots{ display:flex; gap:8px; margin-left:auto; }
.slider-dot{ width:9px; height:9px; border-radius:50%; border:none; background:var(--stone); cursor:pointer; padding:0; transition:background .2s, transform .2s; }
.slider-dot.is-active{ background:var(--signal); transform:scale(1.25); }
.slider-count{ font-family:var(--font-body); font-size:0.76rem; color:var(--stone-2); letter-spacing:0.1em; font-variant-numeric:tabular-nums; }
.section--dark .slider-btn{ background:transparent; border-color:var(--line-dark); color:var(--white); }
.section--dark .slider-btn:hover{ background:var(--white); color:var(--ink); }
.section--dark .slider-dot{ background:rgba(239,238,233,0.35); }
.section--dark .slider-dot.is-active{ background:var(--white); }

/* insight slide = featured article, big image left */
.insight-slide{ display:grid; grid-template-columns:1.1fr 1fr; gap:44px; align-items:center; }
@media(max-width:900px){ .insight-slide{ grid-template-columns:1fr; gap:var(--sp-4); } }
.insight-slide__img{ aspect-ratio:16/10; overflow:hidden; border:1px solid var(--line); }
.insight-slide__img img{ width:100%; height:100%; object-fit:cover; }
.insight-slide__body h3{ font-family:var(--font-display); font-size:clamp(1.3rem,1.9vw,1.7rem); font-weight:500; line-height:1.2; }

/* testimonial slider */
.quote-slide{ max-width:900px; margin:0 auto; text-align:center; }
.stars{ color:var(--gold); letter-spacing:3px; font-size:0.95rem; margin-bottom:16px; }
.quote-slide blockquote{ margin:0; font-family:var(--font-display); font-size:clamp(1.18rem,1.8vw,1.5rem); font-weight:400; line-height:1.42; color:var(--heading); }
.quote-slide .who{ margin-top:24px; }
.quote-slide .who strong{ font-family:var(--font-display); font-size:1.05rem; display:block; }
.quote-slide .who span{ font-size:0.86rem; color:var(--stone-2); }

/* ============ leadership ============ */
.leader-card{ text-align:left; }
.avatar{ width:68px; height:68px; border-radius:50%; object-fit:cover; object-position:top center; filter:grayscale(1); transition:filter .35s var(--ease); background:var(--paper-2); }
.leader-card:hover .avatar{ filter:grayscale(0); }
.leader-card h3{ font-size:1.05rem; margin:14px 0 3px; }
.leader-card p{ font-size:0.86rem; color:var(--stone-2); margin:0; }
.leader-tile{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.leader-tile:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(25,18,40,0.09); }

/* ============ certifications ============ */
.cert-band{ padding:44px 0; }
.cert-row{ display:flex; align-items:center; justify-content:center; gap:36px; flex-wrap:wrap; }
.cert-row img{ height:52px; width:auto; object-fit:contain; }
.cert-row p{ max-width:420px; margin:0; color:var(--graphite); }

/* ============ map ============ */
.map-graphic{
  border:1px solid var(--line); background:var(--paper-2); position:relative;
  min-height:330px; overflow:hidden; display:flex;
}
.map-graphic svg{ width:100%; height:auto; align-self:stretch; }
.map-marker{ position:absolute; width:11px; height:11px; border-radius:50%; background:var(--signal); }
.map-marker::before{ content:""; position:absolute; inset:-8px; border:1px solid var(--signal); border-radius:50%; animation:pulse 3s ease-out infinite; }
.map-marker--hq{ width:15px; height:15px; background:var(--ink); }
.map-marker--hq::before{ inset:-12px; border-color:var(--ink); border-width:1.5px; }
.map-pin-label{
  position:absolute; transform:translate(-50%,0);
  font-family:var(--font-body); font-weight:500; font-size:0.67rem; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--graphite); white-space:nowrap;
  background:var(--white); border:1px solid var(--line); padding:5px 9px; border-radius:2px;
}
.map-pin-label strong{ color:var(--ink); }
@keyframes pulse{ 0%{ transform:scale(.7); opacity:.9; } 100%{ transform:scale(2.1); opacity:0; } }
.hq-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; }
.hq-card .eyebrow{ margin-bottom:10px; }
.hq-card h3{ font-size:1.15rem; }
.hq-card dl{ margin:0; }
.hq-card dt{ font-family:var(--font-body); font-size:0.65rem; font-weight:500; letter-spacing:0.13em; text-transform:uppercase; color:var(--stone-2); margin-top:14px; }
.hq-card dd{ margin:2px 0 0; font-size:0.92rem; }

/* ============ awards ============ */
.award-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; display:flex; gap:20px; align-items:flex-start; }
.award-year{ font-family:var(--font-display); font-size:1.45rem; color:var(--signal-2); line-height:1; flex-shrink:0; }
.award-card h3{ font-size:1rem; margin-bottom:5px; }
.award-card p{ font-size:0.9rem; color:var(--graphite); margin:0; }

/* ============ footer ============ */
.site-footer{ background:var(--navy); color:var(--paper); padding:64px 0 20px; }
.footer-top{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:28px; padding-bottom:44px; }
@media(max-width:900px){ .footer-top{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .footer-top{ grid-template-columns:1fr; } }
.footer-top h4{ color:var(--white); font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; font-family:var(--font-body); font-weight:500; margin-bottom:14px; }
.footer-top a{ display:block; color:var(--stone); text-decoration:none; font-size:0.875rem; padding:5px 0; }
.footer-top a:hover{ color:var(--white); }
.footer-brand img{ height:40px; width:auto; margin-bottom:var(--sp-2); }
.footer-brand p{ color:var(--stone); font-size:0.9rem; max-width:290px; }
.footer-sub{ display:flex; gap:8px; margin-top:var(--sp-3); }
.footer-sub input{ flex:1; background:var(--navy-2); border:1px solid var(--line-dark); color:var(--white); padding:11px 14px; border-radius:var(--radius); font-size:0.88rem; }
.footer-sub input::placeholder{ color:var(--stone-2); }
.footer-legal{ border-top:1px solid var(--line-dark); padding-top:18px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.78rem; color:var(--stone-2); }
.footer-legal a{ color:var(--stone-2); text-decoration:none; margin-right:16px; }
.footer-legal a:hover{ color:var(--white); }

/* ============ misc ============ */
.divider{ height:1px; background:var(--line); border:none; margin:34px 0; }
.badge{ display:inline-block; font-family:var(--font-body); font-weight:500; font-size:0.67rem; letter-spacing:0.1em; text-transform:uppercase; background:var(--signal-tint); color:var(--signal-2); padding:5px 10px; border-radius:2px; }
.split{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; }
@media(max-width:860px){ .split{ grid-template-columns:1fr; gap:var(--sp-4); } }
.mv-card{ background:var(--white); border-top:2px solid var(--signal); padding:26px; }
.tab-row{ display:flex; gap:8px; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:18px; margin-bottom:26px; }
.tab-chip{ font-size:0.8rem; padding:8px 15px; border:1px solid var(--line); border-radius:var(--radius-pill); background:var(--white); cursor:pointer; font-family:var(--font-body); }
.tab-chip.is-active{ background:var(--signal-2); color:var(--white); border-color:var(--signal-2); }
.featured-strip{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px; margin-bottom:26px; }
.prose{ max-width:var(--measure); }
.prose h2{ margin-top:34px; }
.prose h3{ margin-top:26px; }
.prose p, .prose li{ color:var(--graphite); }
.prose ul{ list-style:disc; padding-left:1.2em; margin-bottom:var(--sp-2); }
.prose ul li{ margin-bottom:6px; }
.kicker-block{ border-left:2px solid var(--signal); padding-left:20px; margin:26px 0; }
.pull-quote{ font-family:var(--font-display); font-size:1.3rem; font-weight:400; line-height:1.42; margin:26px 0; }
.form-field{ margin-bottom:var(--sp-2); }
.form-field label{ display:block; font-size:0.85rem; font-weight:600; margin-bottom:6px; }
.form-field .req{ color:var(--signal-2); }
.form-field input,.form-field select,.form-field textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius);
  font-family:var(--font-body); font-size:0.95rem; background:var(--white); color:var(--ink);
}
.form-field textarea{ min-height:130px; resize:vertical; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{ outline:none; border-color:var(--signal); }
.form-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px; }
.form-note{ font-size:0.8rem; color:var(--stone-2); margin-top:var(--sp-3); }
.contact-dl dt{ font-family:var(--font-body); font-size:0.66rem; font-weight:500; letter-spacing:0.13em; text-transform:uppercase; color:var(--stone-2); padding-top:20px; }
.contact-dl dd{ margin:4px 0 0; font-family:var(--font-display); font-size:1.1rem; border-bottom:1px solid var(--line); padding-bottom:18px; }
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-stagger > *{ transition-delay:calc(var(--i,0) * 70ms); }
.cta-band{ background:var(--navy); color:var(--paper); padding:64px 0; text-align:center; }
.cta-band h2{ color:var(--white); }
.cta-band p{ color:var(--stone); max-width:500px; margin:0 auto 26px; }


/* ==========================================================================
   WordPress integration
   Everything below is additive. The design system above is untouched, so the
   template can be re-synced without losing any of this.
   ========================================================================== */

/* --- accessibility utilities WordPress markup expects --- */
.screen-reader-text{
  border:0; clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden;
  padding:0; position:absolute; width:1px; white-space:nowrap;
}
.screen-reader-text:focus{
  clip-path:none; height:auto; width:auto; margin:0; padding:12px 18px;
  background:var(--ink); color:var(--white); z-index:200; top:12px; left:12px;
}

/* Honeypot. Hidden from people without being display:none, which some bots
   check for, and taken out of the tab order and the a11y tree. */
.chairo-hp{
  position:absolute !important; left:-9999px !important; top:auto !important;
  width:1px; height:1px; overflow:hidden;
}

/* --- mega menu panels sized to however many columns the editor made --- */
.dropdown--cols-1{ width:340px; }
.dropdown--cols-2{ width:600px; }
.dropdown--cols-3{ width:840px; }
.dropdown--cols-4{ width:1040px; }
.dropdown-grid--cols-1{ grid-template-columns:1fr; min-height:0; }
.dropdown-grid--cols-2{ grid-template-columns:repeat(2,1fr); }
.dropdown-grid--cols-3{ grid-template-columns:repeat(3,1fr); }
.dropdown-grid--cols-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:1100px){
  .dropdown--cols-3,.dropdown--cols-4{ width:min(760px, calc(100vw - 40px)); }
  .dropdown-grid--cols-3,.dropdown-grid--cols-4{ grid-template-columns:repeat(2,1fr); }
}

/* A column heading that the editor gave a real destination stays clickable. */
a.dd-title{ text-decoration:none; }
a.dd-title:hover{ color:var(--signal-2); }

/* A primary menu item carrying the "cta" class renders as the filled button. */
.nav-item--cta{ margin-left:6px; }
.nav-item--cta .btn{ padding:9px 16px; font-size:0.78rem; }
@media(max-width:1024px){ .nav-item--cta{ display:none; } }

/* --- pagination --- */
.chairo-pagination{ margin:var(--sp-6) 0; }
.chairo-pagination .nav-links{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; }
.chairo-pagination .page-numbers{
  display:grid; place-items:center; min-width:40px; height:40px; padding:0 12px;
  border:1px solid var(--line); border-radius:var(--radius);
  text-decoration:none; font-size:0.9rem; color:var(--ink);
  transition:background .16s var(--ease), border-color .16s var(--ease), color .16s var(--ease);
}
.chairo-pagination .page-numbers:hover{ border-color:var(--signal); color:var(--signal-2); }
.chairo-pagination .page-numbers.current{ background:var(--signal); border-color:var(--signal); color:var(--white); }
.chairo-pagination .page-numbers.dots{ border-color:transparent; }

/* --- form status notes --- */
.form-note.is-ok,.form-note.is-err{
  padding:12px 16px; border-radius:var(--radius); font-size:0.88rem;
  margin-bottom:var(--sp-3); border-left:3px solid;
}
.form-note.is-ok{ background:#EEF6EF; border-color:#2F7D42; color:#215C31; }
.form-note.is-err{ background:#FBEEF0; border-color:#B23A4B; color:#8A2434; }

/* --- editor content: WordPress alignment and media classes --- */
.entry-content > *{ margin-bottom:var(--sp-3); }
.entry-content > *:last-child{ margin-bottom:0; }
.entry-content img{ max-width:100%; height:auto; border-radius:var(--radius); }
.entry-content .alignleft{ float:left; margin:0 var(--sp-3) var(--sp-2) 0; }
.entry-content .alignright{ float:right; margin:0 0 var(--sp-2) var(--sp-3); }
.entry-content .aligncenter{ display:block; margin-left:auto; margin-right:auto; }
.entry-content .alignwide{ width:min(1100px, 100%); margin-left:auto; margin-right:auto; }
.entry-content .alignfull{
  width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}
.entry-content blockquote{
  border-left:3px solid var(--signal); padding-left:var(--sp-3);
  font-family:var(--font-display); font-size:var(--fs-lg); color:var(--navy);
}
.entry-content ul,.entry-content ol{ padding-left:1.4em; }
.entry-content ul{ list-style:disc; }
.entry-content ol{ list-style:decimal; }
.entry-content li{ margin-bottom:6px; }
.entry-content table{ width:100%; border-collapse:collapse; font-size:0.92rem; }
.entry-content th,.entry-content td{ border:1px solid var(--line); padding:10px 12px; text-align:left; }
.entry-content figcaption,.wp-caption-text{ font-size:0.8rem; color:var(--stone-2); margin-top:6px; }
.entry-content pre{
  background:var(--ink); color:var(--paper); padding:var(--sp-3);
  border-radius:var(--radius); overflow-x:auto; font-size:0.85rem;
}
.entry-content code{ font-size:0.9em; }
.entry-content a{ color:var(--signal-2); }

/* Placeholder card images sit behind real ones without shifting a grid. */
img.is-placeholder{ opacity:.35; filter:grayscale(1); }

/* --- admin bar must not hide the fixed header --- */
body.admin-bar .site-header{ top:32px; }
@media(max-width:782px){ body.admin-bar .site-header{ top:46px; } }
body.admin-bar .mobile-overlay{ top:32px; }
@media(max-width:782px){ body.admin-bar .mobile-overlay{ top:46px; } }

/* Initials stand in for a team member with no photograph, matching the
   inline-styled placeholder the design used. Grayscale is dropped so the
   brand tint reads correctly. */
.avatar--initials{
  display:grid; place-items:center;
  font-family:var(--font-display); font-size:1.4rem; line-height:1;
  color:var(--signal-2); background:var(--signal-tint);
  filter:none;
}
.leader-card:hover .avatar--initials{ filter:none; }
.leader-tile .avatar--initials{ width:96px; height:96px; font-size:1.9rem; }

/* --------------------------------------------------------------------------
   Compact presence band

   The design stretched a short contact card to match a portrait map, which
   left about 420px of empty white in the card and made the section 1101px
   tall. Sizing the map column to the map's own capped height, and letting the
   card be its natural height, removes both. The map still scales as a whole,
   so the geography is untouched.
   -------------------------------------------------------------------------- */
.presence-split{
  grid-template-columns:auto 1fr;
  align-items:start;
  gap:36px;
}
.presence-split .map-graphic{
  min-height:0;
  justify-content:center;
}
.presence-split .map-graphic svg{
  height:clamp(340px, 34vw, 460px);
  width:auto;
  max-width:100%;
  align-self:center;
}
/* The card is shorter than the map even after the two-column flow, so centre
   it rather than leaving all the slack under it. */
.presence-split .hq-card{ align-self:center; }
/* Below the split's own stacking breakpoint the map goes full width, where a
   height cap would squeeze it into a sliver. */
@media(max-width:860px){
  .presence-split{ grid-template-columns:1fr; }
  .presence-split .map-graphic svg{ height:auto; width:100%; }
}
/* The card is wide and its details are a short single column, so flow them
   into two. Multi-column keeps each term with its value without needing a
   wrapper element around every pair. */
.presence-split .hq-card dl{
  columns:2;
  column-gap:32px;
}
.presence-split .hq-card dt{ break-after:avoid; break-inside:avoid; }
.presence-split .hq-card dd{ break-before:avoid; break-inside:avoid; }
.presence-split .hq-card dl > dt:first-child{ margin-top:0; }
@media(max-width:1100px){
  .presence-split .hq-card dl{ columns:1; }
}
/* Scaling the map down scales its type with it, which took the city labels
   from 18px to 11px. The map is a diagram, not a photograph: the marks may
   shrink, the labels should stay readable. These sizes are in SVG user units,
   chosen so the labels render at roughly their original size at the capped
   map height. */
.presence-split .map-graphic svg text[font-size="24"]{ font-size:41px; }
.presence-split .map-graphic svg text[font-size="25"]{ font-size:42px; }
.presence-split .map-graphic svg text[font-size="26"]{ font-size:44px; }
.presence-split .map-graphic svg text[font-size="27"]{ font-size:46px; }
/* Below the stacking breakpoint the map is full width again, so its own
   sizes are already correct. */
@media(max-width:860px){
  .presence-split .map-graphic svg text[font-size="24"]{ font-size:24px; }
  .presence-split .map-graphic svg text[font-size="25"]{ font-size:25px; }
  .presence-split .map-graphic svg text[font-size="26"]{ font-size:26px; }
  .presence-split .map-graphic svg text[font-size="27"]{ font-size:27px; }
}

/* --------------------------------------------------------------------------
   Navigation active state

   Only the link that IS the current page gets the filled pill, via
   aria-current. A bar item whose dropdown merely contains a link to the
   current page is a section, not the destination, and gets a quiet underline
   instead. Without that distinction, every dropdown carrying a "Speak to an
   advisor" link lit up on the contact page.
   -------------------------------------------------------------------------- */
.nav-item.is-ancestor > .nav-link{ position:relative; }
.nav-item.is-ancestor > .nav-link::after{
  content:""; position:absolute; left:10px; right:10px; bottom:4px;
  height:1.5px; background:var(--signal); border-radius:2px; opacity:.55;
}
/* The open panel and hover already say enough; drop the marker then so the
   two cues never stack. */
.nav-item.is-ancestor.is-open > .nav-link::after,
.nav-item.is-ancestor > .nav-link:hover::after{ opacity:0; }

/* Inside a dropdown, mark the entry for the page you are on. */
.dd-link[aria-current="page"]{ background:var(--paper); color:var(--signal-2); }
.dd-link[aria-current="page"] span{ color:var(--graphite); }
