/* ==============================================================
   HELIX WORKFORCE MANAGEMENT — SHARED STYLES
   ============================================================== */

:root{
  --navy:#0F1D33;
  --navy-2:#132749;
  --navy-3:#1B355F;
  --blue:#1085C5;
  --blue-2:#0A4C95;
  --blue-soft:#E9F3FB;
  --green:#77C043;
  --green-2:#3E9B2F;
  --green-3:#116232;
  --green-soft:#EEF8E3;
  --ink:#12253F;
  --muted:#5A6B82;
  --line:#E4EAF2;
  --bg:#FFFFFF;
  --bg-soft:#F6F9FC;
  --shadow-sm:0 2px 6px rgba(15,29,51,.06);
  --shadow-md:0 10px 30px rgba(15,29,51,.08);
  --shadow-lg:0 20px 50px rgba(15,29,51,.12);
  --radius-sm:8px;
  --radius:14px;
  --radius-lg:22px;
  --container:1200px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px}
::selection{background:rgba(119,192,67,.28);color:var(--navy)}
:focus-visible{outline:3px solid rgba(62,155,47,.5);outline-offset:3px;border-radius:6px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px}

/* =============================================================
   SCROLL-REVEAL ANIMATIONS
   Elements with [data-reveal] start hidden and animate in when
   they enter the viewport (JS toggles .is-visible).
   Variants:  up (default) · fade · scale · slide-left · slide-right
   Staggering: parent [data-reveal-stagger] auto-delays its children.
   ============================================================= */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:
    opacity .8s cubic-bezier(.22,.61,.36,1),
    transform .8s cubic-bezier(.22,.61,.36,1);
  will-change:opacity, transform;
}
[data-reveal="fade"]        {transform:none}
[data-reveal="scale"]       {transform:scale(.94)}
[data-reveal="slide-left"]  {transform:translateX(-40px)}
[data-reveal="slide-right"] {transform:translateX(40px)}

[data-reveal].is-visible{
  opacity:1;
  transform:none;
}

/* Stagger children of a container so a row of cards ripples in */
[data-reveal-stagger] > *{transition-delay:0ms}
[data-reveal-stagger] > *:nth-child(1) {transition-delay: 60ms}
[data-reveal-stagger] > *:nth-child(2) {transition-delay:140ms}
[data-reveal-stagger] > *:nth-child(3) {transition-delay:220ms}
[data-reveal-stagger] > *:nth-child(4) {transition-delay:300ms}
[data-reveal-stagger] > *:nth-child(5) {transition-delay:380ms}
[data-reveal-stagger] > *:nth-child(6) {transition-delay:460ms}
[data-reveal-stagger] > *:nth-child(7) {transition-delay:540ms}
[data-reveal-stagger] > *:nth-child(8) {transition-delay:620ms}
[data-reveal-stagger] > *:nth-child(9) {transition-delay:700ms}
[data-reveal-stagger] > *:nth-child(10){transition-delay:780ms}
[data-reveal-stagger] > *:nth-child(11){transition-delay:860ms}
[data-reveal-stagger] > *:nth-child(12){transition-delay:940ms}

/* Page-load hero: fires on paint, no observer needed */
.hero [data-reveal]{
  animation:heroReveal .9s cubic-bezier(.22,.61,.36,1) forwards;
}
.hero [data-reveal]:nth-child(2){animation-delay:.12s}
.hero [data-reveal]:nth-child(3){animation-delay:.22s}
.hero [data-reveal]:nth-child(4){animation-delay:.32s}
.hero [data-reveal]:nth-child(5){animation-delay:.42s}
@keyframes heroReveal{
  from{opacity:0;transform:translateY(24px)}
  to  {opacity:1;transform:none}
}

/* Subtle floating "in" for hero badges once they arrive */
.hero-badge{opacity:0;transform:translateY(20px) scale(.96)}
.hero-visual.is-visible .hero-badge{
  animation:badgeIn .9s cubic-bezier(.22,.61,.36,1) forwards;
}
.hero-visual.is-visible .hero-badge.b1{animation-delay:.6s}
.hero-visual.is-visible .hero-badge.b2{animation-delay:.8s}
@keyframes badgeIn{
  to{opacity:1;transform:none}
}

/* Respect users who ask the OS to reduce motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  [data-reveal]{opacity:1 !important;transform:none !important}
  .hero-badge{opacity:1 !important;transform:none !important}
}
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5{
  font-family:'Manrope','Inter',sans-serif;
  color:var(--navy);
  line-height:1.2;
  margin:0 0 .6em;
  font-weight:800;
  letter-spacing:-.01em;
}
p{margin:0 0 1em;color:var(--muted)}
a{color:var(--blue);text-decoration:none;transition:color .2s}
a:hover{color:var(--blue-2)}
img{max-width:100%;display:block}
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
.eyebrow{
  display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--green-3);margin-bottom:14px;
}
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:14px 26px;border-radius:999px;font-weight:700;font-size:.95rem;
  border:2px solid transparent;cursor:pointer;transition:all .25s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--green-2);color:#fff;border-color:var(--green-2)}
.btn-primary:hover{background:var(--green-3);border-color:var(--green-3);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn-ghost-white{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-ghost-white:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-white{background:#fff;color:var(--navy);border-color:#fff}
.btn-white:hover{background:var(--green-2);color:#fff;border-color:var(--green-2)}

/* ---------- TOP UTILITY BAR ---------- */
.topbar{background:var(--navy);color:#cfd8e6;font-size:.82rem}
.topbar .container{display:flex;justify-content:space-between;align-items:center;padding-top:10px;padding-bottom:10px;gap:24px;flex-wrap:wrap}
.topbar a{color:#cfd8e6}
.topbar a:hover{color:#fff}
.topbar-left{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.topbar-left i{color:var(--green);margin-right:6px}
.topbar-right{display:flex;gap:18px;align-items:center}
.topbar-right .divider{opacity:.35}

/* ---------- HEADER / NAV ---------- */
header.nav{
  position:sticky;top:0;z-index:100;background:#fff;
  border-bottom:1px solid var(--line);transition:box-shadow .2s;
}
header.nav.scrolled{box-shadow:var(--shadow-sm)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:28px}
/* ---------- LOGO (transparent PNG, two variants for light/dark bg) ---------- */
.logo{display:inline-flex;align-items:center;text-decoration:none}
.logo-img{
  width:auto;display:block;
  transition:transform .3s ease, filter .3s ease;
}
.logo:hover .logo-img{
  transform:scale(1.04);
  filter:drop-shadow(0 6px 16px rgba(16,133,197,.28));
}

/* Show dark-text variant in header (light background), hide light-text variant */
.logo .logo-light{display:none}
header.nav .logo-img{height:70px}

/* In the footer, swap variants: hide dark-text, show light-text */
footer .logo .logo-dark{display:none}
footer .logo .logo-light{display:block;height:76px}
footer .logo:hover .logo-light{filter:drop-shadow(0 6px 16px rgba(119,192,67,.35))}

/* Mobile */
@media (max-width:720px){
  header.nav .logo-img{height:54px}
  footer .logo .logo-light{height:62px}
}
.nav-menu{display:flex;gap:6px;align-items:center;list-style:none;padding:0;margin:0}
.nav-menu > li{position:relative}
.nav-menu > li > a{
  position:relative;overflow:hidden;
  display:flex;align-items:center;gap:6px;
  padding:10px 16px;color:var(--navy);font-weight:600;font-size:.95rem;
  border-radius:10px;transition:color .25s ease, background .25s ease;
  isolation:isolate;
}
/* Cursor-tracking glass shine — driven by --mx/--my updated in JS */
.nav-menu > li > a::before,
.btn::before,
.dropdown a::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 90px at var(--mx,50%) var(--my,50%),
    rgba(255,255,255,.55),
    rgba(255,255,255,.15) 40%,
    transparent 70%
  );
  opacity:0;transition:opacity .25s ease;z-index:1;mix-blend-mode:overlay;
}
.btn::before{
  background:radial-gradient(
    circle 130px at var(--mx,50%) var(--my,50%),
    rgba(255,255,255,.45),
    rgba(255,255,255,.12) 45%,
    transparent 75%
  );
}
.dropdown a::before{
  background:radial-gradient(
    circle 120px at var(--mx,50%) var(--my,50%),
    rgba(255,255,255,.7),
    rgba(16,133,197,.15) 45%,
    transparent 75%
  );
}
.nav-menu > li > a:hover::before,
.btn:hover::before,
.dropdown a:hover::before{opacity:1}
.nav-menu > li > a > *,.btn > *,.dropdown a > *{position:relative;z-index:2}

.nav-menu > li > a:hover,
.nav-menu > li > a.active{
  color:var(--green-3);
  background:linear-gradient(135deg,rgba(119,192,67,.18),rgba(16,133,197,.10));
  box-shadow:inset 0 0 0 1px rgba(119,192,67,.25);
}
.nav-menu > li:hover > a{color:var(--green-3)}
.nav-menu .caret{font-size:.65rem;opacity:.6;transition:transform .25s}
.nav-menu > li:hover .caret{transform:rotate(180deg);opacity:.9}

/* Invisible bridge so the pointer can travel from trigger to dropdown */
.nav-menu > li.has-dd::after{
  content:"";position:absolute;top:100%;left:0;right:0;height:14px;
}

/* ---------- TRANSLUCENT GLASS DROPDOWN ---------- */
.dropdown{
  position:absolute;top:calc(100% + 12px);left:0;
  min-width:280px;padding:10px;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  backdrop-filter:blur(18px) saturate(180%);
  border:1px solid rgba(255,255,255,.55);
  border-radius:16px;
  box-shadow:
    0 20px 50px rgba(15,29,51,.18),
    0 2px 6px rgba(15,29,51,.06),
    inset 0 1px 0 rgba(255,255,255,.8);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
  pointer-events:none;
}
.nav-menu > li:hover > .dropdown,
.nav-menu > li:focus-within > .dropdown{
  opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear 0s;
}
.dropdown a{
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;align-items:center;gap:10px;
  padding:11px 14px;color:var(--navy);font-size:.92rem;
  font-weight:500;border-radius:10px;
  transition:color .2s ease, background .2s ease, transform .2s ease;
}
.dropdown a:hover{
  background:linear-gradient(135deg,rgba(16,133,197,.14),rgba(119,192,67,.10));
  color:var(--blue-2);transform:translateX(2px);
}
.dropdown a i.dd-ico{
  color:var(--green-2);font-size:.85rem;width:16px;text-align:center;flex-shrink:0;
}
.nav-cta{display:flex;gap:10px;align-items:center}
.mobile-toggle{display:none;background:none;border:0;font-size:1.5rem;color:var(--navy);cursor:pointer}

/* Make .btn work with the ::before shine */
.btn{position:relative;overflow:hidden;isolation:isolate}

/* Drawer-only CTA block — hidden on desktop; shown inside the mobile drawer */
.nav-drawer-cta{display:none}

/* ---------- HERO (home) ---------- */
.hero{
  position:relative;padding:80px 0 100px;overflow:hidden;
  background:
    radial-gradient(circle at 88% 12%, rgba(119,192,67,.14), transparent 45%),
    radial-gradient(circle at 8% 92%, rgba(16,133,197,.12), transparent 45%),
    linear-gradient(180deg,#fff 0%, #F6FAFD 100%);
}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(2.1rem,4vw,3.4rem);margin-bottom:20px}
.hero h1 .accent{
  background:linear-gradient(90deg,var(--blue) 0%,var(--green-2) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-lead{font-size:1.13rem;color:var(--muted);margin-bottom:32px;max-width:560px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:36px}
.hero-trust{display:flex;gap:36px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--line)}
.hero-trust .stat .num{font-family:'Manrope';font-size:1.8rem;font-weight:800;color:var(--navy);line-height:1}
.hero-trust .stat .lbl{font-size:.82rem;color:var(--muted);margin-top:6px}
.hero-visual{position:relative}
.hero-visual img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);aspect-ratio:5/4;object-fit:cover}
.hero-badge{
  position:absolute;background:#fff;border-radius:var(--radius);
  padding:16px 20px;box-shadow:var(--shadow-md);
  display:flex;align-items:center;gap:14px;
}
.hero-badge .ico{
  width:44px;height:44px;border-radius:50%;
  background:var(--green-soft);color:var(--green-3);
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
}
.hero-badge .num{font-weight:800;font-size:1.25rem;color:var(--navy);line-height:1;font-family:'Manrope'}
.hero-badge .lbl{font-size:.78rem;color:var(--muted)}
.hero-badge.b1{top:24px;left:-28px}
.hero-badge.b2{bottom:32px;right:-24px}

/* ---------- PAGE HEADER (interior pages) ---------- */
.page-header{
  position:relative;padding:80px 0 60px;overflow:hidden;text-align:center;
  background:
    radial-gradient(circle at 85% 20%, rgba(119,192,67,.14), transparent 45%),
    radial-gradient(circle at 15% 80%, rgba(16,133,197,.12), transparent 45%),
    linear-gradient(180deg,#F6FAFD 0%, #fff 100%);
  border-bottom:1px solid var(--line);
}
.page-header .breadcrumb{
  font-size:.85rem;color:var(--muted);margin-bottom:14px;
  display:flex;justify-content:center;gap:8px;align-items:center;
}
.page-header .breadcrumb a{color:var(--muted)}
.page-header .breadcrumb a:hover{color:var(--green-3)}
.page-header .breadcrumb i{font-size:.65rem;opacity:.5}
.page-header h1{font-size:clamp(2.2rem,4vw,3.2rem);margin-bottom:16px}
.page-header p.lead{font-size:1.15rem;color:var(--muted);max-width:720px;margin:0 auto}

/* ---------- LOGO CLOUD ---------- */
.logos{padding:36px 0;background:#fff;border-bottom:1px solid var(--line)}
.logos-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.logos-label{font-size:.82rem;color:var(--muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.logos-strip{display:flex;gap:44px;align-items:center;flex-wrap:wrap;flex:1;justify-content:flex-end}
.logo-item{
  font-family:'Manrope';font-weight:800;font-size:1.05rem;color:#8494A9;
  letter-spacing:.02em;opacity:.85;transition:opacity .2s,color .2s;
  display:flex;align-items:center;gap:8px;
}
.logo-item:hover{opacity:1;color:var(--navy)}
.logo-item i{color:var(--green-2)}

/* ---------- SECTION HEADERS ---------- */
.section{padding:96px 0;position:relative}
.section-sm{padding:70px 0}
.section-soft{background:var(--bg-soft)}
.section-navy{background:var(--navy);color:#fff}
.section-navy h1,.section-navy h2,.section-navy h3{color:#fff}
.section-navy p{color:#B8C6DA}
.section-head{max-width:760px;margin:0 auto 60px;text-align:center}
.section-head h2{font-size:clamp(1.9rem,3.2vw,2.6rem);margin-bottom:14px}
.section-head p{font-size:1.08rem}
.section-head.left{text-align:left;margin-left:0;margin-right:0}

/* ---------- SERVICE CARDS ---------- */
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.services-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.services-grid.cols-2{grid-template-columns:repeat(2,1fr);gap:32px}
.svc-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:32px 26px;transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;
}
/* Top accent bar */
.svc-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--blue),var(--green-2));
  transform:scaleX(0);transform-origin:left;transition:transform .3s;
  z-index:2;
}
/* Cursor-tracking shine */
.svc-card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 260px at var(--mx,50%) var(--my,50%),
    rgba(119,192,67,.18),
    rgba(16,133,197,.10) 40%,
    transparent 70%
  );
  opacity:0;transition:opacity .3s ease;z-index:1;
}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.svc-card:hover::before{transform:scaleX(1)}
.svc-card:hover::after{opacity:1}
.svc-card > *{position:relative;z-index:2}
.svc-icon{
  width:64px;height:64px;border-radius:16px;
  background:linear-gradient(135deg,var(--blue-soft),var(--green-soft));
  color:var(--blue-2);
  display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:20px;
}
.svc-card h3{font-size:1.2rem;margin-bottom:10px}
.svc-card p{font-size:.94rem;flex:1}
.svc-card .lnk{
  color:var(--green-3);font-weight:700;font-size:.9rem;margin-top:14px;
  display:inline-flex;align-items:center;gap:6px;
}
.svc-card .lnk i{transition:transform .2s}
.svc-card:hover .lnk i{transform:translateX(4px)}
.svc-card ul{list-style:none;padding:0;margin:14px 0 0;font-size:.9rem}
.svc-card ul li{padding:6px 0;display:flex;gap:8px;color:var(--ink)}
.svc-card ul li i{color:var(--green-2);margin-top:6px;font-size:.7rem}

/* ---------- VALUE PILLARS ---------- */
.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.value{text-align:center;padding:8px}
.value .v-ico{
  width:96px;height:96px;margin:0 auto 20px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--green-2));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;
  box-shadow:0 12px 30px rgba(16,133,197,.28);
}
.value h3{font-size:1.15rem;margin-bottom:10px}
.value p{font-size:.94rem}

/* ---------- SPLIT ---------- */
.split{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:center}
.split.reverse{grid-template-columns:1.05fr 1fr}
.split-visual img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);aspect-ratio:4/3;object-fit:cover}
.check-list{list-style:none;padding:0;margin:24px 0 0}
.check-list li{
  display:flex;gap:14px;padding:12px 0;font-weight:500;color:var(--ink);
  border-bottom:1px solid var(--line);
}
.check-list li:last-child{border-bottom:0}
.check-list i{
  width:26px;height:26px;border-radius:50%;background:var(--green-soft);
  color:var(--green-3);display:flex;align-items:center;justify-content:center;
  font-size:.75rem;flex-shrink:0;margin-top:2px;
}

/* ---------- STATS BAND ---------- */
.stats-band{
  padding:70px 0;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(120deg,var(--navy) 0%,var(--blue-2) 60%,var(--green-3) 130%);
}
.stats-band::after{
  content:"";position:absolute;inset:0;background:
    radial-gradient(circle at 15% 40%, rgba(255,255,255,.06), transparent 40%),
    radial-gradient(circle at 85% 60%, rgba(119,192,67,.15), transparent 45%);
}
.stats-grid{
  position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;
}
.stat-item{
  position:relative;overflow:hidden;isolation:isolate;
  padding:20px 12px;border-radius:16px;
  transition:transform .3s ease, background .3s ease;
  cursor:default;
}
.stat-item::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 220px at var(--mx,50%) var(--my,50%),
    rgba(255,255,255,.22),
    rgba(183,231,160,.15) 40%,
    transparent 70%
  );
  opacity:0;transition:opacity .3s ease;z-index:1;
}
.stat-item:hover{transform:translateY(-4px);background:rgba(255,255,255,.04)}
.stat-item:hover::before{opacity:1}
.stat-item > *{position:relative;z-index:2}
.stat-item .num{
  font-family:'Manrope';font-weight:800;font-size:clamp(2.2rem,4.2vw,3.4rem);
  background:linear-gradient(90deg,#fff, #B7E7A0);-webkit-background-clip:text;background-clip:text;color:transparent;
  line-height:1;letter-spacing:-.02em;
  transition:transform .3s ease;
}
.stat-item:hover .num{transform:scale(1.05)}
.stat-item .lbl{margin-top:10px;font-size:.95rem;color:#CFDDEE;font-weight:500}

/* ---------- TESTIMONIALS ---------- */
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.tst{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:32px;position:relative;overflow:hidden;isolation:isolate;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  display:flex;flex-direction:column;
}
.tst::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 280px at var(--mx,50%) var(--my,50%),
    rgba(16,133,197,.14),
    rgba(119,192,67,.10) 45%,
    transparent 70%
  );
  opacity:0;transition:opacity .3s ease;z-index:1;
}
.tst:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent}
.tst:hover::before{opacity:1}
.tst > *{position:relative;z-index:2}
.tst .quote-mark{font-size:2.4rem;color:var(--green-2);line-height:1;font-family:Georgia,serif}
.tst blockquote{font-size:1.02rem;color:var(--ink);font-weight:500;margin:12px 0 20px;line-height:1.6;flex:1}
.tst .person{display:flex;align-items:center;gap:14px;padding-top:20px;border-top:1px solid var(--line)}
.tst .avatar{
  width:52px;height:52px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--green-2));
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-family:'Manrope';font-size:1.1rem;
}
.tst .name{font-weight:700;color:var(--navy);line-height:1.2}
.tst .role{font-size:.85rem;color:var(--muted)}
.tst .stars{color:#F5A623;margin-bottom:6px;font-size:.9rem}

/* ---------- INDUSTRIES ---------- */
.industries{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.ind{
  position:relative;overflow:hidden;isolation:isolate;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 14px;text-align:center;cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ind::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 180px at var(--mx,50%) var(--my,50%),
    rgba(119,192,67,.22),
    rgba(16,133,197,.10) 45%,
    transparent 70%
  );
  opacity:0;transition:opacity .25s ease;z-index:1;
}
.ind:hover{border-color:var(--green-2);transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.ind:hover::before{opacity:1}
.ind > *{position:relative;z-index:2}
.ind i{font-size:1.6rem;color:var(--blue-2);margin-bottom:10px;transition:color .25s}
.ind:hover i{color:var(--green-2)}
.ind .n{font-size:.88rem;font-weight:600;color:var(--navy)}

/* ---------- RESOURCES ---------- */
.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.res{
  position:relative;isolation:isolate;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.res::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 300px at var(--mx,50%) var(--my,50%),
    rgba(16,133,197,.14),
    rgba(119,192,67,.08) 45%,
    transparent 70%
  );
  opacity:0;transition:opacity .3s ease;z-index:1;
}
.res:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent}
.res:hover::after{opacity:1}
.res > *{position:relative;z-index:2}
.res-img{
  aspect-ratio:16/9;position:relative;
  background:linear-gradient(135deg,var(--blue) 0%,var(--green-2) 100%);
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.2rem;overflow:hidden;
}
.res-img::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.2), transparent 50%)}
.res-body{padding:26px}
.res .tag{
  display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--green-3);
  background:var(--green-soft);padding:5px 10px;border-radius:6px;margin-bottom:12px;
}
.res h3{font-size:1.1rem;margin-bottom:8px}
.res p{font-size:.9rem;margin-bottom:14px}
.res .lnk{color:var(--blue-2);font-weight:700;font-size:.9rem}

/* ---------- CTA BAND ---------- */
.cta-band{
  padding:90px 0;color:#fff;text-align:center;position:relative;overflow:hidden;
  background:
    linear-gradient(120deg, rgba(15,29,51,.92), rgba(10,76,149,.86)),
    url('assets/cta-bg.jpg') center/cover;
}
.cta-band h2{font-size:clamp(1.9rem,3.4vw,2.8rem);color:#fff;margin-bottom:16px}
.cta-band p{color:#D5E2F0;font-size:1.1rem;max-width:640px;margin:0 auto 32px}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- CERTS ---------- */
.certs{padding:60px 0;background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.certs-inner{display:flex;align-items:center;justify-content:center;gap:60px;flex-wrap:wrap;text-align:center}
.cert{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  cursor:default;transition:transform .3s ease;
}
.cert:hover{transform:translateY(-4px)}
.cert-badge{
  position:relative;overflow:hidden;isolation:isolate;
  width:82px;height:82px;border-radius:50%;
  background:#fff;border:2px solid var(--green-2);
  display:flex;align-items:center;justify-content:center;
  color:var(--green-3);font-size:1.7rem;box-shadow:var(--shadow-sm);
  transition:box-shadow .3s ease, border-color .3s ease, color .3s ease;
}
.cert-badge::before{
  content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(
    circle 90px at var(--mx,50%) var(--my,50%),
    rgba(119,192,67,.35),
    rgba(16,133,197,.18) 45%,
    transparent 75%
  );
  opacity:0;transition:opacity .3s ease;z-index:1;
}
.cert:hover .cert-badge{
  box-shadow:0 12px 28px rgba(62,155,47,.28), 0 0 0 4px rgba(119,192,67,.12);
  border-color:var(--green-3);
  color:var(--blue-2);
}
.cert:hover .cert-badge::before{opacity:1}
.cert-badge > i{position:relative;z-index:2;transition:transform .35s ease}
.cert:hover .cert-badge > i{transform:scale(1.1) rotate(-6deg)}
.cert .cn{font-size:.82rem;font-weight:700;color:var(--navy);letter-spacing:.06em;text-transform:uppercase;transition:color .25s ease}
.cert:hover .cn{color:var(--green-3)}

/* ---------- SERVICES PAGE: detail rows ---------- */
.svc-detail{padding:70px 0;border-bottom:1px solid var(--line)}
.svc-detail:last-of-type{border-bottom:0}
.svc-detail .split{align-items:center}
.svc-detail .svc-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:14px;
  background:linear-gradient(135deg,var(--blue),var(--green-2));
  color:#fff;font-family:'Manrope';font-weight:800;font-size:1.2rem;margin-bottom:16px;
}
.svc-visual{
  aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;
  background:linear-gradient(135deg,var(--blue-soft),var(--green-soft));
  display:flex;align-items:center;justify-content:center;position:relative;
  box-shadow:var(--shadow-md);
}
.svc-visual i{
  font-size:5rem;color:var(--blue-2);opacity:.7;
  background:linear-gradient(135deg,var(--blue),var(--green-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.svc-visual::after{
  content:"";position:absolute;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.6),transparent 70%);
  top:-40px;right:-40px;
}
.svc-features{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin-top:20px;list-style:none;padding:0}
.svc-features li{display:flex;gap:10px;padding:8px 0;font-size:.94rem;color:var(--ink)}
.svc-features li i{color:var(--green-2);margin-top:6px;font-size:.75rem;flex-shrink:0}

/* ---------- ABOUT: timeline ---------- */
.timeline{position:relative;max-width:820px;margin:0 auto;padding:20px 0}
.timeline::before{
  content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,var(--blue),var(--green-2));
  transform:translateX(-50%);
}
.tl-item{position:relative;display:grid;grid-template-columns:1fr 60px 1fr;gap:20px;padding:24px 0;align-items:center}
.tl-year{
  grid-column:2;justify-self:center;
  width:60px;height:60px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--green-2));
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:'Manrope';font-weight:800;font-size:.88rem;
  box-shadow:0 6px 16px rgba(16,133,197,.28);z-index:2;
}
.tl-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;box-shadow:var(--shadow-sm);
}
.tl-card h4{font-size:1.05rem;margin-bottom:6px;color:var(--navy)}
.tl-card p{font-size:.92rem;margin:0}
.tl-item.left .tl-card{grid-column:1;text-align:right}
.tl-item.right .tl-card{grid-column:3}

/* ---------- ABOUT: leadership ---------- */
.leaders{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.leader{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:28px 22px;text-align:center;overflow:hidden;isolation:isolate;
  position:relative;transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.leader::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 260px at var(--mx,50%) var(--my,50%),
    rgba(119,192,67,.16),
    rgba(16,133,197,.10) 45%,
    transparent 70%
  );
  opacity:0;transition:opacity .3s ease;z-index:1;
}
.leader:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent}
.leader:hover::before{opacity:1}
.leader > *{position:relative;z-index:2}
.leader .l-avatar{
  position:relative;overflow:hidden;isolation:isolate;
  width:110px;height:110px;border-radius:50%;margin:0 auto 18px;
  background:linear-gradient(135deg,var(--blue),var(--green-2));
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:'Manrope';font-weight:800;font-size:2rem;
  box-shadow:0 10px 24px rgba(16,133,197,.25);
  transition:transform .35s ease, box-shadow .35s ease;
}
.leader:hover .l-avatar{
  transform:scale(1.06);
  box-shadow:0 14px 32px rgba(16,133,197,.4);
}
.leader .l-avatar::before{
  content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(
    circle 90px at var(--mx,50%) var(--my,50%),
    rgba(255,255,255,.6),
    rgba(255,255,255,.15) 45%,
    transparent 75%
  );
  opacity:0;transition:opacity .3s ease;z-index:1;mix-blend-mode:overlay;
}
.leader .l-avatar:hover::before{opacity:1}
.leader .l-avatar > *{position:relative;z-index:2}
.leader h4{font-size:1.1rem;margin-bottom:4px}
.leader .l-role{font-size:.88rem;color:var(--green-3);font-weight:600;margin-bottom:10px}
.leader .l-bio{font-size:.88rem;color:var(--muted);margin-bottom:14px}
.leader .l-social{display:flex;justify-content:center;gap:10px}
.leader .l-social a{
  width:32px;height:32px;border-radius:50%;background:var(--bg-soft);
  color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:.8rem;
  transition:all .2s;
}
.leader .l-social a:hover{background:var(--green-2);color:#fff}

/* ---------- CONTACT: layout ---------- */
.contact-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:flex-start}
.contact-form{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:36px;box-shadow:var(--shadow-sm);
}
.contact-form h3{font-size:1.35rem;margin-bottom:6px}
.contact-form .sub{color:var(--muted);margin-bottom:24px;font-size:.95rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{margin-bottom:16px}
.form-group.full{grid-column:1/-1}
.form-group label{
  display:block;font-size:.82rem;font-weight:600;color:var(--navy);
  margin-bottom:6px;letter-spacing:.02em;
}
.form-group label .req{color:var(--green-2);margin-left:2px}
.form-group input,.form-group select,.form-group textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);
  border-radius:10px;font-family:inherit;font-size:.95rem;color:var(--ink);
  background:#fff;transition:border-color .2s, box-shadow .2s;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:0;border-color:var(--green-2);box-shadow:0 0 0 4px rgba(62,155,47,.12);
}
.form-group textarea{min-height:130px;resize:vertical}
.form-check{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--muted);margin-bottom:20px}
.form-check input{width:18px;height:18px;margin-top:2px;accent-color:var(--green-2)}
.contact-form button{width:100%;justify-content:center;padding:15px}

/* Invalid field state */
.form-group input.is-invalid,
.form-group select.is-invalid,
.form-group textarea.is-invalid{
  border-color:#D64545;
  box-shadow:0 0 0 4px rgba(214,69,69,.10);
}

/* Inline status message */
.form-status{
  display:none;padding:14px 16px;border-radius:12px;
  font-size:.92rem;margin-bottom:16px;line-height:1.5;
  border:1px solid transparent;
}
.form-status:not(:empty){display:block}
.form-status i{margin-right:8px}
.form-status a{font-weight:600;text-decoration:underline}
.form-status--loading{
  background:rgba(16,133,197,.08);border-color:rgba(16,133,197,.22);color:var(--blue-2);
}
.form-status--success{
  background:rgba(62,155,47,.10);border-color:rgba(62,155,47,.32);color:var(--green-3);
}
.form-status--success a{color:var(--green-3)}
.form-status--error{
  background:rgba(214,69,69,.08);border-color:rgba(214,69,69,.28);color:#B03535;
}
.form-status--error a{color:#B03535}

/* Submit button loading state */
.contact-form #formSubmit{position:relative}
.contact-form #formSubmit .btn-spinner{display:none}
.contact-form #formSubmit.is-loading .btn-label,
.contact-form #formSubmit.is-loading .btn-icon{opacity:.5}
.contact-form #formSubmit.is-loading .btn-spinner{display:inline-block}
.contact-form #formSubmit:disabled{cursor:not-allowed;opacity:.85}

/* Contact info sidebar */
.contact-info h3{font-size:1.4rem;margin-bottom:8px}
.contact-info > p{margin-bottom:26px}
.contact-methods{display:flex;flex-direction:column;gap:16px;margin-bottom:26px}
.cm-item{
  display:flex;gap:16px;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;transition:all .2s;
}
.cm-item:hover{border-color:var(--green-2);box-shadow:var(--shadow-sm)}
.cm-item .cm-ico{
  width:44px;height:44px;border-radius:12px;
  background:linear-gradient(135deg,var(--blue-soft),var(--green-soft));
  color:var(--blue-2);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;
}
.cm-item h5{font-family:'Inter';font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
.cm-item .cm-val{color:var(--navy);font-weight:600;font-size:1rem;margin:0}
.cm-item .cm-sub{color:var(--muted);font-size:.85rem;margin:2px 0 0}

.offices{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.office{
  position:relative;overflow:hidden;isolation:isolate;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:26px;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.office::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 260px at var(--mx,50%) var(--my,50%),
    rgba(16,133,197,.16),
    rgba(119,192,67,.10) 45%,
    transparent 70%
  );
  opacity:0;transition:opacity .3s ease;z-index:1;
}
.office:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent}
.office:hover::before{opacity:1}
.office > *{position:relative;z-index:2}
.office .badge{
  display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--green-3);background:var(--green-soft);
  padding:5px 10px;border-radius:6px;margin-bottom:14px;
}
.office h4{font-size:1.15rem;margin-bottom:10px}
.office p{font-size:.9rem;margin:0 0 8px}
.office .o-line{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--muted);margin-bottom:6px}
.office .o-line i{color:var(--blue-2);margin-top:5px;flex-shrink:0;font-size:.85rem}

/* FAQ */
.faq-list{max-width:820px;margin:0 auto}
.faq-item{
  position:relative;overflow:hidden;isolation:isolate;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:14px;
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.faq-item::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(
    circle 320px at var(--mx,50%) var(--my,0%),
    rgba(16,133,197,.12),
    rgba(119,192,67,.08) 45%,
    transparent 70%
  );
  opacity:0;transition:opacity .25s ease;z-index:1;
}
.faq-item:hover{border-color:rgba(62,155,47,.35);box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.faq-item:hover::before{opacity:1}
.faq-item.open{border-color:var(--green-2);box-shadow:var(--shadow-sm)}
.faq-item.open::before{opacity:.65}
.faq-item > *{position:relative;z-index:2}
.faq-q{
  width:100%;background:none;border:0;padding:20px 24px;text-align:left;
  font-family:inherit;font-size:1rem;font-weight:600;color:var(--navy);
  cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;
  transition:color .2s ease;
}
.faq-item:hover .faq-q{color:var(--green-3)}
.faq-q i{color:var(--green-2);transition:transform .25s;font-size:.9rem}
.faq-item.open .faq-q i{transform:rotate(180deg)}
.faq-a{
  max-height:0;overflow:hidden;transition:max-height .3s ease;
  padding:0 24px;color:var(--muted);font-size:.95rem;
}
.faq-item.open .faq-a{max-height:400px;padding:0 24px 20px}

/* ---------- FOOTER ---------- */
footer{background:var(--navy);color:#B8C6DA;padding:70px 0 20px}
footer h4{color:#fff;font-family:'Inter';font-size:.98rem;font-weight:700;margin-bottom:18px;letter-spacing:.02em}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:36px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-brand p{color:#94A5BC;font-size:.92rem;margin:16px 0 20px}
.footer-brand .social{display:flex;gap:10px}
.footer-brand .social a{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;color:#fff;transition:all .2s;
}
.footer-brand .social a:hover{background:var(--green-2);transform:translateY(-2px)}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{margin-bottom:10px}
.footer-col a{color:#B8C6DA;font-size:.9rem}
.footer-col a:hover{color:#fff}
.footer-col .contact-item{display:flex;gap:10px;margin-bottom:14px;font-size:.9rem;color:#B8C6DA;align-items:flex-start}
.footer-col .contact-item i{color:var(--green);margin-top:4px;flex-shrink:0}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:22px;font-size:.82rem;color:#7C8CA5;flex-wrap:wrap;gap:14px}
.footer-bottom a{color:#7C8CA5;margin-left:14px}
.footer-bottom a:hover{color:#fff}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1024px){
  .services-grid,.services-grid.cols-3{grid-template-columns:repeat(2,1fr)}
  .value-grid{grid-template-columns:repeat(2,1fr);gap:36px}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:32px}
  .tst-grid{grid-template-columns:1fr;gap:20px}
  .res-grid{grid-template-columns:1fr 1fr}
  .industries{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr 1fr;gap:28px}
  .footer-brand{grid-column:1/-1}
  .hero-grid,.split{grid-template-columns:1fr;gap:44px}
  .split.reverse{grid-template-columns:1fr}
  .hero-badge.b1{left:12px}
  .hero-badge.b2{right:12px}
  .leaders{grid-template-columns:repeat(2,1fr)}
  .contact-layout{grid-template-columns:1fr;gap:36px}
  .offices{grid-template-columns:1fr 1fr}
  .timeline::before{left:26px}
  .tl-item{grid-template-columns:60px 1fr;gap:16px}
  .tl-year{grid-column:1}
  .tl-item.left .tl-card,.tl-item.right .tl-card{grid-column:2;text-align:left}
}
/* ============================================================
   MOBILE (≤ 720px)
   ============================================================ */
@media (max-width:720px){
  /* ---------- Global spacing / typography ---------- */
  .container{padding:0 18px}
  .section{padding:56px 0}
  .section-head{margin-bottom:40px}
  .hero{padding:44px 0 60px}
  .hero-lead{font-size:1rem}
  .hero-actions .btn{width:100%;justify-content:center}
  .hero-trust{gap:24px}
  .hero-trust .stat .num{font-size:1.5rem}
  .hero-badge{padding:12px 14px;gap:10px}
  .hero-badge .ico{width:36px;height:36px;font-size:1rem}
  .hero-badge .num{font-size:1rem}
  .hero-badge .lbl{font-size:.7rem}
  .hero-badge.b1{top:12px;left:12px}
  .hero-badge.b2{bottom:16px;right:12px}
  .page-header{padding:48px 0 32px}
  .btn{padding:13px 22px;font-size:.9rem}
  h1{font-size:1.9rem}
  h2{font-size:1.55rem}
  h3{font-size:1.1rem}

  /* ---------- Topbar (small screens: contact info only) ---------- */
  .topbar{font-size:.75rem}
  .topbar .container{padding:8px 18px}
  .topbar-left{gap:10px}
  .topbar-left .hide-sm{display:none}
  .topbar-right{gap:12px}

  /* ---------- Header ---------- */
  .nav-inner{padding:10px 0;gap:12px}
  header.nav .logo-img{height:44px}

  /* ---------- Hamburger button ---------- */
  .mobile-toggle{
    display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:10px;
    background:rgba(15,29,51,.05);color:var(--navy);
    position:relative;z-index:210;transition:background .2s ease;
  }
  .mobile-toggle:hover{background:rgba(15,29,51,.10)}
  .mobile-toggle .icon-close{display:none}
  body.menu-open .mobile-toggle .icon-open{display:none}
  body.menu-open .mobile-toggle .icon-close{display:inline-block}
  body.menu-open .mobile-toggle{background:rgba(15,29,51,.10)}

  /* Hide primary Get-a-Quote in the header; it's inside the drawer */
  .nav-cta .btn-outline,.nav-cta .btn-primary{display:none}

  /* Lock body scroll when drawer is open */
  body.menu-open{overflow:hidden}

  /* ---------- Full-screen drawer overlay ---------- */
  .nav-menu-backdrop{
    position:fixed;inset:0;background:rgba(15,29,51,.55);
    -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
    opacity:0;visibility:hidden;transition:opacity .3s ease, visibility 0s linear .3s;
    z-index:180;
  }
  body.menu-open .nav-menu-backdrop{
    opacity:1;visibility:visible;transition:opacity .3s ease;
  }

  /* ---------- Slide-in drawer ---------- */
  .nav-menu{
    position:fixed;top:0;right:0;bottom:0;
    width:min(88vw, 360px);
    background:linear-gradient(180deg,#fff 0%, #F6FAFD 100%);
    flex-direction:column;align-items:stretch;
    padding:88px 20px 32px;gap:2px;
    box-shadow:-20px 0 50px rgba(15,29,51,.25);
    z-index:200;overflow-y:auto;overscroll-behavior:contain;
    transform:translateX(100%);
    transition:transform .32s cubic-bezier(.4,0,.2,1);
    display:flex;
    /* Frosted-glass edge */
    border-left:1px solid rgba(255,255,255,.4);
  }
  body.menu-open .nav-menu{transform:translateX(0)}

  /* ---------- Menu items ---------- */
  .nav-menu > li{border-bottom:1px solid rgba(15,29,51,.06)}
  .nav-menu > li:last-child{border-bottom:0}
  .nav-menu > li > a{
    padding:16px 12px;justify-content:space-between;
    font-size:1.02rem;font-weight:600;border-radius:0;
    min-height:52px;
  }
  .nav-menu > li > a:hover,
  .nav-menu > li > a.active{
    background:linear-gradient(90deg,rgba(119,192,67,.10),transparent);
    box-shadow:none;
  }
  .nav-menu .caret{transition:transform .25s}
  .nav-menu > li.open > a .caret{transform:rotate(180deg);color:var(--green-3)}
  .nav-menu > li.has-dd::after{display:none}

  /* Sub-menu accordion */
  .dropdown{
    position:static;box-shadow:none;border:0;background:transparent;
    -webkit-backdrop-filter:none;backdrop-filter:none;
    opacity:1;visibility:visible;transform:none;pointer-events:auto;
    max-height:0;overflow:hidden;padding:0 0 0 10px;min-width:0;
    transition:max-height .35s ease;
  }
  .nav-menu > li.open > .dropdown{max-height:600px;padding:2px 0 12px 10px}
  .dropdown a{
    padding:11px 12px;font-size:.9rem;min-height:44px;
    border-radius:8px;
  }
  .dropdown a:hover{transform:none}
  .dropdown a i.dd-ico{color:var(--green-2)}

  /* Drawer CTA at the bottom */
  .nav-menu::after{
    content:"";display:block;margin-top:20px;padding-top:20px;
    border-top:1px solid rgba(15,29,51,.08);
  }
  .nav-drawer-cta{
    display:flex;flex-direction:column;gap:10px;
    padding-top:20px;margin-top:auto;
    border-top:1px solid rgba(15,29,51,.08);
  }
  .nav-drawer-cta .btn{width:100%;justify-content:center;font-size:.95rem}
  .nav-drawer-contact{
    display:flex;flex-direction:column;gap:8px;margin-top:16px;
    font-size:.85rem;color:var(--muted);
  }
  .nav-drawer-contact a{color:var(--muted);display:flex;align-items:center;gap:8px}
  .nav-drawer-contact a:hover{color:var(--green-3)}
  .nav-drawer-contact i{color:var(--green-2);width:14px}

  /* ---------- Content grid resets ---------- */
  .services-grid,.services-grid.cols-3,.services-grid.cols-2,
  .res-grid,.leaders,.offices,.tst-grid,.value-grid{grid-template-columns:1fr}
  .value-grid{gap:28px}
  .stats-grid{grid-template-columns:1fr 1fr;gap:20px}
  .stat-item{padding:14px 8px}
  .stat-item .num{font-size:2.2rem}
  .industries{grid-template-columns:repeat(2,1fr);gap:10px}
  .ind{padding:18px 10px}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .footer-brand{grid-column:1}
  .footer-bottom{flex-direction:column;text-align:center}
  .form-row{grid-template-columns:1fr}
  .svc-features,.ind-solutions{grid-template-columns:1fr}
  .split,.hero-grid{gap:36px}

  /* Split-visual on smaller pages */
  .split-visual img,.svc-visual,.ind-hero-visual{aspect-ratio:16/12}
  .ind-hero-visual > i{font-size:4rem}
  .ind-hero-visual .ind-stats-overlay{
    grid-template-columns:1fr 1fr;gap:8px;bottom:12px;left:12px;right:12px;
  }
  .ind-hero-visual .ind-stat{padding:8px 10px}
  .ind-hero-visual .ind-stat .n{font-size:1.05rem}
  .ind-hero-visual .ind-stat .l{font-size:.62rem}

  /* Certifications wrap tighter */
  .certs-inner{gap:26px 30px}
  .cert-badge{width:64px;height:64px;font-size:1.3rem}

  /* Contact form padding */
  .contact-form{padding:24px 20px}
  .contact-form h3{font-size:1.15rem}

  /* Timeline single-column */
  .timeline::before{left:22px}
  .tl-item{grid-template-columns:52px 1fr;gap:14px;padding:16px 0}
  .tl-year{width:44px;height:44px;font-size:.78rem;grid-column:1}
  .tl-item.left .tl-card,.tl-item.right .tl-card{grid-column:2;text-align:left}
  .tl-card{padding:16px}

  /* Industry jump menu — 2 columns already handled */
  .ind-jump{gap:10px;margin-top:24px}

  /* Testimonial padding */
  .tst{padding:24px 20px}
  .tst blockquote{font-size:.95rem}

  /* Section-head "left" adjustments */
  .section-head.left{
    flex-direction:column !important;align-items:flex-start !important;
  }
  .section-head.left .btn{align-self:stretch;justify-content:center}
}

/* ============================================================
   VERY SMALL (≤ 400px)
   ============================================================ */
@media (max-width:400px){
  .industries{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr;gap:14px}
  .hero-trust{gap:16px}
  .hero-trust .stat .num{font-size:1.3rem}
}
