/* ============================================================
   M.I GENERATORS — V2 "PREMIUM INDUSTRIAL" DESIGN SYSTEM
   Commercial & industrial positioning. Brand: black / purple /
   chrome, mirroring the vehicle decal (Exo 2 heavy italic).
   ============================================================ */

/* ---------- Webfonts (subset used on this page) ---------- */
@font-face { font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap;
  src:url('fonts/inter-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap;
  src:url('fonts/inter-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap;
  src:url('fonts/inter-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:800; font-display:swap;
  src:url('fonts/inter-latin-800-normal.woff2') format('woff2'); }
@font-face { font-family:'Exo 2'; font-style:italic; font-weight:700; font-display:swap;
  src:url('fonts/exo-2-latin-700-italic.woff2') format('woff2'); }
@font-face { font-family:'Exo 2'; font-style:italic; font-weight:800; font-display:swap;
  src:url('fonts/exo-2-latin-800-italic.woff2') format('woff2'); }

/* ---------- Tokens ---------- */
:root {
  --black:#0b0a0d;
  --carbon:#131116;
  --steel:#1b1820;
  --line:rgba(247,245,248,0.1);
  --line-strong:rgba(247,245,248,0.18);
  --purple:#a855f7;
  --purple-bright:#c084fc;
  --purple-deep:#7c3aed;
  --purple-dim:rgba(168,85,247,0.14);
  --white:#f7f5f8;
  --grey:#aca8b3;
  --grey-dark:#716d78;
  --chrome:linear-gradient(180deg,#f8f7fb 0%,#d6d3de 38%,#938e9f 52%,#dedbe6 62%,#f3f1f7 100%);
  --display:'Exo 2','Inter',sans-serif;
  --body:'Inter','Segoe UI',-apple-system,sans-serif;
  --container:1180px;
  --pad:clamp(20px,4vw,48px);
  --gear:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20100%20100%22%3E%3Cpath%20d=%22M96.0%2050.0%20L95.4%2057.7%20L86.7%2059.8%20L84.6%2065.8%20L89.8%2073.0%20L85.4%2079.3%20L76.9%2076.9%20L72.0%2081.0%20L73.0%2089.8%20L66.0%2093.1%20L59.8%2086.7%20L53.6%2087.8%20L50.0%2096.0%20L42.3%2095.4%20L40.2%2086.7%20L34.2%2084.6%20L27.0%2089.8%20L20.7%2085.4%20L23.1%2076.9%20L19.0%2072.0%20L10.2%2073.0%20L6.9%2066.0%20L13.3%2059.8%20L12.2%2053.6%20L4.0%2050.0%20L4.6%2042.3%20L13.3%2040.2%20L15.4%2034.2%20L10.2%2027.0%20L14.6%2020.7%20L23.1%2023.1%20L28.0%2019.0%20L27.0%2010.2%20L34.0%206.9%20L40.2%2013.3%20L46.4%2012.2%20L50.0%204.0%20L57.7%204.6%20L59.8%2013.3%20L65.8%2015.4%20L73.0%2010.2%20L79.3%2014.6%20L76.9%2023.1%20L81.0%2028.0%20L89.8%2027.0%20L93.1%2034.0%20L86.7%2040.2%20L87.8%2046.4%20Z%22%20fill=%22none%22%20stroke=%22%23a855f7%22%20stroke-width=%221.4%22/%3E%3Ccircle%20cx=%2250%22%20cy=%2250%22%20r=%2216%22%20fill=%22none%22%20stroke=%22%23a855f7%22%20stroke-width=%221.4%22/%3E%3C/svg%3E");
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--body);
  background:var(--black);
  color:var(--white);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img { max-width:100%; display:block; }
a { color:inherit; }
::selection { background:var(--purple-deep); color:#fff; }
:focus-visible { outline:2px solid var(--purple); outline-offset:3px; border-radius:2px; }

.container { max-width:var(--container); margin:0 auto; padding-inline:var(--pad); }

/* ---------- Display type: the decal voice ---------- */
.display {
  font-family:var(--display);
  font-style:italic;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.012em;
  line-height:1.05;
}
.chrome {
  background:var(--chrome);
  background-size:100% 1.06em;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.kicker {
  font-family:var(--display);
  font-style:italic;
  font-weight:700;
  font-size:0.95rem;
  color:var(--purple);
  letter-spacing:0.04em;
  display:block;
  margin-bottom:14px;
}

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--body); font-weight:700; font-size:1rem; letter-spacing:0.004em;
  padding:16px 30px; border-radius:7px;
  text-decoration:none; border:1px solid transparent;
  transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .25s ease,transform .15s ease;
  will-change:transform;
}
.btn-primary {
  background:linear-gradient(180deg,#9d6bf9 0%,#7c3aed 100%);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.28), 0 8px 26px rgba(124,58,237,0.32);
}
.btn-primary:hover {
  background:linear-gradient(180deg,#ab7ffa 0%,#8b5cf6 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.3), 0 12px 34px rgba(139,92,246,0.45);
  transform:translateY(-1px);
}
.btn-primary:active { transform:translateY(0); box-shadow:inset 0 1px 0 rgba(255,255,255,0.2), 0 4px 14px rgba(124,58,237,0.3); }
.btn-ghost {
  background:rgba(247,245,248,0.05);
  color:var(--white);
  border-color:var(--line-strong);
  backdrop-filter:blur(8px);
}
.btn-ghost:hover { border-color:var(--purple); background:rgba(168,85,247,0.1); }
.btn-phone strong { font-weight:800; }

/* ---------- Nav ---------- */
.navbar {
  position:sticky; top:0; z-index:100;
  background:rgba(11,10,13,0.9);
  backdrop-filter:blur(14px) saturate(1.3);
}
.navbar::after {
  content:""; display:block; height:1px;
  background:linear-gradient(90deg, rgba(247,245,248,0.06), rgba(168,85,247,0.45) 50%, rgba(247,245,248,0.06));
}
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:78px; gap:18px; }
.logo { display:flex; align-items:center; gap:11px; text-decoration:none; }
.logo-img { width:42px; height:42px; filter:drop-shadow(0 0 10px rgba(168,85,247,0.35)); }
.logo-text {
  font-family:var(--display); font-style:italic; font-weight:800;
  font-size:1.24rem; text-transform:uppercase; letter-spacing:0.012em;
}
.logo-text .mi { color:var(--purple); }
.nav-links { display:flex; align-items:center; gap:28px; list-style:none; }
.nav-links a { text-decoration:none; font-weight:600; font-size:0.96rem; color:var(--grey); transition:color .2s; }
.nav-links a:hover { color:var(--white); }
.nav-phone a { color:var(--white); font-weight:800; white-space:nowrap; }
.nav-phone a:hover { color:var(--purple-bright); }
.nav-links .nav-cta a { color:#fff; }
.nav-cta .btn { padding:12px 20px; font-size:0.92rem; }
.has-dropdown { position:relative; }
.dropdown-menu {
  position:absolute; top:calc(100% + 12px); left:-14px; min-width:260px;
  background:linear-gradient(180deg,#201d26,#16141a);
  border:1px solid var(--line-strong); border-radius:9px;
  list-style:none; padding:8px; display:none;
  box-shadow:0 24px 60px rgba(0,0,0,0.6), inset 0 1px 0 rgba(247,245,248,0.07);
}
.has-dropdown:hover .dropdown-menu, .has-dropdown:focus-within .dropdown-menu { display:block; }
.dropdown-menu a { display:block; padding:11px 13px; border-radius:6px; }
.dropdown-menu a:hover { background:var(--purple-dim); color:var(--white); }
.hamburger { display:none; background:none; border:0; cursor:pointer; padding:8px; }
.hamburger span { display:block; width:24px; height:2px; background:var(--white); margin:5px 0; transition:.25s; }

/* ---------- Emergency ribbon ---------- */
.ribbon {
  background:var(--carbon); border-bottom:1px solid var(--line);
  font-size:0.88rem; color:var(--grey); text-align:center; padding:8px var(--pad);
}
.ribbon a { color:var(--white); font-weight:700; text-decoration:none; }
.ribbon a:hover { color:var(--purple-bright); }
.ribbon .dot {
  display:inline-block; width:7px; height:7px; border-radius:50%;
  background:#4ade80; margin-right:7px; vertical-align:1px;
  box-shadow:0 0 8px rgba(74,222,128,0.8);
}

/* ---------- Hero ---------- */
.hero { position:relative; isolation:isolate; }
.hero-img { position:absolute; inset:0; z-index:-2; }
.hero-img img { width:100%; height:100%; object-fit:cover; object-position:center 64%; }
.hero::after {
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(11,10,13,0.6) 0%, rgba(11,10,13,0.12) 40%, rgba(11,10,13,0.6) 76%, var(--black) 100%),
    linear-gradient(100deg, rgba(11,10,13,0.9) 0%, rgba(11,10,13,0.5) 46%, rgba(11,10,13,0.06) 78%);
}
.hero-content { padding:clamp(104px,15vh,190px) 0 clamp(110px,13vh,160px); max-width:780px; }
.hero h1 {
  font-size:clamp(2.25rem,4.8vw,3.85rem);
  margin-bottom:20px;
  filter:drop-shadow(0 2px 16px rgba(11,10,13,0.7));
}
.hero .speciality {
  font-family:var(--display); font-style:italic; font-weight:700;
  font-size:clamp(1.12rem,2vw,1.48rem); color:var(--purple-bright);
  text-shadow:0 1px 10px rgba(11,10,13,0.8);
  margin-bottom:22px;
}
.hero .sub { color:var(--grey); font-size:1.07rem; max-width:620px; margin-bottom:36px; }
.hero .sub strong { color:var(--white); }
.hero-btns { display:flex; flex-wrap:wrap; gap:14px; }

@media (prefers-reduced-motion:no-preference) {
  .hero-content > * { opacity:0; transform:translateY(14px); animation:rise .7s cubic-bezier(.2,.7,.3,1) forwards; }
  .hero-content > *:nth-child(2) { animation-delay:.08s; }
  .hero-content > *:nth-child(3) { animation-delay:.16s; }
  .hero-content > *:nth-child(4) { animation-delay:.24s; }
  @keyframes rise { to { opacity:1; transform:none; } }
}

/* ---------- Data plate (capability strip) ---------- */
.plate-wrap { margin-top:clamp(-72px,-6vw,-48px); position:relative; z-index:5; padding-bottom:clamp(60px,7vw,90px); }
.plate {
  background:
    repeating-linear-gradient(90deg, rgba(247,245,248,0.02) 0 1px, transparent 1px 3px),
    linear-gradient(180deg,#26222c 0%,#17141b 100%);
  border:1px solid var(--line-strong);
  border-top:1px solid rgba(168,85,247,0.4);
  border-radius:11px;
  box-shadow:0 30px 70px rgba(0,0,0,0.6), inset 0 1px 0 rgba(247,245,248,0.12);
  display:grid; grid-template-columns:repeat(4,1fr);
  position:relative;
}
.plate::before, .plate::after,
.plate .rivet-a, .plate .rivet-b {
  content:""; position:absolute; width:9px; height:9px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #cfccd8, #5d5966 70%);
  box-shadow:inset 0 -1px 2px rgba(0,0,0,0.65), 0 0 4px rgba(0,0,0,0.5);
}
.plate::before { top:11px; left:11px; }
.plate::after  { top:11px; right:11px; }
.plate .rivet-a { bottom:11px; left:11px; }
.plate .rivet-b { bottom:11px; right:11px; }
.plate-cell { padding:30px 30px 28px; border-left:1px solid var(--line); }
.plate-cell:first-child { border-left:0; }
.plate-cell .label {
  font-size:0.72rem; font-weight:700; color:#8b8694;
  text-transform:uppercase; letter-spacing:0.16em; margin-bottom:7px;
}
.plate-cell .value { font-family:var(--display); font-style:italic; font-weight:700; font-size:1.16rem; line-height:1.32; }
.plate-cell .value em { font-style:italic; color:var(--purple-bright); }

/* ---------- Sections ---------- */
section { padding:clamp(60px,7.5vw,100px) 0; }
.section-head { max-width:720px; margin-bottom:clamp(38px,4vw,56px); }
.section-head h2 { font-size:clamp(1.75rem,3.4vw,2.65rem); margin-bottom:14px; }
.section-head p { color:var(--grey); font-size:1.05rem; }
.band { background:var(--carbon); border-block:1px solid var(--line); }

/* ---------- Gear watermark ---------- */
.gearmark { position:relative; overflow:hidden; }
.gearmark::before {
  content:""; position:absolute; top:50%; right:-170px;
  width:580px; height:580px; transform:translateY(-50%);
  background:var(--gear) no-repeat center / contain;
  opacity:0.055; pointer-events:none;
}

/* ---------- Services ledger ---------- */
.ledger { border-top:1px solid var(--line-strong); }
.ledger-row {
  display:grid; grid-template-columns:minmax(240px,1.1fr) 2fr auto;
  gap:18px 44px; align-items:center;
  padding:30px 20px; border-bottom:1px solid var(--line);
  text-decoration:none;
  transition:background .2s ease, box-shadow .2s ease;
}
.ledger-row:hover {
  background:linear-gradient(90deg, rgba(168,85,247,0.07), rgba(168,85,247,0.015) 60%, transparent);
  box-shadow:inset 3px 0 0 var(--purple);
}
.ledger-row h3 { font-family:var(--display); font-style:italic; font-weight:700; font-size:1.3rem; text-transform:uppercase; letter-spacing:0.012em; }
.ledger-row p { color:var(--grey); font-size:1rem; }
.ledger-row .go {
  font-weight:700; font-size:0.93rem; color:var(--purple);
  white-space:nowrap; justify-self:end;
  text-underline-offset:4px;
}
.ledger-row:hover .go { color:var(--purple-bright); text-decoration:underline; }

/* ---------- Industries ---------- */
.ind-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:11px; overflow:hidden;
  position:relative; z-index:1;
}
.ind-cell { background:var(--carbon); padding:30px 28px 28px; transition:background .2s ease; }
.ind-cell:hover { background:#18151d; }
.ind-cell h3 { font-family:var(--display); font-style:italic; font-weight:700; text-transform:uppercase; font-size:1.08rem; letter-spacing:0.012em; margin-bottom:8px; }
.ind-cell p { color:var(--grey); font-size:0.96rem; line-height:1.55; }

/* ---------- Engagement steps ---------- */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3.5vw,40px); }
.step { border-top:2px solid rgba(168,85,247,0.35); padding-top:20px; }
.step .n {
  font-family:var(--display); font-style:italic; font-weight:800; font-size:2.1rem; line-height:1;
  background:linear-gradient(180deg,var(--purple-bright),var(--purple-deep));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  display:block; margin-bottom:12px;
}
.step h3 { font-family:var(--display); font-style:italic; font-weight:700; text-transform:uppercase; font-size:1.12rem; margin-bottom:8px; }
.step p { color:var(--grey); font-size:0.98rem; }

/* ---------- Featured work / splits ---------- */
.split { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(30px,5vw,64px); align-items:center; position:relative; z-index:1; }
.split .photo {
  border-radius:11px; overflow:hidden;
  border:1px solid var(--line-strong);
  box-shadow:0 24px 60px rgba(0,0,0,0.5), inset 0 1px 0 rgba(247,245,248,0.1);
}
.split .photo img { width:100%; height:100%; object-fit:cover; }
.split h2 { font-size:clamp(1.6rem,3vw,2.3rem); margin-bottom:16px; }
.split p { color:var(--grey); margin-bottom:16px; }
.split p strong { color:var(--white); }
.proof-points { list-style:none; margin-top:10px; display:grid; gap:12px; }
.proof-points li { padding-left:22px; position:relative; color:var(--grey); }
.proof-points li strong { color:var(--white); }
.proof-points li::before {
  content:""; position:absolute; left:0; top:0.62em; width:10px; height:2px; background:var(--purple);
}

/* ---------- Photo strip ---------- */
.photo-strip { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:clamp(38px,4vw,56px); position:relative; z-index:1; }
.photo-strip figure {
  border-radius:11px; overflow:hidden;
  border:1px solid var(--line-strong); position:relative; aspect-ratio:16/9.5;
  box-shadow:0 16px 44px rgba(0,0,0,0.4);
}
.photo-strip img { width:100%; height:100%; object-fit:cover; }
.photo-strip .cap-top {
  position:absolute; left:0; right:0; top:0;
  padding:13px 18px 20px;
  font-family:var(--display); font-style:italic; font-weight:700;
  font-size:0.95rem; letter-spacing:0.02em; text-transform:uppercase;
  color:var(--white);
  background:linear-gradient(180deg, rgba(11,10,13,0.88) 40%, transparent);
}
.photo-strip .cap-top::before {
  content:""; position:absolute; left:18px; bottom:14px;
  width:34px; height:2px; background:var(--purple);
}
.photo-strip figcaption {
  position:absolute; left:0; right:0; bottom:0;
  padding:16px 18px 13px; font-size:0.9rem; font-weight:600; color:var(--white);
  background:linear-gradient(180deg,transparent,rgba(11,10,13,0.9) 65%);
}

/* ---------- Inner page hero ---------- */
.page-hero { position:relative; isolation:isolate; border-bottom:1px solid var(--line); }
.page-hero::after {
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(11,10,13,0.72) 0%, rgba(11,10,13,0.5) 50%, rgba(11,10,13,0.94) 100%),
    linear-gradient(100deg, rgba(11,10,13,0.88) 0%, rgba(11,10,13,0.45) 55%, rgba(11,10,13,0.15) 85%);
}
.page-hero-content { padding:clamp(66px,9vh,118px) 0 clamp(40px,6vh,66px); max-width:740px; }
.page-plain .page-hero-content { padding:clamp(54px,7vh,88px) 0 clamp(36px,5vh,60px); }
.page-hero h1, .page-plain h1 { font-size:clamp(2rem,3.8vw,3rem); margin-bottom:14px; filter:drop-shadow(0 2px 14px rgba(11,10,13,0.7)); }
.page-hero .lede, .page-plain .lede { color:var(--grey); font-size:1.06rem; max-width:620px; }
.page-hero .lede strong, .page-plain .lede strong { color:var(--white); }
.page-plain .speciality,
.page-hero .speciality {
  font-family:var(--display); font-style:italic; font-weight:700;
  font-size:clamp(1.05rem,1.8vw,1.3rem); color:var(--purple-bright);
  text-shadow:0 1px 10px rgba(11,10,13,0.8); margin-bottom:14px;
}

/* ---------- Service scope blocks ---------- */
.svc-block {
  display:grid; grid-template-columns:1fr 1.25fr; gap:clamp(24px,4vw,64px);
  padding:clamp(34px,4vw,54px) 0; border-top:1px solid var(--line);
}
.svc-block:first-of-type { border-top:0; }
.svc-block h2 { font-family:var(--display); font-style:italic; font-weight:700; text-transform:uppercase; font-size:clamp(1.25rem,2.2vw,1.6rem); letter-spacing:0.012em; margin-bottom:10px; }
.svc-block .for { color:var(--grey-dark); font-size:0.92rem; margin-bottom:12px; }
.svc-block > div > p { color:var(--grey); font-size:1rem; }
.svc-block > div > p strong { color:var(--white); }
.svc-block .svc-link { display:inline-block; margin-top:14px; font-weight:700; font-size:0.95rem; color:var(--purple); text-decoration:none; text-underline-offset:4px; }
.svc-block .svc-link:hover { color:var(--purple-bright); text-decoration:underline; }
@media (max-width:860px) {
  .svc-block { grid-template-columns:1fr; gap:16px; }
}

/* ---------- Plain page head (no photo) ---------- */
.page-plain {
  background:
    radial-gradient(760px 320px at 18% 0%, rgba(124,58,237,0.2), transparent 62%),
    var(--black);
  border-bottom:1px solid var(--line);
}

/* ---------- Contact ---------- */
.contact-grid { display:grid; grid-template-columns:1.45fr 1fr; gap:clamp(26px,4vw,56px); align-items:start; }
.contact-form {
  background:var(--carbon); border:1px solid var(--line-strong); border-radius:11px;
  padding:clamp(24px,3.4vw,42px);
  box-shadow:0 20px 50px rgba(0,0,0,0.4), inset 0 1px 0 rgba(247,245,248,0.07);
}
.contact-form h3 { font-family:var(--display); font-style:italic; font-weight:700; text-transform:uppercase; font-size:1.3rem; margin-bottom:24px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-group.full { grid-column:1 / -1; }
.form-group label { display:block; font-size:0.88rem; font-weight:600; color:var(--grey); margin-bottom:6px; }
.form-group input, .form-group select, .form-group textarea {
  width:100%; color-scheme:dark;
  background:#0e0d12; border:1px solid var(--line-strong); border-radius:7px;
  padding:13px 14px; color:var(--white); font:inherit; font-size:0.98rem;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.form-group input::placeholder, .form-group textarea::placeholder { color:var(--grey-dark); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  outline:none; border-color:var(--purple);
  box-shadow:0 0 0 3px rgba(168,85,247,0.22);
}
.form-group textarea { min-height:132px; resize:vertical; }
.hp-field { position:absolute; left:-9999px; top:-9999px; }
.form-success {
  display:none; margin-top:20px; padding:18px 20px;
  border:1px solid rgba(168,85,247,0.45); border-radius:9px;
  background:rgba(168,85,247,0.1);
}
.form-success.visible { display:block; }
.form-success h4 { font-family:var(--display); font-style:italic; text-transform:uppercase; margin-bottom:4px; }
.form-success p { color:var(--grey); font-size:0.95rem; }
.contact-card {
  background:linear-gradient(180deg,#201d26,#15131a);
  border:1px solid var(--line-strong); border-top:1px solid rgba(168,85,247,0.4);
  border-radius:11px; padding:clamp(24px,3vw,36px);
  box-shadow:0 20px 50px rgba(0,0,0,0.45), inset 0 1px 0 rgba(247,245,248,0.1);
}
.contact-card h3 { font-family:var(--display); font-style:italic; font-weight:700; text-transform:uppercase; font-size:1.15rem; margin-bottom:16px; }
.contact-card .big-phone {
  display:block; font-family:var(--display); font-style:italic; font-weight:800;
  font-size:clamp(1.5rem,2.6vw,1.9rem); color:var(--white); text-decoration:none; margin-bottom:4px;
}
.contact-card .big-phone:hover { color:var(--purple-bright); }
.contact-card p { color:var(--grey); font-size:0.95rem; margin-bottom:16px; }
.contact-card ul { list-style:none; display:grid; gap:10px; margin-top:6px; }
.contact-card ul a { color:var(--grey); text-decoration:none; }
.contact-card ul a:hover { color:var(--white); }
.contact-card .divider { height:1px; background:var(--line); margin:18px 0; }
@media (max-width:980px) { .contact-grid { grid-template-columns:1fr; } }

/* ---------- Navbar scrolled + active link ---------- */
.navbar.scrolled { box-shadow:0 12px 34px rgba(0,0,0,0.5); }
.nav-links a.active { color:var(--white); }

/* ---------- Residential quiet row ---------- */
.quiet {
  display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center;
  border:1px solid var(--line); border-radius:11px;
  padding:clamp(24px,3vw,38px); background:var(--carbon);
}
.quiet h3 { font-family:var(--display); font-style:italic; font-weight:700; text-transform:uppercase; font-size:1.25rem; margin-bottom:8px; }
.quiet p { color:var(--grey); max-width:640px; }

/* ---------- CTA band ---------- */
.cta-band {
  background:
    radial-gradient(900px 400px at 15% 0%, rgba(124,58,237,0.22), transparent 65%),
    linear-gradient(135deg,#191022 0%,#0b0a0d 72%);
  border-block:1px solid var(--line);
}
.cta-inner { display:grid; grid-template-columns:1.4fr 1fr; gap:30px; align-items:center; position:relative; z-index:1; }
.cta-band h2 { font-size:clamp(1.7rem,3.4vw,2.5rem); margin-bottom:12px; }
.cta-band p { color:var(--grey); max-width:560px; }
.cta-actions { display:grid; gap:14px; justify-items:start; }
.cta-actions .phone-line { color:var(--grey); font-size:0.95rem; }
.cta-actions .phone-line a { color:var(--white); font-weight:800; text-decoration:none; font-size:1.15rem; }
.cta-actions .phone-line a:hover { color:var(--purple-bright); }

/* ---------- Footer ---------- */
footer { padding:clamp(46px,5vw,68px) 0 28px; background:var(--carbon); position:relative; }
footer::before {
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, rgba(247,245,248,0.06), rgba(168,85,247,0.4) 50%, rgba(247,245,248,0.06));
}
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.1fr; gap:36px; margin-bottom:40px; }
.footer-grid h4 { font-family:var(--display); font-style:italic; text-transform:uppercase; font-weight:700; font-size:0.98rem; margin-bottom:14px; }
.footer-grid ul { list-style:none; display:grid; gap:9px; }
.footer-grid a { color:var(--grey); text-decoration:none; font-size:0.95rem; }
.footer-grid a:hover { color:var(--white); }
.footer-about p { color:var(--grey); font-size:0.95rem; margin-top:14px; max-width:360px; }
.footer-bottom {
  border-top:1px solid var(--line); padding-top:22px;
  display:flex; flex-wrap:wrap; gap:10px 28px; justify-content:space-between;
  color:var(--grey-dark); font-size:0.85rem;
}
.footer-built-by { display:inline-flex; align-items:center; gap:5px; }
.footer-built-by-logo { height:13px; width:auto; display:inline-block; }

/* ============================================================
   LEGACY CONTENT LAYER — town pages & service-areas hub
   (V1 content classes restyled to the V2 system)
   ============================================================ */
.breadcrumb { display:block; font-size:0.85rem; color:var(--grey-dark); margin-bottom:16px; }
.breadcrumb a { color:var(--grey); text-decoration:none; }
.breadcrumb a:hover { color:var(--white); }
.accent { color:var(--purple-bright); }
.section-label {
  font-family:var(--display); font-style:italic; font-weight:700;
  font-size:0.95rem; color:var(--purple); letter-spacing:0.04em;
  display:block; margin-bottom:14px;
}
.section-title {
  font-family:var(--display); font-style:italic; font-weight:800;
  text-transform:uppercase; letter-spacing:0.012em; line-height:1.08;
  font-size:clamp(1.6rem,3vw,2.3rem); margin-bottom:14px;
}
.section-sub { color:var(--grey); font-size:1.03rem; max-width:720px; }
.center { text-align:left; max-width:760px; }
.town-lede { color:var(--grey); font-size:1.04rem; margin-bottom:14px; }
.town-lede strong { color:var(--white); }
.split .img-side img { border-radius:11px; border:1px solid var(--line-strong); box-shadow:0 20px 50px rgba(0,0,0,0.45); }
.checklist { list-style:none; display:grid; gap:11px; margin:18px 0 0; }
.checklist li { color:var(--grey); padding-left:2px; }
.checklist li strong { color:var(--white); }
.tick { color:var(--purple); font-weight:800; margin-right:7px; }
.grid { display:grid; gap:16px; }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-4 { grid-template-columns:repeat(2,1fr); }
.card, .area-card {
  background:var(--carbon); border:1px solid var(--line); border-radius:11px;
  padding:26px 26px 24px; text-decoration:none; display:block;
  transition:border-color .2s ease, background .2s ease;
}
.card:hover, .area-card:hover { border-color:rgba(168,85,247,0.5); background:#17141c; }
.card .icon svg { width:26px; height:26px; color:var(--purple); margin-bottom:12px; }
.card h3, .area-card h3 {
  font-family:var(--display); font-style:italic; font-weight:700;
  text-transform:uppercase; font-size:1.1rem; letter-spacing:0.012em; margin-bottom:8px;
}
.card p, .area-card p { color:var(--grey); font-size:0.96rem; }
.card-link { display:inline-block; margin-top:12px; font-weight:700; font-size:0.93rem; color:var(--purple); text-decoration:none; }
.card:hover .card-link, .area-card:hover .card-link, .card-link:hover { color:var(--purple-bright); }
.area-card .pin { display:none; }
.local-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:11px; overflow:hidden; margin-top:34px; }
.local-stat { background:var(--carbon); padding:26px 24px; }
.local-stat h4 { font-family:var(--display); font-style:italic; font-weight:700; text-transform:uppercase; font-size:1.02rem; margin-bottom:8px; }
.local-stat p { color:var(--grey); font-size:0.95rem; }
.faq-list { display:grid; gap:12px; max-width:880px; }
.faq-item { background:var(--carbon); border:1px solid var(--line); border-radius:9px; }
.faq-item summary {
  cursor:pointer; padding:17px 46px 17px 20px; font-weight:700; list-style:none; position:relative;
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after {
  content:"+"; position:absolute; right:18px; top:50%; transform:translateY(-50%);
  color:var(--purple); font-weight:800; font-size:1.2rem;
}
.faq-item[open] summary::after { content:"\2013"; }
.faq-item p { padding:0 20px 18px; color:var(--grey); font-size:0.97rem; }
.area-chips { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.area-chip {
  border:1px solid var(--line-strong); border-radius:999px; padding:7px 15px;
  font-size:0.9rem; color:var(--grey); text-decoration:none; transition:border-color .2s, color .2s;
}
a.area-chip:hover { border-color:var(--purple); color:var(--white); }
.area-note { color:var(--grey-dark); font-size:0.92rem; margin-top:14px; }
.cta-band h2 { font-family:var(--display); font-style:italic; font-weight:800; text-transform:uppercase; letter-spacing:0.012em; }
.cta-band .hero-btns { margin-top:22px; }
@media (max-width:980px) { .local-stats, .grid-3 { grid-template-columns:1fr 1fr; } }
@media (max-width:640px) { .local-stats, .grid-3, .grid-4 { grid-template-columns:1fr; } }

/* ---------- Responsive ---------- */
@media (max-width:1080px) {
  .nav-phone { display:none; }
}
@media (max-width:980px) {
  .plate { grid-template-columns:1fr 1fr; }
  .plate-cell:nth-child(odd) { border-left:0; }
  .plate-cell { border-top:1px solid var(--line); }
  .plate-cell:nth-child(-n+2) { border-top:0; }
  .split, .cta-inner { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .ledger-row { grid-template-columns:1fr; gap:6px; padding:24px 14px; }
  .ledger-row .go { justify-self:start; margin-top:4px; }
  .ind-grid { grid-template-columns:1fr 1fr; }
  .gearmark::before { opacity:0.035; }
}
@media (max-width:860px) {
  .hamburger { display:block; }
  .nav-links {
    display:none; position:absolute; top:79px; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--carbon); border-bottom:1px solid var(--line); padding:10px var(--pad) 18px;
  }
  .nav-links.open { display:flex; }
  .nav-links li { border-bottom:1px solid var(--line); }
  .nav-links li:last-child { border-bottom:0; }
  .nav-links a { display:block; padding:14px 2px; }
  .dropdown-menu { position:static; display:block; box-shadow:none; border:0; background:transparent; padding:0 0 6px 14px; }
  .dropdown-menu a { font-size:0.9rem; color:var(--grey-dark); padding:8px 2px; }
  .nav-cta { padding-top:12px; }
  .hero-img img { object-position:72% 64%; }
  .quiet { grid-template-columns:1fr; }
  .photo-strip { grid-template-columns:1fr; }
  .steps { grid-template-columns:1fr; gap:26px; }
  .hero-btns .btn { width:100%; justify-content:center; }
}
@media (max-width:560px) {
  .plate { grid-template-columns:1fr; }
  .plate-cell { border-left:0; }
  .plate-cell:nth-child(2) { border-top:1px solid var(--line); }
  .footer-grid { grid-template-columns:1fr; }
  .ind-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  * { transition:none !important; animation:none !important; }
}
