:root{
  --paper:#F5F1E8;
  --paper-dim:#EDE8DB;
  --navy:#0F2436;
  --navy-2:#173B54;
  --cyan:#7EC2E3;
  --cyan-dim:#3E7A97;
  --rust:#C1602C;
  --ink:#161B1F;
  --ink-soft:#4E5A63;
  --logo-navy: #105689;
  --logo-green: #139D48;
  --display: "Barlow Condensed", sans-serif;
  --body: "Barlow", sans-serif;
  --mono: "Barlow Condensed", sans-serif;
}

.logo img{ height:150px; width:auto; display:block; }

*{ box-sizing: border-box; margin:0; padding:0; }

html{ scroll-behavior: smooth; }

body{
  font-family: var(--body);
  font-size: 20px;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

img,svg{ display:block; max-width:100%; }

a{ color:inherit; text-decoration:none; }

ul{ list-style:none; }

.wrap{ max-width:1650px; margin:0 auto; padding:0 28px; }

h1,h2,h3,h4{ font-family: var(--display); font-weight:700; letter-spacing:0.01em; text-transform:uppercase; }

.eyebrow{
  font-family: var(--mono); font-size:15px; letter-spacing:0.18em; text-transform:uppercase;
  color: var(--cyan-dim); display:flex; align-items:center; gap:10px; margin-bottom:14px;
}

.eyebrow::before{ content:""; width:22px; height:1px; background: var(--logo-green); display:inline-block; }

/* ---------- utility bar ---------- */
.utility-bar{
  background: var(--navy); color: var(--cyan);
  font-family: var(--mono); font-size:12px; letter-spacing:0.04em;
}

.utility-bar .wrap{ display:flex; justify-content:space-between; align-items:center; padding:8px 28px; }

.utility-bar a{ color: var(--paper); }

.utility-bar span{ opacity:0.7; }

header.site .wrap{ display:flex; align-items:stretch; justify-content:space-between; padding:18px 28px; }

.logo{ display:flex; align-items:center; gap:8px; color:var(--paper); }

.logo .mark{ font-family: var(--display); font-size:32px; font-weight:800; letter-spacing:0.02em; }

.logo .mark span{ color: var(--logo-green); }

nav.main{ display:flex; align-items:stretch; }

nav.main > ul{ display:flex; align-items:stretch; gap:70px; }

nav.main > ul > li{ display:flex; align-items:stretch; }

nav.main > ul > li > a{ display:flex; align-items:center; }

nav.main a{
  font-family: var(--mono); font-size:22px; letter-spacing:0.08em; text-transform:uppercase;
  font-weight: 1000;
  color: var(--paper); opacity:0.85; padding:8px 0; border-bottom:1px solid transparent;
  transition: opacity .15s ease, border-color .15s ease, color .2s ease;
}

nav.main a:hover, nav.main a.active{ opacity:1; border-color: var(--logo-green); }

.nav-toggle{ display:none; background:none; border:1px solid var(--cyan-dim); color:var(--paper); font-family:var(--mono); font-size:12px; padding:8px 12px; cursor:pointer; }

/* dropdown */
.has-dropdown{ display:flex; align-items:center; gap:5px; }

.caret{ width:8px; height:8px; border-right:1px solid var(--cyan); border-bottom:1px solid var(--cyan); transform: rotate(45deg); margin-top:-4px; opacity:0.8; }

nav.main ul.dropdown{
  display:grid;
  grid-template-columns: repeat(6, max-content);
  gap:20px 60px;
  padding:40px 60px;
  justify-content:center;
  flex-wrap:wrap;
  position:absolute; top:100%; left:0; right:0;
  width:100%; min-width:0;
  background: var(--navy);
  z-index: 95;
  opacity:0;
  transform: translateY(-10px);
  pointer-events:none;
  transition: opacity .25s ease, transform .25s cubic-bezier(.2,.8,.2,1);
}
nav.main ul.dropdown li{ grid-column: span 2; }

/* 4-item dropdown (About Us): single leftover item, centered */
nav.main ul.dropdown li:nth-child(4):last-child{
  grid-column: 3 / 5;
}

/* 7-item dropdown (Services, Projects): single leftover item, centered */
nav.main ul.dropdown li:nth-child(7):last-child{
  grid-column: 3 / 5;
}

/* 8-item dropdown (Industries Served): two leftover items, centered as a pair */
nav.main ul.dropdown li:nth-child(7):nth-last-child(2){ grid-column: 2 / 4; }
nav.main ul.dropdown li:nth-child(8):last-child{ grid-column: 4 / 6; }

.dropdown li{ border-top: 1px solid rgba(126,194,227,0.1); }

li.has-dropdown-wrap:hover ul.dropdown,
li.has-dropdown-wrap.open ul.dropdown{
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}

.dropdown li a{
  display:block; padding:11px 16px; font-size:15px; letter-spacing:0.06em;
  white-space:nowrap; border-bottom:none; opacity:0.8;
}

.dropdown li a:hover{ background: rgba(126,194,227,0.09); opacity:1; }

.dropdown li + li{ border-top:1px solid rgba(126,194,227,0.1); }

.mega-hero .cta-row .btn{
  background: #105689;
  border-color: #105689;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 90% 100%, 0 100%);
}
.mega-hero .cta-row .btn:hover{
  background: transparent;
  color: var(--paper);
}

.mega-hero .cta-row .btn-green{
  background: #139D48;
  border-color: #139D48;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 90% 100%, 0 100%);
}
.mega-hero .cta-row .btn-green:hover{
  background: transparent;
  color: var(--paper);
}


/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px; font-family: var(--mono); font-size:16px;
  letter-spacing:0.08em; text-transform:uppercase; padding:14px 24px; border:1px solid var(--logo-green);
  color: var(--paper); background: var(--logo-green); transition: background .15s ease, color .15s ease;
  cursor:pointer;
}

.btn:hover{ background: transparent; color: var(--logo-green); }

.btn.ghost{ background:transparent; border-color: var(--cyan-dim); color: var(--cyan); }

.btn.ghost:hover{ background: var(--cyan); color: var(--navy); border-color: var(--cyan); }

.btn-green{
  background: #139D48;
  border-color: #139D48;
}
.btn-green:hover{
  background: transparent;
  color: var(--paper);
}

/* ---------- homepage: full-bleed hero with transparent, scroll-aware nav ---------- */
header.site{
  background: var(--navy); border-bottom:1px solid rgba(126,194,227,0.18);
  position: sticky; top:0; z-index: 80;
}

body.home header.site{
  position: fixed; top:0; left:0; right:0; width:100%;
  background: transparent; border-bottom:1px solid transparent;
  transition: transform .4s ease, background .3s ease, border-color .3s ease;
}

body.home nav.main a{ color: var(--navy); }

body.home header.site.is-scrolled,
body.home header.site:has(.has-dropdown-wrap:hover),
body.home header.site:has(.has-dropdown-wrap.open){
  background: var(--navy); border-bottom-color: rgba(126,194,227,0.18);
}

body.home header.site.is-scrolled nav.main a,
body.home header.site:has(.has-dropdown-wrap:hover) nav.main a,
body.home header.site:has(.has-dropdown-wrap.open) nav.main a{
  color: var(--paper);
}

body.home header.site.is-hidden{ transform: translateY(-100%); }

.mega-hero{
  position:relative; height:100vh; min-height:560px; overflow:hidden;
  background: var(--navy); color: var(--paper);
}

.mega-hero .bg{ position:absolute; top:0; left:0; right:0; bottom:0; }

.mega-hero .bg svg{ position:absolute; top:0; left:0; width:100%; height:100%; }

.mega-hero .bg img{ position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; object-position:center; }

.mega-hero .scrim{
  position:absolute; top:0; left:0; right:0; bottom:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.9) 10%, rgba(255,255,255,0.65) 20%, rgba(255,255,255,0.3) 24%, rgba(255,255,255,0.06) 50%, rgba(255,255,255,0.06) 100%),
    linear-gradient(90deg, rgba(15,36,54,1) 0%, rgba(15,36,54,0.5) 35%, rgba(15,36,54,0.01) 50%);
}

.mega-hero .content{
  position:relative; z-index:2; height:100%;
  display:flex; flex-direction:column; justify-content:center;
  max-width:1650px; margin:0 auto; padding: 0 28px;
}

.mega-hero .eyebrow{ color: var(--cyan); opacity:0; animation: rise .7s ease forwards; animation-delay: .15s; }

.mega-hero .eyebrow::before{ background: var(--logo-green); }

.mega-hero h1{
  font-size: clamp(43px, 5.3vw, 63px); line-height:0.96; max-width:760px; margin-bottom:26px;
}

.mega-hero h1 .line{ display:block; overflow:hidden; }

.mega-hero h1 .line span{ display:block; opacity:0; transform: translateY(100%); animation: rise .7s cubic-bezier(.2,.8,.2,1) forwards; }

.mega-hero h1 .line:nth-child(1) span{ animation-delay: .28s; }

.mega-hero h1 .line:nth-child(2) span{ animation-delay: .40s; color: #3e94d1;}

.mega-hero p.lede{
  font-size:18px; color: rgba(245,241,232,0.85); max-width:440px; margin-bottom:34px;
  opacity:0; animation: rise .7s ease forwards; animation-delay: .58s;
}

.mega-hero .cta-row{ opacity:0; animation: rise .7s ease forwards; animation-delay: .72s; display:flex; gap:16px; }

.mega-hero .scroll-cue{
  position:absolute; left:28px; bottom:34px; z-index:2;
  display:flex; align-items:center; gap:10px;
  font-family: var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color: rgba(245,241,232,0.7);
  opacity:0; animation: rise .7s ease forwards; animation-delay: .9s;
}

.mega-hero .scroll-cue .arrow{ width:14px; height:14px; border-right:1px solid var(--cyan); border-bottom:1px solid var(--cyan); transform: rotate(45deg); animation: bob 1.8s ease-in-out infinite; }

@keyframes rise{ to{ opacity:1; transform:translateY(0); } }

@keyframes bob{ 0%,100%{ transform: rotate(45deg) translate(0,0); } 50%{ transform: rotate(45deg) translate(4px,4px); } }

@media (max-width: 700px){
  .mega-hero h1{ font-size: clamp(36px, 10vw, 56px); }
  .mega-hero .scrim{
    background:
      linear-gradient(180deg, rgba(255,255,255,0.65) 0%, rgba(255,255,255,0.65) 10%, rgba(255,255,255,0.45) 20%, rgba(255,255,255,0.2) 24%, rgba(255,255,255,0.04) 50%, rgba(255,255,255,0.04) 100%),
      linear-gradient(90deg, rgba(15,36,54,0.3) 0%, rgba(15,36,54,0.55) 55%, rgba(15,36,54,0.7) 100%);
  }
}

/* ---------- page header (interior pages) ---------- */
.page-header{
  background: var(--navy);
  background-image:
    linear-gradient( rgba(126,194,227,0.06) 1px, transparent 1px ),
    linear-gradient( 90deg, rgba(126,194,227,0.06) 1px, transparent 1px );
  background-size: 36px 36px;
  color: var(--paper);
  padding: 64px 0 56px;
}

.page-header h1{ font-size: clamp(32px, 4.4vw, 48px); margin-bottom:14px; }

.page-header p{ color: rgba(245,241,232,0.78); max-width:560px; font-size:18px; }

.crumb{ font-family: var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color: var(--cyan-dim); margin-bottom:16px; }

.crumb span{ color: var(--paper); opacity:0.6; }

/* ---------- intro strip ---------- */
.intro{ background: var(--paper); padding: 84px 0 56px; }

.intro .wrap{ display:grid; grid-template-columns: 0.9fr 1.5fr; gap:60px; }

.intro .yrs{ font-family: var(--display); font-size:74px; color: var(--navy); line-height:0.85; }

.intro .yrs small{ display:block; font-family: var(--mono); font-size:18px; letter-spacing:0.14em; color: var(--logo-green); margin-top:10px; text-transform:uppercase; }

.intro .copy p{ color: var(--ink-soft); font-size:16px; margin-bottom:16px; max-width:640px; }

.intro .copy p:first-child{ color: var(--ink); font-size:19px; font-weight:500; }

/* ---------- stats ---------- */
.stats{ background: var(--navy-2); color: var(--paper); padding: 46px 0; }

.stats .wrap{ display:grid; grid-template-columns: repeat(4,1fr); }

.stats .stat{ padding: 0 26px; border-left:1px solid rgba(126,194,227,0.25); }

.stats .stat:first-child{ border-left:none; }

.stats .stat b{ display:block; font-family: var(--mono); font-size: 30px; color: var(--cyan); font-weight:500; }

.stats .stat span{ font-family: var(--mono); font-size:15px; letter-spacing:0.06em; text-transform:uppercase; color: rgba(245,241,232,0.65); }

/* ---------- two-column: is / offers ---------- */
.split{ background: var(--paper); padding: 90px 0; }

.split .wrap{ display:grid; grid-template-columns: 1fr 1fr; gap:70px; align-items:start; }
.split .wrap > div:first-child{ align-self:center; }

.split h2{ font-size:30px; color: var(--navy); margin-bottom:26px; }

.checklist li{ display:flex; gap:14px; padding:14px 0; border-top:1px solid rgba(15,36,54,0.1); font-size:18px; color: var(--ink-soft); }

.checklist li:last-child{ border-bottom:1px solid rgba(15,36,54,0.1); }

.checklist li strong{ color: var(--ink); }

.checklist .tick{ flex:none; width:16px; height:16px; margin-top:3px; }

.checklist .tick svg{ width:16px; height:16px; }

.offers li{ display:flex; align-items:baseline; gap:12px; padding:11px 0; font-size:15px; color: var(--ink-soft); border-top:1px dashed rgba(15,36,54,0.16); }

.offers li:last-child{ border-bottom:1px dashed rgba(15,36,54,0.16); }

.offers li::before{ content:"—"; color: var(--logo-green); font-family: var(--mono); }

/* ---------- capability feature blocks ---------- */
.capabilities{ background: var(--paper-dim); padding: 90px 0; border-top:1px solid rgba(15,36,54,0.08); border-bottom:1px solid rgba(15,36,54,0.08); }

.capabilities .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:50px; }

.cap-card{ background: var(--paper); border:1px solid rgba(15,36,54,0.1); padding:34px; }

.cap-card .icon{ width:44px; height:44px; margin-bottom:22px; }

.cap-card h3{ font-size:22px; color: var(--navy); margin-bottom:12px; }

.cap-card p{ color: var(--ink-soft); font-size:15px; }

/* ---------- industries ---------- */
.industries{ background: var(--paper); padding: 90px 0; }

.industries .head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:40px; gap:20px; flex-wrap:wrap; }

.industries h2{ font-size:34px; color: var(--navy); }

.grid-6{ display:grid; grid-template-columns: repeat(3, 1fr); gap:1px; background: rgba(15,36,54,0.12); border:1px solid rgba(15,36,54,0.12); }

.ind-card{ background: var(--paper); padding:32px 28px; transition: background .15s ease; }

.ind-card:hover{ background: var(--paper-dim); }

.ind-card .num{ font-family: var(--mono); font-size:11px; color: var(--logo-green); letter-spacing:0.08em; margin-bottom:14px; display:block; }

.ind-card h3{ font-size:20px; color: var(--navy); margin-bottom:10px; text-transform:none; }

.ind-card p{ font-size:14px; color: var(--ink-soft); margin-bottom:16px; }

.ind-card .more{ font-family: var(--mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color: var(--cyan-dim); border-bottom:1px solid var(--cyan-dim); padding-bottom:2px; }

/* ---------- projects ---------- */
.projects-grid{ background: var(--paper); padding: 90px 0; }

.proj-list{ display:grid; grid-template-columns: 1fr 1fr; gap:1px; background: rgba(15,36,54,0.12); border:1px solid rgba(15,36,54,0.12); }

.proj-card{ background: var(--paper); padding:34px; }

.proj-card .tag-row{ display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }

.proj-card .tag{ font-family: var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color: var(--logo-green); border:1px solid var(--logo-green); padding:4px 8px; }

.proj-card .sheet{ font-family: var(--mono); font-size:10.5px; color: var(--cyan-dim); }

.proj-card h3{ font-size:21px; color: var(--navy); margin-bottom:10px; text-transform:none; }

.proj-card p{ font-size:14.5px; color: var(--ink-soft); margin-bottom:16px; }

.proj-card .meta{ display:flex; gap:22px; font-family: var(--mono); font-size:11px; color: var(--ink-soft); border-top:1px solid rgba(15,36,54,0.1); padding-top:14px; }

.proj-card .meta b{ color: var(--ink); display:block; font-size:13px; font-weight:500; }

.proj-note{ margin-top:26px; font-size:13px; color: var(--ink-soft); font-style:italic; }

/* ---------- offices ---------- */
.offices{ background: var(--navy); color: var(--paper); padding: 90px 0; }

.offices h2{ font-size:30px; margin-bottom:40px; color: var(--paper); }

.off-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:1px; background: rgba(126,194,227,0.18); border:1px solid rgba(126,194,227,0.18); }

.off-card{ background: var(--navy); padding:28px; }

.off-card .eyebrow{ color: var(--cyan); margin-bottom:10px; }

.off-card .eyebrow::before{ background: var(--cyan); }

.off-card address{ font-style:normal; color: rgba(245,241,232,0.78); font-size:14px; line-height:1.7; }

.off-card .tel{ font-family: var(--mono); font-size:13px; color: var(--cyan); margin-top:10px; display:block; }

/* ---------- contact ---------- */
.contact{ background: var(--paper); padding: 96px 0; }

.contact .wrap{ display:grid; grid-template-columns: 0.9fr 1.1fr; gap:60px; }

.contact h2{ font-size:34px; color: var(--navy); margin-bottom:16px; }

.contact p.lede{ color: var(--ink-soft); max-width:400px; }

.form-frame{ border:1px solid var(--navy); position:relative; padding:36px; background: var(--paper); }

.form-frame::before, .form-frame::after{ content:""; position:absolute; width:14px; height:14px; border: 2px solid var(--logo-green); }

.form-frame::before{ top:-2px; left:-2px; border-right:none; border-bottom:none; }

.form-frame::after{ bottom:-2px; right:-2px; border-left:none; border-top:none; }

.form-head{ display:flex; justify-content:space-between; font-family:var(--mono); font-size:18px; letter-spacing:0.08em; text-transform:uppercase; color: var(--cyan-dim); border-bottom:1px solid rgba(15,36,54,0.15); padding-bottom:14px; margin-bottom:24px; }

.field{ margin-bottom:20px; position:relative; }

.field::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background: var(--logo-green); transition: width .3s cubic-bezier(.2,.8,.2,1); }

.field:focus-within::after{ width:100%; }

.field label{ display:block; font-family: var(--mono); font-size:18px; letter-spacing:0.08em; text-transform:uppercase; color: var(--ink-soft); margin-bottom:8px; }

.field input, .field textarea{
  width:100%; border:none; border-bottom:1px solid rgba(15,36,54,0.3); background:transparent;
  font-family: var(--body); font-size:18px; padding:9px 2px; color: var(--ink); outline:none;
}

.field input:focus, .field textarea:focus{ border-color: var(--logo-green); }

.field textarea{ resize:vertical; min-height:90px; }

.form-note{ font-size:18px; color: var(--ink-soft); margin-top:18px; opacity:0.75; }

/* ---------- CTA strip (used on several pages) ---------- */
.cta-strip{ background: var(--navy-2); color: var(--paper); padding: 110px 0; text-align:center; min-height:50vh; display:flex; align-items:center; }

.cta-strip .wrap{ width:100%; }

.cta-strip h2{ font-size:36px; margin-bottom:22px; }

.cta-strip p{ color: rgba(245,241,232,0.75); max-width:560px; margin:0 auto 32px; font-size:18px; }

/* ---------- alternating section color modifiers ---------- */
/* Add class="on-dark" to .split / .industries / .projects-grid, or
   class="on-light" to .offices, to flip that section's color scheme —
   used to create clear visual breaks between homepage sections. */
.split.on-dark{ background: var(--navy); }

.split.on-dark h2{ color: var(--paper); }

.split.on-dark p{ color: rgba(245,241,232,0.78); }

.split.on-dark .eyebrow{ color: var(--cyan); }

.split.on-dark .eyebrow::before{ background: var(--logo-green); }

.split.on-dark .offers li{ color: rgba(245,241,232,0.78); border-top-color: rgba(126,194,227,0.18); }

.split.on-dark .offers li:last-child{ border-bottom-color: rgba(126,194,227,0.18); }

.split.on-dark .btn.ghost{ border-color: var(--cyan-dim); color: var(--cyan); }

.split.on-dark .btn.ghost:hover{ background: var(--cyan); color: var(--navy); }

.industries.on-dark{ background: var(--navy); }

.industries.on-dark h2{ color: var(--paper); }

.industries.on-dark .grid-6{ background: rgba(126,194,227,0.18); border-color: rgba(126,194,227,0.18); }

.industries.on-dark .ind-card{ background: var(--navy); }

.industries.on-dark .ind-card:hover{ background: var(--navy-2); }

.industries.on-dark .ind-card h3{ color: var(--paper); }

.industries.on-dark .ind-card p{ color: rgba(245,241,232,0.72); }

.projects-grid.on-dark{ background: var(--navy); }

.projects-grid.on-dark h2{ color: var(--paper); }

.projects-grid.on-dark .proj-list{ background: rgba(126,194,227,0.18); border-color: rgba(126,194,227,0.18); }

.projects-grid.on-dark .proj-card{ background: var(--navy); }

.projects-grid.on-dark .proj-card h3{ color: var(--paper); }

.projects-grid.on-dark .proj-card p{ color: rgba(245,241,232,0.72); }

.projects-grid.on-dark .proj-card .meta{ color: rgba(245,241,232,0.6); border-top-color: rgba(126,194,227,0.18); }

.projects-grid.on-dark .proj-card .meta b{ color: var(--paper); }

.projects-grid.on-dark .proj-note{ color: rgba(245,241,232,0.55); }

.offices.on-light{ background: var(--paper); color: var(--ink); }

.offices.on-light h2{ color: var(--navy); }

.offices.on-light .off-grid{ background: rgba(15,36,54,0.12); border-color: rgba(15,36,54,0.12); }

.offices.on-light .off-card{ background: var(--paper); }

.offices.on-light .off-card .eyebrow{ color: var(--cyan-dim); }

.offices.on-light .off-card .eyebrow::before{ background: var(--logo-green); }

.offices.on-light .off-card address{ color: var(--ink-soft); }

.offices.on-light .off-card .tel{ color: var(--cyan-dim); }

/* ---------- footer ---------- */
footer.site{ background: var(--navy-2); color: rgba(245,241,232,0.75); padding: 30px 0; font-family: var(--mono); font-size:12px; }

footer.site .wrap{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }

footer.site a{ color: var(--cyan); }

/* ---------- homepage footer (matches sketch: link grid + bottom bar) ---------- */
.site-footer{ background: var(--navy); color: rgba(245,241,232,0.8); padding: 70px 0 0; }

.footer-links{ display:grid; grid-template-columns: repeat(4,1fr); gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(126,194,227,0.16); }

.footer-col h4{
  font-family: var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
  color: var(--cyan); margin-bottom:20px; font-weight:600;
}

.footer-col a{
  display:block; font-size:14.5px; color: rgba(245,241,232,0.72); padding:7px 0;
  transition: color .15s ease;
}

.footer-col a:hover{ color: var(--paper); }

.footer-bottom{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:34px 0; flex-wrap:wrap; }

.footer-logo img{ height:44px; width:auto; }

.footer-email{ font-family: var(--mono); font-size:14px; color: var(--paper); letter-spacing:0.02em; }

.footer-social{ display:flex; gap:14px; }

.footer-social a{
  width:38px; height:38px; border:1px solid rgba(126,194,227,0.3); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color: var(--cyan);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.footer-social a:hover{ background: var(--cyan); color: var(--navy); border-color: var(--cyan); }

.footer-copy{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  padding:22px 0; border-top:1px solid rgba(126,194,227,0.14);
  font-family: var(--mono); font-size:11.5px; color: rgba(245,241,232,0.55);
}

.footer-copy a{ color: var(--cyan); }

/* ---------- scroll reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }

.reveal.is-visible{ opacity:1; transform:translateY(0); }

.reveal-group .reveal:nth-child(2){ transition-delay:.1s; }

.reveal-group .reveal:nth-child(3){ transition-delay:.2s; }

.reveal-group .reveal:nth-child(4){ transition-delay:.3s; }

.reveal-group .reveal:nth-child(5){ transition-delay:.4s; }

.off-card{ transition: transform .3s ease, background .3s ease; }

.off-card:hover{ transform: translateY(-6px); background: var(--navy-2); }

/* ---------- about pillars (History / Vision / Mission) ---------- */
.pillars{ background: var(--paper); min-height:100vh; display:flex; align-items:center; padding: 80px 0; }

.pillars .wrap{ width:100%; }

.pillars .head{ max-width:680px; margin-bottom:64px; }

.pillars .head h2{ font-size:44px; color: var(--navy); }

.pillars .head p{ color: var(--ink-soft); font-size:17px; margin-top:18px; line-height:1.7; }

.pillar-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:1px; background: rgba(15,36,54,0.12); border:1px solid rgba(15,36,54,0.12); }

.pillar-card{ background: var(--paper); padding:52px 38px; }

.pillar-card .num{ font-family: var(--mono); font-size:12px; color: var(--logo-green); letter-spacing:0.1em; display:block; margin-bottom:24px; }

.pillar-card h3{ font-size:27px; color: var(--navy); margin-bottom:20px; text-transform:none; }

.pillar-card p{ font-size:15.5px; color: var(--ink-soft); line-height:1.7; }

.pillars-cta{ margin-top:44px; text-align:center; }
.pillars-cta .btn{ font-size:15px; padding:16px 30px; }

/* ---------- about page: our partners ---------- */
.partners-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(15,36,54,0.1); border:1px solid rgba(15,36,54,0.1); margin-top:40px; }
.partner-card{ background:var(--paper); padding:36px 28px; text-align:center; }
.partner-card .logo-placeholder{
  width:100%; height:70px; border:1px dashed rgba(15,36,54,0.25);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:11px; color:var(--ink-soft); letter-spacing:0.05em; text-transform:uppercase;
  margin-bottom:18px;
}
.partner-card h3{ font-size:16px; color:var(--navy); margin-bottom:6px; text-transform:none; }
.partner-card p{ font-size:13px; color:var(--ink-soft); }

@media (max-width: 900px){
  .partners-grid{ grid-template-columns:1fr; }
}

/* ---------- interactive services (tab list + full-bleed image panel) ---------- */
.services-int{
  background: var(--navy); color: var(--paper);
  position:relative; overflow:hidden;
  min-height:100vh; display:flex; align-items:center;
  padding: 80px 0;
}

.services-int .wrap{ position:relative; z-index:2; width:100%; pointer-events:none; }

.services-int .wrap > *{ pointer-events:auto; }

.services-int .head{ max-width:600px; margin-bottom:56px; }

.services-int .head h2{ font-size:44px; color: var(--paper); }

.services-int .head p{ color: rgba(245,241,232,0.72); font-size:16px; margin-top:14px; max-width:600px; }

.svc-list{ max-width:520px; }

.svc-list button{
  display:flex; align-items:center; justify-content:space-between; width:100%; text-align:left;
  background:none; border:none; border-bottom:1px solid rgba(126,194,227,0.14); cursor:pointer;
  padding:28px 30px; font-family: var(--display); font-size:19px; font-weight:600; letter-spacing:0.01em;
  color: rgba(245,241,232,0.65); transition: background .2s ease, color .2s ease;
}

.svc-list button:last-child{ border-bottom:none; }

.svc-list button .idx{ font-family: var(--mono); font-size:11px; color: var(--cyan-dim); font-weight:400; }

.svc-list button:hover{ background: rgba(126,194,227,0.06); color: var(--paper); }

.svc-list button.active{
  background: rgba(126,194,227,0.1); color: var(--paper);
  border-left:3px solid var(--logo-green); padding-left:27px;
}

/* Full-bleed panel: pulled out of .wrap entirely, spans the section's
   true full height and reaches the real right edge of the browser. */
.svc-panel{
  position:absolute; top:0; right:0; bottom:0; left:38%;
  z-index:1;
}

.svc-pane{
  position:absolute; inset:0; overflow:hidden;
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  opacity:0; pointer-events:none; z-index:0;
  transition: opacity .2s ease;
}

.svc-pane.active{ opacity:1; pointer-events:auto; z-index:1; }

.svc-bg{ position:absolute; inset:0; z-index:0; }

.svc-bg svg, .svc-bg img{ width:100%; height:100%; object-fit:cover; display:block; }

.svc-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(90deg, rgba(15,36,54,0.9) 0%, rgba(15,36,54,0.6) 35%, rgba(15,36,54,0) 50%);
}

.svc-content{ position:relative; z-index:2; padding:0 48px; max-width:560px; }

.svc-content .tag, .svc-content h3, .svc-content p, .svc-content a.btn{
  opacity:0; transform:translateY(16px);
  transition: opacity .45s ease, transform .45s cubic-bezier(.2,.8,.2,1);
}

.svc-pane.active .svc-content .tag{ opacity:1; transform:translateY(0); transition-delay:.1s; }

.svc-pane.active .svc-content h3{ opacity:1; transform:translateY(0); transition-delay:.18s; }

.svc-pane.active .svc-content p{ opacity:1; transform:translateY(0); transition-delay:.26s; }

.svc-pane.active .svc-content a.btn{ opacity:1; transform:translateY(0); transition-delay:.34s; }

.svc-content .tag{ font-family: var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color: var(--cyan); margin-bottom:18px; display:block; }

.svc-content h3{ font-size:32px; color: var(--paper); margin-bottom:20px; text-transform:none; }

.svc-content p{ font-size:16px; color: rgba(245,241,232,0.78); margin-bottom:32px; line-height:1.75; }

.svc-content a.btn{ padding:16px 30px; font-size:14px; }

/* ---------- industries: photo-background cards ---------- */
.ind-photo{ background: var(--paper); min-height:100vh; display:flex; align-items:center; padding: 80px 0; }

.ind-photo{ position:relative; overflow:hidden; }
.ind-photo-bg{
  position:absolute; top:0; left:0; width:100%; height:100%;
  z-index:0;
}
.ind-photo-bg img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.ind-photo-bg img{
  width:100%; height:100%; object-fit:cover; display:block;
  opacity:0.08;
}

.ind-photo-corners{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.corner{
  position:absolute; width:360px; height:360px;
  border-radius:50%;
  background: rgba(15,36,54,0.06);
}
.corner-tl{ top:-90px; left:-90px; }
.corner-tr{ top:-90px; right:-90px; }
.corner-bl{ bottom:-90px; left:-90px; }
.corner-br{ bottom:-90px; right:-90px; }

.ind-photo .wrap{ position:relative; z-index:1; }

.ind-photo .wrap{ width:100%; }

.ind-photo .head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; gap:20px; flex-wrap:wrap; }

.ind-photo .head h2{ font-size:44px; color: var(--navy); }

.ind-photo-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:50px;
}
.ind-photo-card{
  flex: 0 0 calc((100% - 150px) / 4);
}

.ind-photo-card{
  position:relative; height:400px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
  padding:34px; color:#fff; text-decoration:none; border:1px solid rgba(15,36,54,0.1);
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease;
  transform-origin:center;
}

.ind-photo-card:hover{
  transform: scale(1.05);
  z-index:5;
  box-shadow: 0 24px 48px rgba(0,0,0,0.35);
}

.ind-photo-card .art{ position:absolute; inset:0 0 0 0; top:0; left:0; right:0; bottom:0; z-index:0; }

.ind-photo-card .scrim2{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(11,27,41,0) 0%, rgba(11,27,41,0) 50%, rgba(11,27,41,0.92) 100%);
}

.ind-photo-card .body{ position:relative; z-index:2; }

.ind-photo-card h3{ font-size:26px; margin-bottom:12px; text-transform:none; color:#fff; }

.ind-photo-card .more{ font-family: var(--mono); font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color: var(--cyan); border-bottom:1px solid var(--cyan); padding-bottom:2px; display:inline-block; transition: gap .2s ease; }

.ind-photo-card .extra{
  max-height:0; opacity:0; overflow:hidden; margin-top:0;
  font-size:14px; line-height:1.6; color: rgba(255,255,255,0.85);
  transition: max-height .45s ease, opacity .35s ease, margin-top .45s ease;
}

@media (max-width: 900px){
  .ind-photo-card{ flex: 0 0 100%; }
}

.ind-photo-card:hover .extra{ max-height:120px; opacity:1; margin-top:12px; }

/* ---------- featured projects: scrollable carousel ---------- */
.proj-carousel{
  background: var(--navy); min-height:100vh; display:flex; align-items:center;
  padding-top: 60px;
  padding-bottom: 80px;
  overflow:hidden;
}

.proj-carousel .wrap{ width:100%; }

.proj-carousel .head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:52px; gap:20px; flex-wrap:wrap; }

.proj-carousel .head h2{ font-size:44px; color: var(--paper); }

.proj-carousel .head p{ color: rgba(245,241,232,0.72); font-size:16px; margin-top:12px; max-width:520px; }

.carousel-nav{ display:flex; justify-content:center; gap:10px; margin-top:36px; }

.carousel-nav button{
  width:42px; height:42px; border:1px solid var(--cyan-dim); background:transparent; color: var(--cyan);
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition: background .15s ease, color .15s ease;
}

.carousel-nav button:hover{ background: var(--cyan); color: var(--navy); }

.carousel-track{
  display:flex; gap:20px; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x proximity;
  padding-top:14px;
  padding-bottom:22px;
  padding-left:150px;
  -ms-overflow-style:none; scrollbar-width:none;
}
.carousel-spacer{ flex:0 0 100px; scroll-snap-align:start; }

.carousel-track::-webkit-scrollbar{ display:none; }

.proj-slide{
  display:block; text-decoration:none; position:relative; overflow:hidden;
  flex: 0 0 420px; height:400px; scroll-snap-align:start; background: var(--navy-2); border:1px solid rgba(126,194,227,0.18);
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease;
  transform-origin:center;
}

.proj-slide:hover{
  transform: scale(1.05);
  z-index:5;
  box-shadow: 0 24px 48px rgba(0,0,0,0.4);
}

.proj-slide .art{ position:absolute; inset:0; z-index:0; }
.proj-slide .art img{ width:100%; height:100%; object-fit:cover; display:block; }

.proj-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(90deg, rgba(11,27,41,0.55) 0%, rgba(11,27,41,0.55) 25%, rgba(11,27,41,0) 40%);
}

.proj-slide .body{ position:relative; z-index:2; padding:30px 32px; height:100%; display:flex; flex-direction:column; justify-content:flex-end; }

.proj-slide .tag{
  font-family: var(--mono); font-size:15px; letter-spacing:0.08em; text-transform:uppercase;
  color: var(--logo-green); font-weight: 700;
  display:block;
  margin-bottom:0;
}

.proj-slide h3{ font-size:22px; color: var(--paper); margin-bottom:12px; text-transform:none; }

.proj-slide p{ font-size:15px; color: rgba(245,241,232,0.68); line-height:1.6; }

.proj-slide .extra{
  max-height:0; opacity:0; overflow:hidden; margin-top:0;
  border-top:1px solid rgba(126,194,227,0.16); padding-top:0;
  transition: max-height .45s ease, opacity .35s ease, margin-top .45s ease, padding-top .45s ease;
}

.proj-slide:hover .extra{ max-height:80px; opacity:1; margin-top:18px; padding-top:16px; }

.proj-slide .extra span{ display:block; font-family: var(--mono); font-size:11px; color: var(--cyan-dim); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:4px; }

.proj-slide .extra b{ font-weight:500; color: rgba(245,241,232,0.85); font-size:13.5px; }

.proj-slide.see-all{
  display:flex; align-items:center; justify-content:center; text-align:center; text-decoration:none;
  background: transparent; border:1px dashed rgba(126,194,227,0.4); padding:30px;
}

.proj-slide.see-all span{ font-family: var(--display); font-size:22px; color: var(--paper); font-weight:600; }

.proj-slide.see-all .arrow-lg{ display:block; margin-top:14px; color: var(--cyan); font-size:26px; }

/* ---------- responsive ---------- */
@media (max-width: 900px){
  nav.main{ display:none; position:absolute; top:100%; left:0; right:0; background: var(--navy); border-top:1px solid rgba(126,194,227,0.18); max-height:80vh; overflow-y:auto; }
  nav.main.open{ display:block; }
  nav.main > ul{ flex-direction:column; gap:0; padding:10px 28px 20px; }
  nav.main > ul > li > a{ padding:12px 0; border-bottom:1px solid rgba(126,194,227,0.1); }
  .ind-photo-grid{ grid-template-columns: 1fr; }
  .has-dropdown{ justify-content:space-between; }
  .caret{ position:relative; }
  .caret::before{
    content:"";
    position:absolute;
    top:-14px; left:-14px; right:-14px; bottom:-14px;
  }
  .nav-toggle{ display:block; }
  .dropdown{ position:static; border:none; background:rgba(126,194,227,0.05); display:none; }
  li.has-dropdown-wrap.open .dropdown{ display:block; }
  .dropdown li a{ padding-left:16px; }

  .intro .wrap, .split .wrap, .capabilities .wrap, .contact .wrap{ grid-template-columns:1fr; }
  .stats .wrap{ grid-template-columns: repeat(2,1fr); row-gap:26px; }
  .stats .stat:nth-child(3){ border-left:none; }
  .grid-6, .proj-list{ grid-template-columns: 1fr; }
  .off-grid{ grid-template-columns: 1fr; }
  .pillar-grid{ grid-template-columns: 1fr; }
  .services-int .layout{ grid-template-columns: 1fr; }
  .svc-list{ border-right:none; border-bottom:1px solid rgba(126,194,227,0.2); }
  .proj-slide{ flex-basis: 280px; }

  .pillars, .services-int, .ind-photo, .proj-carousel{ min-height:auto; display:block; padding:64px 0; }
  .cta-strip{ min-height:auto; display:block; padding:64px 0; }
  .ind-photo-card{ height:300px; }
  .footer-links{ grid-template-columns: repeat(2,1fr); gap:32px; }
  .footer-bottom{ justify-content:center; text-align:center; }

  /* fix: services-int panel was absolutely positioned over the heading/list on mobile */
  .svc-panel{ position:relative; left:0; right:0; top:0; bottom:0; height:360px; margin-top:28px; }
  .svc-content{ padding:0 24px; }
  .svc-content h3{ font-size:24px; }
  .svc-content p{ font-size:15px; margin-bottom:20px; }
  .svc-content a.btn{ padding:12px 20px; font-size:12px; }

  /* fix: ind-photo-grid's 120px side padding left almost no room on mobile,
     and the nth-child column placement from desktop broke a 1-column grid */
  .ind-photo-grid{ padding-left:20px; padding-right:20px; }
  .ind-photo-card:nth-child(5), .ind-photo-card:nth-child(6){ grid-column:auto; }
}

@media (max-width: 560px){
  .intro .yrs{ font-size:56px; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; }
}

/* ---------- about page: make each content section fill a screen ---------- */
#story, #mission, #vision{
  min-height:100vh; display:flex; align-items:center;
}

@media (max-width: 900px){
  #story, #mission, #vision{
    min-height:auto; display:block; padding:64px 0;
  }
}

#mission h2, #vision h2{
  font-size:44px;
}
#mission p, #vision p,
#mission .checklist li, #vision .checklist li{
  font-size:18px;
}

#story .copy p{
  font-size:18px;
}

.offices h2{
  font-size:44px;
}
.contact h2{
  font-size:44px;
}
.contact p.lede{
  font-size:18px;
}
.off-card address{
  font-size:15px;
}

.hero-slider{ position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.hero-slide-track{ display:flex; width:300%; height:100%; transition: transform 1s cubic-bezier(.4,0,.2,1); }
.hero-slide{ flex:0 0 33.3333%; height:100%; }
.hero-slide img{ width:100%; height:100%; object-fit:cover; display:block; }

.hero-content-track{ position:relative; z-index:2; height:100%; }
.hero-content{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-start;
  padding-top:300px;
  max-width:1650px; margin:0 auto; padding-left:28px; padding-right:28px;
  opacity:0; pointer-events:none; transition: opacity .4s ease;
}

.hero-content.active{ opacity:1; pointer-events:auto; }

.hero-content .eyebrow, .hero-content h1, .hero-content p.lede, .hero-content .cta-row{
  opacity:0; transform:translateY(18px);
  transition: opacity .5s ease, transform .5s cubic-bezier(.2,.8,.2,1);
}
.hero-content.active .eyebrow{ opacity:1; transform:translateY(0); transition-delay:.15s; }
.hero-content.active h1{ opacity:1; transform:translateY(0); transition-delay:.25s; }
.hero-content.active p.lede{ opacity:1; transform:translateY(0); transition-delay:.35s; }
.hero-content.active .cta-row{ opacity:1; transform:translateY(0); transition-delay:.45s; }

.hero-dots{ position:absolute; z-index:3; bottom:34px; right:40px; display:flex; gap:10px; }
.hero-dots .dot{ width:10px; height:10px; border-radius:50%; border:1px solid rgba(245,241,232,0.5); background:transparent; cursor:pointer; padding:0; transition: background .2s ease, transform .2s ease; }
.hero-dots .dot.active{ background: var(--paper); transform:scale(1.2); }

.hero-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:52px; height:64px;
  border:1px solid rgba(245,241,232,0.35);
  background: rgba(15,36,54,0.35);
  color: var(--paper);
  font-family: var(--mono);
  font-size:20px;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.hero-arrow:hover{
  background: var(--paper);
  color: var(--navy);
  border-color: var(--paper);
}
.hero-arrow-left{ left:0; }
.hero-arrow-right{ right:0; }

@media (max-width: 700px){
  .hero-arrow{ display:none; }
}

nav.main > ul > li:first-child{ margin-right:100px; }

.carousel-scrollbar{ margin-top:20px; }
.carousel-scrollbar-track{
  position:relative; width:100%; height:4px;
  background: rgba(193,96,44,0.22);
  border-radius:2px;
  cursor:pointer;
}
.carousel-scrollbar-thumb{
  position:absolute; top:0; left:0; height:100%;
  background: var(--logo-green);
  border-radius:2px;
  cursor:grab;
}
.carousel-scrollbar-thumb:active{ cursor:grabbing; }
/* ---------- services page: alternating full-detail feature sections ---------- */
.svc-feature{ background: var(--paper); padding:100px 0; border-bottom:1px solid rgba(15,36,54,0.08); overflow:hidden; }

.svc-feature.on-dark{ background: var(--navy); color: var(--paper); border-bottom-color: rgba(126,194,227,0.14); }

.svc-feature .wrap{ display:grid; grid-template-columns: 1fr 1fr; gap:70px; align-items:center; }

.svc-feature-text{ order:1; }

.svc-feature-media{ position:relative; order:2; }

.svc-feature.reverse .svc-feature-text{ order:2; }

.svc-feature.reverse .svc-feature-media{ order:1; }

.svc-feature-media .frame{
  position:relative; aspect-ratio: 4 / 3; overflow:hidden;
  background: var(--paper-dim); border:1px solid rgba(15,36,54,0.1);
}

.svc-feature.on-dark .svc-feature-media .frame{ background: var(--navy-2); border-color: rgba(126,194,227,0.18); }

.svc-feature-media .frame img{ width:100%; height:100%; object-fit:cover; display:block; }

.svc-feature-media .bignum{
  position:absolute; bottom:-28px; right:-14px; z-index:2;
  font-family: var(--display); font-size:140px; font-weight:700; line-height:1;
  color: var(--paper); -webkit-text-stroke: 1.5px var(--logo-green); text-stroke: 1.5px var(--logo-green);
  opacity:0.9; pointer-events:none;
}

.svc-feature.on-dark .svc-feature-media .bignum{ color: var(--navy); -webkit-text-stroke: 1.5px var(--logo-green); }

.svc-feature-text .eyebrow{ margin-bottom:16px; }

.svc-feature-text h2{ font-size:36px; color: var(--navy); margin-bottom:20px; line-height:1.05; }

.svc-feature.on-dark .svc-feature-text h2{ color: var(--paper); }

.svc-feature-text > p{ font-size:18px; color: var(--ink-soft); line-height:1.75; margin-bottom:30px;}

.svc-feature.on-dark .svc-feature-text > p{ color: rgba(245,241,232,0.78); }

.svc-feature-text .included-label{
  font-family: var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  color: var(--cyan-dim); margin-bottom:14px; display:block;
}

.svc-feature.on-dark .svc-feature-text .included-label{ color: var(--cyan); }

.svc-feature-text .checklist{ max-width:520px; margin-bottom:32px; }

.svc-feature.on-dark .checklist li{ color: rgba(245,241,232,0.8); border-top-color: rgba(126,194,227,0.16); }

.svc-feature.on-dark .checklist li:last-child{ border-bottom-color: rgba(126,194,227,0.16); }

.svc-feature.on-dark .checklist li strong{ color: var(--paper); }

@media (max-width: 900px){
  .svc-feature .wrap{ grid-template-columns: 1fr; gap:36px; }
  .svc-feature-media{ order:1 !important; }
  .svc-feature-text{ order:2 !important; }
  .svc-feature-media .bignum{ font-size:90px; bottom:-18px; }
}

/* ---------- services page: other available services (grouped, dark) ---------- */
.other-services{ background: var(--navy); color: var(--paper); padding: 90px 0; }

.other-services .head{ max-width:680px; margin-bottom:50px; }

.other-services .head h2{ font-size:44px; color: var(--paper); }

.other-services .head p{ color: rgba(245,241,232,0.72); font-size:16px; margin-top:14px; }

.other-groups{ display:grid; grid-template-columns: 1fr 1fr; gap:60px 70px; }

.other-group h3{ font-size:17px; color: var(--cyan); text-transform:none; margin-bottom:18px; letter-spacing:0.02em; }

.other-group ul{ display:flex; flex-direction:column; gap:0; }

.other-group li{
  font-size:18px; color: rgba(245,241,232,0.8); padding:11px 0;
  border-top:1px solid rgba(126,194,227,0.14); display:flex; align-items:flex-start; gap:10px;
}

.other-group li:last-child{ border-bottom:1px solid rgba(126,194,227,0.14); }

.other-group li::before{ content:"—"; color: var(--rust); font-family: var(--mono); font-size:18px; flex:none; }

@media (max-width: 900px){
  .other-groups{ grid-template-columns: 1fr; gap:40px; }
}

/* ---------- services page: varied content structures per service ---------- */
.svc-feature-text .steps{ counter-reset:stepnum; margin-bottom:28px; }
.svc-feature-text .steps li{
  position:relative; padding-left:44px; padding-top:2px; padding-bottom:18px;
  font-size:18px; color:var(--ink-soft); line-height:1.65; list-style:none;
}
.svc-feature-text .steps li:last-child{ padding-bottom:0; }
.svc-feature-text .steps li::before{
  counter-increment:stepnum;
  position:absolute; left:0; top:0; width:28px; height:28px;
  border:1px solid var(--logo-green); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:12px; color:var(--logo-green); font-weight:700;
}
.svc-feature-text .steps li strong{
  color:var(--ink); display:block; margin-bottom:2px;
  font-family:var(--display); text-transform:uppercase; font-size:13px; letter-spacing:0.03em;
}
.svc-feature.on-dark .steps li{ color:rgba(245,241,232,0.78); }
.svc-feature.on-dark .steps li strong{ color:var(--paper); }
.svc-feature.on-dark .steps li::before{ color:var(--logo-green); border-color:var(--logo-green); }

.svc-feature-text .criteria-list{ margin-bottom:28px; }
.svc-feature-text .criteria-list li{
  padding:12px 0; border-top:1px solid rgba(15,36,54,0.1); font-size:18px; color:var(--ink-soft); line-height:1.6; list-style:none;
}
.svc-feature-text .criteria-list li:last-child{ border-bottom:1px solid rgba(15,36,54,0.1); }
.svc-feature-text .criteria-list li strong{
  color:var(--ink); font-family:var(--display); text-transform:uppercase; font-size:13.5px; letter-spacing:0.02em; display:block; margin-bottom:3px;
}
.svc-feature.on-dark .criteria-list li{ color:rgba(245,241,232,0.78); border-top-color:rgba(126,194,227,0.16); }
.svc-feature.on-dark .criteria-list li:last-child{ border-bottom-color:rgba(126,194,227,0.16); }
.svc-feature.on-dark .criteria-list li strong{ color:var(--paper); }

.svc-feature-text .mini-groups{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:28px; }
.svc-feature-text .mini-group h4{
  font-family:var(--mono); font-size:15px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--cyan-dim); margin-bottom:10px;
}
.svc-feature.on-dark .mini-group h4{ color:var(--cyan); }
.svc-feature-text .mini-group ul{ display:flex; flex-direction:column; gap:7px; }
.svc-feature-text .mini-group li{ font-size:18px; color:var(--ink-soft); padding-left:14px; position:relative; list-style:none; }
.svc-feature-text .mini-group li::before{ content:"\2013"; position:absolute; left:0; color:var(--logo-green); }
.svc-feature.on-dark .mini-group li{ color:rgba(245,241,232,0.78); }

.svc-feature-text .compare-cards{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:28px; }
.svc-feature-text .compare-card{ border:1px solid rgba(15,36,54,0.12); padding:18px 20px; }
.svc-feature.on-dark .compare-card{ border-color:rgba(126,194,227,0.18); }
.svc-feature-text .compare-card h4{ font-family:var(--display); font-size:15px; color:var(--navy); text-transform:uppercase; margin-bottom:8px; }
.svc-feature.on-dark .compare-card h4{ color:var(--paper); }
.svc-feature-text .compare-card p{ font-size:18px; color:var(--ink-soft); margin:0; line-height:1.55; }
.svc-feature.on-dark .compare-card p{ color:rgba(245,241,232,0.75); }

.svc-feature-text .note{
  font-size:14.5px; color:var(--ink-soft); font-style:italic; margin-top:2px; margin-bottom:28px;
  padding-left:16px; border-left:2px solid var(--logo-green); line-height:1.6;
}
.svc-feature.on-dark .note{ color:rgba(245,241,232,0.75); }

.svc-feature-text .sub-head{
  font-family:var(--mono); font-size:15px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--cyan-dim); margin-bottom:14px; margin-top:4px; display:block;
}
.svc-feature.on-dark .sub-head{ color:var(--cyan); }

@media (max-width: 900px){
  .svc-feature-text .mini-groups{ grid-template-columns:1fr; gap:22px; }
  .svc-feature-text .compare-cards{ grid-template-columns:1fr; gap:14px; }
}

/* ---------- industries-served page: example projects mini-list ---------- */
.svc-feature-text .mini-projects{ margin-bottom:28px; }
.svc-feature-text .mini-projects li{
  padding:13px 0; border-top:1px solid rgba(15,36,54,0.1); list-style:none;
  font-size:18px; color:var(--ink-soft); line-height:1.6;
}
.svc-feature-text .mini-projects li:last-child{ border-bottom:1px solid rgba(15,36,54,0.1); }
.svc-feature-text .mini-projects li strong{
  color:var(--ink); font-family:var(--display); font-size:15px; text-transform:none; display:block; margin-bottom:2px;
}
.svc-feature.on-dark .mini-projects li{ color:rgba(245,241,232,0.78); border-top-color:rgba(126,194,227,0.16); }
.svc-feature.on-dark .mini-projects li:last-child{ border-bottom-color:rgba(126,194,227,0.16); }
.svc-feature.on-dark .mini-projects li strong{ color:var(--paper); }

[id]{
  scroll-margin-top: 180px;
}

.hero-scroll-cue{
  position:absolute; z-index:3; bottom:34px; left:40px;
  background:none; border:none; cursor:pointer;
  font-family: var(--mono); font-size:18px; letter-spacing:0.1em; text-transform:uppercase;
  color: var(--paper); padding:8px 0;
  transition: color .2s ease;
}
.hero-scroll-cue:hover{ color: var(--paper); }

/* ---------- leadership page: stacked bio format (replaces leader-grid/leader-card) ---------- */
.leader-bio{ padding:56px 0; border-bottom:1px solid rgba(15,36,54,0.1); }
.leader-bio:last-child{ border-bottom:none; }

.leader-bio .wrap{ display:grid; grid-template-columns: 1fr 320px; gap:56px; align-items:start; }

.leader-bio h3{ font-size:27px; color:var(--navy); margin-bottom:4px; text-transform:none; }

.leader-bio .title{
  font-family:var(--mono); font-size:15px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--logo-green); display:block; margin-bottom:22px;
}

.leader-bio p{ font-size:15px; color:var(--ink-soft); line-height:1.75; margin-bottom:16px; }
.leader-bio p:last-child{ margin-bottom:0; }

.leader-bio .photo-placeholder{
  width:100%; aspect-ratio:3/4; border:1px dashed rgba(15,36,54,0.25);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:20px;
  font-family:var(--mono); font-size:11px; color:var(--ink-soft); letter-spacing:0.05em; text-transform:uppercase;
  line-height:1.6;
}

@media (max-width: 900px){
  .leader-bio .wrap{ grid-template-columns:1fr; gap:24px; }
  .leader-bio .photo-placeholder{ aspect-ratio:4/3; max-width:320px; margin:0 auto; }

    nav.main ul.dropdown{
    display:none;
    position:static;
    grid-template-columns: 1fr;
    width:auto;
    padding:0;
    border:none;
    background:rgba(126,194,227,0.05);
    opacity:1;
    transform:none;
    pointer-events:auto;
    justify-content:flex-start;
  }
  li.has-dropdown-wrap.open nav.main ul.dropdown{
    display:block;
  }
  .dropdown li a{ padding-left:16px; }
  body.home nav.main a{ color: var(--paper); }
}

.svc-feature-media{ align-self: start; }

.svc-feature.no-media .wrap{ grid-template-columns: 1fr; }
.svc-feature.no-media .svc-feature-text{ max-width:100%; }

.eyebrow.no-mark{ padding-left:0; }
.eyebrow.no-mark::before{ display:none; }

nav.main ul.dropdown li:nth-child(7):last-child{
  grid-column: 1 / -1;
  text-align: center;
}

.email-link{
  color:#105689;
  text-decoration:underline;
  text-underline-offset:3px;
  font-weight:600;
  transition: color .2s ease;
}
.email-link:hover{ color: var(--logo-green); }

/* lighter blue for dark backgrounds */
.cta-strip .email-link, .on-dark .email-link{ color: var(--cyan); }
.cta-strip .email-link:hover, .on-dark .email-link:hover{ color: var(--paper); }