/* ===================================================================
   The Bench — Homepage  (rebuilt to match live site)
   Brand: primary #73bf43 · secondary #58585a · tertiary #ffffff
   Font:  Aptos (Light/Regular/Black) with Inter fallback
   =================================================================== */

:root {
  --green:   #73bf43;
  --green-d: #65ad39;
  --grey:    #58585a;
  --grey-l:  #6e6e70;
  --white:   #ffffff;
  --max:     1200px;
  --pad:     clamp(1.25rem, 5vw, 4rem);
}

/* Use Aptos if present on the machine, else fall back to Inter */
@font-face { font-family:"Aptos"; src:local("Aptos Light");  font-weight:300; font-display:swap; }
@font-face { font-family:"Aptos"; src:local("Aptos");        font-weight:400; font-display:swap; }
@font-face { font-family:"Aptos"; src:local("Aptos Display");font-weight:600; font-display:swap; }
@font-face { font-family:"Aptos"; src:local("Aptos Black");  font-weight:900; font-display:swap; }

/* Heading font — Mosse Extra Bold (self-host for production); falls back to Inter */
@font-face { font-family:"Mosse"; src:local("Mosse Extra Bold"),local("Mosse ExtraBold"),local("Mosse"); font-weight:800; font-display:swap; }
:root { --heading:"Mosse","Aptos","Inter",sans-serif; }

/* All header texts use Mosse Extra Bold */
h1, h2, h3, h4 { font-family:var(--heading); font-weight:800; }

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:"Aptos","Inter",system-ui,sans-serif;
  color:var(--grey); background:var(--white); line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img { max-width:100%; display:block; }
a { color:inherit; }

.container { width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--pad); }
.section  { padding-block:clamp(3.5rem,8vw,6.5rem); }

/* ---------- Buttons ---------- */
.btn {
  display:inline-block; padding:.8em 2.2em; border:0; border-radius:100px;
  font:inherit; font-weight:600; cursor:pointer; text-decoration:none;
  transition:background .25s, transform .25s, box-shadow .25s;
}
.btn-primary { background:var(--green); color:var(--white); box-shadow:0 6px 18px rgba(115,191,67,.30); }
.btn-primary:hover { background:var(--green-d); transform:translateY(-2px); }

/* ---------- Header ---------- */
.site-header {
  position:fixed; inset:0 0 auto 0; z-index:100;
  background:rgba(255,255,255,.96); border-bottom:1px solid rgba(0,0,0,.05);
  transition:box-shadow .3s, padding .3s; padding-block:.5rem;
}
.site-header.scrolled { box-shadow:0 2px 16px rgba(0,0,0,.08); }
.header-inner { display:flex; align-items:center; justify-content:center; gap:clamp(1.5rem,3vw,3rem); }
.logo img { height:90px; width:auto; transition:height .3s; }
.site-header.scrolled .logo img { height:72px; }
.nav { display:flex; align-items:center; gap:clamp(1rem,2vw,2rem); }
.nav a { color:var(--grey); text-decoration:none; font-weight:300; font-size:1.05rem; position:relative; }
.nav a::after { content:""; position:absolute; left:0; bottom:-5px; height:2px; width:0; background:var(--green); transition:width .3s; }
.nav a:hover::after { width:100%; }
/* "More" dropdown */
.nav-dropdown { position:relative; display:inline-flex; align-items:center; }
.nav-more { font:inherit; font-weight:300; font-size:1.05rem; color:var(--grey); background:none; border:0; cursor:pointer; display:inline-flex; align-items:center; gap:.3rem; }
.nav-more .caret { font-size:.75rem; transition:transform .2s ease; }
.nav-dropdown:hover .nav-more .caret, .nav-dropdown.open .nav-more .caret { transform:rotate(180deg); }
.dropdown-menu {
  position:absolute; top:100%; right:0; min-width:200px;
  background:#fff; border:1px solid #ececec; border-radius:10px;
  box-shadow:0 12px 30px rgba(0,0,0,.12); padding:.5rem; z-index:200;
  display:none; flex-direction:column;
}
.nav-dropdown:hover .dropdown-menu, .nav-dropdown.open .dropdown-menu { display:flex; }
.dropdown-menu a { padding:.55rem .85rem; border-radius:6px; font-size:1rem; font-weight:400; }
.dropdown-menu a::after { display:none; }
.dropdown-menu a:hover { background:var(--bg-soft); color:var(--green-d); }

.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.nav-toggle span { width:26px; height:3px; background:var(--grey); border-radius:3px; transition:.3s; }

/* ---------- Hero ---------- */
.hero {
  position:relative; min-height:100svh; display:flex; align-items:center;
  background:url("../img/hero-graph.png") center right / cover no-repeat;
}
.hero-inner { max-width:900px; margin-left:clamp(1rem,6vw,7rem); }
.hero-title { font-size:clamp(2rem,5vw,4rem); font-weight:900; color:var(--grey); line-height:1.08; letter-spacing:-.01em; white-space:nowrap; }
.hero-sub   { font-size:clamp(1rem,1.8vw,1.35rem); font-weight:300; color:var(--grey); margin:1.6rem 0 2.2rem; }

/* ---------- Services ---------- */
.services { background:var(--white); text-align:center; }
.services-heading { font-size:clamp(1.5rem,3.2vw,2.4rem); font-weight:800; color:var(--grey); margin-bottom:clamp(2.5rem,6vw,4.5rem); line-height:1.25; }
.cols { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(2rem,5vw,4rem); }
.icon { display:grid; place-items:center; margin-bottom:1.4rem; }
.icon svg { width:clamp(120px, 16vw, 240px); height:auto; }
.col h3 { font-size:1.4rem; font-weight:800; color:var(--grey); margin-bottom:1.2rem; }
.col ul { list-style:none; text-align:left; max-width:320px; margin-inline:auto; }
.col li { position:relative; padding-left:1.3em; margin-bottom:.7rem; color:var(--grey-l); font-weight:300; }
.col li::before { content:"•"; position:absolute; left:0; color:var(--grey-l); }

/* ---------- Stats ---------- */
.stats { background:var(--grey); color:var(--white); text-align:center; }
.stats-heading { font-size:clamp(1.5rem,3.2vw,2.3rem); font-weight:800; margin-bottom:clamp(2rem,5vw,3.5rem); }
.stats-row { display:flex; align-items:flex-start; justify-content:center; gap:clamp(1rem,3vw,2.5rem); flex-wrap:wrap; }
.stat { flex:1 1 0; min-width:150px; max-width:230px; }
.stat-num { display:block; font-size:clamp(2.6rem,5.5vw,4.2rem); font-weight:900; line-height:1; }
.stat p { margin-top:.8rem; font-weight:300; color:rgba(255,255,255,.92); max-width:22ch; margin-inline:auto; }
.dot { align-self:center; width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.6); flex:0 0 auto; }
.stats-source { margin-top:2.5rem; text-align:right; font-size:.8rem; color:rgba(255,255,255,.7); }
.stats-source a { color:rgba(255,255,255,.85); }

/* ---------- About ---------- */
.about { background:var(--white); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.about-text { padding:clamp(3rem,7vw,6rem) clamp(1.5rem,5vw,5rem); max-width:760px; margin-left:auto; }
.about-text h2 { font-size:clamp(1.8rem,3.6vw,2.6rem); font-weight:800; color:var(--grey); margin-bottom:1.6rem; }
.about-text p { font-weight:300; color:var(--grey-l); margin-bottom:1.3rem; }
.about-img {
  position:relative; min-height:420px;
  background:url("../img/cranes.jpg") center / cover no-repeat;
}

/* ---------- Contact ---------- */
.contact { background:var(--white); position:relative; }
.contact::before {
  content:""; position:absolute; inset:0; z-index:0; opacity:.5;
  background-image:linear-gradient(rgba(0,0,0,.04) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(0,0,0,.04) 1px,transparent 1px);
  background-size:54px 54px;
}
.contact-grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,5rem); align-items:start; }
.eyebrow { display:block; font-weight:700; letter-spacing:.18em; color:var(--grey-l); font-size:.85rem; margin-bottom:1rem; }
.contact-info h2 { font-size:clamp(1.8rem,3.6vw,2.6rem); font-weight:800; color:var(--grey); margin-bottom:1.6rem; }
.contact-line { color:var(--grey-l); font-weight:300; margin-bottom:.6rem; }
.contact-line a { text-decoration:none; }
.contact-line a:hover { color:var(--green); }
.social { display:inline-block; margin-top:1.4rem; width:34px; }
.social img { width:100%; filter:grayscale(1) brightness(.2); transition:filter .25s; }
.social:hover img { filter:none; }

/* Form — Wix-style underline inputs */
.contact-form { display:flex; flex-direction:column; gap:1.6rem; }
.field-row { display:flex; gap:1.5rem; }
.field { flex:1; display:flex; flex-direction:column; }
.field label { font-size:.95rem; color:var(--grey-l); margin-bottom:.4rem; font-weight:300; }
.field label span { color:var(--grey); }
.field input, .field textarea {
  font:inherit; color:var(--grey); border:0; border-bottom:1px solid #c9c9cb;
  background:transparent; padding:.4rem 0; resize:vertical;
}
.field input:focus, .field textarea:focus { outline:none; border-bottom-color:var(--green); }
.contact-form .btn { align-self:flex-start; margin-top:.5rem; }

/* ---------- Map + Footer ---------- */
.map-section { line-height:0; }
#map { width:100%; height:430px; background:#eef0ef; }
.bench-pin { background:none; border:0; }
.bench-pin svg { filter:drop-shadow(0 2px 3px rgba(0,0,0,.3)); }
.site-footer { background:var(--white); text-align:center; padding:1.5rem; color:var(--grey-l); font-weight:300; font-size:.9rem; }

/* ===================================================================
   ABOUT US PAGE
   =================================================================== */
.nav a.active { color:var(--green); }
.nav a.active::after { width:100%; }

/* Intro */
.about-intro { padding-top:clamp(7rem,12vw,10rem); text-align:center; }
.intro-title { font-size:clamp(1.8rem,4.5vw,3rem); font-weight:800; color:var(--grey); margin-bottom:1.4rem; }
.intro-lead  { font-size:clamp(1rem,1.6vw,1.2rem); color:var(--grey-l); max-width:70ch; margin:0 auto 1.8rem; }
.intro-body  { font-weight:300; color:var(--grey-l); max-width:60ch; margin:0 auto; }

/* Feature rows (image + text, alternating) */
.feature { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.feature.reverse .feature-img { order:2; }
.feature-img { min-height:520px; height:100%; background-size:cover; background-position:center; }
.feature-text { padding:clamp(2.5rem,6vw,5rem) clamp(1.5rem,6vw,6rem); text-align:center; }
.feature-text h2 { font-size:clamp(1.6rem,3.4vw,2.4rem); font-weight:800; color:var(--grey); margin-bottom:1.6rem; }
.feature-text p { font-weight:300; color:var(--grey-l); margin-bottom:1.2rem; }

/* How list */
.how-list { list-style:none; max-width:480px; margin-inline:auto; }
.how-list li { margin-bottom:1.6rem; }
.how-list strong { display:block; color:var(--grey); font-weight:600; margin-bottom:.35rem; }
.how-list span { display:block; font-weight:300; color:var(--grey-l); }

/* Team */
.team { text-align:center; }
.team-heading { font-size:clamp(1.7rem,3.6vw,2.6rem); font-weight:800; color:var(--grey); margin-bottom:clamp(2.5rem,6vw,4.5rem); }
.bio { display:grid; grid-template-columns:1fr auto; gap:clamp(2rem,5vw,4rem); align-items:center; max-width:1000px; margin:0 auto; padding:2.5rem 0; text-align:left; }
.bio + .bio { border-top:1px solid #e6e6e6; }
.bio.reverse { grid-template-columns:auto 1fr; }
.bio-text h3 { font-size:1.5rem; font-weight:500; color:var(--grey); margin-bottom:.2rem; }
.bio-creds { font-weight:700; font-size:.8rem; color:var(--grey); margin-bottom:1rem; }
.bio-text p { font-weight:300; color:var(--grey-l); text-align:justify; }
.bio-photo { width:clamp(170px,18vw,210px); aspect-ratio:1; border-radius:50%; background-size:cover; background-position:center; background-color:#e6e6e6; }
.bio-links { display:flex; gap:.6rem; margin-top:1.2rem; }
.bio-links a { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--grey-l); transition:background .25s; }
.bio-links a:hover { background:var(--green); }

@media (max-width:900px) {
  .feature, .feature.reverse { grid-template-columns:1fr; }
  .feature.reverse .feature-img { order:0; }
  .feature-img { min-height:300px; }
  .bio, .bio.reverse { grid-template-columns:1fr; justify-items:center; text-align:center; gap:1.5rem; }
  .bio.reverse .bio-photo { order:-1; }
  .bio-text p { text-align:left; }
  .bio-links { justify-content:center; }
}

/* ===================================================================
   WORK WITH US PAGE
   =================================================================== */
.work-intro { padding-top:clamp(7rem,12vw,10rem); padding-bottom:clamp(2rem,5vw,3.5rem); }
.work-title { font-size:clamp(2.2rem,6vw,4rem); font-weight:900; color:var(--grey); margin-bottom:1.6rem; }
.work-lead  { font-weight:300; color:var(--grey-l); max-width:62ch; }

.work-panel { background:#e8ebe3; padding-block:clamp(3rem,7vw,5.5rem); }
/* Non-header text in this section: lighter weight, slightly smaller */
.work-panel { font-weight:300; font-size:.92rem; }
.panel-heading { font-size:clamp(1.6rem,4vw,2.4rem); color:var(--grey); margin-bottom:2.5rem; }

/* Tab indent: everything after the "Send us some info:" header is indented */
.panel-contact, .work-form { margin-left:clamp(1.75rem,5vw,3.5rem); }

.panel-contact { display:flex; flex-wrap:wrap; gap:clamp(2rem,6vw,5rem); margin-bottom:2.5rem; }
.panel-contact h4 { font-size:.95rem; color:var(--grey); margin-bottom:.5rem; }
.panel-contact p  { color:var(--grey-l); font-weight:300; font-size:.88rem; }
.panel-contact a  { color:inherit; }
.panel-contact .social { display:block; width:24px; margin-top:0; line-height:0; }
.panel-contact .social img { width:100%; filter:grayscale(1) brightness(.2); }

/* Form */
.work-form { max-width:720px; }
.wf-row { display:flex; gap:1.25rem; margin-bottom:1.4rem; }
.wf-row.three .wf-field { flex:1; }
.wf-field { display:flex; flex-direction:column; }
.wf-field label { font-size:.82rem; color:var(--grey); margin-bottom:.4rem; font-weight:300; line-height:1.1; }
.wf-field label span { color:var(--grey); }
.wf-field input, .wf-field select {
  font:inherit; color:var(--grey); background:#fff;
  border:1px solid #b9bcb4; padding:.6rem .7rem; border-radius:0;
}
.wf-field input:focus, .wf-field select:focus { outline:none; border-color:var(--green); }
.phone-row .cc { flex:0 0 90px; }
.phone-row .wf-field:last-child { flex:1; }

.wf-upload { margin:1.8rem 0; }
.upload-btn {
  display:inline-flex; align-items:center; gap:.6rem; cursor:pointer;
  background:#fff; border:1px solid #b9bcb4; padding:.65rem 1.1rem; color:var(--grey);
  font-weight:400; transition:border-color .2s;
}
.upload-btn:hover { border-color:var(--green); }
.upload-btn span { font-size:1.1rem; line-height:1; }
.upload-note { margin-top:.5rem; font-size:.85rem; color:var(--grey-l); font-weight:300; }

.work-form .g-recaptcha { margin-bottom:1.8rem; }

@media (max-width:760px) {
  .wf-row.three { flex-direction:column; }
  .panel-contact { gap:1.5rem; }
}

/* ===================================================================
   PEOPLE PAGE
   =================================================================== */
.people-intro { padding-top:clamp(7rem,12vw,10rem); padding-bottom:clamp(1.5rem,4vw,3rem); text-align:center; }
.people-title { font-size:clamp(2rem,5vw,3.4rem); color:var(--grey); margin-bottom:1.2rem; }
.people-lead { font-weight:300; color:var(--grey-l); max-width:60ch; margin:0 auto; }

.people-section { padding-bottom:clamp(3.5rem,8vw,6.5rem); }
.people-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(440px, 1fr)); gap:1rem; }

/* Compact horizontal profile card: info column (left) + bio (right) */
.profile {
  display:grid; grid-template-columns:180px 1fr; gap:1.25rem; align-items:start;
  background:var(--white); border:1px solid #ececec; border-radius:0;
  padding:1.1rem 1.3rem;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.profile:hover { border-color:var(--green); box-shadow:0 8px 22px rgba(0,0,0,.07); }
.profile-info { border-right:1px solid #ececec; padding-right:1.25rem; }
.profile-name { font-size:1.1rem; color:var(--grey); margin-bottom:.15rem; line-height:1.2; }
.profile-role { color:var(--green-d); font-weight:600; font-size:.85rem; margin-bottom:.2rem; }
.profile-creds { font-size:.72rem; font-weight:700; color:var(--grey); margin-bottom:.7rem; }
.profile-bio { font-weight:300; color:var(--grey-l); font-size:.88rem; line-height:1.55; }
.profile-links { display:flex; gap:.5rem; }
.profile-links a { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--grey-l); transition:background .25s; }
.profile-links a:hover { background:var(--green); }

@media (max-width:560px) {
  .people-grid { grid-template-columns:1fr; }
  .profile { grid-template-columns:1fr; gap:.7rem; }
  .profile-info { border-right:0; border-bottom:1px solid #ececec; padding-right:0; padding-bottom:.8rem; }
}

/* ===================================================================
   PROJECTS PAGE
   =================================================================== */
.projects-page { padding-top:clamp(7rem,12vw,10rem); }
.projects-heading { text-align:center; font-size:clamp(2rem,5vw,3.2rem); color:var(--grey); margin-bottom:2rem; }

/* Filter buttons */
.project-filters { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin-bottom:3rem; }
.filter-btn {
  font:inherit; font-size:.72rem; font-weight:600; letter-spacing:.04em; cursor:pointer;
  background:var(--white); color:var(--grey); border:1px solid #d9d9d9;
  padding:.5rem 1rem; border-radius:100px; transition:all .2s ease;
}
.filter-btn:hover { border-color:var(--green); color:var(--green-d); }
.filter-btn.active { background:var(--green); border-color:var(--green); color:var(--white); }

/* Card grid */
.projects-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(380px, 1fr)); gap:1.5rem; }

/* Project card — image left, details right; grows on hover */
.pcard {
  display:grid; grid-template-columns:170px 1fr; gap:1.6rem;
  background:var(--white); border:1px solid #ececec; border-radius:0; padding:1.4rem;
  transition:transform .3s ease, box-shadow .3s ease; transform-origin:center;
}
.pcard:hover { transform:scale(1.045); box-shadow:0 22px 48px rgba(0,0,0,.16); z-index:5; position:relative; }
.pcard-img { border-radius:0; background-size:cover; background-position:center; min-height:150px; }
.pcard-img--placeholder {
  display:grid; place-items:center; text-align:center; padding:.5rem;
  background:linear-gradient(135deg, var(--green) 0%, var(--grey) 100%);
}
.pcard-img--placeholder span { color:#fff; font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.pcard-body { display:flex; flex-direction:column; }
.pcard-title { font-size:1.1rem; font-weight:500; color:var(--grey); margin-bottom:1.4rem; line-height:1.3; }
.pcard-field { display:grid; grid-template-columns:140px 1fr; gap:.5rem; font-size:.72rem; margin-bottom:1rem; align-items:baseline; }
.pcard-label { color:var(--grey); font-weight:600; }
.pcard-value { color:var(--grey-l); font-weight:400; }
/* Services / Bench Warmers read like any other value — no extra colour or heavy bold */
.pcard-services { color:var(--grey-l); font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.pcard-warmers { color:var(--grey-l); font-weight:400; }
.pcard-btn {
  align-self:flex-start; margin-top:1rem; text-decoration:none;
  font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--grey);
  border:1px solid #d9d9d9; border-radius:100px; padding:.45rem 1.1rem; transition:all .2s ease;
}
.pcard-btn:hover { background:var(--green); border-color:var(--green); color:#fff; }

@media (max-width:520px) {
  .projects-grid { grid-template-columns:1fr; }
  .pcard { grid-template-columns:1fr; }
  .pcard-img { min-height:170px; }
}

/* ===================================================================
   SINGLE PROJECT PAGE
   =================================================================== */
.pdetail-hero { height:clamp(260px,40vw,460px); background-size:cover; background-position:center; margin-top:0; }
.pdetail-hero--placeholder {
  display:grid; place-items:center;
  background:linear-gradient(135deg, var(--green) 0%, var(--grey) 100%);
}
.pdetail-hero--placeholder span { color:#fff; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.pdetail-body { padding-block:clamp(2.5rem,6vw,4.5rem); max-width:860px; }
.pdetail-back { display:inline-block; margin-bottom:1.5rem; color:var(--green-d); text-decoration:none; font-weight:600; font-size:.9rem; }
.pdetail-back:hover { text-decoration:underline; }
.pdetail-title { font-size:clamp(1.8rem,4.5vw,3rem); color:var(--grey); margin-bottom:2rem; }
/* Bottom "Back to Projects" button — no green glow */
.pdetail-body .btn-primary { box-shadow:none; }
.pdetail-body .btn-primary:hover { box-shadow:none; }
.pdetail-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:1.2rem 2rem; padding:1.6rem 0; border-block:1px solid #ececec; margin-bottom:2rem; }
.pdetail-field { display:flex; flex-direction:column; gap:.2rem; }
.pdetail-label { font-size:.75rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--grey); }
.pdetail-value { color:var(--grey-l); font-weight:300; }
.pdetail-text { margin-bottom:2.5rem; }
.pdetail-text p { font-weight:300; color:var(--grey-l); margin-bottom:1.2rem; }

/* ---------- Page transition (white fade between pages) ---------- */
.page-fade {
  position:fixed; inset:0; background:#fff; z-index:9999;
  opacity:1; pointer-events:none; transition:opacity .4s ease;
}
.page-fade.hidden { opacity:0; }
.page-fade.show { opacity:1; pointer-events:auto; }
@media (prefers-reduced-motion: reduce) {
  .page-fade { display:none; }
}

/* ---------- Scroll reveal (simple fade-up) ---------- */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal[data-delay="1"] { transition-delay:.12s; }
.reveal[data-delay="2"] { transition-delay:.24s; }
.reveal.in { opacity:1; transform:none; }

/* ---------- Responsive ---------- */
@media (max-width:900px) {
  .nav-toggle { display:flex; }
  .nav {
    position:fixed; inset:0 0 0 auto; width:min(78vw,300px); background:var(--white);
    flex-direction:column; align-items:flex-start; justify-content:center; gap:1.6rem;
    padding:2.5rem; box-shadow:-8px 0 40px rgba(0,0,0,.12);
    transform:translateX(100%); transition:transform .35s ease;
  }
  .nav.open { transform:translateX(0); }

  /* Dropdown shows inline (expanded) inside the mobile menu */
  .nav-dropdown { flex-direction:column; align-items:flex-start; width:100%; }
  .nav-more { pointer-events:none; font-size:1.2rem; color:var(--grey-l); }
  .nav-more .caret { display:none; }
  .dropdown-menu { position:static; display:flex; box-shadow:none; border:0; padding:.4rem 0 0 1rem; min-width:0; }
  .dropdown-menu a { font-size:1.05rem; padding:.4rem 0; }

  .nav-toggle.active span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
  .nav-toggle.active span:nth-child(2){ opacity:0; }
  .nav-toggle.active span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

  .hero-title { white-space:normal; }
  .hero-inner { margin-left:0; }
  .cols { grid-template-columns:1fr; gap:3rem; }
  .stats-row .dot { display:none; }
  .about-grid { grid-template-columns:1fr; }
  .about-img { min-height:300px; order:-1; }
  .about-text { margin:0; }
  .contact-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .reveal { opacity:1; transform:none; transition:none; }
  html { scroll-behavior:auto; }
}
