/* ============================================================
   NEGC — Nefouth Elamar General Contracting
   Design system: navy #3C405B + ochre accent, Space Grotesk / Inter
   ============================================================ */

:root{
  --navy:#3C405B;
  --navy-d:#2C2F45;
  --navy-l:#4C5274;
  --ink:#1B1D29;
  --slate:#565B6E;
  --muted:#878CA0;
  --accent:#C2872E;
  --accent-d:#9F6C1E;
  --accent-soft:#F4EAD6;
  --bg:#FFFFFF;
  --surface:#F5F6F9;
  --surface-2:#EDEFF4;
  --line:#E4E6EC;
  --line-d:#D4D7E0;
  --white:#FFFFFF;

  --shadow-sm:0 1px 2px rgba(28,30,42,.06), 0 2px 8px rgba(28,30,42,.05);
  --shadow-md:0 8px 24px rgba(28,30,42,.08), 0 2px 6px rgba(28,30,42,.05);
  --shadow-lg:0 24px 60px rgba(28,30,42,.14);

  --r-sm:8px; --r:14px; --r-lg:22px;
  --maxw:1200px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ff-display:"Space Grotesk", system-ui, sans-serif;
  --ff-body:"Inter", system-ui, -apple-system, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  margin:0; font-family:var(--ff-body); color:var(--slate);
  background:var(--bg); line-height:1.65; font-size:17px;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%; display:block; height:auto}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4{font-family:var(--ff-display); color:var(--ink); line-height:1.12;
  margin:0; font-weight:600; letter-spacing:-.01em}
p{margin:0}
ul{margin:0; padding:0; list-style:none}

.container{max-width:var(--maxw); margin:0 auto; padding:0 24px}
.section{padding:96px 0}
.section--tight{padding:72px 0}
.bg-surface{background:var(--surface)}
.bg-navy{background:var(--navy); color:#D7DAE6}

/* ---------- Typographic helpers ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--ff-body); font-weight:600; font-size:12.5px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--accent-d);
  margin-bottom:18px;
}
.eyebrow::before{content:""; width:26px; height:2px; background:var(--accent); display:inline-block}
.bg-navy .eyebrow{color:#E2B468}
.bg-navy .eyebrow::before{background:#E2B468}

h1,.h1{font-size:clamp(2.3rem,4.6vw,3.7rem)}
h2,.h2{font-size:clamp(1.9rem,3.4vw,2.7rem)}
h3,.h3{font-size:1.32rem}
.lead{font-size:1.12rem; color:var(--slate); max-width:62ch}
.section-head{max-width:720px; margin-bottom:54px}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center}
.bg-navy h1,.bg-navy h2,.bg-navy h3{color:#fff}
.text-accent{color:var(--accent-d)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:9px; cursor:pointer;
  font-family:var(--ff-body); font-weight:600; font-size:15.5px;
  padding:14px 26px; border-radius:999px; border:1.5px solid transparent;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, color .25s, border-color .25s;
  white-space:nowrap;
}
.btn svg{width:18px; height:18px}
.btn--primary{background:var(--accent); color:#fff; box-shadow:0 8px 20px rgba(194,135,46,.28)}
.btn--primary:hover{background:var(--accent-d); transform:translateY(-2px); box-shadow:0 14px 28px rgba(194,135,46,.36)}
.btn--navy{background:var(--navy); color:#fff}
.btn--navy:hover{background:var(--navy-d); transform:translateY(-2px)}
.btn--ghost{background:transparent; color:var(--navy); border-color:var(--line-d)}
.btn--ghost:hover{border-color:var(--navy); transform:translateY(-2px)}
.btn--light{background:#fff; color:var(--navy)}
.btn--light:hover{transform:translateY(-2px); box-shadow:var(--shadow-md)}
.btn--outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.4)}
.btn--outline-light:hover{border-color:#fff; background:rgba(255,255,255,.08)}
.btn--wa{background:#25D366; color:#fff}
.btn--wa:hover{background:#1da851; transform:translateY(-2px)}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,.86);
  backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid transparent; transition:border-color .3s, box-shadow .3s, padding .3s;
}
.site-header.scrolled{border-bottom-color:var(--line); box-shadow:0 6px 20px rgba(28,30,42,.05)}
.header-inner{display:flex; align-items:center; justify-content:space-between; height:84px; transition:height .3s}
.site-header.scrolled .header-inner{height:70px}
.brand{display:flex; align-items:center; gap:13px}
.brand img{height:42px; width:auto}
.brand-text{display:flex; flex-direction:column; line-height:1.05}
.brand-text b{font-family:var(--ff-display); font-weight:700; color:var(--navy); font-size:1.06rem; letter-spacing:-.01em}
.brand-text span{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted)}

.nav{display:flex; align-items:center; gap:2px}
.nav a{padding:9px 12px; font-weight:500; font-size:15.5px; color:var(--ink); border-radius:8px; position:relative; transition:color .2s; white-space:nowrap}
.nav a::after{content:""; position:absolute; left:14px; right:14px; bottom:4px; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .25s var(--ease)}
.nav a:hover{color:var(--accent-d)}
.nav a:hover::after, .nav a.active::after{transform:scaleX(1)}
.nav a.active{color:var(--navy)}
.header-cta{display:flex; align-items:center; gap:12px}
.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px; width:44px; height:44px}
.nav-toggle span{display:block; width:24px; height:2px; background:var(--ink); margin:5px auto; transition:.3s}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative; overflow:hidden; background:var(--surface)}
.hero::before{ /* blueprint grid */
  content:""; position:absolute; inset:0; opacity:.5;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(120% 90% at 70% 10%,#000,transparent 75%);
          mask-image:radial-gradient(120% 90% at 70% 10%,#000,transparent 75%);
}
.hero-grid{position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;
  padding:88px 0 96px}
.hero-tag{display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:7px 15px 7px 11px; font-size:13px; font-weight:600; color:var(--navy);
  box-shadow:var(--shadow-sm); margin-bottom:24px}
.hero-tag b{color:var(--accent-d)}
.hero-dot{width:8px; height:8px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(194,135,46,.18)}
.hero h1{margin-bottom:22px}
.hero h1 .stroke{color:var(--accent-d)}
.hero p.lead{margin-bottom:32px}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:40px}
.hero-stats{display:flex; gap:36px; flex-wrap:wrap; border-top:1px solid var(--line-d); padding-top:26px}
.hero-stats .stat b{font-family:var(--ff-display); font-size:1.85rem; color:var(--navy); display:block; line-height:1}
.hero-stats .stat span{font-size:13.5px; color:var(--slate); margin-top:6px; display:block}

.hero-visual{position:relative}
.hero-frame{position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg);
  aspect-ratio:4/5}
.hero-frame img{width:100%; height:100%; object-fit:cover}
.hero-frame::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(44,47,69,.55))}
.hero-cols{ /* structural column bars signature */
  position:absolute; left:-26px; top:30px; bottom:30px; width:26px;
  display:flex; gap:6px}
.hero-cols i{flex:1; background:var(--navy); border-radius:3px 3px 0 0; opacity:.9}
.hero-cols i:nth-child(2){background:var(--accent)}
.hero-card{position:absolute; right:-14px; bottom:-22px; background:#fff; border-radius:var(--r);
  padding:18px 22px; box-shadow:var(--shadow-lg); border:1px solid var(--line); max-width:250px}
.hero-card .row{display:flex; gap:14px; align-items:center}
.hero-card .row + .row{margin-top:12px; padding-top:12px; border-top:1px solid var(--line)}
.hero-card .ic{width:38px; height:38px; border-radius:10px; background:var(--accent-soft); color:var(--accent-d);
  display:grid; place-items:center; flex:none}
.hero-card .ic svg{width:20px; height:20px}
.hero-card b{display:block; color:var(--ink); font-family:var(--ff-display); font-size:.97rem; line-height:1.1}
.hero-card span{font-size:12.5px; color:var(--muted)}

/* ---------- Trusted-by strip ---------- */
.trust{padding:30px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff}
.trust-inner{display:flex; align-items:center; gap:34px; flex-wrap:wrap; justify-content:center}
.trust-label{font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.trust-logos{display:flex; gap:30px; flex-wrap:wrap; align-items:center; justify-content:center}
.trust-logos img{height:42px; width:auto; opacity:.62; filter:grayscale(1); transition:.3s}
.trust-logos img:hover{opacity:1; filter:grayscale(0)}

/* ============================================================
   SERVICE CARDS
   ============================================================ */
.grid{display:grid; gap:24px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.card{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:30px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; position:relative; overflow:hidden}
.card::before{content:""; position:absolute; left:0; top:0; height:3px; width:100%;
  background:linear-gradient(90deg,var(--accent),var(--accent-d)); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease)}
.card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent}
.card:hover::before{transform:scaleX(1)}
.card .ic{width:54px; height:54px; border-radius:13px; background:var(--surface-2); color:var(--navy);
  display:grid; place-items:center; margin-bottom:20px; transition:.3s}
.card:hover .ic{background:var(--accent-soft); color:var(--accent-d)}
.card .ic svg{width:26px; height:26px}
.card h3{margin-bottom:10px}
.card p{font-size:15.5px}
.card .more{display:inline-flex; align-items:center; gap:6px; margin-top:16px; font-weight:600; font-size:14.5px; color:var(--accent-d)}
.card .more svg{width:15px; height:15px; transition:transform .25s}
.card:hover .more svg{transform:translateX(4px)}

/* ============================================================
   IMAGE + TEXT SPLIT
   ============================================================ */
.split{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center}
.split.rev .split-media{order:2}
.split-media{position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-md); aspect-ratio:5/4}
.split-media img{width:100%; height:100%; object-fit:cover}
.split-media .badge{position:absolute; left:20px; bottom:20px; background:rgba(44,47,69,.92); color:#fff;
  padding:12px 18px; border-radius:12px; backdrop-filter:blur(4px)}
.split-media .badge b{font-family:var(--ff-display); font-size:1.5rem; display:block; line-height:1}
.split-media .badge span{font-size:12.5px; color:#C7CBDA}

.check-list li{display:flex; gap:13px; padding:11px 0; align-items:flex-start; border-bottom:1px dashed var(--line)}
.check-list li:last-child{border-bottom:none}
.check-list .tick{flex:none; width:24px; height:24px; border-radius:7px; background:var(--accent-soft); color:var(--accent-d);
  display:grid; place-items:center; margin-top:2px}
.check-list .tick svg{width:14px; height:14px}
.check-list b{color:var(--ink); font-weight:600}
.check-list small{display:block; font-size:14px; color:var(--slate); font-weight:400}

/* ============================================================
   STATS BAND (navy)
   ============================================================ */
.stats-band{position:relative; overflow:hidden}
.stats-band::before{content:""; position:absolute; inset:0; opacity:.10;
  background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);
  background-size:48px 48px}
.stats-grid{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:30px; text-align:center}
.stats-grid .stat b{font-family:var(--ff-display); font-size:clamp(2.2rem,4vw,3rem); color:#fff; display:block; line-height:1}
.stats-grid .stat b em{color:#E2B468; font-style:normal}
.stats-grid .stat span{display:block; margin-top:10px; font-size:14.5px; color:#B9BECE; letter-spacing:.02em}
.stats-grid .stat{padding:0 10px; position:relative}
.stats-grid .stat + .stat::before{content:""; position:absolute; left:0; top:10%; height:80%; width:1px; background:rgba(255,255,255,.14)}

/* ============================================================
   PROJECTS
   ============================================================ */
.proj-card{background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease); display:flex; flex-direction:column}
.proj-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md)}
.proj-media{aspect-ratio:16/10; overflow:hidden; position:relative}
.proj-media img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease)}
.proj-card:hover .proj-media img{transform:scale(1.06)}
.proj-year{position:absolute; top:14px; left:14px; background:rgba(44,47,69,.92); color:#fff;
  font-family:var(--ff-display); font-weight:600; font-size:13px; padding:5px 12px; border-radius:999px}
.proj-body{padding:24px; flex:1; display:flex; flex-direction:column}
.proj-body .tag{font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-d); margin-bottom:10px}
.proj-body h3{font-size:1.18rem; margin-bottom:auto}
.proj-meta{margin-top:18px; padding-top:16px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-size:13.5px}
.proj-meta span{color:var(--muted)}
.proj-meta b{color:var(--ink); font-weight:600}

/* ============================================================
   FEATURE / WHY rows
   ============================================================ */
.feature{display:flex; gap:18px; padding:24px; border-radius:var(--r); border:1px solid var(--line); background:#fff;
  transition:.3s}
.feature:hover{box-shadow:var(--shadow-sm); border-color:var(--line-d)}
.feature .ic{flex:none; width:50px; height:50px; border-radius:12px; background:var(--navy); color:#fff; display:grid; place-items:center}
.feature .ic svg{width:24px; height:24px}
.feature h3{font-size:1.12rem; margin-bottom:7px}
.feature p{font-size:15px}

/* sectors pills */
.sectors{display:flex; flex-wrap:wrap; gap:14px}
.sector{display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:12px 22px 12px 14px; font-weight:600; color:var(--ink); transition:.3s; font-size:15px}
.sector:hover{border-color:var(--accent); color:var(--accent-d); transform:translateY(-2px); box-shadow:var(--shadow-sm)}
.sector .ic{width:34px; height:34px; border-radius:9px; background:var(--accent-soft); color:var(--accent-d); display:grid; place-items:center}
.sector .ic svg{width:18px; height:18px}

/* ============================================================
   CTA band
   ============================================================ */
.cta-band{position:relative; background:linear-gradient(135deg,var(--navy-d),var(--navy)); color:#fff; overflow:hidden}
.cta-band::before{content:""; position:absolute; inset:0; opacity:.12;
  background-image:linear-gradient(rgba(255,255,255,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.6) 1px,transparent 1px);
  background-size:44px 44px}
.cta-inner{position:relative; display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap}
.cta-inner h2{color:#fff; max-width:18ch}
.cta-inner p{color:#C2C6D6; margin-top:12px; max-width:46ch}
.cta-actions{display:flex; gap:14px; flex-wrap:wrap}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--navy-d); color:#AEB3C6; padding:72px 0 0}
.footer a{transition:color .2s}
.footer a:hover{color:#fff}
.footer-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap:44px; padding-bottom:54px}
.footer .brand img{height:46px}
.footer .brand-text b{color:#fff}
.footer-about{margin:20px 0; font-size:14.5px; line-height:1.7; max-width:34ch}
.footer h4{color:#fff; font-size:.95rem; letter-spacing:.04em; margin-bottom:20px; font-family:var(--ff-display)}
.footer-links li{margin-bottom:11px}
.footer-links a{font-size:14.8px}
.footer-contact li{display:flex; gap:12px; margin-bottom:16px; font-size:14.5px; line-height:1.5}
.footer-contact .ic{flex:none; width:34px; height:34px; border-radius:9px; background:rgba(255,255,255,.07); color:#E2B468; display:grid; place-items:center}
.footer-contact .ic svg{width:17px; height:17px}
.footer-social{display:flex; gap:10px; margin-top:8px}
.footer-social a{width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.07); display:grid; place-items:center; color:#cfd3e0}
.footer-social a:hover{background:var(--accent); color:#fff}
.footer-social svg{width:18px; height:18px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1); padding:22px 0; display:flex; justify-content:space-between;
  gap:18px; flex-wrap:wrap; font-size:13.5px}
.footer-bottom .creds{display:flex; gap:18px; flex-wrap:wrap}
.footer-bottom .creds span b{color:#cfd3e0; font-weight:600}

/* ---------- WhatsApp float ---------- */
.wa-float{position:fixed; right:22px; bottom:22px; z-index:80; width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 10px 28px rgba(37,211,102,.45);
  transition:transform .25s var(--ease)}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:30px; height:30px}
.wa-float::after{content:""; position:absolute; inset:0; border-radius:50%; border:2px solid #25D366; animation:waPulse 2.4s ease-out infinite}
@keyframes waPulse{0%{transform:scale(1); opacity:.7}100%{transform:scale(1.7); opacity:0}}

/* ============================================================
   PAGE HEADER (interior pages)
   ============================================================ */
.page-hero{position:relative; background:var(--navy); color:#fff; padding:78px 0 64px; overflow:hidden}
.page-hero::before{content:""; position:absolute; inset:0; opacity:.12;
  background-image:linear-gradient(rgba(255,255,255,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.6) 1px,transparent 1px);
  background-size:46px 46px; -webkit-mask-image:radial-gradient(100% 100% at 80% 0,#000,transparent 70%); mask-image:radial-gradient(100% 100% at 80% 0,#000,transparent 70%)}
.page-hero h1{position:relative; color:#fff; margin-bottom:14px}
.page-hero p{position:relative; color:#C2C6D6; max-width:60ch; font-size:1.08rem}
.breadcrumb{position:relative; display:flex; gap:8px; font-size:13.5px; color:#9aa0b6; margin-bottom:20px}
.breadcrumb a:hover{color:#E2B468}
.breadcrumb span{color:#E2B468}

/* prose */
.prose p{margin-bottom:18px}
.prose h2{margin:38px 0 16px}
.prose h3{margin:28px 0 12px}

/* contact */
.contact-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:48px; align-items:start}
.info-card{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:28px; margin-bottom:20px}
.info-card .row{display:flex; gap:15px; align-items:flex-start}
.info-card .row + .row{margin-top:20px; padding-top:20px; border-top:1px solid var(--line)}
.info-card .ic{flex:none; width:46px; height:46px; border-radius:12px; background:var(--accent-soft); color:var(--accent-d); display:grid; place-items:center}
.info-card .ic svg{width:21px; height:21px}
.info-card b{display:block; color:var(--ink); font-family:var(--ff-display); font-size:1.02rem; margin-bottom:3px}
.info-card a, .info-card p{color:var(--slate); font-size:15px}
.info-card a:hover{color:var(--accent-d)}

.form{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:34px; box-shadow:var(--shadow-sm)}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.field{margin-bottom:18px}
.field label{display:block; font-size:13.5px; font-weight:600; color:var(--ink); margin-bottom:7px}
.field input,.field select,.field textarea{width:100%; padding:13px 15px; border:1.5px solid var(--line-d); border-radius:10px;
  font-family:var(--ff-body); font-size:15.5px; color:var(--ink); background:var(--surface); transition:.2s}
.field textarea{resize:vertical; min-height:130px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--accent); background:#fff; box-shadow:0 0 0 4px rgba(194,135,46,.12)}
.form .btn{width:100%; justify-content:center; margin-top:6px}
.hp{position:absolute; left:-9999px}

.map-wrap{border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm); line-height:0}
.map-wrap iframe{width:100%; height:420px; border:0; display:block; filter:grayscale(.2)}

/* org chart simple */
.org-list{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.org-item{background:#fff; border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:10px; padding:16px 18px}
.org-item b{display:block; color:var(--ink); font-family:var(--ff-display); font-size:1rem}
.org-item span{font-size:13.5px; color:var(--slate)}

/* mission/vision */
.mv-card{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:32px; position:relative}
.mv-card .ic{width:52px; height:52px; border-radius:13px; background:var(--accent-soft); color:var(--accent-d); display:grid; place-items:center; margin-bottom:18px}
.mv-card .ic svg{width:26px; height:26px}
.mv-card h3{margin-bottom:12px}

/* clients wall */
.logo-wall{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.logo-tile{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px; display:grid; place-items:center;
  aspect-ratio:16/9; transition:.3s}
.logo-tile:hover{box-shadow:var(--shadow-md); transform:translateY(-4px)}
.logo-tile img{max-height:84px; width:auto; object-fit:contain}

/* ---------- reveal animation ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease)}
.reveal.in{opacity:1; transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1160px){
  .header-cta .btn--ghost{display:none}
}
@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr; gap:48px; padding:64px 0 80px}
  .hero-visual{max-width:480px; margin:0 auto; width:100%}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr; gap:36px}
  .stats-grid{grid-template-columns:repeat(2,1fr); gap:36px 20px}
  .stats-grid .stat:nth-child(odd)::before{display:none}
  .org-list{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .nav, .header-cta .btn--ghost{display:none}
  .nav-toggle{display:block}
  .header-cta{gap:8px}
  .nav.open{display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch;
    background:#fff; padding:14px; gap:2px; box-shadow:var(--shadow-lg); border-top:1px solid var(--line)}
  .nav.open a{padding:13px 16px; border-radius:10px}
  .nav.open a::after{display:none}
  .nav.open a:hover{background:var(--surface)}
  .section{padding:72px 0}
  .grid-3,.grid-2{grid-template-columns:1fr}
  .split{grid-template-columns:1fr; gap:36px}
  .split.rev .split-media{order:0}
  .contact-grid{grid-template-columns:1fr; gap:34px}
  .form-row{grid-template-columns:1fr}
  .cta-inner{flex-direction:column; align-items:flex-start}
  .logo-wall{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  body{font-size:16px}
  .container{padding:0 18px}
  .section{padding:58px 0}
  .grid-4{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr}
  .stats-grid .stat::before{display:none}
  .stats-grid .stat{padding-bottom:24px; border-bottom:1px solid rgba(255,255,255,.12)}
  .stats-grid .stat:last-child{border-bottom:none; padding-bottom:0}
  .hero-stats{gap:24px}
  .org-list,.logo-wall{grid-template-columns:1fr}
  .brand-text span{display:none}
  .header-cta .btn--primary{display:none}
  .hero-card{position:static; max-width:none; margin-top:24px}
  .hero-cols{display:none}
  .footer-bottom{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important}
  .reveal{opacity:1; transform:none}
}
