:root{
  --header-h:70px;
  --navy-950:#0a1628;
  --navy-900:#0d1e34;
  --navy-800:#122a48;
  --blue-600:#1b6fb8;
  --blue-500:#2b84cf;
  --blue-400:#5aa3de;
  --ink:#101820;
  --paper:#f7f5f0;
  --paper-dim:#ece8df;
  --slate:#5b6472;
  --slate-light:#8891a0;
  --line:#dcd7cb;
  --line-dark:rgba(255,255,255,0.12);
  --amber:#c8873a;
  --amber-dark:#a86a24;
  --teal:#0f7d72;
  --teal-light:#e4f3f1;
  --maroon:#7a2438;
  --maroon-light:#f7e9ec;

  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Inter', -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px);}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
.img-cover{width:100%; height:100%; object-fit:cover; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; cursor:pointer;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

:focus-visible{
  outline:2px solid var(--blue-500);
  outline-offset:3px;
}

.wrap{
  max-width:1200px;
  margin:0 auto;
  padding:0 32px;
}

.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--blue-500);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:var(--blue-500);
}

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--ink);
}

/* ============ HEADER (floating glass bar) ============ */
/* The header floats above the page: no solid bar, no line. The page links
   sit in a frosted glass pill centred in the window, with the logo at the
   left and the call to action at the right. */
header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  /* Solid, so the logo's own white background blends into the strip
     exactly. Over a see-through strip it leaves a faint box. */
  background:var(--paper);
  border-bottom:1px solid rgba(20,32,50,0.07);
  padding:12px 0;
  transition:padding 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}
header.scrolled{
  padding:9px 0;
  box-shadow:0 8px 26px -16px rgba(20,32,50,0.45);
}

.nav{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:16px;
  padding:0 28px;
  max-width:1320px;
  margin:0 auto;
}
.nav-left{display:flex; align-items:center; gap:12px; justify-self:start;}
.brand{display:flex; align-items:center;}
.brand img{
  height:42px; width:auto; display:block;
  /* The logo file has a white background; multiply drops it into the strip. */
  mix-blend-mode:multiply;
}

/* Round menu button, shown on phones and tablets */
.menu-toggle{
  display:none;
  width:42px; height:42px;
  flex-shrink:0;
  border:1px solid rgba(20,32,50,0.12);
  background:#fff;
  border-radius:50%;
  padding:0;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  transition:background 0.25s ease, border-color 0.25s ease;
}
.menu-toggle span{
  display:block;
  width:16px; height:1.5px;
  background:var(--ink);
  border-radius:2px;
  transition:transform 0.3s ease, opacity 0.2s ease, background 0.25s ease;
}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}

/* On desktop the wrapper steps aside so the pill can sit in the middle
   column of the bar and the button on the right. */
.nav-links{display:contents;}

.nav-menu{
  justify-self:center;
  display:flex;
  align-items:center;
  gap:28px;
  padding:11px 26px;
  border-radius:999px;
  background:rgba(20,32,50,0.05);
  border:1px solid rgba(20,32,50,0.07);
  transition:background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.nav-links a{
  font-size:14.5px;
  font-weight:500;
  color:var(--ink);
  transition:color 0.25s ease;
  position:relative;
}
.nav-links a:not(.nav-cta)::after{
  content:"";
  position:absolute;
  left:0; bottom:-4px;
  width:100%; height:1.5px;
  background:var(--blue-600);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform 0.3s ease;
}
.nav-links a:not(.nav-cta):hover::after{transform:scaleX(1); transform-origin:left;}

.nav-cta{
  justify-self:end;
  background:var(--navy-950);
  color:#fff !important;
  padding:12px 24px;
  border-radius:999px;
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
  border:1px solid rgba(255,255,255,0.14);
  transition:background 0.25s ease, transform 0.15s ease;
}
.nav-cta:hover{background:var(--blue-600);}
.nav-cta:active{transform:scale(0.97);}

.nav-links a:not(.nav-cta):hover{color:var(--blue-600);}

@media (max-width:900px){
  /* Full-screen panel under the header */
  .nav-links{
    position:fixed;
    top:var(--header-h);
    left:0; right:0; bottom:0;
    background:var(--paper);
    flex-direction:column;
    gap:0;
    display:none;
  }
  .nav-links.open{display:flex;}

  .nav-menu{
    flex-direction:column;
    background:none;
    border:none;
    border-radius:0;
    padding:0;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }

  /* footer info block inside the menu, like the reference screenshot */
  .nav-mobile-footer{
    margin-top:auto;
    padding-top:16px;
    border-top:1px solid var(--line);
    font-family:var(--mono);
    font-size:12.5px;
    color:var(--slate);
  }
  .nav-mobile-footer div{margin-bottom:4px;}

  .menu-toggle{display:flex;}
  .brand img{height:36px;}
}

/* ============ HERO (Navy/Blue) ============ */
.hero{
  background:
    radial-gradient(ellipse 900px 500px at 85% -10%, rgba(43,132,207,0.25), transparent 60%),
    linear-gradient(180deg, var(--navy-950) 0%, var(--navy-900) 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
  padding:calc(var(--header-h) + 34px) 0 110px;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(180deg, transparent, #000 20%, #000 70%, transparent);
  pointer-events:none;
}
.hero-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:60px;
  align-items:center;
}
.hero-inner > *{
  opacity:0;
  transform:translateY(24px);
  animation:heroIn 0.8s cubic-bezier(0.16,1,0.3,1) forwards;
}
.hero-inner > *:nth-child(1){animation-delay:0.05s;}
.hero-inner > *:nth-child(2){animation-delay:0.22s;}
@keyframes heroIn{to{opacity:1; transform:translateY(0);}}

.hero h1{
  font-size:clamp(34px, 4.4vw, 56px);
  line-height:1.08;
  color:#fff;
  max-width:640px;
}
.hero h1 em{font-style:italic; color:var(--blue-400);}
.hero p.lead{
  margin-top:22px;
  font-size:17.5px;
  color:#b7c2d1;
  max-width:520px;
  line-height:1.7;
}
.hero-actions{
  display:flex;
  gap:14px;
  margin-top:36px;
  flex-wrap:wrap;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 26px;
  font-size:14.5px;
  font-weight:600;
  border-radius:2px;
  border:1px solid transparent;
  transition:all 0.2s ease, transform 0.15s ease;
}
.btn:active{transform:scale(0.97);}
.btn-primary{background:var(--blue-600); color:#fff;}
.btn-primary:hover{background:var(--blue-500); transform:translateY(-1px);}
.btn-ghost{border-color:rgba(255,255,255,0.25); color:#fff;}
.btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,0.06);}
.btn-dark{background:var(--navy-950); color:#fff;}
.btn-dark:hover{background:var(--navy-800);}
.btn-amber{background:var(--amber); color:#fff;}
.btn-amber:hover{background:var(--amber-dark);}

.hero-panel{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:6px;
  padding:22px;
  backdrop-filter:blur(6px);
}
.hero-panel img{
  width:100%;
  border-radius:4px;
  aspect-ratio:4/3;
  object-fit:cover;
  margin-bottom:22px;
}
.hero-panel-label{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--blue-400);
  margin-bottom:16px;
  padding:0 4px;
}
.stat-row{
  display:flex;
  justify-content:space-between;
  padding:14px 4px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.stat-row:last-child{border-bottom:none;}
.stat-num{font-family:var(--serif); font-size:24px; color:#fff;}
.stat-label{font-size:12px; color:#8fa0b5; text-align:right; max-width:170px;}

@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;}
  .hero{padding:calc(var(--header-h) + 20px) 0 70px;}
}

/* ============ SECTION SHARED ============ */
section{padding:96px 0;}
.section-head{max-width:660px; margin-bottom:56px;}
.section-head h2{font-size:clamp(28px,3vw,38px); line-height:1.15;}
.section-head p{margin-top:16px; color:var(--slate); font-size:16px; max-width:580px;}

/* Section color themes */
.theme-paper{background:var(--paper); color:var(--ink);}
.theme-dim{background:var(--paper-dim); color:var(--ink);}
.theme-navy{background:var(--navy-950); color:#fff;}
.theme-navy .section-head p{color:#a9b4c4;}
.theme-navy h2{color:#fff;}
.theme-teal{background:var(--teal-light); color:var(--ink);}
.theme-teal .eyebrow, .theme-teal .eyebrow::before{color:var(--teal);}
.theme-maroon{background:var(--maroon-light); color:var(--ink);}
.theme-maroon .eyebrow, .theme-maroon .eyebrow::before{color:var(--maroon);}
.theme-amber-band{
  background:linear-gradient(135deg, var(--amber) 0%, var(--amber-dark) 100%);
  color:#fff;
}
.theme-amber-band .eyebrow, .theme-amber-band .eyebrow::before{color:#fff2e0;}
.theme-amber-band h2{color:#fff;}
.theme-amber-band .section-head p{color:#fbe9d2;}

/* ============ MEDIA HELPERS ============ */
.media-frame{position:relative; overflow:hidden; border-radius:6px; background:var(--paper-dim);}
.media-frame img{transition:transform 0.6s cubic-bezier(0.16,1,0.3,1);}
.media-frame:hover img{transform:scale(1.06);}
.media-caption{
  position:absolute; inset:auto 0 0 0;
  background:linear-gradient(0deg, rgba(10,22,40,0.88), transparent);
  color:#fff; padding:18px 16px 14px; font-size:13px; font-weight:600;
}

/* ============ WHY CHOOSE ============ */
.why-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.why-card{
  background:var(--paper);
  padding:36px 32px;
  transition:transform 0.35s cubic-bezier(0.16,1,0.3,1), box-shadow 0.35s ease;
}
.why-card:hover{transform:translateY(-4px); box-shadow:0 12px 28px rgba(20,40,70,0.08); position:relative; z-index:2;}
.why-card .icon{width:40px; height:40px; color:var(--blue-500); margin-bottom:18px;}
.why-card .icon svg{width:100%; height:100%;}
.why-card h3{font-size:19px; margin-bottom:10px;}
.why-card p{color:var(--slate); font-size:14.5px;}
@media (max-width:900px){.why-grid{grid-template-columns:1fr;}}

/* ============ STORY STRIP (photo + stat cards) ============ */
.story-strip{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:16px;
}
.story-photo{
  border-radius:6px;
  overflow:hidden;
  min-height:100%;
}
.story-stats-col{
  display:grid;
  grid-template-rows:repeat(4, 1fr);
  gap:16px;
}
.story-stat{
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  padding:22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.story-stat .n{font-family:var(--serif); font-size:30px; line-height:1.15; color:var(--blue-600);}
.story-stat .l{font-size:13px; color:var(--slate); margin-top:6px;}
@media (max-width:700px){
  .story-strip{grid-template-columns:1fr;}
  .story-photo{aspect-ratio:16/9;}
  .story-stats-col{grid-template-columns:repeat(2, 1fr); grid-template-rows:none;}
}
@media (max-width:560px){
  .story-stats-col{grid-template-columns:1fr; gap:12px;}
}

/* ============ INDUSTRIES ============ */
.industries-banner{
  aspect-ratio:21/7;
  margin-bottom:40px;
  border:1px solid var(--line);
}
.industries-wrap{display:flex; flex-wrap:wrap; gap:12px;}
.industry-chip{
  border:1px solid var(--line);
  background:#fff;
  padding:14px 22px;
  font-size:14.5px;
  font-weight:500;
  border-radius:2px;
  color:var(--ink);
  transition:all 0.2s ease;
  display:flex;
  align-items:center;
  gap:12px;
}
.industry-chip svg{width:20px; height:20px; flex-shrink:0; color:var(--blue-500);}
.industry-chip:hover{
  border-color:var(--blue-500);
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(20,40,70,0.08);
}

.industry-photo-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
  margin-top:40px;
}
.industry-photo-card{
  position:relative;
  border-radius:6px;
  overflow:hidden;
  aspect-ratio:4/3;
  border:1px solid var(--line);
}
.industry-photo-card img{transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);}
.industry-photo-card:hover img{transform:scale(1.08);}
@media (max-width:900px){.industry-photo-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.industry-photo-grid{grid-template-columns:1fr;}}

/* ============ EXPERTISE / CORE (dark navy) ============ */
.expertise-split{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:48px;
  align-items:stretch;
}
.expertise-media{aspect-ratio:3/4; border:1px solid var(--line-dark);}
.expertise-media img{filter:brightness(0.95);}
.expertise-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:24px;}
.expertise-card{
  border:1px solid var(--line-dark);
  background:rgba(255,255,255,0.03);
  padding:34px;
  border-radius:4px;
  transition:border-color 0.2s ease, background 0.2s ease, transform 0.3s ease;
}
.expertise-card:hover{border-color:var(--blue-500); background:rgba(43,132,207,0.06); transform:translateY(-4px);}
.expertise-card .icon{width:42px; height:42px; color:var(--blue-400); margin-bottom:18px;}
.expertise-card .icon svg{width:100%; height:100%;}
.expertise-card h3{color:#fff; font-size:20px; margin-bottom:10px;}
.expertise-card p{color:#a9b4c4; font-size:14.5px;}
@media (max-width:900px){
  .expertise-split{grid-template-columns:1fr;}
  .expertise-media{aspect-ratio:16/9;}
}
@media (max-width:700px){.expertise-grid{grid-template-columns:1fr;}}

/* ============ METHODOLOGY (teal) ============ */
.method-steps{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:0;
  position:relative;
}
.method-step{
  padding:0 18px;
  position:relative;
}
.method-step:not(:last-child)::after{
  content:"";
  position:absolute;
  top:20px; right:-10px;
  width:20px; height:1px;
  background:var(--teal);
  opacity:0.4;
}
.method-num{
  width:40px; height:40px;
  border-radius:50%;
  background:var(--teal);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:14px; font-weight:600;
  margin-bottom:18px;
}
.method-step h4{font-size:16.5px; margin-bottom:8px;}
.method-step p{font-size:13.5px; color:var(--slate);}
@media (max-width:900px){
  .method-steps{grid-template-columns:1fr 1fr; gap:28px;}
  .method-step::after{display:none;}
}
@media (max-width:560px){.method-steps{grid-template-columns:1fr;}}

/* ============ ABOUT ============ */
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:48px; align-items:start; margin-bottom:64px;}
.about-media{aspect-ratio:4/3; border:1px solid var(--line);}
.about-copy p{margin-bottom:20px; color:var(--slate); font-size:15.5px;}
.about-copy p:last-child{margin-bottom:0;}
.vision-mission{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:64px;}
@media (max-width:900px){
  .about-grid{grid-template-columns:1fr; gap:28px;}
  .about-media{aspect-ratio:16/9; order:-1;}
}
@media (max-width:700px){.vision-mission{grid-template-columns:1fr;}}

/* ============ LEADERSHIP (maroon theme) ============ */
.leader-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.leader-card{
  background:#fff;
  border-radius:6px;
  overflow:hidden;
  border:1px solid var(--line);
}
.leader-photo{aspect-ratio:1; overflow:hidden;}
.leader-photo img{transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);}
.leader-card:hover .leader-photo img{transform:scale(1.07);}
.leader-info{padding:20px 22px 26px;}
.leader-info h4{font-size:17px; margin-bottom:4px;}
.leader-info .role{
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--maroon);
  margin-bottom:10px;
  display:block;
}
.leader-info p{font-size:13.5px; color:var(--slate);}
@media (max-width:900px){.leader-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.leader-grid{grid-template-columns:1fr;}}

/* ============ DIFFERENTIATORS ============ */
.diff-list{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line);}
.diff-item{
  display:flex; align-items:center; gap:16px;
  padding:22px 28px;
  border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);
  font-size:15.5px; font-weight:500;
}
.diff-item:nth-child(2n){border-right:none;}
.diff-item .check{color:var(--blue-500); font-size:18px; flex-shrink:0;}
@media (max-width:700px){
  .diff-list{grid-template-columns:1fr;}
  .diff-item{border-right:none !important;}
}

/* ============ SERVICES ============ */
.services-list{display:grid; grid-template-columns:repeat(4, 1fr); gap:0; border-top:1px solid var(--line);}
.service-col{padding:32px 28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);}
.service-col:last-child{border-right:none;}
.service-col h4{
  font-family:var(--mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--blue-600); margin-bottom:18px;
}
.service-col ul li{font-size:14.5px; color:var(--ink); padding:9px 0; border-bottom:1px dashed var(--line);}
.service-col ul li:last-child{border-bottom:none;}
@media (max-width:900px){.services-list{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.services-list{grid-template-columns:1fr;}}

/* ============ SOLUTIONS ============ */
.solutions-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
.solution-card{
  background:#fff;
  border:1px solid var(--line);
  padding:30px;
  border-radius:4px;
  position:relative;
  transition:transform 0.35s cubic-bezier(0.16,1,0.3,1);
}
.solution-card:hover{transform:translateY(-6px);}
.solution-card::before{
  content:"";
  position:absolute; top:0; left:0; width:100%; height:3px;
  background:var(--blue-500);
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.25s ease;
}
.solution-card:hover::before{transform:scaleX(1);}
.solution-card .icon{width:32px; height:32px; color:var(--blue-500); margin-bottom:16px;}
.solution-card .icon svg{width:100%; height:100%;}
.solution-card h3{font-size:18.5px; margin-bottom:10px;}
.solution-card p{color:var(--slate); font-size:14.5px;}
@media (max-width:900px){.solutions-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.solutions-grid{grid-template-columns:1fr;}}

/* ============ CASE STUDIES (amber band) ============ */
.case-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
.case-card{
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.25);
  border-radius:6px;
  overflow:hidden;
  backdrop-filter:blur(4px);
  transition:transform 0.3s ease;
}
.case-card:hover{transform:translateY(-5px);}
.case-photo{aspect-ratio:16/10; overflow:hidden;}
.case-photo img{transition:transform 0.5s ease;}
.case-card:hover .case-photo img{transform:scale(1.08);}
.case-body{padding:22px 24px 26px;}
.case-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  color:#fff2e0; margin-bottom:10px; display:block;
}
.case-body h3{color:#fff; font-size:18px; margin-bottom:8px;}
.case-body p{color:#fbe9d2; font-size:14px;}
@media (max-width:900px){.case-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.case-grid{grid-template-columns:1fr;}}

/* ============ TESTIMONIALS (dim) ============ */
.testi-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
.testi-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  padding:30px;
}
.testi-quote{font-size:15px; color:var(--ink); line-height:1.7; margin-bottom:22px;}
.testi-person{display:flex; align-items:center; gap:14px;}
.testi-photo{width:48px; height:48px; border-radius:50%; overflow:hidden; flex-shrink:0;}
.testi-name{font-size:14.5px; font-weight:600;}
.testi-role{font-size:12.5px; color:var(--slate);}
@media (max-width:900px){.testi-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.testi-grid{grid-template-columns:1fr;}}

/* ============ CAREERS ============ */
.careers-inner{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.careers-media{aspect-ratio:4/3; border:1px solid var(--line-dark); margin-top:28px;}
.role-chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
.role-chip{
  font-family:var(--mono); font-size:12.5px;
  border:1px solid var(--line-dark); color:#cdd6e2;
  padding:8px 14px; border-radius:2px;
}
.perks{margin-top:8px;}
.perks li{
  padding:10px 0; border-bottom:1px solid var(--line-dark);
  font-size:14.5px; color:#cdd6e2; display:flex; gap:10px;
}
.perks li::before{content:"—"; color:var(--blue-400);}
@media (max-width:800px){.careers-inner{grid-template-columns:1fr;}}

/* ============ FAQ ============ */
.faq-list{max-width:800px;}
.faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
.faq-q{
  display:flex; justify-content:space-between; align-items:center;
  cursor:pointer; font-size:16px; font-weight:600;
}
.faq-q .plus{font-size:20px; color:var(--blue-500); transition:transform 0.25s ease; flex-shrink:0; margin-left:16px;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{
  max-height:0; overflow:hidden;
  transition:max-height 0.35s ease, padding-top 0.35s ease;
  color:var(--slate); font-size:14.5px; line-height:1.7;
}
.faq-item.open .faq-a{max-height:200px; padding-top:14px;}

/* ============ CONTACT ============ */
.contact-inner{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px;}
.contact-info h3{font-size:20px; margin-bottom:14px;}
.contact-info p{color:var(--slate); font-size:15px; margin-bottom:6px;}
.contact-block{margin-bottom:32px;}
.contact-block .label{
  font-family:var(--mono); font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--blue-600); margin-bottom:10px; display:block;
}
.contact-map{aspect-ratio:16/9; border-radius:6px; overflow:hidden; border:1px solid var(--line); margin-top:24px;}
form{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
form .full{grid-column:1 / -1;}
label{font-size:13px; font-weight:600; margin-bottom:6px; display:block; color:var(--ink);}
input, textarea{
  width:100%; padding:13px 14px; border:1px solid var(--line); background:#fff;
  font-family:inherit; font-size:14.5px; border-radius:2px; transition:border-color 0.2s ease;
}
input:focus, textarea:focus{border-color:var(--blue-500); outline:none;}
textarea{resize:vertical; min-height:120px;}
.submit-btn{
  background:var(--navy-950); color:#fff; border:none;
  padding:15px 30px; font-size:14.5px; font-weight:600; border-radius:2px;
  transition:background 0.2s ease, transform 0.15s ease; justify-self:start;
}
.submit-btn:hover{background:var(--blue-600);}
.submit-btn:active{transform:scale(0.97);}
.form-note{font-size:12.5px; color:var(--slate-light); grid-column:1/-1;}
@media (max-width:700px){
  .contact-inner{grid-template-columns:1fr;}
  form{grid-template-columns:1fr;}
}

/* ============ FOOTER ============ */
footer{background:var(--navy-950); color:#a9b4c4; padding-top:64px; border-top:1px solid var(--line-dark);}
.footer-top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:40px;
  padding-bottom:56px; border-bottom:1px solid var(--line-dark);
}
.footer-about p{font-size:14px; color:#8fa0b5; max-width:280px; line-height:1.7;}
.footer-col h5{
  font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
  color:#fff; margin-bottom:18px;
}
.footer-col ul li{margin-bottom:11px;}
.footer-col ul li a{font-size:14px; color:#a9b4c4; transition:color 0.2s ease;}
.footer-col ul li a:hover{color:#fff;}
.footer-contact p{font-size:14px; color:#a9b4c4; margin-bottom:8px;}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding:26px 0; font-size:13px; color:#6f7d90; flex-wrap:wrap; gap:12px;
}
@media (max-width:900px){.footer-top{grid-template-columns:1fr 1fr; gap:36px;}}

/* ============ ANIMATIONS ============ */
.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity 0.7s cubic-bezier(0.16,1,0.3,1), transform 0.7s cubic-bezier(0.16,1,0.3,1);
}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-child{
  opacity:0; transform:translateY(22px);
  transition:opacity 0.6s cubic-bezier(0.16,1,0.3,1), transform 0.6s cubic-bezier(0.16,1,0.3,1);
}
.reveal-child.in{opacity:1; transform:translateY(0);}

/* ============ RESPONSIVE — TABLET ============ */
@media (max-width:1024px){
  .wrap{padding:0 24px;}
  .nav{padding:14px 24px;}
}

/* ============ RESPONSIVE — MOBILE (≤600px) ============ */
@media (max-width:600px){
  .wrap{padding:0 20px;}
  .nav{padding:12px 20px;}
  section{padding:64px 0;}
  .section-head{margin-bottom:36px;}
  .section-head p{font-size:15px;}

  .hero{padding:calc(var(--header-h) + 14px) 0 52px;}
  .hero h1{font-size:clamp(28px,7vw,36px);}
  .hero p.lead{font-size:16px;}
  .hero-actions{flex-direction:column; align-items:stretch;}
  .hero-actions .btn{justify-content:center; width:100%;}
  .hero-panel{padding:18px;}
  .stat-row{flex-direction:column; align-items:flex-start; gap:6px; padding:12px 4px;}
  .stat-label{text-align:left; max-width:100%;}

  .why-card{padding:28px 22px;}
  .industry-chip{padding:12px 16px; font-size:13.5px; flex:1 1 calc(50% - 6px);}
  .industries-wrap{gap:10px;}
  .industries-banner{aspect-ratio:4/3; margin-bottom:28px;}

  .method-steps{gap:24px;}

  .expertise-card{padding:26px 22px;}
  .service-col{padding:26px 20px;}
  .solution-card{padding:24px 20px;}
  .diff-item{padding:18px 20px; font-size:14.5px;}

  .careers-inner{gap:40px;}
  .careers-media{aspect-ratio:4/3;}

  .contact-inner{gap:36px;}
  form{gap:14px;}

  .footer-top{padding-bottom:40px; gap:32px;}
  .footer-bottom{flex-direction:column; align-items:flex-start; text-align:left;}

  .btn{padding:13px 22px; font-size:14px;}
}

/* ============ RESPONSIVE — SMALL PHONES (≤400px) ============ */
@media (max-width:400px){
  .wrap{padding:0 16px;}
  .nav{padding:12px 16px;}
  .hero h1{font-size:26px;}
  .hero p.lead{font-size:15px;}
  .industry-chip{flex:1 1 100%;}
  .role-chips{gap:8px;}
  .role-chip{font-size:11.5px; padding:7px 11px;}
}
@media (max-width:900px){
  /* When any submenu is open, compact all rows so everything fits without scrolling */
  .nav-links.has-open-submenu a:not(.nav-cta){
    padding:9px 2px;
    font-size:15px;
  }
  .nav-links.has-open-submenu .dropdown a{
    padding:6px 0 6px 10px !important;
    font-size:12px !important;
  }
}

/* ============ MULTI-PAGE NAV EXTRAS ============ */

.has-dropdown{position:relative;}
.dropdown{
  position:absolute;
  top:calc(100% + 14px);
  left:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  min-width:220px;
  padding:8px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  box-shadow:0 18px 36px rgba(20,32,50,0.14);
  z-index:50;
}
.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown{
  opacity:1; visibility:visible; transform:translateY(0);
}
.dropdown-toggle-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
}
.dropdown-arrow-btn{
  background:none;
  border:none;
  color:var(--slate);
  font-size:14px;
  padding:8px 6px;
  cursor:pointer;
  line-height:1;
  transition:color 0.2s ease;
}
.dropdown-arrow-btn:hover,
.has-dropdown:hover .dropdown-arrow-btn{
  color:var(--blue-600);
}
/* The panel is a white card, so its links stay dark whatever colour the
   bar's own links are using. */
header .nav-links .dropdown a{color:var(--ink);}
header .nav-links .dropdown a:hover{background:var(--paper-dim); color:var(--blue-600);}
header .nav-links .dropdown a.active{color:var(--blue-600);}
.dropdown a::after{display:none;}
@media (max-width:900px){
  .dropdown{
    position:static;
    opacity:1; visibility:visible; transform:none;
    border:none; background:rgba(255,255,255,0.03);
    box-shadow:none; margin-top:4px; display:none;
    min-width:0;
  }
  .has-dropdown.open .dropdown{display:block;}
  .dropdown a{padding:16px 0 16px 20px; font-size:15px; border-bottom:1px solid var(--line-dark);}
  .dropdown-toggle-icon{transition:transform 0.2s ease;}
  .has-dropdown.open .dropdown-toggle-icon{transform:rotate(180deg);}

  .dropdown{
    padding-left:14px;
    border-left:2px solid var(--line);
    margin:6px 0 6px 4px;
  }
  .dropdown a{
    padding:10px 0 10px 10px !important;
    font-size:14px !important;
    text-transform:uppercase;
    letter-spacing:0.04em;
    color:var(--slate) !important;
    border-bottom:1px solid var(--line) !important;
  }
}

/* ============ CURRENT PAGE INDICATOR ============ */
/* Set by markCurrentPage() in main.js: .active + aria-current="page" on the
   link for this page, and .is-current on a dropdown that contains it. */

/* Desktop dropdown rows were inline and ran together on one line. */
.dropdown a{
  display:block;
  padding:9px 12px;
  border-radius:3px;
  white-space:nowrap;
  transition:background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

/* Contact Us is inline by default, so its overflow:hidden never applied and
   the hover sheen leaked out to the left of the button. The line-height keeps
   the header at its original height. */
.nav-cta{display:inline-block; vertical-align:middle; line-height:1.2;}

/* "Services" sits in a flex wrapper, which turns it into a block box, so the
   old overflow:hidden clipped its underline (hover and active) out of view. */
.nav-links a:not(.nav-cta){overflow:visible;}

.nav-links a.active:not(.nav-cta){color:var(--blue-600);}
.nav-links a.active:not(.nav-cta)::after{
  height:2px;
  transform:scaleX(1);
  transform-origin:left;
}
.has-dropdown.is-current .dropdown-arrow-btn{color:var(--blue-600);}

.dropdown a.active{
  color:var(--blue-600);
  background:rgba(43,132,207,0.10);
  box-shadow:inset 2px 0 0 var(--blue-600);
}

.nav-cta.active{
  background:var(--blue-600);
  box-shadow:0 0 0 3px rgba(43,132,207,0.22);
}

.footer-col a.active{color:#fff;}
.footer-col a.active::before{
  content:"";
  display:inline-block;
  width:5px; height:5px;
  margin:0 8px 2px 0;
  border-radius:50%;
  background:var(--blue-400);
  vertical-align:middle;
}

@media (max-width:900px){
  /* The mobile menu is cream, so the indicator switches to amber, and the
     underline becomes a dot beside the label. Nothing changes size, so
     the menu still fits without scrolling. */
  .nav-links a:not(.nav-cta)::after{display:none;}

  .nav-links a.active:not(.nav-cta){color:var(--blue-600);}
  .nav-menu > li > a.active:not(.nav-cta)::after,
  .nav-links .dropdown-toggle-btn > a.active:not(.nav-cta)::after{
    display:block;
    left:-14px; top:50%; bottom:auto;
    width:6px; height:6px;
    margin-top:-3px;
    border-radius:50%;
    background:var(--blue-600);
    transform:none;
  }
  .has-dropdown.is-current .dropdown-arrow-btn{color:var(--blue-600);}

  .nav-links .dropdown a.active{
    color:var(--blue-600) !important;
    background:rgba(43,132,207,0.10);
    box-shadow:none;
  }
}

/* ============ PAGE HERO (sub-pages) ============ */
.page-hero{
  background:
    radial-gradient(ellipse 900px 500px at 85% -10%, rgba(43,132,207,0.25), transparent 60%),
    linear-gradient(180deg, var(--navy-950) 0%, var(--navy-900) 100%);
  color:#fff;
  padding:calc(var(--header-h) + 30px) 0 56px;
  position:relative;
  overflow:hidden;
}
.page-hero::after{
  content:"";
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(180deg, transparent, #000 30%, #000 80%, transparent);
  pointer-events:none;
}
.page-hero-inner{position:relative; z-index:1; max-width:720px;}
.breadcrumb{
  font-family:var(--mono); font-size:12px; color:#8fa0b5;
  margin-bottom:18px; display:flex; align-items:center; gap:8px;
}
.breadcrumb a{color:#8fa0b5; transition:color 0.2s ease;}
.breadcrumb a:hover{color:#fff;}
.page-hero h1{
  color:#fff;
  font-size:clamp(30px, 4vw, 46px);
  line-height:1.12;
}
.page-hero p{
  margin-top:16px;
  color:#b7c2d1;
  font-size:16.5px;
  line-height:1.7;
  max-width:640px;
}

/* ============ SERVICE DETAIL CARD (Services page) ============ */
.service-detail{
  display:grid;
  grid-template-columns:0.8fr 1.2fr;
  gap:44px;
  align-items:center;
  padding:56px 0;
  border-bottom:1px solid var(--line);
}
.service-detail:last-child{border-bottom:none;}
.service-detail:nth-child(even){direction:rtl;}
.service-detail:nth-child(even) > *{direction:ltr;}
.service-detail-media{aspect-ratio:4/3; border-radius:6px; overflow:hidden; border:1px solid var(--line);}
.service-detail-body .eyebrow{margin-bottom:14px;}
.service-detail-body h3{font-size:24px; margin-bottom:14px;}
.service-detail-body p{color:var(--slate); font-size:15.5px; margin-bottom:18px;}
.service-detail-list{margin-top:8px;}
.service-detail-list li{
  display:flex; align-items:flex-start; gap:10px;
  font-size:14.5px; color:var(--ink); padding:8px 0;
}
.service-detail-list li::before{content:"✓"; color:var(--blue-500); font-weight:700; flex-shrink:0;}
@media (max-width:800px){
  .service-detail{grid-template-columns:1fr; gap:24px; padding:40px 0;}
  .service-detail:nth-child(even){direction:ltr;}
  .service-detail-media{aspect-ratio:16/9;}
}

/* ============ SIMPLE PAGE INTRO BLOCK ============ */
.intro-block{max-width:820px; margin-bottom:56px;}
.intro-block p{color:var(--slate); font-size:16px; margin-bottom:16px; line-height:1.75;}

/* ============ BREADCRUMB-STYLE CTA BAND ============ */
.cta-band{
  background:var(--navy-950);
  color:#fff;
  padding:64px 0;
  text-align:center;
}
.cta-band h2{color:#fff; font-size:clamp(24px,3vw,32px); margin-bottom:14px;}
.cta-band p{color:#a9b4c4; font-size:15.5px; max-width:520px; margin:0 auto 30px;}
.cta-band .hero-actions{justify-content:center;}

/* ============ SPLIT-TEXT REVEAL ============ */
.split-line{
  overflow:hidden;
  display:inline-block;
  vertical-align:top;
}
.split-line .split-inner{
  display:inline-block;
  transform:translateY(110%);
  opacity:0;
  transition:transform 0.7s cubic-bezier(0.16,1,0.3,1), opacity 0.7s ease;
}
.split-line.in .split-inner{
  transform:translateY(0);
  opacity:1;
}

/* ============ TYPEWRITER ============ */
.typewriter{
  border-right:2px solid var(--blue-500);
  white-space:nowrap;
  overflow:hidden;
  display:inline-block;
  width:0;
}
.typewriter.type-in{
  animation:typeReveal 1.4s steps(var(--char-count)) forwards,
            blinkCaret 0.8s step-end infinite;
}
@keyframes typeReveal{ to{ width:100%; } }
@keyframes blinkCaret{ 50%{ border-color:transparent; } }

/* ============ PARALLAX ============ */
[data-parallax]{
  will-change:transform;
}

/* ============ CONTENT UPDATE — SEP 2026 ============ */
/* Theme label above each testimonial quote */
.testi-card{display:flex; flex-direction:column;}
.testi-card .testi-person{margin-top:auto;}
.testi-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--blue-600); margin-bottom:14px; display:block;
}

/* Category label above each solution title */
.solution-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--blue-600); display:block; margin-bottom:8px;
}

/* Home "Our Approach" steps reuse the expertise cards, plus a step number */
.approach-grid .expertise-card{position:relative;}
.approach-grid .expertise-card > .step-no{
  position:absolute; top:22px; right:24px;
  font-family:var(--mono); font-size:12px; letter-spacing:0.1em;
  color:rgba(255,255,255,0.35);
}
.approach-grid .expertise-card h3{text-transform:uppercase; letter-spacing:0.04em; font-size:18px;}

/* Careers copy */
.careers-intro{color:#cdd6e2; margin-top:16px; font-size:16px; line-height:1.7; max-width:480px;}
.careers-copy{color:#a9b4c4; margin-top:14px; font-size:14.5px; line-height:1.7; max-width:480px;}
.careers-apply{color:#a9b4c4; margin-top:22px; font-size:14.5px;}
.careers-apply a{color:var(--blue-400); font-weight:600;}
.perks-detailed li{flex-direction:column; gap:4px; padding:14px 0;}
.perks-detailed li::before{display:none;}
.perks-detailed strong{color:#fff; font-weight:600; font-size:15px;}
.perks-detailed span{color:#a9b4c4; font-size:14px; line-height:1.6;}

/* ============ MOBILE HERO ============ */
/* More breathing room under the strip, and the tagline set tighter so the
   extra space does not push the button off the first screen. */
@media (max-width:900px){
  .hero{padding-top:calc(var(--header-h) + 40px);}
  .hero .eyebrow{
    align-items:flex-start;
    gap:9px;
    font-size:11px;
    letter-spacing:0.1em;
    line-height:1.7;
    margin-bottom:20px;
  }
  .hero .eyebrow::before{width:18px; margin-top:0.62em;}
  .hero p.lead{margin-top:14px;}
  .hero-actions{margin-top:26px;}
}
@media (max-width:600px){
  .hero{padding-top:calc(var(--header-h) + 34px);}
}
/* Short phones: trim just enough for the button to stay on the first screen */
@media (max-width:900px) and (max-height:700px){
  .hero{padding-top:calc(var(--header-h) + 26px);}
  .hero h1{font-size:clamp(26px, 7.2vw, 32px);}
  .hero p.lead{font-size:14.5px; line-height:1.6; margin-top:12px;}
  .hero .eyebrow{margin-bottom:16px;}
  .hero-actions{margin-top:20px;}
}

/* ============ COMPACT HERO PANEL ============ */
/* Tightened so the panel sits closer in height to the copy beside it. */
@media (min-width:901px){
  .hero-panel{padding:16px;}
  .hero-panel-media{aspect-ratio:16/10; margin-bottom:12px;}
  .hero-panel-label{font-size:10.5px; margin-bottom:8px;}
  .stat-row{padding:11px 4px; gap:16px;}
  .stat-num{font-size:21px;}
  .stat-label{font-size:11.5px; line-height:1.45; max-width:210px;}
}

/* ============ MOBILE MENU LAYOUT ============ */
/* A fixed full-screen panel under the header. Page names are centred and
   spread evenly down the screen; spacing and type scale with the screen
   height, so the whole menu always fits and nothing ever scrolls. */
@media (max-width:900px){
  .nav-links{
    top:var(--header-h);
    bottom:0;
    height:auto;
    align-items:center;
    justify-content:space-evenly;
    padding:clamp(12px, 3vh, 32px) 24px calc(clamp(16px, 4vh, 40px) + env(safe-area-inset-bottom));
    overflow:hidden;
    overscroll-behavior:contain;
    touch-action:none;
    text-align:center;
  }
  .nav-links.open{animation:menuIn 0.28s ease both;}
  @keyframes menuIn{from{opacity:0; transform:translateY(-8px);} to{opacity:1; transform:none;}}

  .nav-menu{
    flex:1;
    width:100%;
    justify-content:space-evenly;
    align-items:center;
    gap:0;
  }
  .nav-menu > li{width:100%; display:flex; flex-direction:column; align-items:center;}

  /* Page names: dark on the cream panel, centred, no dividers, and sized
     against the screen height */
  .nav-links a:not(.nav-cta),
  .nav-links.has-open-submenu a:not(.nav-cta){
    color:var(--ink);
    width:auto;
    display:inline-flex;
    justify-content:center;
    padding:6px 4px;
    border-bottom:none;
    font-size:clamp(18px, 3vh, 24px);
    font-weight:500;
  }
  .nav-links.has-open-submenu .nav-menu > li > a:not(.nav-cta),
  .nav-links.has-open-submenu .dropdown-toggle-btn > a{font-size:clamp(17px, 2.6vh, 21px);}

  /* Services + its arrow sit together in the middle */
  .dropdown-toggle-btn{width:auto; justify-content:center; gap:2px;}
  .dropdown-arrow-btn{padding:8px 6px;}
  .has-dropdown.open .dropdown-arrow-btn{transform:rotate(180deg);}
  .dropdown-arrow-btn,
  .has-dropdown:hover .dropdown-arrow-btn{color:var(--slate);}
  .has-dropdown.is-current .dropdown-arrow-btn{color:var(--blue-600);}

  /* Submenu: a centred stack of small caps links */
  .nav-links .dropdown{
    border:none;
    background:none;
    margin:2px 0 0;
    padding:0;
  }
  .has-dropdown.open .dropdown{display:flex; flex-direction:column; align-items:center;}
  .nav-links .dropdown a:not(.nav-cta){
    color:var(--slate);
    display:block;
    width:auto;
    padding:clamp(4px, 1vh, 8px) 12px !important;
    font-size:13px !important;
    border-bottom:none !important;
    border-radius:3px;
  }

  /* Current page: amber text, dot just before the name */
  .nav-menu > li > a.active:not(.nav-cta)::after,
  .nav-links .dropdown-toggle-btn > a.active:not(.nav-cta)::after{left:-10px;}

  /* Contact Us: a centred button, not a full-width bar */
  .nav-links .nav-cta{
    display:inline-block;
    width:min(100%, 280px);
    margin:0 0 clamp(4px, 2vh, 20px);
    padding:14px 22px;
    font-size:16px;
    text-align:center;
  }
}

/* ============ HOME HERO FIT ============ */
/* The photo sits in its own clipped frame, so the parallax motion stays
   inside it instead of leaving a gap on top and covering the label. */
.hero-panel-media{
  position:relative;
  overflow:hidden;
  border-radius:4px;
  aspect-ratio:4/3;
  margin-bottom:22px;
}
.hero-panel .hero-panel-media img{
  position:absolute;
  left:0; top:-15%;
  width:100%; height:130%;
  aspect-ratio:auto;
  margin:0;
  border-radius:0;
  object-fit:cover;
}

@media (min-width:901px){
  /* The stats panel is taller than the copy, so centring pushed the copy
     (and its button) below the fold on short laptops. Top-align there. */
  .hero{padding:calc(var(--header-h) + clamp(20px, 5vh, 64px)) 0 80px;}
  .hero-inner{align-items:start;}
}
/* With room to spare, centre the copy against the panel so the space above
   and below it matches instead of pooling at the bottom. */
@media (min-width:901px) and (min-height:760px){
  .hero-inner{align-items:center;}
}
/* Laptop screens with little height (13" and smaller) */
@media (min-width:901px) and (max-height:860px){
  .hero{padding-top:calc(var(--header-h) + clamp(18px, 4.5vh, 40px));}
  .hero .eyebrow{margin-bottom:14px;}
  .hero h1{font-size:clamp(34px, 3.6vw, 48px);}
  .hero p.lead{margin-top:14px; font-size:16px; line-height:1.65;}
  .hero-actions{margin-top:26px;}
}

/* ============ COMPACT MOBILE FOOTER ============ */
/* Brand and contact span the full width; the two link lists sit side by
   side. Kept at the end of the file so it wins over the ≤600px block. */
@media (max-width:600px){
  footer{padding-top:40px;}
  .footer-top{
    grid-template-columns:1fr 1fr;
    gap:28px 20px;
    padding-bottom:28px;
  }
  .footer-about,
  .footer-contact{grid-column:1 / -1;}

  .footer-about img{height:30px !important; margin-bottom:12px !important;}
  .footer-about p{font-size:13px; line-height:1.6; max-width:none;}

  .footer-col h5{font-size:11px; margin-bottom:12px;}
  .footer-col ul li{margin-bottom:6px; line-height:1.45;}
  .footer-col ul li a{font-size:13.5px;}

  .footer-contact p{font-size:13px; line-height:1.6; margin-bottom:4px;}
  .footer-contact a{word-break:break-word;}

  .footer-bottom{padding:18px 0; gap:6px; font-size:12px; line-height:1.5;}
}
