/* ============================================================
   CTI Global Logistics — shared stylesheet
   Used by: index.html, services.html, industries.html, about.html,
   contact.html, careers.html, track.html, and all *-detail pages
   ============================================================ */

/* Brand fonts — CTI proprietary
   Place .woff2 files in /fonts/ to activate. Until then, browser
   falls back gracefully to Manrope / Fraunces from Google Fonts. */
@font-face{
  font-family:'Safiro';
  src:local('Safiro Regular'),local('Safiro-Regular');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Safiro';
  src:local('Safiro Medium'),local('Safiro-Medium');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Safiro';
  src:local('Safiro SemiBold'),local('Safiro-SemiBold');
  font-weight:600;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Safiro';
  src:local('Safiro Bold'),local('Safiro-Bold');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Tiempos Headline';
  src:local('Tiempos Headline Regular Italic'),local('TiemposHeadline-RegularItalic');
  font-weight:400;font-style:italic;font-display:swap;
}
@font-face{
  font-family:'Tiempos Headline';
  src:local('Tiempos Headline Medium Italic'),local('TiemposHeadline-MediumItalic');
  font-weight:500;font-style:italic;font-display:swap;
}
@font-face{
  font-family:'Tiempos Headline';
  src:local('Tiempos Headline Regular'),local('TiemposHeadline-Regular');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Tiempos Headline';
  src:local('Tiempos Headline Medium'),local('TiemposHeadline-Medium');
  font-weight:500;font-style:normal;font-display:swap;
}
/* Tiempos Text — body serif per brand guide */
@font-face{
  font-family:'Tiempos Text';
  src:local('Tiempos Text Regular'),local('TiemposText-Regular');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Tiempos Text';
  src:local('Tiempos Text Italic'),local('TiemposText-Italic');
  font-weight:400;font-style:italic;font-display:swap;
}
@font-face{
  font-family:'Tiempos Text';
  src:local('Tiempos Text Medium'),local('TiemposText-Medium');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Tiempos Text';
  src:local('Tiempos Text Semibold'),local('TiemposText-Semibold');
  font-weight:600;font-style:normal;font-display:swap;
}

:root{
  /* Brand — matched to live control-towers.com palette */
  --brand:#CDFC54;
  --brand-d:#b8e83d;
  --brand-soft:rgba(205,252,84,0.10);
  --brand-line:rgba(205,252,84,0.32);
  --navy:#2a2c3b;          /* Brand-spec dark navy */
  --navy-2:#2a2c3b;        /* Alias of --navy */
  --navy-3:#3b3e52;        /* Slightly lighter shade for hover/border states */
  /* Dark theme — primary palette (post client revision 2026-05-20) */
  --bg:#2a2c3b;            /* Page background — brand navy */
  --bg-card:#353748;       /* Card / panel surface */
  --bg-soft:#30323f;       /* Slightly softer than page bg, used for strips */
  --bg-blue:#2f3245;       /* Blue-tinted dark for callout panels */
  --text:#f1f2f7;          /* Body text — off-white */
  --text-on-dark:#ffffff;
  --muted:#a4a9ba;         /* Secondary text on dark */
  --muted-d:#7e8395;
  --muted-on-dark:#b6bac6;
  --border:rgba(255,255,255,0.09);
  --border-strong:rgba(255,255,255,0.16);
  --border-dark:rgba(255,255,255,0.10);
  --border-dark-strong:rgba(255,255,255,0.18);
  --shadow-sm:0 1px 2px rgba(0,0,0,0.18);
  --shadow-md:0 8px 24px rgba(0,0,0,0.30);
  --shadow-lg:0 18px 48px rgba(0,0,0,0.38);
  --shadow-xl:0 28px 72px rgba(0,0,0,0.50);
  --radius:14px;
  --radius-sm:8px;
  --radius-pill:999px;
  --display:'Safiro','Manrope',system-ui,-apple-system,sans-serif;
  --body:'Safiro','Manrope',system-ui,-apple-system,sans-serif;
  --serif:'Tiempos Text','Fraunces',Georgia,serif;            /* Body serif — editorial paragraphs */
  --accent:'Tiempos Headline','Fraunces',Georgia,serif;       /* Display serif — em accents (italic light) */
  --mono:'JetBrains Mono',ui-monospace,monospace;
  /* Tertiary accent — brand orange (#D3812F, warm caramel) */
  --orange:#D3812F;
  --orange-soft:rgba(211,129,47,0.12);
  --orange-line:rgba(211,129,47,0.38);
  /* Additional brand colors from official palette */
  --royal-navy:#263161;        /* Deep brand navy — used in logo wordmark */
  --blue-mid:#4B69A6;          /* Brand mid-blue accent */
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--bg);color:var(--text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}

::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg-soft)}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:var(--muted)}

:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}
:focus:not(:focus-visible){outline:none}
.dark-section :focus-visible{outline-color:var(--brand)}
/* Ensure a visible ring on brand-coloured (lime/orange) surfaces where the lime outline would vanish */
.btn-primary:focus-visible,.nav-cta:focus-visible,.form-priority:focus-visible input:focus-visible{outline-color:var(--navy);outline-offset:3px}

.container{max-width:1600px;margin:0 auto;padding:0 64px}
@media (max-width:1280px){.container{padding:0 48px}}
@media (max-width:768px){.container{padding:0 24px}}

/* ───── BUTTONS ───── */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;font-family:var(--body);font-size:14px;font-weight:600;border-radius:var(--radius-pill);transition:all .25s ease;text-decoration:none;cursor:pointer;border:none;letter-spacing:-0.005em;line-height:1}
.btn-primary{background:var(--orange);color:var(--navy);font-weight:700}
.btn-primary:hover{background:#e29545;transform:translateY(-2px);box-shadow:0 8px 24px rgba(211,129,47,0.38)}
.btn-dark{background:#1d1f2b;color:var(--text-on-dark);font-weight:600;border:1px solid rgba(255,255,255,0.08)}
.btn-dark:hover{background:#13151f;border-color:var(--brand-line);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.40)}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border-strong)}
.btn-ghost:hover{border-color:var(--brand);background:rgba(205,252,84,0.06);color:var(--text)}
.btn-ghost-on-dark{background:transparent;color:var(--text-on-dark);border:1px solid var(--border-dark-strong)}
.btn-ghost-on-dark:hover{background:rgba(255,255,255,0.06);border-color:var(--brand)}
.btn-orange{background:var(--orange);color:#ffffff;font-weight:700}
.btn-orange:hover{background:#d96720;transform:translateY(-2px);box-shadow:0 8px 24px rgba(237,125,46,0.32)}
.btn-arrow svg{transition:transform .25s ease}
.btn:hover .btn-arrow{transform:translateX(4px)}
.btn-inner{display:inline-block;transition:transform .45s cubic-bezier(0.23,1,0.32,1)}

/* ───── BRACKETED ELEMENT (design twist signature) ───── */
.brackets{position:relative}
.brackets > .br{position:absolute;width:14px;height:14px;border:1.5px solid var(--brand);pointer-events:none}
.brackets > .br.tl{top:-1px;left:-1px;border-right:none;border-bottom:none}
.brackets > .br.tr{top:-1px;right:-1px;border-left:none;border-bottom:none}
.brackets > .br.bl{bottom:-1px;left:-1px;border-right:none;border-top:none}
.brackets > .br.br{bottom:-1px;right:-1px;border-left:none;border-top:none}
.brackets-navy > .br{border-color:var(--text)}

/* ───── LABELS ───── */
.eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--text);display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:'';width:24px;height:1.5px;background:var(--brand)}
.eyebrow.on-dark{color:var(--brand)}
.eyebrow.on-dark::before{background:var(--brand)}
.eyebrow.orange{color:var(--orange)}
.eyebrow.orange::before{background:var(--orange)}
.eyebrow.orange-on-dark{color:var(--orange)}
.eyebrow.orange-on-dark::before{background:var(--orange)}
.mono-line{font-family:var(--mono);font-size:11px;letter-spacing:0.08em;color:var(--muted);text-transform:uppercase}

/* ───── LOADER ───── */
#loader{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .4s ease}
#loader.fade-out{opacity:0;pointer-events:none}
.loader-mark{position:relative;width:54px;height:54px}
.loader-mark::before{content:'';position:absolute;inset:0;border:1px solid var(--border-strong);border-radius:50%}
.loader-mark::after{content:'';position:absolute;inset:0;border:2px solid transparent;border-top:2px solid var(--navy-2);border-radius:50%;animation:spin .85s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#page{opacity:0;transition:opacity .4s ease}
#page.visible{opacity:1}

/* ───── TOP BAR ───── */
.topbar{background:var(--navy);color:var(--muted-on-dark);font-family:var(--mono);font-size:12px;letter-spacing:0.04em;position:relative;z-index:101}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;padding:10px 0;gap:16px;flex-wrap:wrap}
.topbar-l{display:flex;gap:24px;align-items:center}
.topbar-l span{display:inline-flex;align-items:center;gap:8px}
.topbar-l span::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--brand)}
.topbar-r{display:flex;gap:20px;align-items:center}
.topbar-r a{color:var(--text-on-dark);transition:color .2s}
.topbar-r a:hover{color:var(--brand)}
@media (max-width:768px){.topbar-l span:nth-child(n+2){display:none}.topbar-r a:not(:first-child){display:none}}

/* ───── NAV ───── */
.nav-wrap{position:sticky;top:0;z-index:100;background:transparent;transition:background .35s ease,box-shadow .35s ease}
.nav-wrap.solid{background:rgba(29,31,43,0.55);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);box-shadow:0 4px 18px rgba(0,0,0,0.22);border-bottom:1px solid rgba(255,255,255,0.06)}
.nav-wrap.always-solid{background:rgba(29,31,43,0.55);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);box-shadow:0 4px 18px rgba(0,0,0,0.22);border-bottom:1px solid rgba(255,255,255,0.06)}
/* Only set vertical padding here — using the `padding` shorthand would wipe out
   the horizontal padding inherited from .container and push the logo flush to
   the viewport edge (and clip it on narrow screens). */
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-top:18px;padding-bottom:18px}
.nav-brand{display:flex;align-items:center;flex-shrink:0}
.nav-logo{height:38px;width:auto;display:block;filter:brightness(0) invert(1);transition:filter .35s ease}

.nav-links{display:flex;align-items:center;gap:4px}
.nav-item{position:relative}
.nav-link{position:relative;font-family:var(--body);font-size:14px;font-weight:500;color:rgba(255,255,255,0.78);transition:color .2s ease;display:inline-flex;align-items:center;gap:6px;padding:12px 18px;border-radius:var(--radius-pill);cursor:pointer;background:transparent;border:none}
.nav-link svg{width:9px;height:9px;transition:transform .25s ease;opacity:.7}
.nav-link:hover{color:var(--text)}
.nav-item.is-open .nav-link svg{transform:rotate(180deg)}
.nav-link.is-current{color:var(--text);font-weight:600}
.nav-link.is-current::after{content:'';position:absolute;left:50%;bottom:4px;transform:translateX(-50%);width:18px;height:2px;background:var(--brand);border-radius:1px}

.nav-wrap:not(.solid):not(.always-solid) .nav-link{color:rgba(255,255,255,0.78)}
.nav-wrap:not(.solid):not(.always-solid) .nav-link:hover{color:var(--text-on-dark)}
.nav-wrap:not(.solid):not(.always-solid) .nav-link.is-current{color:var(--text-on-dark)}

.nav-actions{display:flex;align-items:center;gap:14px}
.nav-track{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--text);letter-spacing:0.06em;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);text-transform:uppercase;transition:all .2s}
.nav-track:hover{border-color:var(--brand);color:var(--brand);background:rgba(205,252,84,0.06)}
.nav-track svg{width:13px;height:13px}
.nav-wrap:not(.solid):not(.always-solid) .nav-track{color:rgba(255,255,255,0.85);border-color:rgba(255,255,255,0.22);background:rgba(255,255,255,0.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.nav-wrap:not(.solid):not(.always-solid) .nav-track:hover{border-color:var(--brand);color:var(--brand);background:rgba(205,252,84,0.08)}

.nav-cta{background:var(--orange);color:var(--navy);padding:10px 20px;border-radius:var(--radius-pill);font-weight:700;font-size:13px;transition:all .2s}
.nav-cta:hover{background:#e29545}
.nav-cta:hover{background:var(--brand-d);transform:translateY(-1px)}

.nav-burger{display:none;width:42px;height:42px;border-radius:50%;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;background:transparent;border:1px solid var(--border-strong)}
/* Burger bars stay white in every nav state — matches the (filter-whitened) logo.
   The old var(--navy-2) value was identical to the page background, which made
   the bars invisible once the nav turned solid on scroll. */
.nav-burger span{display:block;width:18px;height:2px;background:var(--text-on-dark);border-radius:1px;transition:transform .25s,opacity .25s}
.nav-wrap:not(.solid):not(.always-solid) .nav-burger{border-color:rgba(255,255,255,0.22)}

/* Desktop: three-part bar so the menu sits at the true centre of the page,
   whatever the widths of the logo and the buttons either side */
@media (min-width:1101px){
  .nav-inner{display:grid;grid-template-columns:1fr auto 1fr}
  .nav-actions{justify-self:end}
}
@media (max-width:1100px){
  .nav-links,.nav-track{display:none}
  .nav-burger{display:inline-flex}
}
/* Phone: tighten the bar so the logo, CTA and burger never crowd or clip */
@media (max-width:560px){
  .nav-inner{gap:14px}
  .nav-logo{height:32px}
  .nav-cta{padding:9px 15px;font-size:12.5px}
}

/* ───── MEGAMENU ───── */
/* Solid dark panel that stands off any hero photo; two-column list, titles never wrap. */
.megamenu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);width:640px;background:#1c1e2a;border:1px solid rgba(255,255,255,0.09);border-radius:14px;padding:10px;box-shadow:0 30px 70px -18px rgba(0,0,0,0.65),0 8px 24px -8px rgba(0,0,0,0.4);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s;z-index:90}
.nav-item.is-open .megamenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);pointer-events:auto;transition:opacity .22s ease,transform .22s ease,visibility 0s linear 0s}
.megamenu::before{content:'';position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#1c1e2a;border-top:1px solid rgba(255,255,255,0.09);border-left:1px solid rgba(255,255,255,0.09)}
.megamenu.mm-services{width:680px}
.megamenu.mm-industries{width:620px}
.megamenu.compact{width:620px}
/* Smaller laptops: a centred Services panel would run off the left edge, so anchor it to its item */
@media (max-width:1360px){
  .megamenu.mm-services{left:-28px;transform:translateY(8px)}
  .nav-item.is-open .megamenu.mm-services{transform:translateY(0)}
  .megamenu.mm-services::before{left:72px}
}

.megamenu-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 6px;padding:12px 14px 14px;border-bottom:1px solid rgba(255,255,255,0.07)}
.megamenu-head .label{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text);letter-spacing:0.16em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px}
.megamenu-head .label::before{content:'';width:18px;height:1.5px;background:var(--brand)}
.megamenu-head .meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase}

.megamenu-grid{display:grid;gap:2px}
.megamenu-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.megamenu-grid.cols-2{grid-template-columns:repeat(2,1fr)}

.megamenu-card{position:relative;display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:10px;border:1px solid transparent;transition:background .18s ease,border-color .18s ease}
.megamenu-card:hover,.megamenu-card:focus-visible{background:rgba(255,255,255,0.05)}
.megamenu-card .mm-icon{flex-shrink:0;width:38px;height:38px;border-radius:8px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.09);display:flex;align-items:center;justify-content:center;color:var(--brand);transition:border-color .18s ease,background .18s ease}
.megamenu-card .mm-icon svg{width:18px;height:18px}
.megamenu-card:hover .mm-icon{border-color:var(--brand-line);background:rgba(205,252,84,0.08)}
.megamenu-card .mm-body{display:block;flex:1;min-width:0}
.megamenu-card .mm-title{display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:14.5px;font-weight:600;color:var(--text);letter-spacing:-0.01em;line-height:1.3;white-space:nowrap}
.megamenu-card .mm-arrow{font-family:var(--body);font-size:13px;line-height:1;color:var(--brand);opacity:0;transform:translateX(-4px);transition:opacity .18s ease,transform .18s ease}
.megamenu-card:hover .mm-arrow,.megamenu-card:focus-visible .mm-arrow{opacity:1;transform:none}
.megamenu-card .mm-desc{display:block;margin-top:3px;font-family:var(--body);font-size:12.5px;line-height:1.45;color:var(--muted)}
/* Current page (class added by cti-script.js) */
.megamenu-card.is-current{background:rgba(205,252,84,0.06);box-shadow:inset 2px 0 0 var(--brand)}
.megamenu-card.is-current .mm-title{color:var(--brand)}
/* Featured card: the phone line / the overview */
.megamenu-card.feat{background:rgba(205,252,84,0.07);border-color:rgba(205,252,84,0.22)}
.megamenu-card.feat:hover{background:rgba(205,252,84,0.11);border-color:rgba(205,252,84,0.4)}
.megamenu-card.feat .mm-icon{background:var(--brand);border-color:var(--brand);color:var(--navy)}
.megamenu-card.feat .mm-desc{color:rgba(255,255,255,0.78)}
.megamenu-card.feat[href^="tel:"] .mm-desc{font-family:var(--mono);font-size:12px;letter-spacing:0.02em}

.megamenu-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding:14px 14px 6px;border-top:1px solid rgba(255,255,255,0.07);font-family:var(--mono);font-size:11px;letter-spacing:0.06em}
.megamenu-foot .mf-l{color:var(--muted)}
.megamenu-foot .mf-l b{color:var(--text);font-weight:600}
.megamenu-foot .mf-r{display:inline-flex;align-items:center;gap:8px;color:var(--brand);font-weight:600;text-transform:uppercase;transition:color .2s}
.megamenu-foot .mf-r:hover{color:var(--text)}
.megamenu-foot .mf-r svg{width:13px;height:13px;transition:transform .2s}
.megamenu-foot .mf-r:hover svg{transform:translateX(4px)}

/* ───── MOBILE DRAWER ───── */
.mobile-drawer{position:fixed;inset:0;z-index:200;visibility:hidden;pointer-events:none}
.mobile-drawer.open{visibility:visible;pointer-events:auto}
.mobile-drawer-scrim{position:absolute;inset:0;background:rgba(15,17,26,0.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .35s ease}
.mobile-drawer.open .mobile-drawer-scrim{opacity:1}
.mobile-drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(380px,90vw);background:var(--bg);box-shadow:var(--shadow-xl);transform:translateX(100%);transition:transform .4s cubic-bezier(.25,.46,.45,.94);display:flex;flex-direction:column;overflow:hidden}
.mobile-drawer.open .mobile-drawer-panel{transform:translateX(0)}
.md-head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--border)}
/* Whiten the blue wordmark so it reads against the dark drawer panel
   (matches .nav-logo / .footer-logo treatment). width:auto keeps the logo
   from stretching to its intrinsic 2029px width against the fixed height. */
.md-head img{height:34px;width:auto;filter:brightness(0) invert(1)}
.md-close{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text);cursor:pointer;transition:all .2s}
.md-close:hover{background:var(--brand);color:var(--navy);border-color:var(--brand)}
.md-body{flex:1;overflow-y:auto;padding:18px 0}
.md-section{padding:0 24px}
.md-group{border-bottom:1px solid var(--border)}
.md-group-title{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;font-family:var(--display);font-size:18px;font-weight:600;color:var(--text);letter-spacing:-0.02em;cursor:pointer;background:transparent;border:none;width:100%;text-align:left}
.md-group-title::after{content:'';width:9px;height:9px;border-right:2px solid rgba(255,255,255,0.6);border-bottom:2px solid rgba(255,255,255,0.6);transform:rotate(45deg);margin-top:-5px;transition:transform .25s,border-color .25s}
.md-group.open .md-group-title::after{transform:rotate(-135deg);margin-top:5px;border-color:var(--brand)}
.md-group-items{display:none;margin:0 24px 18px;padding:2px 0 2px 16px;border-left:1px solid rgba(255,255,255,0.12)}
.md-group.open .md-group-items{display:flex;flex-direction:column;gap:2px}
.md-group-items a{font-family:var(--body);font-size:15px;color:rgba(255,255,255,0.74);padding:9px 0;transition:color .2s}
.md-group-items a:hover{color:var(--brand)}
/* Current page marker in the drawer (class added by cti-script.js) */
.md-group-items a.is-current{color:var(--brand);font-weight:600}
.md-group-items a.is-current::before{content:'';display:inline-block;width:6px;height:6px;background:var(--brand);margin-right:10px;vertical-align:2px}
.md-link.is-current{color:var(--brand)}
.md-link{display:block;padding:18px 24px;font-family:var(--display);font-size:18px;font-weight:600;color:var(--text);letter-spacing:-0.02em;border-bottom:1px solid var(--border);transition:color .2s}
.md-link:hover{color:var(--brand-d)}
.md-foot{padding:24px;border-top:1px solid var(--border);background:var(--bg-soft);display:flex;flex-direction:column;gap:12px}
.md-foot a.btn{justify-content:center}

/* ───── PAGE HERO (for sub-pages) ───── */
.page-hero{position:relative;margin-top:-90px;padding:210px 0 80px;background:var(--bg);border-bottom:1px solid var(--border);overflow:hidden}
.page-hero::before{content:'';position:absolute;top:0;right:-10%;width:60%;height:100%;background:radial-gradient(ellipse at top right,var(--brand-soft),transparent 60%);opacity:.7;pointer-events:none}
.page-hero::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.022) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at top right,black 0%,transparent 65%);-webkit-mask-image:radial-gradient(ellipse at top right,black 0%,transparent 65%);pointer-events:none}
.page-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:end}
.page-hero-content{max-width:760px}
.breadcrumb{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:32px;flex-wrap:wrap}
.breadcrumb a{color:var(--muted);transition:color .2s}
.breadcrumb a:hover{color:var(--text)}
.breadcrumb .crumb-cur{color:var(--text);font-weight:500}
.breadcrumb-sep{color:var(--muted-d)}
.page-hero h1{font-family:var(--display);font-size:clamp(44px,5.6vw,84px);font-weight:500;letter-spacing:-0.04em;line-height:0.98;margin:12px 0 32px;color:var(--text)}
/* Brand underline drawn as a background gradient so it hugs the text on
   every line. Cloning across line boxes means it ends exactly where the
   words end, instead of stretching to the container edge when the accent
   wraps onto two lines (e.g. on mobile). */
.page-hero h1 em{font-family:var(--accent);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--text);background-image:linear-gradient(var(--brand),var(--brand));background-repeat:no-repeat;background-position:0 100%;background-size:100% 5px;padding-bottom:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* Keep each underlined accent phrase on a single line (wraps as a unit).
   Only above phone width — on narrow screens a forced one-liner could
   overflow, and there the clone underline already hugs each line. */
@media (min-width:640px){
  .page-hero h1 em,.who-content h2 em,.section-head h2 em,.stats-head h2 em,.cta-inner h2 em,.faq-aside h2 em,.contact-aside h2 em{white-space:nowrap}
}
.page-hero-intro{font-family:var(--serif);font-size:19px;color:var(--muted);line-height:1.55;max-width:640px;font-weight:400;letter-spacing:0}
.page-hero-meta{display:flex;flex-direction:column;gap:18px;align-items:flex-end;padding:24px 0}
.page-hero-meta-item{text-align:right}
.page-hero-meta-item .lbl{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:0.14em;text-transform:uppercase;display:block;margin-bottom:6px}
.page-hero-meta-item .val{font-family:var(--display);font-size:22px;font-weight:600;color:var(--text);letter-spacing:-0.02em;font-feature-settings:'tnum'}
.page-hero-meta-item .val em{font-style:normal;color:var(--brand);font-size:0.65em;font-weight:500;margin-left:2px}
@media (max-width:880px){.page-hero{margin-top:-90px;padding:178px 0 64px}.page-hero-inner{grid-template-columns:1fr;gap:32px}.page-hero-meta{flex-direction:row;gap:32px;flex-wrap:wrap;align-items:flex-start}.page-hero-meta-item{text-align:left}}

/* ───── WHO WE ARE — editorial intro section ───── */
.who-we-are{background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.who-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:96px;align-items:start}
.who-content .eyebrow{margin-bottom:18px}
.who-content h2{font-family:var(--display);font-size:clamp(36px,4.2vw,60px);font-weight:500;letter-spacing:-0.04em;line-height:1.02;color:var(--text);margin:18px 0 36px}
.who-content h2 em{font-family:var(--accent);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--text);background-image:linear-gradient(var(--brand),var(--brand));background-repeat:no-repeat;background-position:0 100%;background-size:100% 5px;padding-bottom:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}

.who-lead{font-family:var(--serif);font-size:22px;color:var(--text);line-height:1.45;margin-bottom:28px;font-weight:400;max-width:600px;letter-spacing:0}
.who-content p{font-family:var(--serif);font-size:17px;color:var(--muted);line-height:1.6;margin-bottom:22px;max-width:600px;font-weight:400;letter-spacing:0}
.who-content .btn{margin-top:14px}
.who-quote{padding:48px 44px;background:var(--bg);border:1px solid var(--border);border-radius:18px;position:relative;overflow:hidden}
.who-quote::before{content:'';position:absolute;top:0;left:0;width:64px;height:3px;background:var(--orange);border-radius:0 0 3px 0}
.who-quote .quote-mark{font-family:var(--accent);font-style:italic;font-size:96px;color:var(--orange);line-height:0.7;display:block;margin-bottom:4px;opacity:.5}
.who-quote-body{font-family:var(--accent);font-style:italic;font-size:23px;color:var(--text);line-height:1.4;margin-bottom:36px;font-weight:400;letter-spacing:-0.005em}
.who-quote .attr{padding-top:24px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:5px}
.who-quote .attr-name{font-family:var(--display);font-size:15px;font-weight:600;color:var(--text)}
.who-quote .attr-role{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase;font-weight:500}
@media (max-width:1024px){.who-grid{grid-template-columns:1fr;gap:56px}.who-quote{max-width:560px}}
@media (max-width:540px){.who-quote{padding:36px 28px}.who-quote-body{font-size:19px}}

/* ───── TEAM PORTRAITS — editorial grid ───── */
.team-section{background:var(--bg)}
.team-grid-portraits{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.team-portrait{display:flex;flex-direction:column;cursor:default;transition:transform .4s cubic-bezier(.25,.46,.45,.94)}
.team-portrait:hover{transform:translateY(-4px)}
.team-photo{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:16px;background:var(--navy-2);margin-bottom:22px;box-shadow:var(--shadow-md)}
.team-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform 1s cubic-bezier(.25,.46,.45,.94),filter .5s ease;filter:saturate(.92) contrast(1.03)}
.team-portrait:hover .team-photo img{transform:scale(1.04);filter:saturate(1.02) contrast(1.05)}
.team-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(15,17,26,0.45));pointer-events:none;opacity:.6;transition:opacity .35s ease}
.team-portrait:hover .team-photo::after{opacity:1}
.team-tag{position:absolute;top:16px;left:16px;z-index:1;font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--brand);padding:5px 11px;background:rgba(15,17,26,0.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:var(--radius-pill);border:1px solid rgba(205,252,84,0.30);font-weight:500;display:inline-flex;align-items:center;gap:7px}
.team-tag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--brand)}
.team-tag.orange{color:var(--orange);border-color:var(--orange-line)}
.team-tag.orange::before{background:var(--orange)}
.team-meta{position:absolute;bottom:18px;left:18px;right:18px;z-index:1;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;color:rgba(255,255,255,0.8);letter-spacing:0.12em;text-transform:uppercase;font-weight:500;opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease}
.team-portrait:hover .team-meta{opacity:1;transform:translateY(0)}
.team-info{padding:0 4px}
.team-name{font-family:var(--display);font-size:20px;font-weight:500;letter-spacing:-0.02em;color:var(--text);margin-bottom:6px;line-height:1.2}
.team-role{font-family:var(--mono);font-size:11px;color:var(--text);letter-spacing:0.1em;text-transform:uppercase;font-weight:500;margin-bottom:14px}
.team-bio{font-size:14px;color:var(--muted);line-height:1.65;font-weight:300}
@media (max-width:1024px){.team-grid-portraits{grid-template-columns:repeat(2,1fr);gap:32px}}
@media (max-width:540px){.team-grid-portraits{grid-template-columns:1fr}}

/* ───── CLIENTS / PARTNERS STRIP — premium partner directory ───── */
.clients{padding:120px 0;background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:relative}
.clients-head{text-align:center;margin-bottom:72px}
.clients-head .eyebrow{justify-content:center}
.clients-head .eyebrow::before{display:none}
.clients-head h3{font-family:var(--display);font-size:clamp(24px,2.4vw,34px);font-weight:500;letter-spacing:-0.03em;color:var(--text);margin-top:18px;max-width:760px;margin-left:auto;margin-right:auto;line-height:1.25}
.clients-head .clients-meta{display:inline-flex;align-items:center;gap:14px;margin-top:24px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.12em;text-transform:uppercase;font-weight:500}
.clients-head .clients-meta span{display:inline-flex;align-items:center;gap:8px}
.clients-head .clients-meta span::before{content:'';width:6px;height:6px;background:var(--brand);border-radius:50%}
.clients-head .clients-meta i{font-style:normal;color:var(--border-strong)}

.clients-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--border);border-left:1px solid var(--border)}
.client-cell{padding:30px 28px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:190px;transition:background .35s cubic-bezier(.25,.46,.45,.94),box-shadow .35s ease;position:relative;cursor:default;overflow:hidden}
.client-cell:hover{background:var(--bg)}
.client-cell::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.25,.46,.45,.94)}
.client-cell:hover::before{transform:scaleX(1)}

.client-cell-head{display:flex;align-items:flex-start;gap:16px;width:100%}
.client-mark{min-width:46px;height:46px;padding:0 12px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:11px;background:var(--bg);font-family:var(--display);font-size:14px;font-weight:600;color:var(--text);letter-spacing:-0.01em;transition:all .35s cubic-bezier(.25,.46,.45,.94)}
.client-cell:hover .client-mark{background:var(--navy);color:var(--brand);border-color:var(--text);transform:translateY(-2px);box-shadow:0 6px 16px rgba(31,33,46,0.20)}

.client-status{position:absolute;top:30px;right:28px;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:9.5px;color:var(--muted);letter-spacing:0.14em;text-transform:uppercase;font-weight:500}
.client-status::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px rgba(205,252,84,0.18);animation:clientPulse 2.4s ease-in-out infinite}
.client-status.strategic::before{background:#ffa600;box-shadow:0 0 0 3px rgba(255,166,0,0.18)}
@keyframes clientPulse{0%,100%{opacity:1}50%{opacity:.5}}

.client-name{flex:1;min-width:0;padding-right:80px}
.client-name-main{font-family:var(--display);font-size:16.5px;font-weight:500;letter-spacing:-0.015em;color:var(--text);line-height:1.2;margin-bottom:6px}
.client-name-cat{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:0.12em;text-transform:uppercase;font-weight:500}

.client-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase;font-weight:500;padding-top:18px;border-top:1px solid var(--border);width:100%}
.client-meta b{color:var(--text);font-weight:600;letter-spacing:0.08em}
.client-meta .client-region{color:var(--muted-d);font-size:9.5px}

@media (max-width:1024px){.clients-grid{grid-template-columns:repeat(2,1fr)}.client-name{padding-right:70px}}
@media (max-width:560px){.clients-grid{grid-template-columns:1fr}.client-cell{min-height:160px;padding:24px 20px}.client-name{padding-right:60px}.client-status{top:24px;right:20px}}

/* ───── INDUSTRIES STRIP ───── */
.industries{background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:36px 0}
.industries-inner{display:flex;align-items:center;gap:40px;flex-wrap:wrap;justify-content:space-between}
.industries-label{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--muted);letter-spacing:0.16em;text-transform:uppercase;flex-shrink:0}
.industries-list{display:flex;gap:48px;flex-wrap:wrap;align-items:center}
.ind-item{font-family:var(--display);font-size:17px;font-weight:500;color:var(--muted);letter-spacing:-0.01em;display:inline-flex;align-items:center;gap:12px;transition:color .2s}
.ind-item::before{content:'';width:5px;height:5px;background:var(--border-strong);border-radius:50%;transition:background .2s}
.ind-item:hover{color:var(--text)}
.ind-item:hover::before{background:var(--brand-d)}
@media (max-width:768px){.industries-list{gap:20px}.ind-item{font-size:14px}}

/* ───── ROUTE TICKER ───── */
.ticker-wrap{overflow:hidden;background:var(--bg);padding:14px 0;border-bottom:1px solid var(--border)}
.ticker-track{display:flex;width:max-content;animation:tickerMove 50s linear infinite}
.ticker-track:hover{animation-play-state:paused}
@keyframes tickerMove{to{transform:translateX(-50%)}}
.ticker-item{display:flex;align-items:center;gap:12px;padding:0 32px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:0.10em;text-transform:uppercase;color:var(--muted)}
.ticker-item b{color:var(--text);font-weight:600}
.ticker-dot{width:5px;height:5px;border-radius:50%;background:var(--navy-2);flex-shrink:0;opacity:.4}

/* ───── SECTION SHARED ───── */
section{position:relative}
.section{padding:96px 0}
.section-tight{padding:120px 0}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:56px;align-items:end}
.section-head h2{font-family:var(--display);font-size:clamp(40px,4.8vw,68px);font-weight:500;letter-spacing:-0.04em;line-height:1.0;color:var(--text);margin-top:28px}
.section-head h2 em{font-family:var(--accent);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--text);background-image:linear-gradient(var(--brand),var(--brand));background-repeat:no-repeat;background-position:0 100%;background-size:100% 5px;padding-bottom:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}

.section-head .intro{font-family:var(--serif);font-size:18px;color:var(--muted);line-height:1.55;max-width:540px;font-weight:400;letter-spacing:0}
.section-head.centered{grid-template-columns:1fr;text-align:center;max-width:840px;margin-left:auto;margin-right:auto}
.section-head.centered .eyebrow{justify-content:center}
.section-head.centered .eyebrow::before{display:none}
.section-head.centered .intro{margin:0 auto}
@media (max-width:880px){.section-head{grid-template-columns:1fr;gap:24px;margin-bottom:64px}.section{padding:104px 0}.section-tight{padding:80px 0}}

/* ───── REVEAL ───── */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.1s} .reveal-d2{transition-delay:.2s} .reveal-d3{transition-delay:.3s} .reveal-d4{transition-delay:.4s}

/* ───── SERVICES CARDS ───── */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.svc-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:40px 36px 36px;display:flex;flex-direction:column;min-height:380px;transition:transform .35s ease,box-shadow .35s ease;text-decoration:none;color:inherit}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.svc-card:hover .svc-card-arrow{background:var(--brand);transform:translateX(4px)}
.svc-card .br{display:none}
.svc-num{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.18em;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center}
.svc-num b{color:var(--text);font-weight:600}
.svc-icon{width:54px;height:54px;border-radius:12px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;color:var(--text);margin-bottom:24px;border:1px solid var(--brand-line)}
.svc-card h3{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-0.02em;color:var(--text);margin-bottom:14px;line-height:1.2}
.svc-card p{font-size:14.5px;color:var(--muted);line-height:1.7;flex:1;margin-bottom:24px}
.svc-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px}
.svc-tag{display:inline-flex;align-items:center;gap:7px;padding:7px 9px 6px;background:rgba(255,255,255,0.035);border:1px solid rgba(255,255,255,0.10);border-radius:2px;font-family:var(--mono);font-size:10px;font-weight:500;line-height:1;color:rgba(255,255,255,0.78);letter-spacing:0.07em;text-transform:uppercase}
.svc-tag::before{content:'';flex:none;width:4px;height:4px;background:var(--brand);opacity:.85}
.svc-tag.urgent{background:rgba(211,129,47,0.10);color:#F2A65E;font-weight:600;border-color:rgba(211,129,47,0.45)}
.svc-tag.urgent::before{background:var(--orange)}
.svc-card-foot{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid var(--border)}
.svc-card-foot > .svc-card-arrow:only-child{margin-left:auto}
.svc-card-foot span{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text);letter-spacing:0.06em}
.svc-card-arrow{width:36px;height:36px;border-radius:50%;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;color:var(--text);transition:all .25s ease}
@media (max-width:1024px){.svc-grid{grid-template-columns:1fr 1fr}}
@media (max-width:680px){.svc-grid{grid-template-columns:1fr}.svc-card{min-height:auto;padding:32px 28px 28px}}

/* ───── SERVICE CARD with banner photo ───── */
.svc-card.has-photo{padding:0;overflow:hidden}
.svc-card.has-photo .svc-card-body{padding:34px 32px 28px;display:flex;flex-direction:column;flex:1;position:relative}
.svc-card-photo{position:relative;width:100%;height:200px;overflow:hidden;background:var(--navy-2);flex-shrink:0}
.svc-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease,filter .5s ease;filter:saturate(.92) brightness(.95)}
.svc-card.has-photo:hover .svc-card-photo img{transform:scale(1.06);filter:saturate(1) brightness(1)}
.svc-card-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,0.45));pointer-events:none}
.svc-card.has-photo .svc-icon{position:absolute;top:-26px;left:28px;z-index:2;margin-bottom:0;background:var(--bg-card);box-shadow:0 6px 18px rgba(31,33,46,0.18)}
.svc-card.has-photo .svc-num{margin-bottom:14px;margin-top:8px}
.svc-card.has-photo .svc-card-foot{margin-top:auto}
.svc-card-photo .photo-tag{position:absolute;top:14px;left:14px;z-index:1;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--brand);display:inline-flex;align-items:center;gap:9px;padding:7px 11px 6px;background:rgba(20,22,32,0.84);border:1px solid rgba(205,252,84,0.28);border-radius:2px;line-height:1}
.svc-card-photo .photo-tag::before{content:'';width:6px;height:6px;background:var(--brand);flex:none}

/* ───── PHOTO GALLERY — cinematic editorial grid ───── */
.photo-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:320px 320px;gap:14px}
.photo-cell{position:relative;overflow:hidden;border-radius:16px;background:var(--navy);cursor:pointer;box-shadow:var(--shadow-md)}
.photo-cell.wide{grid-column:span 2}
.photo-cell.tall{grid-row:span 2}
.photo-cell img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.25,.46,.45,.94),filter .6s ease;filter:saturate(.88) brightness(.92) contrast(1.02)}
.photo-cell:hover img{transform:scale(1.04);filter:saturate(1.02) brightness(1) contrast(1.04)}
.photo-cell::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,17,26,0.20) 0%,transparent 30%,transparent 50%,rgba(15,17,26,0.85) 100%);pointer-events:none;transition:opacity .4s ease}
.photo-meta{position:absolute;bottom:28px;left:28px;right:28px;z-index:1;color:var(--text-on-dark);transition:transform .5s cubic-bezier(.25,.46,.45,.94)}
.photo-cell:hover .photo-meta{transform:translateY(-4px)}
.photo-meta .pm-label{font-family:var(--mono);font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brand);display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;font-weight:500}
.photo-meta .pm-label::before{content:'';width:16px;height:1.5px;background:var(--brand)}
.photo-meta h4{font-family:var(--display);font-size:24px;font-weight:500;letter-spacing:-0.022em;line-height:1.18;color:var(--text-on-dark);margin-bottom:10px;max-width:360px}
.photo-meta p{font-family:var(--body);font-size:14px;color:rgba(255,255,255,0.75);letter-spacing:0;line-height:1.55;max-width:320px;font-weight:300}
.photo-cell .photo-corner{position:absolute;top:18px;right:18px;z-index:1;font-family:var(--mono);font-size:10px;color:var(--brand);letter-spacing:0.18em;text-transform:uppercase;padding:6px 12px;background:rgba(15,17,26,0.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-pill);border:1px solid rgba(205,252,84,0.30);font-weight:500}
.photo-cell.tall .photo-meta h4{font-size:28px}
@media (max-width:1024px){.photo-gallery{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,280px)}.photo-cell.wide{grid-column:span 2}.photo-cell.tall{grid-row:span 1}}
@media (max-width:600px){.photo-gallery{grid-template-columns:1fr;grid-template-rows:repeat(5,260px)}.photo-cell.wide{grid-column:span 1}}

/* ───── PHOTO BANNER (single large image + caption) ───── */
.photo-banner{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.photo-banner-image{position:relative;border-radius:18px;overflow:hidden;background:var(--navy-2);aspect-ratio:4/5;box-shadow:var(--shadow-lg)}
.photo-banner-image.wide{aspect-ratio:3/2}
.photo-banner-image img{width:100%;height:100%;object-fit:cover}
.photo-banner-image::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(0,0,0,0.42) 68%,rgba(0,0,0,0.78) 88%,rgba(0,0,0,0.88) 100%);pointer-events:none}
.photo-banner-image .pb-tag{position:absolute;z-index:2;top:24px;left:24px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--brand);display:inline-flex;align-items:center;gap:9px;padding:7px 11px 6px;background:rgba(20,22,32,0.84);border:1px solid rgba(205,252,84,0.28);border-radius:2px;line-height:1}
.photo-banner-image .pb-tag::before{content:'';width:6px;height:6px;background:var(--brand);flex:none}
.photo-banner-image .pb-caption{position:absolute;z-index:2;bottom:24px;left:24px;right:24px;color:var(--text-on-dark);font-family:var(--mono);font-size:11px;letter-spacing:0.06em;line-height:1.5;text-shadow:0 1px 3px rgba(0,0,0,0.55)}
.photo-banner-image .pb-caption b{display:block;font-family:var(--display);font-size:15px;font-weight:600;color:var(--text-on-dark);letter-spacing:-0.01em;margin-bottom:4px}
@media (max-width:880px){.photo-banner{grid-template-columns:1fr;gap:40px}.photo-banner-image{aspect-ratio:4/3}}

/* ───── PROCESS — timeline ───── */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.process-grid::before{content:'';position:absolute;top:32px;left:0;right:0;height:1px;background:var(--border);z-index:0}
.process-step{position:relative;padding-top:56px;z-index:1}
.process-step::before{content:'';position:absolute;top:24px;left:0;width:18px;height:18px;border-radius:50%;background:var(--bg-card);border:2px solid var(--brand);box-shadow:0 0 0 4px var(--bg-card)}
.process-on-dark .process-step::before{background:var(--navy);box-shadow:0 0 0 4px var(--navy)}
.process-step .step-num{font-family:var(--mono);font-size:11px;color:var(--text);font-weight:600;letter-spacing:0.18em;margin-bottom:14px}
.process-on-dark .process-step .step-num{color:var(--brand)}
.process-step h4{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-0.02em;color:var(--text);margin-bottom:12px;line-height:1.2}
.process-on-dark .process-step h4{color:var(--text-on-dark)}
.process-step p{font-size:14.5px;color:var(--muted);line-height:1.7;margin-bottom:18px;max-width:240px}
.process-on-dark .process-step p{color:var(--muted-on-dark)}
.process-step .step-time{font-family:var(--mono);font-size:11px;color:var(--text);letter-spacing:0.08em;display:inline-flex;align-items:center;gap:8px;padding:5px 10px;background:var(--brand-soft);border-radius:var(--radius-pill)}
.process-step .step-time::before{content:'→';color:var(--text);font-family:var(--mono)}
.process-step .step-time.urgent{background:var(--orange-soft);color:var(--orange);border:1px solid var(--orange-line)}
.process-step .step-time.urgent::before{color:var(--orange)}
@media (max-width:880px){.process-grid{grid-template-columns:1fr 1fr}.process-grid::before{display:none}}
@media (max-width:540px){.process-grid{grid-template-columns:1fr}}

/* ───── STATS — cinematic full-bleed dark ───── */
.stats{background:#1d1f2b;padding:96px 0;color:var(--text-on-dark);position:relative;overflow:hidden}
.stats::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.022) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse at center,black 25%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,black 25%,transparent 75%)}
.stats::after{content:'';position:absolute;top:6%;bottom:6%;right:2%;width:56%;background:radial-gradient(closest-side,rgba(205,252,84,0.075) 0%,rgba(205,252,84,0.035) 45%,rgba(205,252,84,0) 100%);pointer-events:none}
.stats-head{position:relative;z-index:1;margin-bottom:96px;display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:end}
.stats-head h2{font-family:var(--display);font-size:clamp(40px,5vw,72px);font-weight:500;letter-spacing:-0.04em;line-height:1.0;color:var(--text-on-dark);margin-top:28px}
.stats-head h2 em{font-family:var(--accent);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--brand);background-image:linear-gradient(rgba(205,252,84,0.30),rgba(205,252,84,0.30));background-repeat:no-repeat;background-position:0 100%;background-size:100% 5px;padding-bottom:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}

.stats-head .intro{font-family:var(--serif);font-size:18px;color:var(--muted-on-dark);line-height:1.55;max-width:540px;font-weight:400;letter-spacing:0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px;position:relative;z-index:1}
.stats-network{position:relative;z-index:1;margin-top:80px;padding-top:64px;border-top:1px solid rgba(255,255,255,0.08)}
.stat-cell{position:relative;padding:44px 0 0;transition:transform .35s ease}
.stat-cell::before{content:'';position:absolute;top:0;left:0;width:56px;height:2px;background:var(--brand)}
.stat-cell:hover{transform:translateY(-3px)}
.stat-num{font-family:var(--display);font-size:clamp(72px,8.4vw,132px);font-weight:500;letter-spacing:-0.05em;line-height:0.92;color:var(--text-on-dark);font-feature-settings:'tnum';margin-bottom:20px;display:flex;align-items:baseline;gap:6px;white-space:nowrap;flex-wrap:nowrap}
.stat-num .suffix{color:var(--brand);font-size:0.55em;font-weight:500;letter-spacing:-0.02em;line-height:1;flex-shrink:0}
.stat-label{font-family:var(--mono);font-size:11px;color:var(--text-on-dark);letter-spacing:0.14em;text-transform:uppercase;margin-bottom:12px;font-weight:500}
.stat-desc{font-family:var(--serif);font-size:14.5px;color:var(--muted-on-dark);line-height:1.55;max-width:260px;font-weight:400;letter-spacing:0}
@media (max-width:880px){.stats{padding:104px 0}.stats-head{grid-template-columns:1fr;gap:24px;margin-bottom:56px}.stats-grid{grid-template-columns:1fr 1fr;gap:36px}}
@media (max-width:540px){.stats-grid{grid-template-columns:1fr}}

/* ───── NETWORK ───── */
.network-layout{display:grid;grid-template-columns:1.55fr 1fr;gap:56px;align-items:center}
.world-map-card{position:relative;background:#1d1f2b;border:1px solid var(--border);border-radius:20px;padding:24px;aspect-ratio:1.5/1;overflow:hidden;box-shadow:var(--shadow-md)}
.world-map-card svg{width:100%;height:100%;display:block}
.world-map-card .map-tag{position:absolute;top:24px;left:24px;font-family:var(--mono);font-size:10px;color:var(--brand);letter-spacing:0.16em;text-transform:uppercase;display:flex;align-items:center;gap:8px}
.world-map-card .map-tag::before{content:'';width:6px;height:6px;background:var(--brand);border-radius:50%}
.world-map-card .map-foot{position:absolute;bottom:24px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;color:var(--muted-on-dark);letter-spacing:0.12em;text-transform:uppercase}
.world-map-card .map-foot b{color:var(--text-on-dark);font-weight:500}
.offices-list{display:flex;flex-direction:column}
.office{display:grid;grid-template-columns:80px 1fr auto;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid var(--border);transition:padding .25s ease}
.office:first-child{border-top:1px solid var(--border)}
.office:hover{padding-left:8px}
.office-code{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--text);letter-spacing:0.04em}
.office-body h5{font-family:var(--display);font-size:19px;font-weight:600;color:var(--text);letter-spacing:-0.02em;margin-bottom:4px}
.office-body p{font-size:13.5px;color:var(--muted);font-family:var(--mono);letter-spacing:0.04em}
.office-tag{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:0.12em;text-transform:uppercase;padding:5px 11px;background:var(--bg-soft);border-radius:var(--radius-pill);font-weight:500}
.office.hub .office-tag{background:var(--brand);color:var(--navy);font-weight:600}
@media (max-width:1024px){.network-layout{grid-template-columns:1fr;gap:48px}}

/* ───── PILLARS BENTO — editorial refined ───── */
.bento{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(280px,auto);gap:16px}
.bento-cell{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:48px 44px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;transition:transform .45s cubic-bezier(.25,.46,.45,.94),border-color .35s ease,box-shadow .45s ease}
.bento-cell:hover{transform:translateY(-4px);border-color:var(--border-strong);box-shadow:var(--shadow-lg)}
.bento-cell.wide{grid-column:span 2}
.bento-cell.tall{grid-row:span 2}
.bento-cell.dark{background:#1d1f2b;color:var(--text-on-dark);border-color:#1d1f2b}
.bento-cell.dark p{color:var(--muted-on-dark)}
.bento-cell.dark::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.022) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at top right,black 0%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at top right,black 0%,transparent 70%);pointer-events:none}
.bento-cell.feat{background:linear-gradient(135deg,var(--brand) 0%,#d4ff66 100%);color:var(--navy);border-color:var(--brand)}
.bento-cell.feat p{color:var(--navy-3)}
.bento-cell h4{font-family:var(--display);font-size:27px;font-weight:500;letter-spacing:-0.025em;line-height:1.15;margin-bottom:14px}
.bento-cell.dark h4{color:var(--text-on-dark)}
.bento-cell.feat h4{color:var(--navy);font-weight:600}
.bento-cell p{font-size:15px;line-height:1.7;color:var(--muted);max-width:460px;font-weight:300}
.bento-tag{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--text);margin-bottom:24px;display:inline-flex;align-items:center;gap:10px;font-weight:500}
.bento-tag::before{content:'';width:14px;height:1.5px;background:var(--brand)}
.bento-cell.dark .bento-tag{color:var(--brand)}
.bento-cell.feat .bento-tag{color:var(--navy);opacity:.75}
.bento-cell.feat .bento-tag::before{background:var(--navy)}
.bento-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:currentColor;margin-bottom:24px;opacity:.4;position:relative;z-index:1}
.bento-big-num{font-family:var(--display);font-size:96px;font-weight:500;letter-spacing:-0.05em;line-height:.86;margin:18px 0 8px;color:var(--text);position:relative;z-index:1}
.bento-cell.feat .bento-big-num{color:var(--navy)}
.bento-cell.dark .bento-big-num{color:var(--brand)}
@media (max-width:880px){.bento{grid-template-columns:1fr;gap:14px}.bento-cell{padding:36px 32px}.bento-cell.wide,.bento-cell.tall{grid-column:span 1;grid-row:span 1}.bento-big-num{font-size:64px}}

/* ───── CASE STUDY CARD — premium photo-led ───── */
.case-card{display:grid;grid-template-columns:1.05fr 1fr;background:var(--bg-card);border:1px solid var(--border);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-lg)}
.case-content{padding:80px 64px;display:flex;flex-direction:column;justify-content:center}
.case-content h3{font-family:var(--display);font-size:clamp(32px,3.2vw,48px);font-weight:500;letter-spacing:-0.035em;line-height:1.1;color:var(--text);margin:24px 0 26px}
.case-content > p{font-family:var(--serif);font-size:17px;color:var(--muted);line-height:1.6;margin-bottom:36px;max-width:540px;font-weight:400;letter-spacing:0}
.case-route{display:flex;align-items:center;gap:18px;margin-bottom:40px;padding:22px 26px;background:var(--bg-soft);border-radius:14px;border:1px dashed var(--border-strong)}
.case-route-code{font-family:var(--display);font-size:26px;font-weight:600;letter-spacing:-0.035em;color:var(--text)}
.case-route-line{flex:1;height:1px;background:linear-gradient(90deg,var(--border-strong),var(--navy-2) 50%,var(--border-strong));position:relative}
.case-route-line::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-45deg);width:7px;height:7px;border-top:1.5px solid var(--navy-2);border-right:1.5px solid var(--navy-2)}
.case-route .case-ref{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.08em;margin-left:auto}
.case-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding-top:32px;border-top:1px solid var(--border)}
.case-stat{display:flex;flex-direction:column;gap:8px}
.case-stat-num{font-family:var(--display);font-size:40px;font-weight:500;letter-spacing:-0.035em;color:var(--text);line-height:0.95;font-feature-settings:'tnum'}
.case-stat-label{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:0.14em;text-transform:uppercase;font-weight:500}
.case-visual{position:relative;background:var(--navy-2);overflow:hidden;display:flex;align-items:flex-end;padding:48px;color:var(--text-on-dark);min-height:540px}
.case-visual .case-photo{position:absolute;inset:0;z-index:0}
.case-visual .case-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) brightness(.65) contrast(1.05)}
.case-visual::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(15,17,26,0.40) 0%,rgba(15,17,26,0.65) 100%),radial-gradient(circle at 20% 25%,rgba(205,252,84,0.10),transparent 45%)}
.case-visual::after{content:'';position:absolute;inset:0;z-index:1;background-image:linear-gradient(rgba(255,255,255,0.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.022) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at top right,black 0%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at top right,black 0%,transparent 75%);pointer-events:none}
.case-visual-content{position:relative;z-index:2;width:100%}
.case-flight-card{background:rgba(0,0,0,0.32);backdrop-filter:blur(8px);border:1px solid var(--border-dark-strong);border-radius:14px;padding:24px}
.case-flight-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border-dark)}
.case-flight-head .label{font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--brand);font-weight:600}
.case-flight-head .stamp{font-family:var(--mono);font-size:11px;color:var(--muted-on-dark);letter-spacing:0.06em}
.case-flight-route{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}
.case-flight-route .code{font-family:var(--display);font-size:32px;font-weight:600;letter-spacing:-0.03em}
.case-flight-route .arrow{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--brand),transparent);position:relative}
.case-flight-route .arrow::after{content:'→';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:12px;color:var(--brand);background:var(--navy-2);padding:0 6px}
.case-flight-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;font-family:var(--mono);font-size:11px;color:var(--muted-on-dark);letter-spacing:0.04em}
.case-flight-meta div b{color:var(--text-on-dark);font-weight:500;font-size:13px;display:block;margin-top:2px}
.case-flight-prog{height:3px;background:var(--border-dark);border-radius:2px;overflow:hidden;position:relative;margin-bottom:10px}
.case-flight-prog::after{content:'';position:absolute;inset:0;background:var(--brand);border-radius:2px;transform-origin:left;animation:progFill 1.6s cubic-bezier(.5,0,.2,1) forwards;width:100%}
@keyframes progFill{from{transform:scaleX(0)}}
.case-flight-foot{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--muted-on-dark);letter-spacing:0.06em}
.case-flight-foot b{color:var(--brand);font-weight:600}
@media (max-width:1024px){.case-card{grid-template-columns:1fr}.case-content{padding:48px 32px}.case-visual{min-height:380px}}

/* ───── TESTIMONIALS ───── */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.testi-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:36px 32px;display:flex;flex-direction:column;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.testi-card:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.testi-card.feat{background:#1d1f2b;color:var(--text-on-dark);border-color:var(--brand-line);grid-row:span 2}
.testi-card .quote-mark{font-family:var(--display);font-size:48px;font-weight:600;color:var(--brand);line-height:0.6;margin-bottom:18px}
.testi-card.feat .quote-mark{color:var(--brand)}
.testi-quote{font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--text);font-weight:400;margin-bottom:auto;letter-spacing:0}
.testi-card.feat .testi-quote{color:var(--text-on-dark);font-size:20px;line-height:1.5}
.testi-attr{display:flex;align-items:center;gap:14px;padding-top:24px;margin-top:24px;border-top:1px solid var(--border)}
.testi-card.feat .testi-attr{border-top-color:var(--border-dark)}
.testi-mono{width:42px;height:42px;border-radius:8px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;color:var(--text);font-family:var(--mono);font-weight:600;font-size:13px;letter-spacing:-0.02em;border:1px solid var(--brand-line);flex-shrink:0}
.testi-card.feat .testi-mono{background:var(--brand);border-color:var(--brand)}
.testi-attr-name{font-size:14px;font-weight:600;color:var(--text)}
.testi-card.feat .testi-attr-name{color:var(--text-on-dark)}
.testi-attr-role{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.04em;margin-top:3px}
.testi-card.feat .testi-attr-role{color:var(--muted-on-dark)}
@media (max-width:1024px){.testi-grid{grid-template-columns:1fr 1fr}.testi-card.feat{grid-row:span 1;grid-column:span 2}}
@media (max-width:680px){.testi-grid{grid-template-columns:1fr}.testi-card.feat{grid-column:span 1}}

/* ───── CTA BANNER — cinematic ───── */
.cta-banner{background:#1d1f2b;color:var(--text-on-dark);padding:88px 0;position:relative;overflow:hidden}
.cta-banner::before{content:'';position:absolute;inset:0;background-image:radial-gradient(closest-side at 72% 50%,rgba(205,252,84,0.10) 0%,rgba(205,252,84,0.045) 45%,rgba(205,252,84,0) 100%),linear-gradient(rgba(255,255,255,0.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.022) 1px,transparent 1px);background-size:auto,96px 96px,96px 96px;mask-image:radial-gradient(ellipse at center,black 35%,transparent 85%);-webkit-mask-image:radial-gradient(ellipse at center,black 35%,transparent 85%)}
.cta-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.4fr 1fr;gap:96px;align-items:center}
.cta-inner h2{font-family:var(--display);font-size:clamp(42px,5.2vw,76px);font-weight:500;letter-spacing:-0.04em;line-height:1.0;color:var(--text-on-dark);margin:28px 0 24px}
.cta-inner h2 em{font-family:var(--accent);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--brand);background-image:linear-gradient(rgba(205,252,84,0.30),rgba(205,252,84,0.30));background-repeat:no-repeat;background-position:0 100%;background-size:100% 5px;padding-bottom:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}

.cta-inner p{font-family:var(--serif);font-size:18px;color:var(--muted-on-dark);line-height:1.55;margin-bottom:44px;max-width:560px;font-weight:400;letter-spacing:0}
.cta-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cta-phones{display:flex;flex-direction:column;gap:14px;width:100%;max-width:420px}
.cta-phone{display:flex;justify-content:space-between;align-items:center;padding:22px 26px;background:rgba(255,255,255,0.035);border:1px solid var(--border-dark-strong);border-radius:14px;transition:all .35s cubic-bezier(.25,.46,.45,.94)}
.cta-phone:hover{background:rgba(205,252,84,0.06);border-color:var(--brand-line);transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,0.25)}
.cta-phone-region{font-family:var(--mono);font-size:11px;color:var(--muted-on-dark);letter-spacing:0.14em;text-transform:uppercase;font-weight:500}
.cta-phone-num{font-family:var(--display);font-size:20px;font-weight:500;color:var(--text-on-dark);letter-spacing:-0.015em;font-feature-settings:'tnum'}
@media (max-width:880px){.cta-banner{padding:104px 0}.cta-inner{grid-template-columns:1fr;gap:48px}.cta-phones{max-width:100%}}

/* ───── FAQ ───── */
.faq-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:start}
.faq-aside h2{font-family:var(--display);font-size:clamp(34px,4vw,52px);font-weight:600;letter-spacing:-0.035em;line-height:1.05;color:var(--text);margin:24px 0 24px}
.faq-aside h2 em{font-family:var(--accent);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--text);background-image:linear-gradient(var(--brand),var(--brand));background-repeat:no-repeat;background-position:0 100%;background-size:100% 5px;padding-bottom:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}

.faq-aside p{font-size:15px;color:var(--muted);line-height:1.7;margin-bottom:32px;max-width:340px}
.faq-aside-call{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;transition:all .25s ease}
.faq-aside-call:hover{border-color:var(--brand-line);transform:translateY(-1px)}
.faq-aside-call .ico{width:38px;height:38px;border-radius:10px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;color:var(--text);flex-shrink:0;border:1px solid var(--brand-line)}
.faq-aside-call .num{font-family:var(--display);font-size:16px;font-weight:600;color:var(--text);letter-spacing:-0.01em}
.faq-aside-call .lbl{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:0.12em;text-transform:uppercase;margin-top:2px}
.faq-list{border-top:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:26px 0;font-family:var(--display);font-size:18px;font-weight:500;color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:16px;letter-spacing:-0.015em;line-height:1.4;transition:color .2s}
.faq-q:hover{color:var(--text)}
.faq-q::after{content:'+';font-family:var(--mono);font-size:22px;color:var(--text);transition:transform .3s ease;font-weight:300;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-soft);border-radius:50%}
.faq-q[aria-expanded="true"]::after{transform:rotate(45deg);background:var(--brand)}
.faq-a{display:none;padding:0 32px 28px 0;font-size:14.5px;line-height:1.75;color:var(--muted);max-width:580px}
.faq-a.open{display:block}
@media (max-width:880px){.faq-grid{grid-template-columns:1fr;gap:40px}}

/* ───── CONTACT ───── */
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}
.contact-form{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:48px;box-shadow:var(--shadow-sm)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.form-group label{font-family:var(--mono);font-size:11px;color:var(--text);letter-spacing:0.12em;text-transform:uppercase;font-weight:500}
.form-group input,.form-group select,.form-group textarea{background:var(--bg);border:1px solid var(--border-strong);border-radius:10px;padding:14px 16px;color:var(--text);font-family:var(--body);font-size:14.5px;transition:all .25s ease}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--muted-d)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--brand);background:var(--bg);box-shadow:0 0 0 3px var(--brand-soft)}
.form-group textarea{min-height:130px;resize:vertical}
.form-priority{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.form-priority label{position:relative;cursor:pointer}
.form-priority input{position:absolute;opacity:0;pointer-events:none}
.form-priority span{display:inline-block;padding:9px 16px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-pill);font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase;font-weight:500;transition:all .2s}
.form-priority input:checked+span{background:var(--brand);border-color:var(--brand);color:var(--navy);font-weight:600}
.form-submit{width:100%;background:var(--navy-2);color:var(--text-on-dark);padding:18px;border-radius:12px;font-weight:700;font-size:14.5px;letter-spacing:0.01em;transition:all .2s ease;margin-top:8px;font-family:var(--body);display:flex;align-items:center;justify-content:center;gap:10px}
.form-submit:hover{background:var(--navy);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.form-submit svg{width:14px;height:14px;transition:transform .25s}
.form-submit:hover svg{transform:translateX(4px)}
.form-submit:disabled{opacity:.6;cursor:wait;transform:none}
.form-success{display:none;text-align:center;padding:60px 32px;background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:14px}
.form-success.show{display:block}
.form-success h4{font-family:var(--display);font-size:24px;color:var(--text);margin-bottom:10px}
.form-success p{color:var(--muted);font-size:14px;line-height:1.7}
.contact-aside h2{font-family:var(--display);font-size:clamp(30px,3vw,42px);font-weight:600;letter-spacing:-0.03em;line-height:1.1;color:var(--text);margin:18px 0 18px}
.contact-aside h2 em{font-family:var(--accent);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--text);background-image:linear-gradient(var(--brand),var(--brand));background-repeat:no-repeat;background-position:0 100%;background-size:100% 5px;padding-bottom:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}

.contact-aside > p{font-size:15.5px;color:var(--muted);line-height:1.7;margin-bottom:36px;max-width:440px}
.contact-channels{display:flex;flex-direction:column;border-top:1px solid var(--border)}
.channel{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid var(--border);transition:padding .25s ease}
.channel:hover{padding-left:6px}
.channel-icon{width:44px;height:44px;border-radius:12px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;color:var(--text);border:1px solid var(--brand-line)}
.channel-body{display:flex;flex-direction:column;gap:4px}
.channel-label{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase}
.channel-value{font-family:var(--display);font-size:17px;font-weight:600;color:var(--text);letter-spacing:-0.01em}
.channel-meta{font-family:var(--mono);font-size:10px;color:var(--muted-d);letter-spacing:0.1em}
.channel-status{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.14em;color:var(--navy);text-transform:uppercase;padding:4px 10px;background:var(--brand);border-radius:var(--radius-pill)}
.channel-status.muted{background:var(--bg-soft);color:var(--muted)}
@media (max-width:1024px){.contact-grid{grid-template-columns:1fr;gap:48px}.contact-aside{order:-1}}
@media (max-width:540px){.form-row{grid-template-columns:1fr}.contact-form{padding:32px 24px}}

/* ───── FOOTER — premium ───── */
footer{background:var(--navy);color:var(--muted-on-dark);padding:120px 0 40px;position:relative}
footer::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--brand-line),transparent)}
.footer-top{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr 1fr;gap:64px;margin-bottom:88px}
.footer-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.footer-logo{height:52px;width:auto;display:block;filter:brightness(0) invert(1)}
.footer-tagline{font-size:15px;color:var(--text-on-dark);line-height:1.65;max-width:380px;margin-bottom:36px;font-weight:300;opacity:.85}
.footer-cert{display:flex;flex-direction:column;max-width:360px;margin-top:4px}
.footer-cert .fc-head{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.55);padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,0.10)}
.footer-cert-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.08);font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase}
.footer-cert-item::before{content:'';flex:none;width:7px;height:7px;background:var(--brand)}
.footer-cert-item .fc-name{color:var(--text-on-dark);font-weight:600}
.footer-cert-item .fc-status{margin-left:auto;font-size:9.5px;letter-spacing:0.16em;color:rgba(255,255,255,0.6)}
.footer-cert-item.is-pending::before{background:transparent;box-shadow:inset 0 0 0 1.5px rgba(205,252,84,0.7)}
.footer-cert-item.is-pending .fc-name{color:rgba(255,255,255,0.78);font-weight:500}
.footer-col-title{font-family:var(--mono);font-size:10.5px;font-weight:600;color:var(--brand);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:24px;display:flex;align-items:center;gap:10px}
.footer-col-title::before{content:'';width:16px;height:1.5px;background:var(--brand)}
.footer-links{display:flex;flex-direction:column;gap:14px}
.footer-links a{font-size:14px;color:var(--muted-on-dark);transition:color .25s ease,padding-left .25s ease;position:relative;display:inline-block}
.footer-links a:hover{color:var(--text-on-dark)}
.footer-bottom{padding-top:36px;border-top:1px solid var(--border-dark);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.footer-bottom-l{font-family:var(--mono);font-size:11px;color:var(--muted-d);letter-spacing:0.06em;line-height:1.5}
.footer-bottom-r{display:flex;gap:24px;align-items:center}
.footer-bottom-r a{font-family:var(--mono);font-size:10.5px;color:var(--muted-d);letter-spacing:0.14em;text-transform:uppercase;transition:color .2s;font-weight:500}
.footer-bottom-r a:hover{color:var(--brand)}
@media (max-width:1024px){.footer-top{grid-template-columns:1fr 1fr 1fr;gap:40px;margin-bottom:64px}.footer-brand-col{grid-column:span 3}}
@media (max-width:540px){.footer-top{grid-template-columns:1fr 1fr}.footer-brand-col{grid-column:span 2}}

/* ───── GRAIN ───── */
.grain{position:fixed;inset:0;pointer-events:none;z-index:9000;mix-blend-mode:multiply;opacity:0.022}

/* ───── BRAND-ALIGNED BODY SERIF — applied to narrative paragraphs per brand guide
   (Tiempos Text Regular for body / editorial reading content)
   UI text (buttons, nav, forms, tags, labels) stays in Safiro/sans for clarity */
.svc-card p,
.capability p,
.faq-a,
.bento-cell p,
.process-step p,
.team-bio,
.related-card p,
.value-card p,
.faq-aside p,
.contact-aside > p,
.footer-tagline,
.testi-quote,
.team-card p,
.case-content > p,
.office-body p,
.intro-block .intro-aside li{
  font-family:var(--serif);
  letter-spacing:0;
}

/* ───── BRAND CHEVRON IMAGEMARK — used as decorative element on dark sections */
.chevron-deco{position:absolute;pointer-events:none;z-index:0;opacity:.08;color:var(--brand)}
.chevron-deco svg{width:100%;height:100%;display:block}
.chevron-deco.tr{top:8%;right:5%;width:200px;height:130px}
.chevron-deco.bl{bottom:8%;left:5%;width:160px;height:104px}
.chevron-deco.lg{width:320px;height:208px;opacity:.06}
@media (max-width:880px){.chevron-deco.tr,.chevron-deco.bl,.chevron-deco.lg{width:140px;height:90px}}

/* ───── SCROLL TOP ───── */
#scrolltop{position:fixed;bottom:28px;right:24px;z-index:99;width:44px;height:44px;border-radius:50%;background:var(--orange);color:var(--navy);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .2s ease,background .2s ease;box-shadow:var(--shadow-md)}
#scrolltop:hover{background:#e29545}
#scrolltop.visible{opacity:1;pointer-events:auto}
#scrolltop:hover{transform:translateY(-3px)}

/* ───── UTILITY BLOCKS used across sub-pages ───── */
.intro-block{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:start;padding:120px 64px;border-bottom:1px solid var(--border)}
.intro-block.solo{grid-template-columns:1fr}
.intro-block.solo > div{max-width:60ch}
@media (max-width:1280px){.intro-block{padding:120px 48px}}
.intro-block h2{font-family:var(--display);font-size:clamp(30px,3.4vw,46px);font-weight:500;letter-spacing:-0.03em;line-height:1.1;color:var(--text);margin-bottom:24px}
.intro-block p{font-family:var(--serif);font-size:17px;color:var(--muted);line-height:1.6;margin-bottom:18px;font-weight:400;letter-spacing:0}
.intro-block .intro-aside{position:sticky;top:120px;padding:32px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px}
.intro-block .intro-aside h5{font-family:var(--mono);font-size:11px;color:var(--text);letter-spacing:0.16em;text-transform:uppercase;margin-bottom:18px;display:flex;align-items:center;gap:10px}
.intro-block .intro-aside h5::before{content:'';width:18px;height:1.5px;background:var(--brand)}
.intro-block .intro-aside ul{list-style:none}
.intro-block .intro-aside li{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;color:var(--text)}
.intro-block .intro-aside li:last-child{border:none}
.intro-block .intro-aside li::before{content:'✓';color:var(--text);font-weight:700;font-size:13px}
@media (max-width:880px){.intro-block{grid-template-columns:1fr;gap:32px;padding:80px 48px}.intro-block .intro-aside{position:relative;top:0}}
@media (max-width:768px){.intro-block{padding:80px 24px}}

.capability-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.capability{display:flex;gap:18px;padding:28px;border:1px solid var(--border);border-radius:16px;background:var(--bg-card);transition:border-color .3s,transform .3s}
.capability:hover{border-color:var(--brand-line);transform:translateY(-2px)}
.capability-icon{flex-shrink:0;width:46px;height:46px;border-radius:10px;background:var(--brand-soft);border:1px solid var(--brand-line);display:flex;align-items:center;justify-content:center;color:var(--text)}
.capability h4{font-family:var(--display);font-size:18px;font-weight:600;letter-spacing:-0.015em;color:var(--text);margin-bottom:6px}
.capability p{font-size:14px;color:var(--muted);line-height:1.65}
@media (max-width:680px){.capability-grid{grid-template-columns:1fr}}

.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.value-card{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:36px 32px;transition:transform .3s,border-color .3s,box-shadow .3s;position:relative}
.value-card:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--shadow-md)}
.value-card .v-num{font-family:var(--mono);font-size:11px;color:var(--text);letter-spacing:0.18em;font-weight:600;margin-bottom:24px;display:flex;align-items:center;gap:10px}
.value-card .v-num::before{content:'';width:18px;height:1.5px;background:var(--brand)}
.value-card h3{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-0.02em;color:var(--text);margin-bottom:14px;line-height:1.2}
.value-card p{font-size:14.5px;color:var(--muted);line-height:1.75}
@media (max-width:1024px){.value-grid{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.value-grid{grid-template-columns:1fr}}

.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.team-card{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:28px 28px 32px;transition:transform .3s,border-color .3s}
.team-card:hover{transform:translateY(-3px);border-color:var(--border-strong)}
.team-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--brand-soft),var(--brand-line));display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:24px;font-weight:600;color:var(--text);margin-bottom:18px;border:1px solid var(--brand-line)}
.team-card h4{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-0.015em;color:var(--text);margin-bottom:4px}
.team-card .role{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:14px}
.team-card p{font-size:13.5px;color:var(--muted);line-height:1.65}
@media (max-width:1024px){.team-grid{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.team-grid{grid-template-columns:1fr}}

.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.related-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:24px;transition:all .3s;text-decoration:none;color:inherit;display:block}
.related-card:hover{transform:translateY(-3px);border-color:var(--brand-line);background:var(--bg)}
.related-card .r-label{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:0.14em;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.related-card .r-label::before{content:'';width:12px;height:1.5px;background:var(--brand-d)}
.related-card h4{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-0.015em;color:var(--text);margin-bottom:6px}
.related-card p{font-size:13px;color:var(--muted);line-height:1.6}
.related-card .r-arrow{margin-top:18px;font-family:var(--mono);font-size:11px;color:var(--text);font-weight:600;letter-spacing:0.06em;display:inline-flex;align-items:center;gap:6px;transition:gap .2s}
.related-card:hover .r-arrow{gap:10px}
@media (max-width:1024px){.related-grid{grid-template-columns:1fr 1fr}}

/* ============================================================
   PREMIUM ANIMATIONS — added 2026-06-11
   Lenis smooth scroll, mask-reveal headlines, scroll-driven world map,
   number scrubbing, image clip-path reveals, View Transitions API.
   Designed to be invisible to a casual viewer but make every scroll
   moment feel deliberate and expensive. Honour prefers-reduced-motion.
   ============================================================ */

/* View Transitions API — smooth crossfade between pages */
@view-transition{navigation:auto}
::view-transition-old(root){animation:fadeOut .25s ease-out forwards}
::view-transition-new(root){animation:fadeIn .35s ease-out forwards}
@keyframes fadeOut{to{opacity:0}}
@keyframes fadeIn{from{opacity:0}}

/* Lenis smooth scroll — required base styles */
html.lenis{height:auto}
html.lenis.lenis-smooth{scroll-behavior:auto !important}
html.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
html.lenis.lenis-stopped{overflow:hidden}
html.lenis.lenis-scrolling iframe{pointer-events:none}

/* Headlines render immediately, no scroll-triggered mask/translate reveal. */

/* ───── LIVE OPS INDICATOR (world map foot) ─────
   Persistent live status: a soft-pulsing lime dot + UTC clock that updates
   every 30s. Reinforces the 24/7/365 ops desk claim functionally rather
   than rhetorically. */
.ops-live{display:inline-flex;align-items:center;font-feature-settings:'tnum';color:var(--text-on-dark)}
.ops-live-dot{display:inline-block;width:6px;height:6px;background:var(--brand);border-radius:50%;margin-right:8px;animation:opsLivePulse 2.2s ease-in-out infinite;box-shadow:0 0 6px rgba(205,252,84,0.6)}
@keyframes opsLivePulse{
  0%,100%{opacity:.5;transform:scale(1)}
  50%{opacity:1;transform:scale(1.25)}
}

/* ───── WORLD MAP — HOLOGRAM PROJECTION ─────
   Always-visible map with continuously playing hologram animations.
   No JS-dependent initial state, so the map shows even if scripts haven't
   fired or .in hasn't been applied yet. */

/* Hub network pulse — all hubs pulse together as a synchronised signal */
@keyframes hubPulse{
  0%,100%{opacity:.65;transform:scale(1)}
  50%{opacity:1;transform:scale(1.08)}
}
.world-map-card svg g[filter="url(#hub-glow)"] circle[fill="url(#hub-l)"]{
  transform-box:fill-box;
  transform-origin:center;
  animation:hubPulse 3s ease-in-out infinite
}

/* Lat/lon grid flicker — subtle, suggests a live projection */
@keyframes gridFlicker{
  0%,100%{opacity:1}
  48%{opacity:.7}
  52%{opacity:1}
}
.world-map-card svg g[stroke="rgba(205,252,84,0.06)"]{
  animation:gridFlicker 5.5s ease-in-out infinite
}

/* Continent outline shimmer */
@keyframes continentShimmer{
  0%,100%{opacity:.85}
  50%{opacity:1}
}
.world-map-card svg g[stroke="rgba(205,252,84,0.45)"]{
  animation:continentShimmer 6s ease-in-out infinite
}

/* Images render immediately on viewport entry, no clip-path reveal. */

/* ───── VALUE STACK ROW HIGHLIGHT ───── */
.value-stack .vs-row{opacity:.38;transition:opacity .6s cubic-bezier(.4,0,.2,1),padding-left .35s ease,background .35s ease}
.value-stack .vs-row.vs-active{opacity:1}
.value-stack:hover .vs-row{opacity:1}

/* ───── PINNED VALUE STACK SECTION (homepage)
   Two-column layout with the headline + intro pinned to viewport while
   the user scrolls through the five value-prop rows on the right.
   Reader steps through each value as a guided sequence. */
.value-stack-section .section-head{display:block;grid-template-columns:none;gap:0;margin-bottom:0;align-items:start}
.value-stack-grid{display:grid;grid-template-columns:0.95fr 1.45fr;gap:88px;align-items:start;position:relative}
.value-stack-head{position:sticky;top:120px;align-self:start;padding-bottom:24px}
.value-stack-head .eyebrow{display:inline-flex;margin-bottom:24px}
.value-stack-head h2{margin-top:0;margin-bottom:28px}
.value-stack-head .intro{margin-top:0;margin-bottom:48px;max-width:480px}
/* Progress indicator under the sticky head */
.value-stack-progress{display:flex;align-items:center;gap:18px;padding-top:28px;border-top:1px solid var(--border)}
.vs-progress-num{font-family:var(--display);font-size:48px;font-weight:500;letter-spacing:-0.03em;color:var(--muted);font-feature-settings:'tnum';line-height:1;display:flex;align-items:baseline;gap:4px}
.vs-progress-num span{color:var(--brand);transition:color .35s ease}
.vs-progress-bar{flex:1;height:2px;background:var(--border);border-radius:1px;overflow:hidden;position:relative}
.vs-progress-fill{position:absolute;inset:0 auto 0 0;background:var(--brand);width:100%;transform-origin:left;transform:scaleX(0.2);transition:transform .6s cubic-bezier(.65,0,.35,1)}
.vs-progress-total{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted)}
/* Bigger rows so each one pins for a beat as the user scrolls */
.value-stack-section .value-stack .vs-row{padding:48px 8px;position:relative}
/* Subtle lime accent on the left edge of the active row */
.value-stack-section .value-stack .vs-row::before{content:'';position:absolute;left:-18px;top:50%;width:3px;height:0;background:var(--brand);border-radius:1.5px;transform:translateY(-50%);transition:height .5s cubic-bezier(.65,0,.35,1)}
.value-stack-section .value-stack .vs-row.vs-active::before{height:64%}
@media (max-width:1024px){
  .value-stack-grid{grid-template-columns:1fr 1.2fr;gap:56px}
  .value-stack-head{top:96px}
}
@media (max-width:880px){
  .value-stack-grid{grid-template-columns:1fr;gap:32px}
  .value-stack-head{position:static;padding-bottom:0}
  .value-stack-head .intro{margin-bottom:24px}
  .value-stack-progress{display:none}
  .value-stack-section .value-stack .vs-row{padding:32px 4px}
  .value-stack-section .value-stack .vs-row::before{display:none}
}

/* ───── REDUCED MOTION ─────
   Honour user OS-level motion preference. Reduces animation duration
   to near zero across the board (transitions, animations, scroll).
   Hero video element is suppressed entirely since it can't be paused
   via CSS alone; the JS reveal-immediately path handles that too. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .hero-ambient .hero-video{display:none}
  .ticker-track{animation:none !important}
  .reveal{opacity:1 !important;transform:none !important}
}

/* ───── LEGAL / POLICY PAGES ───── */
.legal-hero{padding:150px 0 40px;border-bottom:1px solid var(--border)}
.legal-hero .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin-bottom:14px}
.legal-hero h1{font-family:var(--display);font-size:clamp(2rem,4vw,3rem);line-height:1.05;letter-spacing:-.02em;margin-bottom:14px}
.legal-hero .legal-meta{color:var(--muted);font-size:14px}
.legal-body{padding:56px 0 96px}
.legal-body .legal-wrap{max-width:820px}
.legal-body h2{font-family:var(--display);font-size:1.4rem;letter-spacing:-.01em;margin:40px 0 14px;padding-top:20px;border-top:1px solid var(--border)}
.legal-body h2:first-of-type{border-top:none;padding-top:0;margin-top:0}
.legal-body h3{font-size:1.05rem;font-weight:600;margin:24px 0 8px}
.legal-body p,.legal-body li{color:var(--muted);line-height:1.75;font-size:15.5px}
.legal-body p{margin-bottom:14px}
.legal-body ul{margin:0 0 14px 22px}
.legal-body li{margin-bottom:7px}
.legal-body a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.legal-body strong{color:var(--text)}
.legal-body .legal-note{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin:24px 0}
.legal-body .legal-note p:last-child{margin-bottom:0}
.legal-toc{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 26px;margin-bottom:40px}
.legal-toc .toc-title{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-d);margin-bottom:12px}
.legal-toc ol{margin-left:18px}
.legal-toc li{margin-bottom:6px;font-size:14.5px}
.legal-toc a{color:var(--text);text-decoration:none}
.legal-toc a:hover{color:var(--brand)}

/* ============================================================
   NEW (2026-05-20) — Dark-theme component additions
   For airspace-style sections, icon strip, team filters + modal
   ============================================================ */

/* ───── HERO — play-once video, transition into content on ended ───── */
.hero-ambient{position:relative;min-height:calc(100vh + 130px);display:flex;align-items:center;overflow:hidden;background:#1a1c28;margin-top:-130px;padding-top:130px}
.hero-ambient .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.92;filter:saturate(.95) brightness(.92) contrast(1.04);transition:opacity 3.5s cubic-bezier(.65,0,.35,1),filter 3.5s cubic-bezier(.65,0,.35,1);will-change:opacity,filter}
.hero-ambient.is-ended .hero-video{opacity:0;filter:saturate(.7) brightness(.55) contrast(1.05)}
.hero-ambient .hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(26,28,40,0.32) 0%,rgba(26,28,40,0.10) 30%,rgba(26,28,40,0.18) 70%,rgba(26,28,40,0.80) 100%);transition:background 3s cubic-bezier(.65,0,.35,1)}
.hero-ambient.is-ended .hero-scrim{background:linear-gradient(180deg,rgba(26,28,40,0.74) 0%,rgba(26,28,40,0.50) 30%,rgba(26,28,40,0.66) 70%,rgba(26,28,40,0.95) 100%)}
.hero-ambient .hero-scrim::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.022) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse at 70% 50%,black 20%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse at 70% 50%,black 20%,transparent 80%);pointer-events:none;opacity:0;transition:opacity 1.5s ease 1s}
.hero-ambient.is-ended .hero-scrim::after{opacity:1}
.hero-ambient .container{position:relative;z-index:2;width:100%}
.hero-ambient .hero-content{max-width:920px;margin:0 auto;text-align:center;color:var(--text-on-dark);padding:64px 0 72px}
.hero-ambient .hero-content > *{opacity:0;transform:translateY(12px);filter:blur(12px);transition:opacity 1.6s cubic-bezier(.16,.84,.34,1),transform 1.6s cubic-bezier(.16,.84,.34,1),filter 1.6s cubic-bezier(.16,.84,.34,1);will-change:opacity,transform,filter}
.hero-ambient .hero-divider{transform:scaleX(0);transform-origin:center;filter:none;transition:opacity 1.2s cubic-bezier(.6,0,.2,1),transform 1.3s cubic-bezier(.6,0,.2,1)}
.hero-ambient.is-ended .hero-eyebrow-row{opacity:1;transform:translateY(0);filter:blur(0);transition-delay:.30s}
.hero-ambient.is-ended h1{opacity:1;transform:translateY(0);filter:blur(0);transition-delay:.55s}
.hero-ambient.is-ended .hero-divider{opacity:1;transform:scaleX(1);transition-delay:.95s}
.hero-ambient.is-ended .hero-sub{opacity:1;transform:translateY(0);filter:blur(0);transition-delay:1.20s}
.hero-ambient.is-ended .hero-ctas{opacity:1;transform:translateY(0);filter:blur(0);transition-delay:1.45s}
.hero-ambient.is-ended .hero-proof{opacity:1;transform:translateY(0);filter:blur(0);transition-delay:1.65s}
.hero-ambient .hero-eyebrow-row{display:flex;align-items:center;justify-content:center;gap:22px;margin-bottom:32px;flex-wrap:wrap}
.hero-ambient .hero-eyebrow-row .mono-line{color:rgba(255,255,255,0.55)}
.hero-ambient .hero-eyebrow-row .eyebrow::before{display:none}
.hero-ambient h1{font-family:var(--display);font-size:clamp(44px,5.8vw,88px);font-weight:500;letter-spacing:-0.04em;line-height:1.02;margin:0 auto 0;max-width:880px;color:var(--text-on-dark);text-shadow:0 2px 24px rgba(0,0,0,0.30)}
.hero-ambient h1 .accent{display:inline;color:var(--brand)}
.hero-ambient .hero-divider{width:64px;height:2px;background:var(--brand);border-radius:1px;margin:38px auto 30px;display:block}
.hero-ambient .hero-sub{font-family:var(--serif);font-size:19px;color:rgba(255,255,255,0.85);line-height:1.55;margin:0 auto 40px;max-width:600px;font-weight:400;letter-spacing:0;text-shadow:0 1px 12px rgba(0,0,0,0.30)}
.hero-ambient .hero-ctas{display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;margin-bottom:56px}
.hero-ambient .hero-ctas .btn-ghost{color:var(--text-on-dark);border-color:rgba(255,255,255,0.25);background:rgba(255,255,255,0.04);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.hero-ambient .hero-ctas .btn-ghost:hover{border-color:var(--brand);background:rgba(205,252,84,0.08);color:var(--text-on-dark)}
.hero-ambient .hero-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding-top:30px;border-top:1px solid rgba(255,255,255,0.16);max-width:680px;margin:0 auto}
.hero-ambient .hero-proof-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}
.hero-ambient .hero-proof-num{font-family:var(--display);font-size:38px;font-weight:600;letter-spacing:-0.03em;color:var(--text-on-dark);font-feature-settings:'tnum';line-height:1}
.hero-ambient .hero-proof-num em{font-style:normal;color:var(--brand);font-size:0.62em;font-weight:500;margin-left:3px}
.hero-ambient .hero-proof-label{font-family:var(--mono);font-size:11px;color:rgba(255,255,255,0.62);letter-spacing:0.12em;text-transform:uppercase}
@media (max-width:880px){
  .hero-ambient{min-height:calc(100vh + 130px);padding-top:130px}
  .hero-ambient .hero-content{padding:48px 0 60px}
  .hero-ambient h1{font-size:clamp(34px,8vw,52px)}
  .hero-ambient .hero-proof{gap:20px}
}
@media (max-width:560px){
  .hero-ambient .hero-proof{grid-template-columns:1fr 1fr}
  .hero-ambient .hero-proof-item:last-child{grid-column:span 2}
  .hero-ambient .hero-sub{font-size:17px}
  .hero-ambient .hero-proof-num{font-size:32px}
}

/* ───── AIRSPACE-STYLE 4-UP TIME-CRITICAL GRID (2x2 layout) ───── */
.tc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.tc-card.tc-wide{grid-column:1 / -1;min-height:420px}
.tc-card.tc-wide .tc-desc{max-width:420px}
.tc-card.tc-wide .tc-photo img{object-position:60% 42%}
.tc-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:480px;padding:36px;border-radius:18px;overflow:hidden;background:#1a1c28;color:var(--text-on-dark);text-decoration:none;border:1px solid var(--border);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.tc-card:hover{transform:translateY(-4px);border-color:var(--brand-line);box-shadow:var(--shadow-lg)}
.tc-card .tc-photo{position:absolute;inset:0;z-index:0}
.tc-card .tc-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.95) brightness(.78) contrast(1.04);transition:transform .8s ease,filter .5s ease}
.tc-card:hover .tc-photo img{transform:scale(1.05);filter:saturate(1) brightness(.85) contrast(1.04)}
.tc-card::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(26,28,40,0.10) 0%,rgba(26,28,40,0.46) 55%,rgba(26,28,40,0.90) 100%);pointer-events:none}
.tc-card > *{position:relative;z-index:2}
.tc-card .tc-tag{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--brand);display:inline-flex;align-items:center;gap:9px;padding:7px 11px 6px;background:rgba(20,22,32,0.84);border:1px solid rgba(205,252,84,0.28);border-radius:2px;line-height:1;margin-bottom:auto;align-self:flex-start}
.tc-card .tc-tag::before{content:'';width:6px;height:6px;background:var(--brand);flex:none}
.tc-card .tc-title{font-family:var(--display);font-size:24px;font-weight:600;letter-spacing:-0.025em;line-height:1.15;margin-top:18px;color:var(--text-on-dark)}
.tc-card .tc-desc{font-family:var(--serif);font-size:14px;line-height:1.55;color:rgba(255,255,255,0.80);margin-top:10px;max-width:280px}
.tc-card .tc-arrow{position:absolute;top:22px;right:22px;width:34px;height:34px;border-radius:2px;background:rgba(20,22,32,0.84);border:1px solid rgba(255,255,255,0.20);display:flex;align-items:center;justify-content:center;color:var(--text-on-dark);transition:background .25s ease,color .25s ease,transform .25s ease;z-index:3}
.tc-card:hover .tc-arrow{background:var(--brand);color:var(--navy);transform:translateX(3px)}
@media (max-width:1024px){.tc-grid{grid-template-columns:1fr 1fr;gap:16px}.tc-card{min-height:420px;padding:30px}}
@media (max-width:560px){.tc-grid{grid-template-columns:1fr;gap:14px}.tc-card{min-height:340px;padding:26px}}
@media (max-width:560px){.tc-card.tc-wide .tc-photo img{object-position:38% 42%}}

/* ───── 5-VALUE PROP STACK (airspace "faster, smarter way") ───── */
.value-stack{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--border)}
.vs-row{display:grid;grid-template-columns:80px 1fr 1.4fr 60px;gap:32px;align-items:center;padding:32px 8px;border-bottom:1px solid var(--border);transition:padding-left .35s ease,background .35s ease;position:relative}
.vs-row:hover{padding-left:18px;background:rgba(205,252,84,0.025)}
.vs-row .vs-num{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:0.18em;color:var(--brand)}
.vs-row .vs-title{font-family:var(--display);font-size:clamp(22px,2.2vw,30px);font-weight:500;letter-spacing:-0.025em;line-height:1.12;color:var(--text)}
.vs-row .vs-title em{font-family:var(--accent);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--text)}
.vs-row .vs-desc{font-family:var(--serif);font-size:15px;line-height:1.6;color:var(--muted);max-width:540px}
.vs-row .vs-icon{width:48px;height:48px;border-radius:12px;background:var(--brand-soft);border:1px solid var(--brand-line);display:flex;align-items:center;justify-content:center;color:var(--brand);justify-self:end;transition:background .25s ease,color .25s ease}
.vs-row:hover .vs-icon{background:var(--brand);color:var(--navy)}
@media (max-width:880px){
  .vs-row{grid-template-columns:1fr 56px;grid-template-areas:'num icon' 'title icon' 'desc desc';gap:12px;padding:28px 4px}
  .vs-row .vs-num{grid-area:num}
  .vs-row .vs-title{grid-area:title}
  .vs-row .vs-desc{grid-area:desc}
  .vs-row .vs-icon{grid-area:icon;width:44px;height:44px}
}

/* ───── FIELD ICON STRIP (replaces big-photo gallery) ───── */
.field-icons{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}
.field-icon{display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 8px;border-radius:14px;background:var(--bg-card);border:1px solid var(--border);text-decoration:none;color:inherit;transition:transform .35s ease,border-color .35s ease,background .35s ease}
.field-icon:hover{transform:translateY(-3px);border-color:var(--brand-line);background:rgba(205,252,84,0.03)}
.field-icon .fi-photo{width:88px;height:88px;border-radius:50%;overflow:hidden;background:#1a1c28;box-shadow:var(--shadow-md);border:2px solid rgba(255,255,255,0.06);transition:border-color .35s ease}
.field-icon:hover .fi-photo{border-color:var(--brand-line)}
.field-icon .fi-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.95) brightness(.95) contrast(1.04)}
.field-icon .fi-label{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:0.14em;color:var(--muted);text-transform:uppercase;text-align:center}
.field-icon:hover .fi-label{color:var(--text)}
.field-icon .fi-title{font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:-0.01em;color:var(--text);text-align:center;line-height:1.25}
@media (max-width:1024px){.field-icons{grid-template-columns:repeat(3,1fr);gap:16px}}
@media (max-width:540px){.field-icons{grid-template-columns:repeat(2,1fr);gap:14px}.field-icon .fi-photo{width:72px;height:72px}}

/* ───── TEAM FILTER CHIPS (DrCassie-style) ───── */
.team-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:48px;justify-content:center}
.team-filter{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:0.10em;text-transform:uppercase;color:var(--muted);background:transparent;border:1px solid var(--border-strong);padding:9px 18px;border-radius:var(--radius-pill);cursor:pointer;transition:all .2s ease}
.team-filter:hover{border-color:var(--brand-line);color:var(--text);background:rgba(205,252,84,0.04)}
.team-filter.active{background:var(--brand);border-color:var(--brand);color:var(--navy);font-weight:700}
.team-filter .count{opacity:.55;margin-left:6px;font-weight:500}
.team-filter.active .count{opacity:.75;color:var(--navy)}

/* ───── TEAM PHOTO CARDS (filterable grid) ───── */
.team-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.tp-card{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;overflow:hidden;cursor:pointer;text-align:left;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;text-decoration:none;color:inherit;width:100%;font-family:inherit}
.tp-card:hover{transform:translateY(-4px);border-color:var(--brand-line);box-shadow:var(--shadow-lg)}
.tp-card.is-hidden{display:none}
.tp-card .tp-photo{position:relative;aspect-ratio:1/1;overflow:hidden;background:#1a1c28}
.tp-card .tp-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.92) brightness(.96);transition:transform .7s ease,filter .5s ease}
.tp-card:hover .tp-photo img{transform:scale(1.05);filter:saturate(1) brightness(1)}
.tp-card .tp-tag{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--brand);background:rgba(0,0,0,0.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:5px 10px;border-radius:var(--radius-pill);border:1px solid rgba(205,252,84,0.30)}
.tp-card .tp-region{position:absolute;bottom:14px;right:14px;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:0.10em;text-transform:uppercase;color:var(--text-on-dark);background:rgba(0,0,0,0.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:4px 10px;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,0.18)}
.tp-card .tp-info{padding:20px 22px 24px;display:flex;flex-direction:column;gap:4px}
.tp-card .tp-name{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-0.015em;color:var(--text);line-height:1.2}
.tp-card .tp-role{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:0.10em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.tp-card .tp-meta{margin-top:12px;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:0.05em}
.tp-card .tp-view{margin-top:14px;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:0.10em;text-transform:uppercase;color:var(--brand);display:inline-flex;align-items:center;gap:6px}
.tp-card:hover .tp-view{gap:10px}
@media (max-width:1024px){.team-photo-grid{grid-template-columns:repeat(3,1fr);gap:18px}}
@media (max-width:680px){.team-photo-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media (max-width:420px){.team-photo-grid{grid-template-columns:1fr}}

/* ───── TEAM BIO MODAL ───── */
.tm-overlay{position:fixed;inset:0;z-index:200;background:rgba(15,17,26,0.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s ease}
.tm-overlay.is-open{opacity:1;pointer-events:auto}
.tm-panel{position:relative;width:min(720px,100%);max-height:calc(100vh - 48px);overflow-y:auto;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:20px;box-shadow:var(--shadow-xl);transform:translateY(16px) scale(.97);transition:transform .35s cubic-bezier(.25,.46,.45,.94)}
.tm-overlay.is-open .tm-panel{transform:none}
.tm-close{position:absolute;top:18px;right:18px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,0.06);border:1px solid var(--border-strong);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;z-index:2}
.tm-close:hover{background:var(--brand);color:var(--navy);border-color:var(--brand)}
.tm-head{display:grid;grid-template-columns:140px 1fr;gap:24px;padding:32px 36px 24px;align-items:center;border-bottom:1px solid var(--border)}
.tm-photo{width:140px;height:140px;border-radius:18px;overflow:hidden;background:#1a1c28;border:1px solid var(--border-strong)}
.tm-photo img{width:100%;height:100%;object-fit:cover}
.tm-meta .tm-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--brand);padding:5px 10px;background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--radius-pill);margin-bottom:14px}
.tm-meta .tm-name{font-family:var(--display);font-size:28px;font-weight:600;letter-spacing:-0.02em;color:var(--text);line-height:1.15;margin-bottom:6px}
.tm-meta .tm-role{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:0.10em;text-transform:uppercase;color:var(--muted)}
.tm-meta .tm-loc{margin-top:10px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.06em;display:inline-flex;align-items:center;gap:8px}
.tm-meta .tm-loc::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--brand)}
.tm-body{padding:24px 36px 36px}
.tm-body p{font-family:var(--serif);font-size:15.5px;line-height:1.65;color:var(--muted-on-dark);margin-bottom:14px}
.tm-body p:last-child{margin-bottom:0}
.tm-body strong{color:var(--text);font-weight:600}
@media (max-width:560px){.tm-head{grid-template-columns:1fr;text-align:center;padding:28px 24px 20px}.tm-photo{margin:0 auto;width:120px;height:120px}.tm-meta .tm-loc{justify-content:center}.tm-body{padding:20px 24px 28px}}
@media (max-width:540px){.related-grid{grid-template-columns:1fr}}

/* ───── Page hero photo: full-bleed behind the title on desktop ───── */
/* The photo runs under the type. Readability comes from a see-through scrim that is
   heaviest at the left (where the title sits) and a soft halo behind each text block. */
.page-hero-media{position:absolute;inset:0;z-index:0;pointer-events:none}
.page-hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.95) brightness(.68) contrast(1.05)}
.page-hero-media::after{content:'';position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(42,44,59,.62) 0%,rgba(42,44,59,.42) 40%,rgba(42,44,59,.12) 72%,rgba(42,44,59,0) 100%),
  linear-gradient(180deg,rgba(42,44,59,.78) 0%,rgba(42,44,59,.3) 16%,rgba(42,44,59,0) 28%),
  linear-gradient(0deg,#2a2c3b 0%,rgba(42,44,59,.5) 12%,rgba(42,44,59,0) 30%),
  linear-gradient(270deg,rgba(42,44,59,.72) 0%,rgba(42,44,59,.5) 16%,rgba(42,44,59,.18) 30%,rgba(42,44,59,0) 42%)}
@media (max-width:880px){
  .page-hero{display:flex;flex-direction:column}
  .page-hero > .container{order:1}
  .page-hero-media{order:2;position:relative;inset:auto;width:auto;height:210px;margin:36px 24px 0;border-radius:14px;overflow:hidden;border:1px solid var(--border)}
  .page-hero-media img{opacity:1;filter:saturate(.95)}
  .page-hero-media::after{background:linear-gradient(180deg,rgba(42,44,59,0) 55%,rgba(42,44,59,.35) 100%)}
}

.page-hero-meta{position:relative;z-index:1}
.page-hero-media ~ .container .page-hero-meta-item .lbl{color:rgba(255,255,255,.94)}
.page-hero-media ~ .container .page-hero-intro{color:rgba(255,255,255,.78)}
.page-hero-media ~ .container .breadcrumb,.page-hero-media ~ .container .breadcrumb a,.page-hero-media ~ .container .breadcrumb-sep{color:rgba(255,255,255,.86)}
.page-hero-media ~ .container .breadcrumb .crumb-cur{color:#fff}
.page-hero-media ~ .container .eyebrow.orange{color:#F2A65E}
/* Title column halo: dark directly behind the type, easing out toward the photo */
@media (min-width:881px){
  .page-hero-media ~ .container .page-hero-inner > :first-child{position:relative;z-index:1}
  .page-hero-media ~ .container .page-hero-inner > :first-child::before{content:'';position:absolute;inset:-80px -160px -80px -120px;z-index:-1;pointer-events:none;
    background:radial-gradient(closest-side at 46% 54%,rgba(36,38,51,.62) 0%,rgba(36,38,51,.52) 64%,rgba(42,44,59,0) 100%)}
}

/* ===== PREMIUM BUTTONS v2 (2026-10-09) START =====
   Hard-edged, layered buttons. To restore the original pill buttons, delete everything
   from START to END (a full copy of the old stylesheet is in PROJECT FILES/button-styles/). */
.btn{border-radius:3px;padding:17px 26px;gap:12px;letter-spacing:0.01em;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .25s ease}
.btn:hover{transform:none}
.btn-primary,.btn-orange{background:linear-gradient(180deg,#de8d3c 0%,#cb7828 100%);color:#15161f;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.30),inset 0 -1px 0 rgba(0,0,0,0.20),0 12px 26px -14px rgba(211,129,47,0.85)}
.btn-primary:hover,.btn-orange:hover{background:linear-gradient(180deg,#eb9c4e 0%,#d6832f 100%);transform:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.36),inset 0 -1px 0 rgba(0,0,0,0.20),0 18px 34px -14px rgba(211,129,47,0.95)}
.btn-orange{color:#15161f}
.btn-dark{background:linear-gradient(180deg,#252734 0%,#1a1c26 100%);border:1px solid rgba(255,255,255,0.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.07),0 12px 26px -16px rgba(0,0,0,0.8)}
.btn-dark:hover{background:linear-gradient(180deg,#2a2c3a 0%,#1d1f2a 100%);border-color:rgba(205,252,84,0.55);transform:none;box-shadow:inset 0 1px 0 rgba(255,255,255,0.08),0 16px 30px -16px rgba(0,0,0,0.9)}
.btn-dark > svg{color:var(--brand)}
.btn-ghost,.btn-ghost-on-dark{background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.28);color:var(--text-on-dark)}
.btn-ghost:hover,.btn-ghost-on-dark:hover{background:rgba(255,255,255,0.07);border-color:rgba(255,255,255,0.6);color:var(--text-on-dark)}
.hero-ambient .hero-ctas .btn-ghost{border-color:rgba(255,255,255,0.3)}
/* Arrow sits in its own cell behind a hairline divider */
.btn .btn-arrow{display:inline-flex;align-items:center;align-self:stretch;margin:-17px -8px -17px 4px;padding:0 4px 0 16px;border-left:1px solid rgba(21,22,31,0.26)}
.btn-dark .btn-arrow,.btn-ghost .btn-arrow,.btn-ghost-on-dark .btn-arrow{border-left-color:rgba(255,255,255,0.16)}
.btn:hover .btn-arrow{transform:none}
.btn:hover .btn-arrow svg{transform:translateX(3px)}
/* Nav */
.nav-cta{border-radius:3px;padding:11px 20px;background:linear-gradient(180deg,#de8d3c 0%,#cb7828 100%);color:#15161f;box-shadow:inset 0 1px 0 rgba(255,255,255,0.30),inset 0 -1px 0 rgba(0,0,0,0.2)}
.nav-cta:hover{background:linear-gradient(180deg,#eb9c4e 0%,#d6832f 100%);transform:none}
.nav-track{border-radius:3px;padding:9px 14px}
.nav-burger,.md-close,.tm-close{border-radius:4px}
/* Other controls */
.svc-card-arrow{border-radius:3px}
.form-submit{border-radius:4px}
#scrolltop{border-radius:4px;background:linear-gradient(180deg,#de8d3c 0%,#cb7828 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.3),0 12px 26px -12px rgba(0,0,0,0.6)}
.team-filter,.form-priority span{border-radius:3px}
@media (max-width:560px){.nav-cta{padding:10px 15px}}
/* ===== PREMIUM BUTTONS v2 END ===== */


/* ===== ITALIC ACCENT SIZE (Sara, 22 Oct: "italic looks smaller, make it the same") START =====
   The serif italic has a ~16% shorter x-height than the sans at the same size, so it read smaller.
   Scale it so the lowercase letters line up. Delete START to END to undo. */
.page-hero h1 em,.who-content h2 em,.section-head h2 em,.stats-head h2 em,.cta-inner h2 em,
.faq-aside h2 em,.contact-aside h2 em,.vs-row .vs-title em{font-size:1.18em;line-height:0.9;font-weight:500}
h1 em.em-wrap,h2 em.em-wrap{white-space:normal!important}
@media (max-width:480px){.page-hero h1 em{font-size:1.1em}}
/* ===== ITALIC ACCENT SIZE END ===== */

/* 404 page */
.notfound-hero h1 em{font-family:var(--accent);font-style:italic;font-weight:400;color:var(--brand)}
.notfound-intro{font-family:var(--serif);font-size:18px;line-height:1.6;color:var(--muted);max-width:560px;margin-top:22px}
.notfound-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.notfound-links{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:40px;padding-top:26px;border-top:1px solid var(--border);font-family:var(--mono);font-size:11.5px;letter-spacing:0.1em;text-transform:uppercase}
.notfound-links a{color:var(--muted);transition:color .2s}
.notfound-links a:hover{color:var(--brand)}
