/* =========================================================
   FABMAX, LLC — refreshed site stylesheet
   Palette sampled from the current fabmaxllc.com:
     brand indigo #2E3192 · charcoal #2E3130 · light gray #EBEBEB
   Edit the tokens in :root to re-skin the whole site.
   ========================================================= */

:root{
  /* Brand */
  --brand:        #2E3192;
  --brand-dk:     #22265F;
  --brand-lt:     #4147B5;
  --brand-soft:   #EEEFF7;
  --brand-tint:   rgba(46,49,146,.08);

  /* Neutrals */
  --ink:          #202221;   /* near-black — nav pill, strong text */
  --body:         #2E3130;   /* body copy */
  --muted:        #6A6E6D;
  --line:         #E2E3E8;
  --paper:        #FFFFFF;
  --tint:         #F6F6F9;   /* soft section background */
  --gray:         #EBEBEB;   /* footer / band */
  --gold:         #E9A83A;   /* accent used on the pillar icons */

  --maxw: 1240px;
  --gut: 30px;
  --r: 14px;                 /* cards + images */
  --r-sm: 9px;               /* buttons, tags */
  --shadow: 0 18px 40px -28px rgba(32,34,33,.45);
  --ease: cubic-bezier(.22,.61,.36,1);

  --f: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:var(--f);
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

h1,h2,h3,h4{
  font-family:var(--f);
  color:var(--brand);
  font-weight:600;
  letter-spacing:-.022em;
  line-height:1.1;
  margin:0 0 .55em;
}
h1{ font-size:clamp(2.4rem,4.6vw,3.6rem); }
h2{ font-size:clamp(1.85rem,3vw,2.6rem); }
h3{ font-size:clamp(1.18rem,1.5vw,1.4rem); }
h4{ font-size:1.02rem; }
p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }
strong{ font-weight:700; color:var(--ink); }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
.sec{ padding:clamp(64px,8vw,118px) 0; position:relative; }
.sec--tight{ padding:clamp(52px,6vw,84px) 0; }
.tint{ background:var(--tint); }
.indigo{ background:var(--brand); color:#fff; }
.indigo h1,.indigo h2,.indigo h3,.indigo h4{ color:#fff; }

.grid{ display:grid; gap:clamp(22px,2.6vw,36px); }
.g-2{ grid-template-columns:repeat(2,1fr); }
.g-3{ grid-template-columns:repeat(3,1fr); }
.g-4{ grid-template-columns:repeat(4,1fr); }
.split{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(34px,5vw,80px); }
.split--wide{ grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }

/* ---------- eyebrow ---------- */
.kicker{
  display:block; font-size:.74rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--brand); opacity:.75; margin:0 0 16px;
}
.indigo .kicker{ color:#fff; opacity:.72; }

.lede{ font-size:clamp(1rem,1.2vw,1.1rem); color:var(--body); max-width:60ch; }
.indigo .lede{ color:rgba(255,255,255,.88); }
.muted{ color:var(--muted); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--brand); color:#fff;
  font-size:.92rem; font-weight:600; letter-spacing:.005em;
  padding:14px 24px; border:1px solid var(--brand); border-radius:var(--r-sm);
  cursor:pointer; transition:background .22s var(--ease), border-color .22s var(--ease), transform .22s var(--ease);
}
.btn:hover{ background:var(--brand-dk); border-color:var(--brand-dk); transform:translateY(-1px); }
.btn--ghost{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.55); color:#fff; }
.btn--ghost:hover{ background:#fff; border-color:#fff; color:var(--brand); }
.btn--outline{ background:transparent; color:var(--brand); border-color:var(--line); }
.btn--outline:hover{ background:var(--brand-soft); border-color:var(--brand); color:var(--brand); }
.btn--white{ background:#fff; border-color:#fff; color:var(--brand); }
.btn--white:hover{ background:var(--brand-soft); border-color:var(--brand-soft); color:var(--brand-dk); }
.btn--sm{ padding:10px 18px; font-size:.86rem; }

.tlink{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; font-size:.94rem; color:var(--brand);
}
.tlink .arw{ transition:transform .22s var(--ease); }
.tlink:hover .arw{ transform:translateX(4px); }

/* ---------- header ---------- */
.hdr{
  position:sticky; top:0; z-index:100;
  background:var(--brand); color:#fff;
  box-shadow:0 1px 0 rgba(0,0,0,.14);
}
.hdr__in{ display:flex; align-items:center; justify-content:space-between; height:72px; gap:20px; }

.logo{ display:flex; align-items:center; gap:10px; color:#fff; flex:none; }
.logo__mark{ width:88px; height:auto; flex:none; }
.ftr .logo__mark{ width:120px; }
.logo__tx{ font-weight:800; font-size:1.16rem; letter-spacing:.02em; }

.nav{ display:flex; align-items:center; gap:4px; margin-right:auto; margin-left:14px; }
.nav a{
  font-size:.95rem; font-weight:600; color:#fff;
  padding:9px 15px; border-radius:var(--r-sm);
  transition:background .2s var(--ease);
}
.nav a:hover{ background:rgba(255,255,255,.14); }
.nav a.is-active{ background:var(--ink); }
.hdr__cta{ font-size:.95rem; font-weight:700; color:#fff; padding:9px 4px; flex:none; }
.hdr__cta:hover{ opacity:.8; }
.hdr__cta--m{ display:none; }

.burger{ display:none; background:none; border:0; cursor:pointer; padding:10px; margin-right:-10px; }
.burger span{ display:block; width:24px; height:2px; background:#fff; margin:5px 0; transition:.3s var(--ease); }
.nav-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-open .burger span:nth-child(2){ opacity:0; }
.nav-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- home hero (full-bleed image) ---------- */
.hero{
  position:relative; min-height:min(84vh,780px);
  display:flex; align-items:center; overflow:hidden;
  background:linear-gradient(120deg, #1B1F55 0%, var(--brand) 55%, #3A40A8 100%);
  color:#fff;
}
.hero__media{ position:absolute; inset:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:center 58%; }
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(16,18,54,.93) 0%, rgba(16,18,54,.78) 38%, rgba(16,18,54,.34) 72%, rgba(16,18,54,.15) 100%),
    linear-gradient(180deg, rgba(16,18,54,.35) 0%, transparent 30%);
}
.hero__hatch{
  position:absolute; inset:0; opacity:.5;
  background-image:repeating-linear-gradient(135deg, rgba(255,255,255,.055) 0 2px, transparent 2px 13px);
}
.hero__in{ position:relative; z-index:3; padding-block:clamp(70px,9vw,120px); }
.hero h1{ color:#fff; max-width:17ch; text-shadow:0 2px 18px rgba(10,12,40,.45); }
.hero .lede{
  color:#fff; max-width:40ch; margin-top:22px;
  font-size:clamp(1.16rem,1.55vw,1.42rem); font-weight:500; line-height:1.5;
  text-shadow:0 1px 14px rgba(10,12,40,.55);
}
.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.hero__tagline{
  position:absolute; z-index:3; left:0; right:0; bottom:0;
  border-top:1px solid rgba(255,255,255,.22);
  background:rgba(20,23,66,.4); backdrop-filter:blur(4px);
}
.hero__tagline .wrap{ display:flex; flex-wrap:wrap; gap:10px 40px; padding-block:16px; }
.hero__tagline span{ font-size:.84rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.86); }

/* ---------- interior page hero (text left / image right) ---------- */
.phero{ padding:clamp(48px,6vw,84px) 0 clamp(30px,4vw,54px); }
.phero .kicker{ margin-bottom:14px; }
.phero h1{ max-width:15ch; }
.phero .lede{ margin-top:22px; }
.crumb{ font-size:.82rem; font-weight:600; color:var(--muted); margin-bottom:14px; }
.crumb a{ color:var(--brand); }
.crumb a:hover{ text-decoration:underline; }

/* ---------- photo placeholders ----------
   Swap <div class="ph">…</div> for an <img> when real photography is ready.
------------------------------------------- */
.ph{
  position:relative; border-radius:var(--r); overflow:hidden;
  background:
    repeating-linear-gradient(135deg, rgba(46,49,146,.055) 0 2px, transparent 2px 12px),
    linear-gradient(150deg, #EDEEF6, #DCDEEE);
  border:1px solid var(--line);
  aspect-ratio:4/3; display:flex; align-items:flex-end;
}
.ph--wide{ aspect-ratio:16/9; }
.ph--tall{ aspect-ratio:3/4; }
.ph--sq{ aspect-ratio:1/1; }
.ph::after{
  content:"IMAGE"; position:absolute; top:14px; left:16px;
  font-size:.62rem; font-weight:700; letter-spacing:.22em; color:rgba(46,49,146,.45);
}
.ph__note{
  position:relative; z-index:2; padding:16px 18px; width:100%;
  font-size:.78rem; line-height:1.45; color:var(--brand-dk);
  background:linear-gradient(transparent, rgba(255,255,255,.85) 45%);
}
.ph__note b{ display:block; font-size:.62rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--brand); margin-bottom:3px; }
.hero .ph{ height:100%; width:100%; border:0; border-radius:0; aspect-ratio:auto; background:linear-gradient(150deg,#242A78,#3A40A8); }
.hero .ph::after,.hero .ph__note{ display:none; }

/* ---------- real photography ---------- */
.shot{
  width:100%; border-radius:var(--r); border:1px solid var(--line);
  object-fit:cover; object-position:center;
  aspect-ratio:4/3; background:var(--paper);
}
.shot.ph--wide{ aspect-ratio:16/9; }
.shot.ph--sq{ aspect-ratio:1/1; }
.shot.ph--tall{ aspect-ratio:3/4; }
.shot--auto{ aspect-ratio:auto; height:auto; object-fit:contain; }
/* equipment renders shot on white — show the whole machine instead of cropping it */
.img--fit{ object-fit:contain; background:#fff; padding:14px; }
.icard .shot{ border:0; border-radius:0; border-bottom:1px solid var(--line); aspect-ratio:16/10; }
.icard .img--fit{ padding:22px 26px; aspect-ratio:16/10; }   /* match the photo cards so card text aligns */
.hero__phnote{
  position:absolute; z-index:3; right:var(--gut); bottom:78px; max-width:270px; text-align:right;
  font-size:.74rem; line-height:1.5; color:rgba(255,255,255,.72);
}
.hero__phnote b{ display:block; font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:3px; }

/* ---------- document modal (certificates) ---------- */
.modal{
  position:fixed; inset:0; z-index:200; display:none;
  align-items:center; justify-content:center; padding:clamp(14px,3vw,40px);
}
.modal.is-open{ display:flex; }
.modal__veil{ position:absolute; inset:0; background:rgba(16,18,54,.72); backdrop-filter:blur(3px); }
.modal__box{
  position:relative; z-index:2; width:min(880px,100%); max-height:100%;
  display:flex; flex-direction:column;
  background:var(--paper); border-radius:var(--r); overflow:hidden;
  box-shadow:0 40px 80px -30px rgba(10,12,40,.6);
  animation:modal-in .25s var(--ease);
}
@keyframes modal-in{ from{ opacity:0; transform:translateY(12px) scale(.99); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .modal__box{ animation:none; } }
.modal__hd{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 20px; border-bottom:1px solid var(--line); background:var(--paper);
}
.modal__hd h3{ margin:0; font-size:1.05rem; }
.modal__hd p{ margin:2px 0 0; font-size:.82rem; color:var(--muted); }
.modal__x{
  flex:none; width:38px; height:38px; display:grid; place-items:center; cursor:pointer;
  background:var(--tint); border:1px solid var(--line); border-radius:var(--r-sm); color:var(--body);
  transition:.2s var(--ease);
}
.modal__x:hover{ background:var(--brand); border-color:var(--brand); color:#fff; }
.modal__body{ flex:1; min-height:0; overflow:auto; background:var(--tint); padding:18px; }
.modal__body img{
  width:100%; height:auto; display:block; background:#fff;
  border:1px solid var(--line); border-radius:var(--r-sm);
  box-shadow:0 10px 30px -20px rgba(10,12,40,.5);
}
.modal__body a:hover img{ border-color:var(--brand); }
.modal__ft{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  padding:16px 20px; border-top:1px solid var(--line);
}
.modal__ft small{ color:var(--muted); font-size:.82rem; }
body.modal-open{ overflow:hidden; }

/* ---------- "coming soon" media tile ---------- */
.soon{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; aspect-ratio:16/10; border-radius:var(--r); overflow:hidden;
  background:
    repeating-linear-gradient(135deg, rgba(46,49,146,.045) 0 2px, transparent 2px 14px),
    linear-gradient(155deg, #F3F4FA, #E6E8F4);
  color:var(--brand); text-align:center; padding:20px;
}
.soon svg{ width:44px; height:44px; opacity:.55; }
.soon span{
  font-size:.78rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; opacity:.75;
}
.icard .soon{ border-radius:0; border-bottom:1px solid var(--line); }

/* ---------- sister company card ---------- */
.sister{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  aspect-ratio:16/10; padding:32px 26px; text-align:center;
  background:linear-gradient(155deg,#FFFFFF,#F1F2F9);
  border:1px solid var(--line); border-radius:var(--r);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.sister:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:#D2D4E2; }
.sister__logo{ width:min(76%,340px); height:auto; margin-bottom:4px; }
.sister__sub{ font-size:.88rem; color:var(--muted); }
.sister__link{
  display:inline-flex; align-items:center; gap:7px; margin-top:12px;
  font-size:.92rem; font-weight:600; color:var(--brand);
}
.sister:hover .sister__link svg{ transform:translateX(3px); }
.sister__link svg{ transition:transform .22s var(--ease); }
.soon--wide{ aspect-ratio:21/9; }

/* ---------- cards ---------- */
.card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:30px 28px; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:#D2D4E2; }
.card p{ color:var(--body); font-size:.96rem; }
.card__no{ display:block; font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--brand); opacity:.7; margin-bottom:12px; }

/* image card (home + capabilities + facility grids) */
.icard{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.icard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:#D2D4E2; }
.icard .ph{ border:0; border-radius:0; border-bottom:1px solid var(--line); aspect-ratio:16/10; }
.icard__body{ padding:24px 24px 28px; }
.icard h3{ margin-bottom:10px; }
.icard p{ font-size:.95rem; margin:0; }

.card__list{ list-style:none; margin:14px 0 0; padding:0; }
.card__list li{ position:relative; padding-left:19px; font-size:.95rem; margin-bottom:7px; }
.card__list li::before{
  content:""; position:absolute; left:0; top:.62em; width:7px; height:7px;
  background:var(--brand); border-radius:2px;
}
.indigo .card__list li::before{ background:#fff; }

/* ---------- stat band ---------- */
.stats__in{ display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.stats__in > div{ padding:30px 26px; border-right:1px solid var(--line); background:var(--paper); }
.stats__in > div:last-child{ border-right:0; }
.stats b{ display:block; font-size:clamp(1.9rem,3vw,2.5rem); font-weight:700; letter-spacing:-.03em; line-height:1; color:var(--brand); }
.stats span{ display:block; margin-top:9px; font-size:.8rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }

/* ---------- spec rows ---------- */
.specs{ border-top:1px solid var(--line); }
.spec{
  display:grid; grid-template-columns:38px minmax(200px,.85fr) 2fr; gap:24px;
  padding:24px 6px; border-bottom:1px solid var(--line); align-items:baseline;
  transition:background .22s var(--ease), padding-left .22s var(--ease);
}
.spec:hover{ background:var(--tint); padding-left:16px; }
.spec__no{ font-size:.8rem; font-weight:700; color:var(--brand); opacity:.6; }
.spec__ttl{ font-weight:700; font-size:1.08rem; color:var(--brand); letter-spacing:-.012em; }
.spec__body{ font-size:.97rem; }

/* ---------- tags ---------- */
.tags{ display:flex; flex-wrap:wrap; gap:10px; }
.tag{
  font-size:.88rem; font-weight:600; padding:10px 17px;
  border:1px solid var(--line); border-radius:999px; background:var(--paper);
  color:var(--body); transition:.22s var(--ease);
}
.tag:hover{ border-color:var(--brand); color:var(--brand); background:var(--brand-soft); }

/* ---------- pillars (Innovation / Customer-first / A True Partner) ---------- */
.pillar__ic{
  display:block; width:34px; height:34px; color:var(--gold); margin-bottom:16px;
}
.pillar__ic svg{ width:100%; height:100%; }
.pillar h3{ margin-bottom:10px; }
.pillar p{ font-size:.97rem; margin:0; }
.pillar strong{ color:var(--ink); font-weight:700; }

/* ---------- certifications ---------- */
.cert{ text-align:center; padding:6px 10px; }
.cert__badge{
  width:auto; max-width:100%; height:100%; max-height:104px;
  margin:0 auto; display:block; object-fit:contain;
}
/* fixed-height bay so every badge shares one baseline, whatever its proportions */
.cert{ display:flex; flex-direction:column; }
.cert__bay{ height:116px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.cert__badge--wide{ max-height:84px; }
.cert h4{ font-size:1.05rem; margin-bottom:8px; }
.cert p{ font-size:.94rem; color:var(--muted); margin:0; max-width:34ch; margin-inline:auto; }
.cert code{ font-family:inherit; font-weight:700; color:var(--brand); }

/* ---------- news ---------- */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(22px,2.4vw,32px); }
.post{
  display:flex; flex-direction:column; background:var(--paper);
  border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.post:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:#D2D4E2; }
.post__media{ position:relative; }
.post .ph{ aspect-ratio:16/10; border:0; border-radius:0; border-bottom:1px solid var(--line); }
.post img.img--fit{ object-fit:contain; background:var(--brand-soft); padding:5%; }
.article img.img--fit{ background:var(--brand-soft); border-radius:var(--r); padding:6%; }
.article .shot{ border-radius:var(--r); border:1px solid var(--line); }
.post--feat img.img--fit{ padding:8%; }
.post img{ aspect-ratio:16/10; object-fit:cover; width:100%; }
.post__body{ padding:24px 24px 28px; display:flex; flex-direction:column; flex:1; }
.post__meta{
  display:flex; align-items:center; gap:10px; margin-bottom:12px;
  font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.post__cat{ color:var(--brand); }
.post__meta .dot{ width:3px; height:3px; background:currentColor; border-radius:50%; }
.post h3{ font-size:1.15rem; margin-bottom:11px; }
.post p{ font-size:.94rem; flex:1; }
.post .tlink{ margin-top:18px; font-size:.88rem; }

.post--feat{ grid-column:span 2; flex-direction:row; }
.post--feat .post__media{ width:48%; flex:none; align-self:stretch; border-right:1px solid var(--line); }
.post--feat .post__media img,.post--feat .post__media .ph{
  position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto;
  border-bottom:0; border-right:0;
}
.post--feat .post__body{ padding:34px; justify-content:center; }
.post--feat h3{ font-size:clamp(1.35rem,2vw,1.7rem); }

.filters{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:36px; }
.filters button{
  font-family:var(--f); font-size:.88rem; font-weight:600;
  padding:9px 17px; border:1px solid var(--line); background:var(--paper); border-radius:999px;
  color:var(--body); cursor:pointer; transition:.2s var(--ease);
}
.filters button:hover{ border-color:var(--brand); color:var(--brand); }
.filters button.is-on{ background:var(--brand); border-color:var(--brand); color:#fff; }

/* article */
.article{ max-width:740px; margin-inline:auto; }
.article h2{ font-size:clamp(1.4rem,2.2vw,1.85rem); margin-top:1.9em; }
.article ul{ padding-left:1.1em; }
.article li{ margin-bottom:.5em; }
/* article photos: {img: …} full width, {gallery: […]} two-up */
.a-fig{ margin:2.2em 0; }
.a-fig img{
  width:100%; border-radius:var(--r); border:1px solid var(--line);
  aspect-ratio:4/3; object-fit:cover;
}
.a-fig figcaption{
  margin-top:10px; font-size:.86rem; color:var(--muted); line-height:1.5;
}
.a-gallery{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin:2.2em 0; }
.a-gallery .a-fig{ margin:0; }
.a-gallery img{ aspect-ratio:4/3; }
@media (max-width:640px){ .a-gallery{ grid-template-columns:1fr; } }

.article blockquote{
  margin:2em 0; padding:2px 0 2px 24px; border-left:3px solid var(--brand);
  font-size:1.16rem; font-weight:600; line-height:1.5; letter-spacing:-.015em; color:var(--brand);
}

/* ---------- CTA band ---------- */
.cta__in{ display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap; }
.cta h2{ margin:0; max-width:17ch; }

/* ---------- contact ---------- */
.form{ display:grid; gap:16px; }
.form-panel{
  background:var(--tint); border:1px solid var(--line); border-radius:var(--r);
  padding:clamp(24px,3vw,36px);
}
.field label{ display:block; font-size:.82rem; font-weight:600; color:var(--muted); margin-bottom:7px; }
.field input,.field select,.field textarea{
  width:100%; padding:14px 16px; font-family:var(--f); font-size:.98rem;
  background:var(--paper); color:var(--body);
  border:1px solid var(--line); border-radius:var(--r-sm);
  transition:border-color .2s, box-shadow .2s;
}
.field textarea{ min-height:160px; resize:vertical; }
.field input::placeholder,.field textarea::placeholder{ color:var(--muted); }
.field select{
  appearance:none; -webkit-appearance:none; padding-right:42px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%236A6E6D' stroke-width='2'%3E%3Cpath d='m1 1 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center;
}
.field input:hover,.field select:hover,.field textarea:hover{ border-color:#C9CCD8; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-tint);
}
.form__note{ font-size:.85rem; color:var(--muted); }
.form__ok{
  display:none; padding:15px 17px; border:1px solid var(--brand);
  background:var(--brand-soft); border-radius:var(--r-sm); color:var(--brand-dk); font-size:.95rem;
}
.form__ok.is-on{ display:block; }
.form__err{ border-color:#B3261E; background:#FDECEA; color:#8C1D18; }

.cinfo__row{ display:flex; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }
.cinfo__row:last-child{ border-bottom:0; }
.cinfo__ic{
  flex:none; width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
  background:var(--brand-soft); color:var(--brand);
}
.cinfo h4{ margin:0 0 3px; font-size:.98rem; color:var(--ink); }
.cinfo p,.cinfo a{ color:var(--body); font-size:.97rem; margin:0; }
.cinfo a:hover{ color:var(--brand); }

.map{
  border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  aspect-ratio:16/9; background:#F1F2F8;
}
.map iframe{ width:100%; height:100%; border:0; display:block; }

/* ---------- footer ---------- */
.ftr{ background:var(--gray); color:var(--body); }
.ftr__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:44px; padding:clamp(48px,6vw,74px) 0 44px; }
.ftr .logo{ color:var(--brand); }
.ftr .logo__tx{ color:var(--brand); }
.ftr h5{ font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin:0 0 16px; }
.ftr ul{ list-style:none; margin:0; padding:0; }
.ftr li{ margin-bottom:10px; }
.ftr a{ font-size:.95rem; }
.ftr a:hover{ color:var(--brand); }
.ftr__blurb{ font-size:.94rem; max-width:34ch; margin-top:16px; color:var(--muted); }
.ftr__badges{ display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }
.ftr__badges span{
  font-size:.72rem; font-weight:600; letter-spacing:.06em; padding:6px 11px;
  border:1px solid #D8D8D8; border-radius:999px; color:var(--muted); background:rgba(255,255,255,.6);
}
.ftr__btm{
  display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;
  padding:22px 0 28px; border-top:1px solid #DCDCDC; font-size:.84rem; color:var(--muted);
}

/* ---------- reveal ---------- */
.rv{ opacity:0; transform:translateY(18px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.rv.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .rv{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .ftr__top{ grid-template-columns:1fr 1fr; gap:34px; }
  .stats__in{ grid-template-columns:repeat(2,1fr); }
  .stats__in > div:nth-child(2){ border-right:0; }
  .stats__in > div:nth-child(-n+2){ border-bottom:1px solid var(--line); }
  .g-4{ grid-template-columns:repeat(2,1fr); }
  .news-grid{ grid-template-columns:repeat(2,1fr); }
  .post--feat{ grid-column:span 2; }
}
@media (max-width:900px){
  .burger{ display:block; }
  .nav{
    position:absolute; inset:72px 0 auto 0; flex-direction:column; align-items:stretch;
    gap:0; margin:0; background:var(--brand); padding:10px var(--gut) 24px;
    box-shadow:0 18px 28px -22px rgba(0,0,0,.6);
    transform:translateY(-12px); opacity:0; pointer-events:none; transition:.26s var(--ease);
  }
  .nav-open .nav{ transform:none; opacity:1; pointer-events:auto; }
  .nav a{ padding:14px 12px; border-bottom:1px solid rgba(255,255,255,.16); border-radius:0; }
  .nav a.is-active{ background:var(--ink); border-radius:var(--r-sm); border-bottom-color:transparent; }
  .hdr__cta{ display:none; }
  .nav .hdr__cta--m{ display:block; margin-top:16px; text-align:center; background:#fff; color:var(--brand); border-radius:var(--r-sm); padding:13px; }
  .g-2,.g-3,.g-4,.split,.split--wide{ grid-template-columns:1fr; }
  .split .order-first{ order:-1; }
  .spec{ grid-template-columns:34px 1fr; gap:12px 14px; }
  .spec__body{ grid-column:2; }
  .news-grid{ grid-template-columns:1fr; }
  .post--feat{ grid-column:span 1; flex-direction:column; }
  .post--feat .post__media{ width:100%; border-right:0; border-bottom:1px solid var(--line); }
  .post--feat .post__media img,.post--feat .post__media .ph{
    position:static; width:100%; height:auto; aspect-ratio:16/10;
  }
  .post--feat .post__body{ padding:24px; }
  .cta__in{ flex-direction:column; align-items:flex-start; }
  /* stack the hero: the tagline strip becomes a normal block under the copy */
  .hero{ display:block; min-height:0; }
  .hero__in{ padding-block:clamp(58px,11vw,96px) clamp(40px,7vw,70px); }
  .hero h1{ max-width:none; }
  .hero .lede{ max-width:46ch; }
  .hero__tagline{ position:static; background:rgba(16,18,54,.62); }
  .hero__tagline .wrap{ gap:8px 26px; padding-block:14px; }
  .hero__tagline span{ font-size:.76rem; }
}
@media (max-width:560px){
  :root{ --gut:20px; }
  body{ font-size:16px; }
  .stats__in{ grid-template-columns:1fr; }
  .stats__in > div{ border-right:0; border-bottom:1px solid var(--line); }
  .stats__in > div:last-child{ border-bottom:0; }
  .ftr__top{ grid-template-columns:1fr; }
  .btn{ width:100%; justify-content:center; }
  .hero .lede{ font-size:1.12rem; }
}
