/*
Theme Name: Jianan Engineering
Theme URI: https://jianan.in
Author: Jianan Engineering Pvt. Ltd.
Description: Custom industrial/EPC theme for Jianan Engineering Pvt. Ltd. — turnkey civil, structural and MEP construction. Elementor-compatible.
Version: 5.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jianan-engineering
*/

/* ============================================================
   JIANAN ENGINEERING — Design tokens (matched to reference EPC site)
   Palette:  navy #1E2A5E · navy-deep #12173A · gold #F0C43C
             blue-tint #EAF2FC · yellow-tint #FDF3D9 · slate #6B7280
   Type:     Playfair Display (display/serif) / Inter (body, nav, buttons)
   ============================================================ */

:root{
  --navy:#1E2A5E;
  --navy-deep:#12173A;
  --navy-soft:#2A3872;
  --gold:#F0C43C;
  --gold-deep:#D9AC1F;
  --cream:#FAF8F2;
  --blue-tint:#EAF2FC;
  --blue-tint-deep:#D9E9FB;
  --yellow-tint:#FDF3D9;
  --paper:#FFFFFF;
  --line:#E7E9F0;
  --slate:#6B7280;
  --slate-light:#99A1AF;
  --ok:#2E7D4F;
  --warn:#C2851E;
  --susp:#9A2B2B;

  --display: 'Playfair Display', 'Georgia', serif;
  --body: 'Inter', -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', 'Courier New', monospace;

  --maxw: 1240px;
  --pad: clamp(20px, 5vw, 64px);
  --radius: 18px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: var(--body);
  color:#2A324A;
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  line-height: 1.65;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family: var(--display); margin:0; line-height:1.15; color:var(--navy); font-weight:700; }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }

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

/* ---------- eyebrow labels ---------- */
.eyebrow{
  font-family: var(--body);
  font-size: 13px;
  font-weight:600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--slate);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.eyebrow::before{
  content:"";
  width:8px; height:8px; border-radius:50%;
  background: var(--navy);
  display:inline-block;
}
.eyebrow.dash::before{ width:26px; height:2px; border-radius:0; }
.eyebrow.on-dark{ color: rgba(255,255,255,.75); }
.eyebrow.on-dark::before{ background: var(--gold); }

.mono-tag{
  font-family:var(--body);
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--slate);
}

/* ---------- headings: thin serif intro + bold serif emphasis ---------- */
.h-lead{ font-weight:400; }
.h-bold{ font-weight:800; }

/* ---------- buttons (pill-shaped) ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--body); font-size:15px; font-weight:600;
  padding:15px 30px;
  border-radius:999px;
  border:1.5px solid transparent;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
  white-space:nowrap;
}
.btn svg{ width:15px; height:15px; transition: transform .2s ease; }
.btn:hover svg{ transform: translateX(3px); }
.btn:active{ transform:scale(.98); }
.btn-gold{ background:var(--gold); color:var(--navy-deep); }
.btn-gold:hover{ background:var(--gold-deep); }
.btn-navy{ background:var(--navy); color:var(--paper); }
.btn-navy:hover{ background:var(--navy-deep); }
.btn-ghost-dark{ color:var(--paper); border-color:rgba(255,255,255,.55); background:transparent; }
.btn-ghost-dark:hover{ background:rgba(255,255,255,.12); }
.btn-ghost-light{ color:var(--navy); border-color:var(--navy); background:transparent; }
.btn-ghost-light:hover{ background:var(--navy); color:var(--paper); }
.btn-amber{ background:var(--gold); color:var(--navy-deep); }
.btn-amber:hover{ background:var(--gold-deep); }

/* circular arrow button (signature element) */
.arrow-btn{
  width:44px; height:44px; border-radius:50%;
  background:var(--navy); color:var(--paper);
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0; transition:background .2s ease, transform .2s ease;
}
.arrow-btn svg{ width:16px; height:16px; }
a:hover .arrow-btn, .proj-card:hover .arrow-btn, .sector-card:hover .arrow-btn{ background:var(--gold-deep); }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.topbar{
  background:linear-gradient(90deg,#3D4FC4,#5A4FD9);
  color:#fff; font-size:13.5px;
}
.topbar-inner{
  max-width:var(--maxw); margin:0 auto; padding:10px var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.topbar-left{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.topbar-left a{ display:flex; align-items:center; gap:8px; color:rgba(255,255,255,.95); }
.topbar-left svg{ width:14px; height:14px; }
.topbar-social{ display:flex; align-items:center; gap:14px; }
.topbar-social a{ width:26px; height:26px; display:flex; align-items:center; justify-content:center; }
.topbar-social svg{ width:14px; height:14px; }
@media (max-width:760px){ .topbar-left span:last-child{ display:none; } }

.site-header{
  position:sticky; top:0; z-index:100;
  background: rgba(255,255,255,.98);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  height:88px;
}
.logo{
  font-family:var(--display); font-weight:800; font-size:22px;
  color:var(--navy); letter-spacing:0;
  display:flex; flex-direction:column; line-height:1.02;
}
.logo span{
  font-family:var(--body); font-weight:600; font-size:10.5px;
  letter-spacing:.18em; color:var(--slate); margin-top:4px; text-transform:uppercase;
}
.nav-links{ display:flex; align-items:center; gap:36px; }
.nav-links a{
  font-family:var(--body); font-size:15px; font-weight:500;
  color:#3A4257;
  padding:6px 0; position:relative;
  transition:color .2s ease;
}
.nav-links a:hover{ color:var(--navy); }
.nav-links a.active{ color:var(--navy); font-weight:700; }
.nav-cta{ display:flex; align-items:center; gap:22px; }
.nav-phone{
  font-family:var(--body); font-size:14.5px; font-weight:600; color:var(--navy);
  display:flex; align-items:center; gap:8px;
}
.nav-phone svg{ width:14px; height:14px; color:var(--gold-deep); }
.nav-toggle{
  display:none; background:none; border:none; width:32px; height:24px; position:relative;
}
.nav-toggle span{
  position:absolute; left:0; right:0; height:2px; background:var(--navy);
  transition:.25s ease;
}
.nav-toggle span:nth-child(1){ top:0; }
.nav-toggle span:nth-child(2){ top:11px; }
.nav-toggle span:nth-child(3){ top:22px; }
.nav-toggle.open span:nth-child(1){ transform:translateY(11px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-11px) rotate(-45deg); }

@media (max-width:900px){
  .nav-links{
    position:fixed; inset:88px 0 0 0; background:var(--paper);
    flex-direction:column; justify-content:flex-start; padding:36px var(--pad); gap:26px;
    transform:translateX(100%); transition:transform .3s ease; z-index:99;
    border-top:1px solid var(--line);
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-links a{ font-size:17px; }
  .nav-phone{ display:none; }
  .nav-toggle{ display:block; }
}

/* ============================================================
   PAGE HERO (interior pages)
   ============================================================ */
.page-hero{
  background: var(--cream);
  color: var(--navy);
  padding: 76px 0 64px;
  position:relative; overflow:hidden;
}
.page-hero .wrap{ position:relative; z-index:2; }
.page-hero h1{ font-size:clamp(34px,5.2vw,58px); font-weight:400; max-width:820px; }
.page-hero h1 b{ font-weight:800; }
.page-hero .lede{ font-size:17px; color:var(--slate); max-width:620px; margin-top:16px; font-family:var(--body); }
.crumb{ font-family:var(--body); font-size:13px; font-weight:600; color:var(--slate); letter-spacing:.02em; margin-bottom:20px; }
.crumb a:hover{ color:var(--navy); }
.crumb .sep{ margin:0 8px; opacity:.5; }

/* ============================================================
   SECTIONS
   ============================================================ */
.section-dark, .section-steel, .section-concrete, .section-cream, .section-tint{ padding: 88px 0; }
@media (max-width:700px){ .section-dark, .section-steel, .section-concrete, .section-cream, .section-tint{ padding:56px 0; } }

/* Elementor / block-editor content appended below the theme's built-in
   sections on each page. Collapses to nothing when there's no extra
   content, and stays full-width so Elementor's own sections can go
   edge-to-edge when there is. */
.elementor-extra-content:empty{ display:none; }
.elementor-extra-content:not(:empty){ padding-top:8px; }
.section-dark{ background:var(--navy); color:var(--paper); }
.section-dark h2, .section-dark h3, .section-dark h4{ color:var(--paper); }
.section-steel{ background:var(--navy-deep); color:var(--paper); }
.section-steel h2, .section-steel h3, .section-steel h4{ color:var(--paper); }
.section-concrete{ background:var(--paper); }
.section-tint{ background:var(--blue-tint); }
.section-cream{ background:var(--cream); }

.section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:48px; flex-wrap:wrap; }
.section-head.center{ flex-direction:column; align-items:center; text-align:center; }
.section-head h2{ font-size:clamp(28px,3.6vw,42px); max-width:640px; font-weight:400; }
.section-head h2 b{ font-weight:800; }
.section-head .desc{ max-width:400px; color:var(--slate); font-size:15.5px; }
.section-head.center .desc{ max-width:560px; }
.section-dark .section-head .desc, .section-steel .section-head .desc{ color:rgba(255,255,255,.65); }

/* ---------- stat strip ---------- */
.stat-strip{
  display:grid; grid-template-columns:repeat(4,1fr);
}
.stat{ padding:30px var(--pad); border-right:1px solid rgba(255,255,255,.14); }
.stat:last-child{ border-right:none; }
.stat .num{ font-family:var(--display); font-size:clamp(30px,3.4vw,42px); color:var(--gold); font-weight:700; }
.stat .lbl{ font-size:12.5px; color:rgba(255,255,255,.65); margin-top:6px; text-transform:uppercase; letter-spacing:.05em; font-weight:600; }
.section-concrete .stat, .light-stats .stat{ border-color:var(--line); }
.section-concrete .stat .num, .light-stats .stat .num{ color:var(--navy); }
.section-concrete .stat .lbl, .light-stats .stat .lbl{ color:var(--slate); }
@media (max-width:760px){ .stat-strip{ grid-template-columns:repeat(2,1fr); } .stat{ border-bottom:1px solid rgba(255,255,255,.14); } }

/* ============================================================
   HOME HERO (light, illustration/photo right)
   ============================================================ */
.hero{
  position:relative; background:var(--cream); color:var(--navy); overflow:hidden;
  padding:72px 0 0;
}
.hero-flex{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.hero-content{ padding:40px 0 72px; position:relative; z-index:2; }
.hero-content h1{ font-size:clamp(42px,5.6vw,68px); font-weight:400; }
.hero-content h1 em{ font-style:normal; font-weight:800; display:block; }
.hero-content .sub{ font-size:17.5px; color:var(--slate); max-width:480px; margin-top:22px; }
.hero-actions{ display:flex; gap:16px; margin-top:36px; flex-wrap:wrap; }
.hero-media{ position:relative; z-index:2; }
.hero-media .img-frame{ border-radius:24px; overflow:hidden; aspect-ratio:4/3.1; box-shadow:0 30px 60px -20px rgba(30,42,94,.35); }
.hero-media .img-frame img{ width:100%; height:100%; object-fit:cover; }
.hero-dots{ display:flex; gap:8px; justify-content:center; padding:28px 0 40px; position:relative; z-index:2; }
.hero-dots span{ width:9px; height:9px; border-radius:50%; background:var(--line); }
.hero-dots span.active{ background:var(--navy); width:22px; border-radius:5px; }
@media (max-width:900px){ .hero-flex{ grid-template-columns:1fr; } .hero-content{ padding-bottom:0; } .hero-media{ margin-top:8px; } }

/* ============================================================
   ABOUT SNAPSHOT (photo + copy)
   ============================================================ */
.about-grid{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:64px; align-items:center; }
.about-media{ border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3.3; box-shadow:0 24px 50px -24px rgba(30,42,94,.3); }
.about-media img{ width:100%; height:100%; object-fit:cover; }
.about-copy p{ color:var(--slate); font-size:15.5px; margin-bottom:16px; }
.about-copy .btn{ margin-top:8px; }
.subsid-list{ margin-top:30px; display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.subsid-list li{ display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); font-size:14.5px; }
.subsid-list .country{ font-weight:700; color:var(--navy); }
.subsid-list .entity{ color:var(--slate); }
@media (max-width:900px){ .about-grid{ grid-template-columns:1fr; gap:36px; } }

/* ============================================================
   SECTOR CARDS (image + label below, arrow badge overlapping)
   ============================================================ */
.sector-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:44px; }
.sector-card{ display:block; }
.sector-media{ position:relative; border-radius:16px; overflow:hidden; aspect-ratio:4/3.3; }
.sector-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.sector-card:hover .sector-media img{ transform:scale(1.06); }
.sector-arrow{
  position:absolute; right:14px; bottom:-20px; width:42px; height:42px; border-radius:50%;
  background:var(--navy); color:var(--paper); display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 18px -6px rgba(30,42,94,.5); transition:background .2s ease;
}
.sector-card:hover .sector-arrow{ background:var(--gold-deep); }
.sector-arrow svg{ width:16px; height:16px; }
.sector-label{ margin-top:26px; font-size:17px; font-weight:700; color:var(--navy); font-family:var(--body); }
@media (max-width:900px){ .sector-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .sector-grid{ grid-template-columns:1fr; } }

/* ============================================================
   PROJECT CARDS
   ============================================================ */
.proj-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.proj-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; }
.proj-media{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.proj-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.proj-card:hover .proj-media img{ transform:scale(1.06); }
.proj-media .status-pill{
  position:absolute; top:14px; left:14px; font-size:11.5px; font-weight:700; letter-spacing:.02em;
  padding:6px 13px; border-radius:999px; background:var(--paper); color:var(--navy);
}
.proj-media .status-pill.completed{ background:var(--ok); color:#fff; }
.proj-media .status-pill.progress{ background:var(--gold); color:var(--navy-deep); }
.proj-media .status-pill.suspended{ background:var(--susp); color:#fff; }
.proj-meta{ display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:14px; border-top:1px solid var(--line); }
.proj-meta span{ font-size:13px; color:var(--slate); font-weight:600; }
.proj-meta b{ font-size:16px; color:var(--navy); font-weight:800; font-family:var(--display); }
.proj-body{ padding:22px 24px 26px; flex:1; display:flex; flex-direction:column; }
.proj-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.proj-badge{ font-size:12.5px; font-weight:600; color:var(--slate); background:var(--blue-tint); padding:5px 12px; border-radius:999px; }
.status-pill{ font-size:11.5px; font-weight:600; color:var(--slate); }
.status-pill.completed{ color:var(--ok); }
.status-pill.progress{ color:var(--warn); }
.status-pill.suspended{ color:var(--susp); }
.proj-loc{ font-size:12.5px; color:var(--slate); font-weight:600; margin-bottom:6px; }
.proj-body h3{ font-size:19px; font-weight:700; margin-bottom:10px; font-family:var(--body); color:#1B2340; }
.proj-body .scope{ color:var(--slate); font-size:14px; line-height:1.6; flex:1; margin-bottom:18px; }
.proj-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding-top:16px; border-top:1px solid var(--line); margin-bottom:18px; }
.proj-stats div{ font-size:13px; }
.proj-stats b{ display:block; font-size:14.5px; color:#1B2340; font-weight:700; }
.proj-stats span{ color:var(--slate); font-size:11.5px; }
.proj-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:auto; }
.proj-foot .view{ font-size:14px; font-weight:600; color:var(--navy); }
@media (max-width:900px){ .proj-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .proj-grid{ grid-template-columns:1fr; } }

/* ============================================================
   EXPERTISE / SECTOR CARD GRID (icon badge tiles)
   ============================================================ */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tile{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:34px 30px; transition: box-shadow .25s ease, transform .2s ease;
}
.tile:hover{ box-shadow:0 20px 40px -24px rgba(30,42,94,.3); transform:translateY(-2px); }
.tile-icon{
  width:50px; height:50px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background:var(--blue-tint); margin-bottom:20px;
}
.tile:nth-child(even) .tile-icon{ background:var(--yellow-tint); }
.tile-icon svg{ width:24px; height:24px; color:var(--navy); }
.tile h3{ font-size:19px; font-weight:700; margin-bottom:10px; font-family:var(--body); color:#1B2340; }
.tile p{ color:var(--slate); font-size:14.5px; }
.tile .idx{ display:block; font-size:12px; font-weight:700; color:var(--gold-deep); text-transform:uppercase; letter-spacing:.04em; margin-bottom:14px; }
.tile .go{ display:inline-flex; align-items:center; gap:6px; margin-top:18px; font-size:13px; font-weight:600; color:var(--navy); }
@media (max-width:900px){ .card-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .card-grid{ grid-template-columns:1fr; } }

/* legacy 3-col advantage grid (kept for pages not yet migrated to .adv-wrap) */
.adv-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.adv-grid .adv-item{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:32px 28px; display:block; }
.adv-grid .adv-item .num{ font-size:13px; font-weight:700; color:var(--gold-deep); }
.adv-grid .adv-item h4{ font-size:17px; margin:14px 0 10px; font-family:var(--body); font-weight:700; color:#1B2340; }
.adv-grid .adv-item p{ font-size:14px; color:var(--slate); }
@media (max-width:900px){ .adv-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .adv-grid{ grid-template-columns:1fr; } }

/* ============================================================
   TABLE
   ============================================================ */
table.data-table{ width:100%; border-collapse:collapse; font-size:14px; background:var(--paper); border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); }
table.data-table th{ text-align:left; font-weight:700; font-size:12.5px; letter-spacing:.03em; text-transform:uppercase; color:var(--slate); padding:14px 16px; border-bottom:2px solid var(--navy); white-space:nowrap; }
table.data-table td{ padding:15px 16px; border-bottom:1px solid var(--line); vertical-align:top; }
table.data-table tr:nth-child(even) td{ background:var(--blue-tint); }
table.data-table td.num{ font-family:var(--body); font-weight:600; white-space:nowrap; }
.tbl-status{ font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px; display:inline-block; }
.tbl-status.completed{ background:rgba(46,125,79,.12); color:var(--ok); }
.tbl-status.progress{ background:rgba(217,172,31,.16); color:var(--warn); }
.tbl-status.suspended{ background:rgba(154,43,43,.12); color:var(--susp); }

/* ============================================================
   WHY / ADVANTAGE LIST (light-blue section, icon list, divider)
   ============================================================ */
.adv-wrap{ display:grid; grid-template-columns:0.9fr 1.6fr; gap:56px; align-items:start; }
.adv-intro p{ color:var(--slate); font-size:15.5px; margin-top:16px; }
.adv-list{ display:grid; grid-template-columns:1fr 1fr; gap:36px 48px; border-left:1px solid rgba(30,42,94,.12); padding-left:48px; }
.adv-item{ display:flex; gap:16px; align-items:flex-start; }
.adv-icon{ width:38px; height:38px; border-radius:11px; background:var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.adv-icon svg{ width:18px; height:18px; color:var(--paper); }
.adv-item h4{ font-size:16.5px; font-weight:700; margin-bottom:6px; font-family:var(--body); color:#1B2340; }
.adv-item p{ font-size:13.5px; color:var(--slate); }
@media (max-width:900px){ .adv-wrap{ grid-template-columns:1fr; } .adv-list{ border-left:none; padding-left:0; grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .adv-list{ grid-template-columns:1fr; } }

/* ============================================================
   LEADERSHIP (list + dark CTA card, like reference)
   ============================================================ */
.lead-cta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.lead-copy p{ color:var(--slate); font-size:15.5px; margin-top:16px; }
.lead-card-dark{ background:var(--navy); border-radius:24px; padding:44px 40px; }
.lead-card-dark h3{ color:var(--paper); font-size:24px; font-weight:700; margin-bottom:16px; font-family:var(--body); }
.lead-card-dark p{ color:rgba(255,255,255,.75); font-size:15px; margin-bottom:28px; }
@media (max-width:900px){ .lead-cta-grid{ grid-template-columns:1fr; } }

/* individual leadership member cards (used on about page) */
.lead-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.lead-grid-2{ grid-template-columns:repeat(2,1fr); max-width:760px; margin:0 auto; }
.lead-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:32px 28px; }
.lead-avatar{
  width:56px; height:56px; border-radius:14px; background:var(--blue-tint); display:flex; align-items:center; justify-content:center;
  font-family:var(--body); font-weight:800; font-size:18px; color:var(--navy); margin-bottom:20px;
}
.lead-card h3{ color:#1B2340; font-size:18.5px; font-family:var(--body); font-weight:700; }
.lead-card .role{ font-size:13px; color:var(--gold-deep); font-weight:700; text-transform:uppercase; letter-spacing:.03em; margin:6px 0 14px; }
.lead-card p.bio{ color:var(--slate); font-size:13.5px; margin-bottom:16px; }
.lead-card .focus{ font-size:12px; color:var(--slate-light); border-top:1px solid var(--line); padding-top:14px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
@media (max-width:900px){ .lead-grid{ grid-template-columns:1fr; max-width:460px; margin:0 auto; } }

/* org chart */
.org-chart{ display:flex; flex-wrap:wrap; gap:12px; margin-top:10px; }
.org-node{
  font-size:13px; font-weight:600; border:1px solid var(--line); color:#3A4257; padding:11px 18px; border-radius:999px;
  display:flex; align-items:center; gap:10px;
}
.org-node .n{ color:var(--gold-deep); }
.org-arrow{ align-self:center; color:var(--slate-light); }

/* ============================================================
   TIMELINE (journey)
   ============================================================ */
.timeline{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.tl-item{ border-top:3px solid var(--gold); padding-top:20px; }
.tl-item .yr{ font-family:var(--display); font-size:30px; color:var(--gold); font-weight:700; }
.tl-item h4{ font-size:16px; color:var(--paper); margin:10px 0 8px; font-family:var(--body); font-weight:700; }
.tl-item p{ font-size:13.5px; color:rgba(255,255,255,.65); }
.section-concrete .tl-item .yr, .section-cream .tl-item .yr, .section-tint .tl-item .yr{ color:var(--navy); }
.section-concrete .tl-item h4, .section-cream .tl-item h4, .section-tint .tl-item h4{ color:#1B2340; }
.section-concrete .tl-item p, .section-cream .tl-item p, .section-tint .tl-item p{ color:var(--slate); }
@media (max-width:860px){ .timeline{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .timeline{ grid-template-columns:1fr; } }

/* ============================================================
   VALUES / MISSION (icon-badge cards, centered)
   ============================================================ */
.values-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.value-card{ padding:36px 28px; border:1px solid var(--line); border-radius:var(--radius); text-align:center; }
.value-icon{
  width:52px; height:52px; border-radius:14px; background:var(--navy); margin:0 auto 20px;
  display:flex; align-items:center; justify-content:center;
}
.value-icon svg{ width:24px; height:24px; color:var(--paper); }
.value-card h4{ font-size:18px; margin-bottom:10px; font-family:var(--body); font-weight:700; color:#1B2340; }
.value-card p{ font-size:14px; color:var(--slate); }
@media (max-width:760px){ .values-grid{ grid-template-columns:1fr; } }

.quote-block{
  border-left:3px solid var(--gold); padding-left:26px; margin-top:24px;
  font-family:var(--display); font-size:21px; font-weight:400; font-style:italic; color:var(--navy); max-width:640px;
}
.quote-block cite{ display:block; font-family:var(--body); font-size:13px; color:var(--slate); margin-top:14px; font-style:normal; font-weight:600; }

/* mission/vision boxes */
.mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:36px; }
.mv-card{ background:var(--blue-tint); border-radius:var(--radius); padding:36px 34px; display:flex; gap:22px; }
.mv-icon{ width:52px; height:52px; border-radius:50%; background:var(--paper); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.mv-icon svg{ width:24px; height:24px; color:var(--navy); }
.mv-card .lbl{ font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); margin-bottom:10px; }
.mv-card p{ font-size:14.5px; color:#3A4257; }
@media (max-width:760px){ .mv-grid{ grid-template-columns:1fr; } }

/* ============================================================
   LOGO / CLIENT STRIP
   ============================================================ */
.client-strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.client-strip span{
  background:var(--paper); display:flex; align-items:center; justify-content:center;
  padding:30px 14px;
  font-family:var(--body); font-weight:700; font-size:15px; color:#3A4257; text-align:center;
}
@media (max-width:760px){ .client-strip{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:480px){ .client-strip{ grid-template-columns:repeat(2,1fr); } }

/* ============================================================
   CTA BAND
   ============================================================ */
.cta-band{
  background:var(--navy); color:var(--paper); padding:80px 0; text-align:center; position:relative; overflow:hidden;
}
.cta-band h2{ font-size:clamp(30px,4.6vw,48px); max-width:720px; margin:0 auto; color:var(--paper); font-weight:400; }
.cta-band h2 b{ font-weight:800; }
.cta-band p{ color:rgba(255,255,255,.68); margin:20px auto 34px; max-width:520px; font-size:16px; }
.cta-actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:linear-gradient(180deg,#1B2555,#0F1330); color:rgba(255,255,255,.72); padding-top:72px; }
.foot-grid{ display:grid; grid-template-columns:1.3fr 0.8fr 0.9fr 1.1fr 1fr; gap:28px; padding-bottom:56px; }
.foot-brand .logo{ margin-bottom:18px; }
.foot-brand .logo, .foot-brand .logo span{ color:var(--paper); }
.foot-brand p{ font-size:14px; color:rgba(255,255,255,.55); max-width:280px; margin-bottom:22px; }
.foot-social{ display:flex; gap:12px; }
.foot-social a{
  width:38px; height:38px; border-radius:11px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center;
  transition:.2s ease;
}
.foot-social a:hover{ background:var(--gold); color:var(--navy-deep); }
.foot-social svg{ width:16px; height:16px; }
.foot-col h5{ font-size:15px; font-weight:700; color:var(--paper); margin-bottom:20px; font-family:var(--body); }
.foot-col li{ margin-bottom:12px; font-size:14px; }
.foot-col a:hover{ color:var(--gold); }
.foot-col address{ font-style:normal; font-size:14px; color:rgba(255,255,255,.6); line-height:1.7; }
.foot-card{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:16px; padding:22px 22px; }
.foot-hours .row{ display:flex; justify-content:space-between; gap:12px; font-size:13.5px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.foot-hours .row:last-child{ border-bottom:none; }
.foot-hours .row span:first-child{ color:rgba(255,255,255,.85); }
.foot-hours .row span:last-child{ color:rgba(255,255,255,.55); font-size:12.5px; }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; padding:26px 0; font-size:12.5px; color:rgba(255,255,255,.45); flex-wrap:wrap; gap:12px; border-top:1px solid rgba(255,255,255,.08); margin-top:8px; }
.foot-bottom a:hover{ color:var(--gold); }
.foot-legal{ display:flex; gap:22px; }
@media (max-width:860px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; } }

/* ============================================================
   MISC PAGE COMPONENTS
   ============================================================ */
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media (max-width:860px){ .two-col{ grid-template-columns:1fr; gap:36px; } }

.policy-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.policy-card{ border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px; text-align:left; }
.policy-card .code{ font-size:12.5px; font-weight:700; color:var(--gold-deep); margin-bottom:12px; text-transform:uppercase; letter-spacing:.04em; }
.policy-card h4{ font-size:16.5px; margin-bottom:8px; font-family:var(--body); font-weight:700; color:#1B2340; }
.policy-card p{ font-size:13.5px; color:var(--slate); }
@media (max-width:760px){ .policy-grid{ grid-template-columns:1fr; } }

.contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:0; border:1px solid var(--line); border-radius:24px; overflow:hidden; }
.contact-info{ background:var(--navy); color:var(--paper); padding:56px 48px; }
.contact-form{ padding:56px 48px; }
.contact-item{ margin-bottom:30px; }
.contact-item .lbl{ font-size:12px; font-weight:700; color:var(--gold); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.contact-item .val{ font-size:15.5px; }
.contact-item .val a:hover{ color:var(--gold); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:12.5px; font-weight:600; color:var(--slate); }
.field input, .field select, .field textarea{
  border:1px solid var(--line); border-radius:12px; background:var(--paper); padding:13px 16px; font-family:var(--body); font-size:14.5px; color:#1B2340;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--navy); }
.field.full{ grid-column:1 / -1; }
.form-note{ font-size:12.5px; color:var(--slate); margin-top:14px; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; border-radius:var(--radius); } .contact-info, .contact-form{ padding:40px 28px; } .form-row{ grid-template-columns:1fr; } }

.office-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:0; }
.office-item{ background:var(--blue-tint); border-radius:16px; padding:24px 22px; }
.office-item .city{ font-family:var(--body); font-weight:700; font-size:16.5px; color:#1B2340; }
.office-item .state{ font-size:12.5px; color:var(--slate); text-transform:uppercase; margin-top:6px; font-weight:600; }
@media (max-width:760px){ .office-list{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .office-list{ grid-template-columns:1fr; } }

/* reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

.map-frame{ width:100%; height:420px; border:0; border-radius:var(--radius); }

/* ============================================================
   OVERVIEW BLOCK (heading + underline accent + paragraphs)
   ============================================================ */
.overview-block h2{ font-size:clamp(24px,2.6vw,30px); font-weight:800; margin-bottom:10px; }
.overview-block .rule{ width:64px; height:3px; background:var(--gold); border-radius:2px; margin-bottom:22px; }
.overview-block p{ color:var(--slate); font-size:15px; line-height:1.75; max-width:900px; }
.overview-block p + p{ margin-top:14px; }

/* ============================================================
   CENTERED PORTFOLIO SECTION HEADER
   ============================================================ */
.section-head-centered{ text-align:center; max-width:640px; margin:0 auto 40px; }
.section-head-centered .eyebrow{ justify-content:center; }
.section-head-centered .eyebrow::before{ display:none; }
.section-head-centered .rule{ width:56px; height:3px; background:var(--gold); border-radius:2px; margin:6px auto 18px; }
.section-head-centered h2{ font-size:clamp(26px,2.8vw,32px); font-weight:800; }
.section-head-centered .desc{ max-width:520px; margin:14px auto 0; color:var(--slate); }

/* ============================================================
   FILTER PILL BAR
   ============================================================ */
.filter-pill{
  display:inline-flex; align-items:center; gap:4px; background:var(--paper);
  border:1px solid var(--line); border-radius:999px; padding:5px; margin:0 auto 44px; box-shadow:0 6px 18px -10px rgba(30,42,94,.2);
}
.filter-pill-row{ display:flex; justify-content:center; }
.filter-pill button{
  border:none; background:transparent; padding:10px 20px; border-radius:999px;
  font-size:14px; font-weight:600; color:var(--slate); display:flex; align-items:center; gap:7px;
  transition:background .2s ease, color .2s ease;
}
.filter-pill button svg{ width:15px; height:15px; }
.filter-pill button:hover{ color:var(--navy); }
.filter-pill button.active{ background:var(--navy); color:#fff; }
.filter-pill button.active.st-completed{ background:var(--ok); }
.filter-pill button.active.st-progress{ background:var(--gold-deep); color:var(--navy-deep); }

/* ============================================================
   PROJECT CARD — pin icon, top-right badge, view-details footer
   ============================================================ */
.proj-media .status-pill{ left:auto; right:14px; }
.proj-loc-pin{ display:flex; align-items:center; gap:6px; }
.proj-loc-pin svg{ width:13px; height:13px; color:var(--gold-deep); flex-shrink:0; }
.proj-view{
  display:flex; align-items:center; justify-content:space-between; margin-top:16px; padding-top:14px;
  border-top:1px solid var(--line);
}
.proj-view span{ font-size:13.5px; font-weight:700; color:var(--navy); }
.proj-view svg{ width:15px; height:15px; color:var(--navy); transition:transform .2s ease; }
.proj-card:hover .proj-view svg{ transform:translateX(4px); }
.proj-card[data-status="progress"] .proj-view span, .proj-card[data-status="progress"] .proj-view svg{ color:var(--gold-deep); }

/* ============================================================
   REFERENCE-SITE VISUAL SYSTEM (v3)
   Inter/Poppins typography, navy foundations and emerald accents.
   ============================================================ */
:root{
  --navy:#0b1a2e;
  --navy-deep:#0a0f1e;
  --navy-soft:#122845;
  --gold:#28b463;
  --gold-deep:#1e8449;
  --cream:#f8fafc;
  --blue-tint:#e8f5e9;
  --blue-tint-deep:#d6efda;
  --yellow-tint:#f1f8e9;
  --paper:#ffffff;
  --line:#e5e7eb;
  --slate:#64748b;
  --slate-light:#94a3b8;
  --ok:#28b463;
  --warn:#f59e0b;
  --display:'Poppins',sans-serif;
  --body:'Inter',sans-serif;
  --maxw:1240px;
  --radius:14px;
}

body{font-family:var(--body);color:#334155;background:#fff;line-height:1.6}
h1,h2,h3,h4,h5{font-family:var(--display);color:#0f172a;line-height:1.25;font-weight:700}
.wrap{width:min(100%,var(--maxw));padding-left:clamp(20px,4vw,48px);padding-right:clamp(20px,4vw,48px)}
.section-dark,.section-steel,.section-concrete,.section-cream,.section-tint{padding:80px 0}
.section-dark{background:#0b1a2e}
.section-steel{background:#0a0f1e}
.section-cream{background:#f8fafc}
.section-tint{background:#e8f5e9}
.eyebrow{color:#1e8449;font-size:12px;font-weight:800;letter-spacing:.12em}
.eyebrow::before{background:#28b463}
.section-head h2{font-size:clamp(32px,4vw,44px);font-weight:700}
.section-head h2 b{font-weight:700}

.btn{border-radius:50px;padding:12px 28px;font-size:15px;font-weight:600;min-height:48px;justify-content:center}
.btn-primary,.btn-gold,.btn-amber,.btn-navy{background:linear-gradient(135deg,#28b463,#1e8449);color:#fff;border-color:transparent;box-shadow:0 10px 26px rgba(30,132,73,.2)}
.btn-primary:hover,.btn-gold:hover,.btn-amber:hover,.btn-navy:hover{background:linear-gradient(135deg,#32c872,#18743f);color:#fff;transform:translateY(-1px)}
.btn-ghost-light{color:#0b1a2e;border-color:#0b1a2e}
.btn-ghost-light:hover{background:#0b1a2e;color:#fff}

.topbar{display:none}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.98);border-bottom:1px solid #e5e7eb;box-shadow:0 3px 16px rgba(15,23,42,.06)}
.nav{height:82px;gap:22px;padding-top:0;padding-bottom:0}
.logo{display:flex;flex-direction:row;align-items:center;gap:10px;min-width:188px;font-family:var(--display);line-height:1}
.logo img{width:48px;height:42px;object-fit:contain;flex:0 0 auto}
.logo-copy{display:flex;flex-direction:column;margin:0;color:#0b1a2e}
.logo-copy b{font-family:var(--display);font-size:20px;letter-spacing:.03em;color:#0b1a2e}
.logo-copy small{font-family:var(--body);font-size:8px;font-weight:700;letter-spacing:.13em;color:#64748b;margin-top:4px}
.nav-links{gap:20px;margin-left:auto}
.nav-links a{font-size:13px;font-weight:600;color:#334155;padding:29px 0 26px}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:18px;height:2px;background:#28b463;transition:right .2s ease}
.nav-links a:hover,.nav-links a.active{color:#1e8449}
.nav-links a:hover::after,.nav-links a.active::after{right:0}
.nav-cta{gap:14px}
.nav-button{padding:10px 20px;min-height:44px;font-size:13px}

.hero{position:relative;min-height:570px;height:85vh;max-height:760px;display:flex;align-items:center;overflow:hidden;background:#0b1a2e}
.hero-backdrop{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(5,12,24,.9) 0%,rgba(5,12,24,.72) 48%,rgba(5,12,24,.2) 100%),url('assets/img/site-01.jpg');background-size:cover;background-position:center}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 70%,rgba(11,26,46,.28));pointer-events:none}
.hero-flex{position:relative;z-index:2;display:block;width:100%;padding-top:72px;padding-bottom:72px}
.hero-content{max-width:850px}
.hero-content>.eyebrow{display:none}
.hero-badge{display:inline-flex;align-items:center;padding:8px 16px;border:1px solid rgba(255,255,255,.34);border-radius:50px;background:rgba(255,255,255,.1);color:#fff;font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:22px;backdrop-filter:blur(8px)}
.hero h1{font-family:var(--body);font-size:clamp(42px,5.2vw,64px);line-height:1.05;font-weight:700;color:#fff;letter-spacing:-.035em}
.hero h1 em{font-style:normal;color:#fff}
.hero .sub{max-width:720px;color:rgba(255,255,255,.84);font-size:clamp(16px,1.6vw,20px);margin:20px 0 30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero .btn-ghost-dark{border-color:rgba(255,255,255,.72);color:#fff;background:rgba(255,255,255,.06)}
.hero .btn-ghost-dark:hover{background:#fff;color:#0b1a2e}
.hero-media,.hero-dots{display:none}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#0b1a2e}
.stat-strip .stat{padding:24px 20px;border-color:rgba(255,255,255,.12)}
.stat-strip .num{color:#66cc79;font-family:var(--display)}

.page-hero{position:relative;overflow:hidden;background:linear-gradient(105deg,rgba(11,26,46,.96),rgba(11,26,46,.78)),url('assets/img/site-02.jpg') center/cover;color:#fff;padding:128px 0 74px}
.page-hero::after{content:"";position:absolute;inset:auto -10% -60% 45%;height:320px;border-radius:50%;background:rgba(40,180,99,.14);filter:blur(30px)}
.page-hero h1,.page-hero h1 b{color:#fff;font-family:var(--display);font-weight:700}
.page-hero .lede{color:rgba(255,255,255,.78)}
.page-hero .crumb{color:rgba(255,255,255,.7)}
.page-hero .eyebrow{color:#67d389}

.tile,.proj-card,.value-card,.policy-card,.lead-card,.office-item{border-radius:14px;border:1px solid #e5e7eb;box-shadow:0 8px 26px rgba(15,23,42,.06)}
.tile{padding:30px 26px;background:#fff}
.tile-icon,.adv-icon,.value-icon{background:linear-gradient(135deg,#28b463,#1e8449)}
.tile:nth-child(even) .tile-icon{background:#e8f5e9}
.tile:nth-child(even) .tile-icon svg{color:#1e8449}
.proj-media .status-pill.completed{background:#28b463}
.proj-media .status-pill.progress{background:#f59e0b;color:#0b1a2e}
.proj-badge{background:#e8f5e9;color:#1e8449}
.lead-card-dark{background:linear-gradient(135deg,#0b1a2e,#122845);border-radius:16px}
.contact-info{background:linear-gradient(145deg,#0b1a2e,#122845)}
.contact-item .lbl{color:#67d389}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#28b463;box-shadow:0 0 0 3px rgba(40,180,99,.12)}
.filter-pill button.active,.filter-pill button.active.st-completed,.filter-pill button.active.st-progress{background:#28b463;color:#fff}

.site-footer{background:#0a0f1e;padding-top:64px;color:#94a3b8}
.foot-grid{grid-template-columns:1.35fr .75fr .95fr 1.15fr;gap:48px;padding-bottom:48px}
.footer-logo{margin-bottom:20px}
.footer-logo .logo-copy b,.footer-logo .logo-copy small{color:#fff}
.foot-brand p{max-width:330px;color:#94a3b8}
.foot-social a{border-radius:50%;background:#152039;color:#fff;font-size:12px;font-weight:700;text-transform:uppercase}
.foot-social a:hover{background:#28b463;color:#fff}
.foot-col h5{font-size:16px;margin-bottom:20px;color:#fff}
.foot-col li{margin-bottom:10px}
.foot-col a:hover{color:#67d389}
.foot-col address{color:#94a3b8;margin-bottom:18px}
.foot-contact p{font-size:13px;color:#94a3b8;margin-top:16px}
.foot-contact b{color:#e2e8f0}
.foot-bottom{border-top:1px solid rgba(148,163,184,.16);color:#64748b}

/* New reference-matched pages */
.reference-page-hero{position:relative;min-height:480px;display:flex;align-items:center;background:#0f172a;color:#fff;overflow:hidden}
.reference-page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,15,30,.92),rgba(10,15,30,.48)),var(--page-image) center/cover no-repeat}
.reference-page-hero .wrap{position:relative;z-index:1;padding-top:90px;padding-bottom:70px}
.reference-page-hero h1{font-size:clamp(40px,5vw,62px);color:#fff;max-width:850px}
.reference-page-hero p{font-size:18px;color:rgba(255,255,255,.8);max-width:680px;margin-top:16px}
.reference-page-hero .eyebrow{color:#67d389}
.industry-grid,.benefit-grid,.job-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.industry-card,.benefit-card,.job-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:28px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.industry-card{min-height:220px;border-top:4px solid #28b463}
.industry-card h3,.benefit-card h3,.job-card h3{font-size:19px;margin:12px 0 9px}
.industry-card p,.benefit-card p,.job-card p{font-size:14px;color:#64748b}
.card-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#1e8449}
.impact-band{background:#0b1a2e;color:#fff}
.impact-grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.impact-grid div{padding:25px;border-right:1px solid rgba(255,255,255,.12)}
.impact-grid b{display:block;font:700 32px var(--display);color:#67d389}
.impact-grid span{font-size:13px;color:#cbd5e1}
.gallery-grid-v3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gallery-item-v3{position:relative;overflow:hidden;border-radius:14px;min-height:280px;background:#0f172a}
.gallery-item-v3 img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .45s ease}
.gallery-item-v3:hover img{transform:scale(1.05)}
.gallery-item-v3 span{position:absolute;left:18px;right:18px;bottom:16px;color:#fff;font-weight:700;text-shadow:0 2px 16px #000;background:linear-gradient(90deg,rgba(11,26,46,.85),transparent);padding:9px 12px;border-left:3px solid #28b463}
.application-band{background:#e8f5e9}

@media(max-width:1120px){
  .nav-links{gap:13px}.nav-links a{font-size:12px}.nav-button{display:none}
}
@media(max-width:900px){
  .nav-links{inset:82px 0 0 0;padding-top:28px;gap:0}.nav-links a{width:100%;font-size:16px;padding:15px 0;border-bottom:1px solid #eef2f7}.nav-links a::after{display:none}.nav-toggle{display:block}
  .industry-grid,.benefit-grid,.job-grid,.gallery-grid-v3{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}.impact-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .hero{height:auto;min-height:620px}.hero-backdrop{background-position:62% center}.hero h1{font-size:42px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}
  .stat-strip,.industry-grid,.benefit-grid,.job-grid,.gallery-grid-v3,.foot-grid{grid-template-columns:1fr}
  .stat-strip .stat{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .impact-grid{grid-template-columns:1fr 1fr}.impact-grid b{font-size:27px}
  .section-dark,.section-steel,.section-concrete,.section-cream,.section-tint{padding:60px 0}
  .reference-page-hero{min-height:430px}.reference-page-hero .wrap{padding-top:72px}.reference-page-hero h1{font-size:40px}
}
