/* ==========================================================================
   G2 Construction - Theme styles
   Brand: forest green (#00703C) + maroon (#900000), pulled from the company
   letterhead swoosh. Tabbed layout so every heading is a top-row tab.
   Type: Outfit (headings) + Work Sans (body), self-hosted in assets/fonts.
   ========================================================================== */

/* ---- self-hosted webfonts (no external requests) ---- */
@font-face{
  font-family:"Outfit"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/outfit-400.woff2") format("woff2");
}
@font-face{
  font-family:"Outfit"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/outfit-700.woff2") format("woff2");
}
@font-face{
  font-family:"Work Sans"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/worksans-400.woff2") format("woff2");
}
@font-face{
  font-family:"Work Sans"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/worksans-700.woff2") format("woff2");
}

:root{
  --green:        #00703C;
  --green-dark:   #00532C;
  --green-darker: #013a20;
  --green-tint:   #e9f3ed;
  --green-tint-2: #d8e9df;
  --green-2:      #6fb488;   /* lighter brand green (the "2" in the G2 logo) */
  --maroon:       #900000;
  --maroon-bright:#b3161c;
  --ink:          #1d2a24;
  --body:         #3c4a43;
  --muted:        #6b7a72;
  --line:         #e2e8e4;
  --bg:           #ffffff;
  --bg-soft:      #f4f7f5;
  --bg-soft-2:    #eef2ef;
  --white:        #ffffff;
  --shadow-sm: 0 1px 3px rgba(13,40,25,.08), 0 1px 2px rgba(13,40,25,.06);
  --shadow-md: 0 6px 22px rgba(13,40,25,.10);
  --shadow-lg: 0 18px 48px rgba(13,40,25,.16);
  --radius: 10px;
  --radius-lg: 16px;
  --maxw: 1180px;
  --header-h: 76px;
  --font-head: "Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-body: "Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ---------- base ---------- */
html{ scroll-behavior:smooth; }
body{
  font-family:var(--font-body);
  color:var(--body);
  background:var(--bg);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--green); text-decoration:none; transition:color .15s ease; }
a:hover{ color:var(--maroon); }
h1,h2,h3,h4{ font-family:var(--font-head); color:var(--ink); line-height:1.1; margin:0 0 .5em; letter-spacing:.01em; font-weight:700; }
h1{ font-size:clamp(2.2rem,4.5vw,3.4rem); text-transform:uppercase; }
h2{ font-size:clamp(1.7rem,3.2vw,2.5rem); text-transform:uppercase; }
h3{ font-size:1.35rem; }
h4{ font-size:1.1rem; letter-spacing:.04em; text-transform:uppercase; }
p{ margin:0 0 1.1rem; }
.container{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--green); color:#fff; padding:10px 16px; z-index:1000; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }

/* shared accent: little arrow used in headings, echoing the PDF's ➢ bullet */
.eyebrow{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--font-head); font-weight:600; text-transform:uppercase;
  letter-spacing:.18em; font-size:.92rem; color:var(--maroon); margin-bottom:.6rem;
}
.eyebrow::before{ content:""; width:34px; height:3px; background:var(--maroon); display:inline-block; }

/* ==========================================================================
   HEADER + TAB NAVIGATION  (every heading = a top-row tab)
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:200;
  background:rgba(255,255,255,.97);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid var(--line);
  box-shadow:var(--shadow-sm);
}
/* thin brand swoosh bar echoing the letterhead */
.brandbar{ height:6px; background:linear-gradient(90deg,var(--green) 0%,var(--green-dark) 55%,var(--maroon) 55%,var(--maroon-bright) 100%); }

.header-inner{
  max-width:var(--maxw); margin:0 auto; padding:0 24px;
  min-height:var(--header-h);
  display:flex; align-items:center; justify-content:space-between; gap:18px;
}

/* G2 Construction logo lockup (inline SVG mark + wordmark) */
.brand{ display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.brand-logo{ display:flex; align-items:center; gap:11px; text-decoration:none; }
.g2-mark-svg{ height:46px; width:auto; display:block; flex:0 0 auto; }
.g2-mark-svg .g2-dark{ fill:var(--green); }
.g2-mark-svg .g2-two{ fill:var(--green-2); }
.brand-word{
  font-family:var(--font-head); font-weight:700; text-transform:uppercase;
  letter-spacing:.15em; font-size:1.4rem; color:var(--green); line-height:1;
}
.brand-logo img{ max-height:48px; width:auto; }   /* if a custom logo is set in WP */
/* footer sits on dark green -> knock the logo out to white/light */
.site-footer .g2-mark-svg .g2-dark{ fill:#ffffff; }
.site-footer .g2-mark-svg .g2-two{ fill:#bfe6cf; }
.site-footer .brand-word{ color:#ffffff; }
@media (max-width:520px){ .brand-word{ display:none; } }  /* mark only on very small screens */

/* tab list */
.tab-nav{ flex:1 1 auto; }
.tablist{
  list-style:none; margin:0; padding:0;
  display:flex; flex-wrap:wrap; gap:2px; justify-content:flex-end; align-items:center;
}
.tablist .tab{
  font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.02em;
  font-size:1rem; color:var(--ink);
  background:transparent; border:none; cursor:pointer;
  padding:.58rem .62rem; border-radius:8px; position:relative;
  display:inline-flex; align-items:center; white-space:nowrap; line-height:1;
  transition:color .15s ease, background .15s ease;
}
.tablist .tab:hover{ color:var(--green); background:var(--green-tint); }
.tablist .tab::after{
  content:""; position:absolute; left:12px; right:12px; bottom:2px; height:3px;
  background:var(--green); border-radius:3px; transform:scaleX(0); transform-origin:center;
  transition:transform .18s ease;
}
.tablist .tab[aria-selected="true"]{ color:var(--green); }
.tablist .tab[aria-selected="true"]::after{ transform:scaleX(1); }
.tablist .tab:focus-visible{ outline:3px solid var(--maroon); outline-offset:2px; }

/* mobile menu toggle */
.menu-toggle{
  display:none; align-items:center; gap:8px; cursor:pointer;
  background:var(--green); color:#fff; border:none; border-radius:8px;
  font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.06em;
  font-size:1rem; padding:.55rem .9rem;
}
.menu-toggle .bars{ width:18px; height:13px; position:relative; display:inline-block; }
.menu-toggle .bars::before,.menu-toggle .bars::after,.menu-toggle .bars span{
  content:""; position:absolute; left:0; right:0; height:2px; background:#fff; border-radius:2px;
}
.menu-toggle .bars::before{ top:0; } .menu-toggle .bars span{ top:5.5px; } .menu-toggle .bars::after{ top:11px; }

/* ==========================================================================
   PANELS
   ========================================================================== */
.panels{ min-height:60vh; }
.panel{ animation:fade .35s ease; }
.panel[hidden]{ display:none; }
@keyframes fade{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none;} }

.section{ padding:64px 0; }
.section--soft{ background:var(--bg-soft); }
.section--tint{ background:var(--green-tint); }
.section-head{ max-width:760px; margin:0 0 36px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head p{ color:var(--muted); font-size:1.12rem; margin-bottom:0; }
.lead{ font-size:1.2rem; color:var(--ink); }

/* ---------- HOME / hero ---------- */
.hero{ position:relative; color:#fff; }
.hero-media{ position:absolute; inset:0; overflow:hidden; }
.hero-media img{ width:100%; height:100%; object-fit:cover; }
.hero-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(105deg,rgba(1,40,22,.92) 0%,rgba(0,83,44,.82) 42%,rgba(0,40,22,.45) 100%); }
.hero-inner{ position:relative; max-width:var(--maxw); margin:0 auto; padding:96px 24px 104px; }
.hero-card{ max-width:680px; }
.hero h1{ color:#fff; margin-bottom:.35em; }
.hero .since{ display:inline-block; font-family:var(--font-head); letter-spacing:.22em; text-transform:uppercase; font-weight:600; color:#bfe6cf; border:1px solid rgba(255,255,255,.35); padding:.35rem .8rem; border-radius:999px; font-size:.85rem; margin-bottom:1.2rem; }
.hero p{ font-size:1.22rem; color:#e9f3ed; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:1.6rem; }

.btn{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:1.02rem; padding:.85rem 1.5rem; border-radius:8px; cursor:pointer; border:2px solid transparent; transition:transform .12s ease, background .15s ease, color .15s ease, border-color .15s ease; }
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--maroon); color:#fff; border-color:var(--maroon); }
.btn-primary:hover{ background:var(--maroon-bright); color:#fff; }
.btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.btn-ghost:hover{ background:#fff; color:var(--green-dark); }
.btn-green{ background:var(--green); color:#fff; border-color:var(--green); }
.btn-green:hover{ background:var(--green-dark); color:#fff; }

/* stat strip */
.stats{ background:var(--green-darker); }
.stats .container{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding-top:0; padding-bottom:0; }
.stat{ padding:30px 14px; text-align:center; color:#fff; border-right:1px solid rgba(255,255,255,.12); }
.stat:last-child{ border-right:none; }
.stat .num{ font-family:var(--font-head); font-weight:700; font-size:2.7rem; line-height:1; color:#fff; }
.stat .lbl{ text-transform:uppercase; letter-spacing:.12em; font-size:.82rem; color:#bfe6cf; margin-top:.4rem; }

/* feature cards (home quick links) */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow-sm); transition:transform .15s ease, box-shadow .15s ease; }
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.card .ico{ width:48px; height:48px; border-radius:10px; background:var(--green-tint); color:var(--green); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.card .ico svg{ width:26px; height:26px; }
.card h3{ color:var(--ink); margin-bottom:.4rem; }
.card p{ color:var(--muted); margin-bottom:0; font-size:1rem; }
.card .tablink{ display:inline-block; margin-top:14px; font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.05em; font-size:.95rem; }

/* ---------- generic two-column ---------- */
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; }
.split.reverse > .split-media{ order:2; }
.split-media img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-md); width:100%; }
.split-media.framed{ position:relative; }
.split-media.framed::before{ content:""; position:absolute; inset:-14px -14px auto auto; width:62%; height:62%; border:3px solid var(--green-tint-2); border-radius:var(--radius-lg); z-index:-1; }

/* checklist */
.ticks{ list-style:none; margin:1.2rem 0 0; padding:0; display:grid; gap:.7rem; }
.ticks li{ position:relative; padding-left:2rem; color:var(--body); }
.ticks li::before{ content:""; position:absolute; left:0; top:.15em; width:1.25rem; height:1.25rem; border-radius:50%; background:var(--green-tint); }
.ticks li::after{ content:""; position:absolute; left:.42rem; top:.42em; width:.4rem; height:.7rem; border:solid var(--green); border-width:0 2px 2px 0; transform:rotate(45deg); }

/* badges row (certifications) */
.badges{ display:flex; flex-wrap:wrap; gap:12px; margin-top:8px; }
.badge{ display:inline-flex; align-items:center; gap:.5rem; background:#fff; border:1px solid var(--line); border-left:4px solid var(--green); border-radius:8px; padding:.6rem 1rem; font-family:var(--font-head); font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--ink); font-size:.95rem; box-shadow:var(--shadow-sm); }
.badge.maroon{ border-left-color:var(--maroon); }

/* ---------- TEAM ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.member{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
.member .photo{ height:8px; background:linear-gradient(90deg,var(--green),var(--maroon)); }
.member .body{ padding:24px; }
.member .avatar{ width:64px; height:64px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:1.5rem; margin-bottom:14px; letter-spacing:.02em; }
.member h3{ margin-bottom:.1rem; }
.member .role{ color:var(--maroon); font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:.92rem; margin-bottom:.8rem; }
.member p{ font-size:.98rem; color:var(--body); margin-bottom:0; }

/* ---------- SERVICES ---------- */
.svc{ display:grid; gap:26px; }
.svc-item{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:34px; box-shadow:var(--shadow-sm); border-top:5px solid var(--green); }
.svc-item:nth-child(even){ border-top-color:var(--maroon); }
.svc-item h3{ font-size:1.6rem; color:var(--ink); }
.svc-cols{ display:grid; grid-template-columns:1fr 1fr; gap:18px 40px; margin-top:18px; }
.svc-benefit{ display:flex; gap:.8rem; }
.svc-benefit .dot{ flex:0 0 auto; width:10px; height:10px; border-radius:50%; background:var(--green); margin-top:.5rem; }
.svc-benefit strong{ color:var(--ink); }
.svc-benefit span{ display:block; color:var(--muted); font-size:.97rem; }

/* ---------- OUR WORK: sub-tabs + gallery ---------- */
.work-subnav{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:38px; }
.work-subnav .subtab{
  font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.05em; font-size:1rem;
  padding:.6rem 1.15rem; border-radius:999px; border:2px solid var(--line); background:#fff; color:var(--ink); cursor:pointer;
  transition:all .15s ease;
}
.work-subnav .subtab:hover{ border-color:var(--green); color:var(--green); }
.work-subnav .subtab[aria-selected="true"]{ background:var(--green); border-color:var(--green); color:#fff; }
.work-subnav .subtab:focus-visible{ outline:3px solid var(--maroon); outline-offset:2px; }
.workpanel[hidden]{ display:none; }
.workpanel{ animation:fade .3s ease; }
.project-title{ display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; margin-top:6px; }
.project-title .tag{ font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; color:#fff; background:var(--maroon); padding:.2rem .6rem; border-radius:6px; }

.gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px; }
.gallery.two{ grid-template-columns:repeat(2,1fr); }
.shot{ position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); background:#eef2ef; aspect-ratio:4/3; }
.shot.tall{ aspect-ratio:3/4; }
.shot.wide{ grid-column:span 2; aspect-ratio:16/9; }
.shot img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.shot:hover img{ transform:scale(1.05); }
.shot figcaption{ position:absolute; left:0; right:0; bottom:0; padding:14px 14px 12px; color:#fff; font-family:var(--font-head); font-weight:600; letter-spacing:.03em; background:linear-gradient(0deg,rgba(1,30,16,.82),transparent); font-size:1rem; }

.feature-project{ display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; margin-bottom:30px; }
.feature-project .ph img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-md); width:100%; }

/* ---------- CAREERS ---------- */
.careers-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.role-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow-sm); }
.role-card h3{ display:flex; align-items:center; gap:.6rem; color:var(--green-dark); }
.role-card ul{ list-style:none; margin:14px 0 0; padding:0; display:grid; gap:.55rem; }
.role-card li{ padding-left:1.4rem; position:relative; }
.role-card li::before{ content:"›"; position:absolute; left:0; color:var(--maroon); font-weight:700; font-size:1.2rem; line-height:1; }
.apply-box{ background:var(--green); color:#fff; border-radius:var(--radius-lg); padding:34px; text-align:center; margin-top:30px; }
.apply-box h3{ color:#fff; } .apply-box p{ color:#dbeee2; }
.req-pill{ display:inline-block; background:var(--green-tint); color:var(--green-dark); border-radius:999px; padding:.35rem .9rem; margin:.2rem; font-family:var(--font-head); font-weight:600; letter-spacing:.04em; font-size:.92rem; }

/* ---------- CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:stretch; }
.contact-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:36px; box-shadow:var(--shadow-sm); }
.contact-list{ list-style:none; margin:0; padding:0; display:grid; gap:20px; }
.contact-list li{ display:flex; gap:16px; align-items:flex-start; }
.contact-list .ci{ flex:0 0 auto; width:46px; height:46px; border-radius:10px; background:var(--green-tint); color:var(--green); display:flex; align-items:center; justify-content:center; }
.contact-list .ci svg{ width:24px; height:24px; }
.contact-list .k{ font-family:var(--font-head); text-transform:uppercase; letter-spacing:.08em; font-size:.82rem; color:var(--muted); }
.contact-list .v{ font-size:1.18rem; color:var(--ink); font-weight:600; }
.contact-list a.v{ color:var(--green); }
.contact-media img{ width:100%; height:100%; min-height:280px; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.contact-photo{ margin-top:24px; }
.contact-photo img{ width:100%; height:220px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow-sm); }

/* ---------- CONTACT FORM ---------- */
.contact-form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:36px; box-shadow:var(--shadow-sm); }
.contact-form-card h3{ margin-bottom:1.1rem; }
.lcg-form .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.lcg-form .field{ margin:0 0 16px; display:flex; flex-direction:column; }
.lcg-form label{ font-family:var(--font-head); font-weight:600; text-transform:uppercase; letter-spacing:.05em; font-size:.8rem; color:var(--muted); margin-bottom:.4rem; }
.lcg-form label span{ color:var(--maroon); }
.lcg-form input,.lcg-form select,.lcg-form textarea{
  width:100%; font-family:var(--font-body); font-size:1rem; color:var(--ink);
  background:var(--bg-soft); border:1px solid var(--line); border-radius:8px; padding:.7rem .85rem;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.lcg-form textarea{ resize:vertical; min-height:120px; }
.lcg-form input:focus,.lcg-form select:focus,.lcg-form textarea:focus{
  outline:none; border-color:var(--green); background:#fff; box-shadow:0 0 0 3px var(--green-tint);
}
.lcg-form .btn{ width:100%; justify-content:center; margin-top:2px; }
.lcg-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-fineprint{ margin:.9rem 0 0; font-size:.85rem; color:var(--muted); }
.lcg-form-status{ margin:0 0 4px; font-size:.95rem; }
.lcg-form-status.ok,.form-banner.ok{ color:#0a6b34; }
.lcg-form-status.err,.form-banner.err{ color:var(--maroon); }
.lcg-form-status:empty{ display:none; }
.form-banner{ border-radius:10px; padding:14px 18px; margin:0 0 24px; font-weight:600; border:1px solid; }
.form-banner.ok{ background:var(--green-tint); border-color:#bfe0cc; }
.form-banner.err{ background:#fdECEC; border-color:#f3c6c6; }

/* ---------- FOOTER ---------- */
.site-footer{ background:var(--green-darker); color:#cfe3d6; }
.footer-top{ max-width:var(--maxw); margin:0 auto; padding:48px 24px 30px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px; }
.site-footer h4{ color:#fff; letter-spacing:.1em; margin-bottom:1rem; }
.site-footer a{ color:#cfe3d6; }
.site-footer a:hover{ color:#fff; }
.footer-links{ list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.footer-brand .brand-name{ color:#fff; } .footer-brand .brand-sub{ color:#8fc0a3; }
.footer-brand p{ color:#a9cdb7; margin-top:1rem; max-width:34ch; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); }
.footer-bottom .container{ display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; padding-top:18px; padding-bottom:18px; font-size:.9rem; color:#9cc1aa; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1140px){
  .brand-name,.brand-mark{ font-size:1.35rem; }
  .tablist .tab{ font-size:.92rem; padding:.5rem .5rem; }
}
@media (max-width:1024px){
  :root{ --header-h:64px; }
  .menu-toggle{ display:inline-flex; }
  .tab-nav{ position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow-md); padding:10px 16px 16px; display:none; }
  .tab-nav.open{ display:block; }
  .tablist{ flex-direction:column; align-items:stretch; gap:2px; }
  .tablist .tab{ width:100%; justify-content:flex-start; font-size:1.1rem; padding:.8rem .6rem; border-radius:8px; }
  .tablist .tab::after{ display:none; }
  .tablist .tab[aria-selected="true"]{ background:var(--green-tint); }
  .split,.contact-grid,.feature-project{ grid-template-columns:1fr; gap:28px; }
  .split.reverse > .split-media{ order:0; }
  .cards,.team-grid,.svc-cols,.careers-grid{ grid-template-columns:1fr 1fr; }
  .stats .container{ grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(2){ border-right:none; }
}
@media (max-width:640px){
  body{ font-size:16px; }
  .section{ padding:48px 0; }
  .container{ padding:0 18px; }
  .cards,.team-grid,.svc-cols,.careers-grid,.gallery,.gallery.two{ grid-template-columns:1fr; }
  .lcg-form .form-row{ grid-template-columns:1fr; gap:0; }
  .shot.wide{ grid-column:span 1; aspect-ratio:4/3; }
  .hero-inner{ padding:64px 18px 72px; }
  .brand-sub{ display:none; }
  .stats .container{ grid-template-columns:1fr 1fr; }
}

/* No-JS fallback: show every panel stacked so all content stays reachable */
.no-js .panel[hidden]{ display:block !important; }
.no-js .workpanel[hidden]{ display:block !important; }
.no-js .tab-nav{ position:static; display:block; }
.no-js .menu-toggle{ display:none; }

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