/* ============================================================
   LEGACY SEO PAGES  (vehicle-specific + specialty pages)

   Used by:
     toyota-camry-sunroof-repair.html
     ford-sunroof.html
     mercedes-panoroof-fix-recommended.html
     shuttered-panoramic-sunroof-replacement.html

   SCOPE: every selector is prefixed .lg- and lives in this file
   alone, so the frozen Gallery / Reviews / FAQ / Knowledge Center /
   Contact pages and the shared header + footer are never affected.
   Colours, radii and shadows come from the existing site tokens.
   ============================================================ */

/* ---------- Hero: copy left, contained real photo right ---------- */
.lg-hero-grid{ grid-template-columns:1.5fr 1fr; gap:44px; align-items:center; }
.lg-kicker{
  font-family:var(--font-sans);
  font-size:0.76rem; font-weight:800; letter-spacing:0.13em;
  text-transform:uppercase; color:var(--orange); margin-bottom:12px;
}
.lg-hero-copy .lede{
  font-weight:800; color:var(--charcoal);
  font-size:1.06rem; margin-top:12px; margin-bottom:16px;
}
.lg-hero-copy p:not(.lede):not(.lg-kicker){
  color:var(--charcoal-soft); font-size:0.97rem; line-height:1.72; margin-bottom:14px;
}
.lg-hero-photo{ display:flex; justify-content:center; }
/* Contained, never a billboard. Shown whole so nothing important is cropped. */
.lg-hero-photo img{
  width:100%; max-width:430px; height:auto; display:block;
  border-radius:18px;
  box-shadow:0 12px 30px rgba(23,20,18,0.15);
}

/* ---------- Symptom list ---------- */
.lg-symptoms{
  display:grid; grid-template-columns:repeat(2, 1fr);
  gap:14px; margin-top:26px;
}
.lg-symptom{
  display:flex; gap:13px; align-items:flex-start;
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow-sm);
  padding:18px 20px;
}
.lg-symptom svg{
  width:20px; height:20px; color:var(--red);
  flex-shrink:0; margin-top:2px;
}
.lg-symptom span{ font-size:0.94rem; color:var(--charcoal); line-height:1.55; }

/* ---------- Numbered process steps ---------- */
.lg-steps{ counter-reset:lgstep; margin-top:26px; max-width:860px; }
.lg-step{
  counter-increment:lgstep;
  display:flex; gap:18px; align-items:flex-start;
  padding:18px 0; border-bottom:1px solid var(--line);
}
.lg-step:last-child{ border-bottom:0; }
.lg-step::before{
  content:counter(lgstep);
  flex-shrink:0; width:36px; height:36px; border-radius:50%;
  background:var(--red); color:var(--white);
  font-family:var(--font-sans); font-weight:800; font-size:0.95rem;
  display:flex; align-items:center; justify-content:center;
}
.lg-step h3{
  font-family:var(--font-sans); font-size:0.95rem; font-weight:800;
  text-transform:uppercase; letter-spacing:0.02em;
  color:var(--charcoal); margin-bottom:5px;
}
.lg-step p{ font-size:0.95rem; color:var(--charcoal-soft); line-height:1.65; }

/* ---------- Body copy + model lists ---------- */
.lg-prose{ max-width:820px; }
.lg-prose p{
  color:var(--charcoal-soft); font-size:0.98rem;
  line-height:1.75; margin-bottom:15px;
}
.lg-prose p:last-child{ margin-bottom:0; }
.lg-prose a{ color:var(--red); font-weight:700; }
.lg-prose a:hover{ text-decoration:underline; }

.lg-models{
  display:flex; flex-wrap:wrap; gap:11px; margin-top:22px;
}
.lg-model{
  display:inline-flex; align-items:center;
  background:var(--white); border:1.5px solid rgba(242,96,12,0.32);
  border-radius:999px; padding:9px 18px;
  font-family:var(--font-sans); font-size:0.88rem; font-weight:700;
  color:var(--charcoal);
}

/* ---------- Two photos side by side, contained ---------- */
.lg-photo-pair{
  display:grid; grid-template-columns:1fr 1fr;
  gap:22px; max-width:900px; margin:30px auto 0;
}
.lg-photo{
  border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  aspect-ratio:4/3;
}
.lg-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.lg-photo-caption{
  text-align:center; color:var(--charcoal-soft);
  font-size:0.9rem; margin-top:16px;
}

/* ---------- Related service links ---------- */
.lg-related{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:18px; margin-top:28px;
}
.lg-related-card{
  display:block; background:var(--white);
  border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-sm); padding:22px 22px 20px;
  text-decoration:none; color:inherit;
  transition:transform 0.18s ease, box-shadow 0.18s ease;
}
.lg-related-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.lg-related-card h3{
  font-family:var(--font-sans); font-size:0.94rem; font-weight:800;
  text-transform:uppercase; letter-spacing:0.01em;
  color:var(--charcoal); margin-bottom:7px; line-height:1.3;
}
.lg-related-card p{ font-size:0.89rem; color:var(--charcoal-soft); line-height:1.6; }
.lg-related-card .lg-more{
  display:inline-block; margin-top:11px;
  font-size:0.8rem; font-weight:800; text-transform:uppercase;
  letter-spacing:0.05em; color:var(--red);
}
.lg-related-card:hover .lg-more{ text-decoration:underline; }

/* ---------- Shop facts strip (plain info, not a promo banner) ---------- */
.lg-facts{
  max-width:860px; margin:0 auto;
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow-sm);
  padding:28px 30px;
  display:grid; grid-template-columns:repeat(2, 1fr); gap:18px 30px;
}
.lg-fact{ display:flex; gap:13px; align-items:flex-start; }
.lg-fact svg{ width:20px; height:20px; color:var(--red); flex-shrink:0; margin-top:2px; }
.lg-fact div{ font-size:0.95rem; color:var(--charcoal-soft); line-height:1.6; }
.lg-fact strong{
  display:block; font-family:var(--font-sans);
  font-size:0.77rem; font-weight:800; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--charcoal); margin-bottom:3px;
}
.lg-facts a{ color:var(--red); font-weight:700; }
.lg-facts a:hover{ text-decoration:underline; }

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .lg-hero-grid{ grid-template-columns:1fr; gap:30px; }
  .lg-hero-copy{ order:1; }
  .lg-hero-photo{ order:2; }
  .lg-symptoms{ grid-template-columns:1fr; }
  .lg-related{ grid-template-columns:1fr; max-width:520px; margin-inline:auto; }
  .lg-facts{ grid-template-columns:1fr; }
}

@media (max-width: 640px){
  .lg-photo-pair{ grid-template-columns:1fr; gap:16px; max-width:420px; }
  .lg-facts{ padding:24px 22px; }
  .lg-step{ gap:14px; }
}

/* ============================================================
   CAMRY PAGE — real repair video in the hero + portrait photo trio
   Video behaviour mirrors the approved Page #6 / Gallery pattern:
   poster first, transparent click target, no autoplay, no sound
   until the visitor presses play.
   ============================================================ */
.lg-hero-video{ display:flex; justify-content:center; }
.lg-video-frame{
  position:relative; width:100%; max-width:300px;
  aspect-ratio:9/16; overflow:hidden;
  border:3px solid var(--orange); border-radius:18px;
  box-shadow:0 10px 28px rgba(23,20,18,0.16);
  background:var(--charcoal);
}
.lg-video-frame video{
  width:100%; height:100%; display:block;
  object-fit:cover; background:var(--charcoal);
}
/* Transparent click target. The poster artwork carries its own play graphic,
   so nothing visible is drawn on top of it. */
.lg-video-play{ display:none; }
.lg-video-frame.js-overlay .lg-video-play{
  display:block; position:absolute; inset:0;
  width:100%; height:100%;
  margin:0; padding:0; border:0;
  background:transparent; cursor:pointer;
  -webkit-appearance:none; appearance:none;
  transition:background 0.18s ease;
}
.lg-video-frame.js-overlay .lg-video-play:hover{ background:rgba(242,96,12,0.12); }
.lg-video-frame.js-overlay .lg-video-play:focus-visible{
  outline:3px solid var(--orange); outline-offset:-8px;
}
.lg-video-frame.is-playing .lg-video-play{ display:none; }

/* Three portrait photos. 3/4 matches the source files, so nothing is cropped. */
.lg-photo-trio{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:20px; max-width:840px; margin:30px auto 0;
}
.lg-photo-tall{
  border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  aspect-ratio:3/4;
}
.lg-photo-tall img{ width:100%; height:100%; object-fit:cover; display:block; }

@media (max-width: 900px){
  .lg-hero-video{ order:2; }
}
@media (max-width: 640px){
  .lg-video-frame{ max-width:260px; }
  .lg-photo-trio{ grid-template-columns:1fr; gap:16px; max-width:330px; }
}

/* ============================================================
   VEHICLE MAKES HUB  ( .vm-* )   — /vehicle-makes/
   Added 2026-08-31 (Phase 3). Scoped to the hub page only; no
   existing rule is modified. Region cards reuse the sitewide card
   look; brand chips come in two states, and the difference is the
   whole point of the page:
     a.vm-brand   — a completed landing page exists, so it links
     span.vm-brand — we service the make, but no page is built yet
   Listing every make answers "do you work on my vehicle?" without
   creating dead links or thin placeholder pages.
   ============================================================ */
.vm-regions{ display:grid; grid-template-columns:repeat(3, 1fr); gap:26px; margin-top:8px; }
.vm-region{
  background:var(--white); border:1px solid var(--line); border-radius:14px;
  box-shadow:var(--shadow-sm); padding:26px 24px 28px;
}
.vm-region > h3{
  font-family:var(--font-sans); font-size:1.05rem; font-weight:900; text-transform:uppercase;
  letter-spacing:0.02em; color:var(--charcoal); padding-bottom:12px; margin-bottom:16px;
  border-bottom:3px solid var(--red);
}
.vm-sub{
  font-size:0.74rem; font-weight:800; text-transform:uppercase; letter-spacing:0.06em;
  color:var(--charcoal-soft); margin:16px 0 9px;
}
.vm-sub:first-of-type{ margin-top:0; }
.vm-brands{ display:flex; flex-wrap:wrap; gap:8px; }
.vm-brand{
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.88rem; font-weight:700; line-height:1.2;
  padding:9px 13px; border-radius:8px; border:1px solid var(--line);
  background:var(--cream); color:var(--charcoal-soft);
}
a.vm-brand{
  background:var(--white); border-color:var(--red); color:var(--red);
  transition:background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
a.vm-brand::after{ content:"\203A"; font-size:1.05rem; line-height:1; margin-top:-2px; }
a.vm-brand:hover{ background:var(--red); color:var(--white); transform:translateY(-2px); }
.vm-note{
  margin-top:26px; font-size:0.88rem; color:var(--charcoal-soft); line-height:1.65;
  max-width:820px;
}
.vm-note strong{ color:var(--charcoal); }

@media (max-width: 1000px){
  .vm-regions{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 700px){
  .vm-regions{ grid-template-columns:1fr; gap:20px; }
  .vm-region{ padding:22px 20px 24px; }
  .vm-brand{ padding:11px 14px; font-size:0.9rem; }
}

/* Hub-only helpers that would otherwise be inline styles. */
.vm-spotlight{ max-width:900px; margin:26px auto 0; }
.vm-spotlight-card{ display:block; }
.vm-spotlight-card .lg-more{ display:inline-block; margin-top:12px; }
.vm-cta-row{ margin-top:30px; }

/* ------------------------------------------------------------------
   2026-09-01 — READABILITY PASS, HUB ONLY  ( body.vm )

   Owner-approved typography-only change, deliberately scoped to
   /vehicle-makes/ via the `vm` class on that page's <body>. Nothing here
   may leak onto the frozen service pages, which share .section-sub,
   .lg-related-card and .lg-fact with this page.

   Only font-size (and one line-height) changes. No colour, weight,
   casing, spacing, card or heading changes. The large headings — h1,
   the section h2s, .vm-region h3 and .vm-spotlight-card h3 — are
   untouched.

   Every selector here is one level more specific than the shared rule
   it overrides, including the shared rules that sit inside max-width
   media queries, so the larger sizes hold at every viewport.
   ------------------------------------------------------------------ */

/* Intro paragraph under the H1. */
.vm .page-hero .lede{ font-size:1.15rem; line-height:1.65; }

/* ------------------------------------------------------------------
   2026-09-02 — HERO READABILITY PASS, HUB HERO ONLY ( .vm .vmc-hero )

   Owner-approved. The header logo, 18px navigation, enlarged Call/Text
   control and the 122px orbit discs all grew, which left the small hero
   type looking undersized beside them. Only font-size, line-height and
   the CTA's padding change here — no wording, colour, weight, casing or
   section layout.

   Scoped to `.vm .vmc-hero`, one level more specific than the shared
   `.breadcrumb` (pages.css), `.lg-kicker` and `.page-hero .lede` rules,
   so the frozen service pages are untouched. Nothing is scaled DOWN.
   ------------------------------------------------------------------ */

/* Breadcrumb: 0.82rem / 13.1px -> 0.95rem / 15.2px. */
.vm .vmc-hero .breadcrumb{ font-size:0.95rem; gap:10px; margin-bottom:16px; }

/* "ASIAN · EUROPEAN · DOMESTIC" kicker: 0.76rem / 12.2px -> 0.92rem /
   14.7px. Letter-spacing is left to the rule further down this file. */
.vm .vmc-hero .lg-kicker{ font-size:0.92rem; margin-bottom:14px; }

/* Hero paragraph: 1.15rem / 18.4px -> 1.24rem / 19.8px, with the line
   height opened up to match. max-width rises with it so the measure stays
   near 70 characters instead of tightening as the type grows. */
.vm .vmc-hero .lede{ font-size:1.24rem; line-height:1.72; max-width:600px; }

/* "View All 31 Vehicle Makes": 1.02rem / 16.3px -> 1.1rem / 17.6px, with
   proportional padding so the button grows with its label.

   RESPONSIVE BUG FOUND IN THE 2026-09-02 SWEEP, fixed here. At 390px the
   hero column is 342px wide; the enlarged label plus 36px of side padding
   needed more than that, so .btn's flex-wrap dropped the arrow onto its own
   line and the button became a 109px-tall two-line block. The increase is
   therefore held to 481px and up, where there is room for it. Below that the
   button keeps the .btn-lg defaults it had before this pass — the approved
   mobile state, one line, arrow inline. */
@media (min-width: 481px){
  .vm .vmc-hero .vmc-viewall{ font-size:1.1rem; padding:19px 36px; gap:13px; }
}

/* Legend under the orbit: 0.92rem / 14.7px -> 1rem / 16px. It is hero text
   at the same distance as everything else above, and it carries the
   "makes in red" explanation for the four ringed discs. */
.vm .vmc-hero .vmc-legend{ font-size:1rem; max-width:500px; }

/* Explanatory line under each section heading (stays uppercase). */
.vm .section-sub{ font-size:0.95rem; }

/* Ford spotlight description. */
.vm .vm-spotlight-card p{ font-size:1.05rem; }

/* Asian / European / Domestic cards. */
.vm .vm-sub{ font-size:0.82rem; }
.vm .vm-brand{ font-size:0.95rem; }
.vm .vm-note{ font-size:1rem; }

/* "What We Repair" cards. */
.vm .lg-related-card h3{ font-size:1.05rem; }
.vm .lg-related-card p{ font-size:1rem; }

/* "Tell Us Your Year, Make And Model" facts. */
.vm .lg-fact strong{ font-size:0.85rem; }
.vm .lg-fact div{ font-size:1rem; }

/* ---------- Kia landing page ( /kia-sunroof-repair/ ) ---------- */
.kia-hero-cta{ margin-top:22px; }
.kia-mid-cta, .kia-final-cta{ margin-top:32px; }
.kia-answers{ margin-top:28px; }
.kia-models{ margin-top:22px; }
.kia-model-note{ margin-top:20px; }
.kia-symptoms{ margin-top:26px; }
.kia-prose{ margin-top:30px; }
.kia-faq .lg-step h3{ text-transform:none; }

/* Secondary model link inside a brand group (e.g. Toyota -> Camry).
   Visibly subordinate to the brand chips so it never reads as a brand page. */
a.vm-brand--sub{
  border-style:dashed; font-size:0.8rem; font-weight:600;
  color:var(--charcoal-soft); border-color:var(--line-strong,var(--line));
  background:var(--cream);
}
a.vm-brand--sub::after{ content:"\203A"; opacity:0.6; }
a.vm-brand--sub:hover{ background:var(--charcoal); color:var(--white); border-color:var(--charcoal); }

/* ==================================================================
   2026-09-01 — VEHICLE MAKE SELECTOR ("clock") HERO   ( body.vm only )

   Circular make selector beside the hero copy on /vehicle-makes/.
   Everything is scoped to `.vm` so no other page is touched.

   PLACEHOLDER: `.vmc-mark` currently holds TEXT, not badge artwork. The
   project holds no licensed manufacturer logo files. To swap in real
   artwork later, put an <img> inside `.vmc-mark` and add a `.vmc-name`
   label beneath the disc — the ring maths, link logic, hover physics and
   responsive rules all stay as they are.

   Geometry: each slot is placed with
     rotate(i*30deg) -> translate(0,-ring) -> rotate(-i*30deg)
   so the discs sit on a circle but stay upright. The disc itself keeps
   its own transform free for the hover lift, which is why the lift and
   the placement never fight each other.
   ================================================================== */

.vm .vmc-grid{ display:block; }

.vm .vmc-copy .lede{ margin-bottom:0; }

/* ---------- the "View all" CTA ---------- */
.vm .vmc-cta-row{ margin-top:24px; }
.vm .vmc-viewall{
  display:inline-flex; align-items:center; gap:11px; flex-wrap:wrap; max-width:100%;
  background:var(--charcoal); color:var(--white);
  border:1px solid var(--charcoal);
  text-transform:uppercase; letter-spacing:0.04em; font-weight:800;
  box-shadow:0 2px 5px rgba(0,0,0,0.12);
  transition:background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.vm .vmc-viewall:hover{
  background:#000; color:var(--white);
  transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,0.20);
}
.vm .vmc-viewall .vmc-arrow{ transition:transform 0.18s ease; }
.vm .vmc-viewall:hover .vmc-arrow{ transform:translateX(4px); }
.vm .vmc-contact-row{ margin-top:14px; }

/* ---------- the selector ---------- */
.vm .vmc-visual{ margin-top:38px; }
.vm .vmc{
  --clock:540px;
  --btn:96px;
  --gap:18px;
  --ring:calc((var(--clock) - var(--btn)) / 2);
  position:relative;
  width:var(--clock); height:var(--clock);
  margin:0 auto;
}

.vm .vmc-portrait{
  position:absolute; top:50%; left:50%;
  width:calc(var(--clock) - (var(--btn) * 2) - (var(--gap) * 2));
  aspect-ratio:1/1;
  transform:translate(-50%,-50%);
  border-radius:50%; overflow:hidden;
  border:5px solid var(--white);
  box-shadow:0 0 0 2px var(--red), 0 18px 44px rgba(0,0,0,0.22);
  background:var(--cream);
}
.vm .vmc-portrait img{
  width:100%; height:100%;
  object-fit:cover; object-position:36% 26%;
}

/* the faint guide circle the discs sit on */
.vm .vmc::before{
  content:""; position:absolute; top:50%; left:50%;
  width:calc(var(--ring) * 2); height:calc(var(--ring) * 2);
  transform:translate(-50%,-50%);
  border:1px dashed var(--line-strong, #CFC6BA); border-radius:50%;
  opacity:0.65; pointer-events:none;
}

.vm .vmc-ring{ list-style:none; margin:0; padding:0; }
.vm .vmc-slot{
  position:absolute; top:50%; left:50%;
  perspective:640px;
  transform:
    rotate(calc(var(--i) * 30deg))
    translate(0, calc(var(--ring) * -1))
    rotate(calc(var(--i) * -30deg))
    translate(-50%,-50%);
}

.vm .vmc-btn{
  display:flex; align-items:center; justify-content:center; text-align:center;
  width:var(--btn); height:var(--btn); border-radius:50%;
  padding:8px;
  background:linear-gradient(158deg, #FFFFFF 0%, #FFFFFF 52%, #F1ECE4 100%);
  border:1px solid var(--line);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -3px 6px rgba(0,0,0,0.05),
    0 1px 2px rgba(0,0,0,0.07),
    0 7px 16px rgba(0,0,0,0.11);
  transform:translateY(0) rotateX(0deg) rotateY(0deg);
  transition:transform 210ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 210ms ease;
  will-change:transform;
}
.vm .vmc-mark{
  font-family:var(--font-sans);
  font-size:0.8rem; font-weight:800; line-height:1.15;
  letter-spacing:0.02em; text-transform:uppercase;
  color:var(--charcoal-soft);
}
.vm a.vmc-btn .vmc-mark{ color:var(--red); }

/* Only real links move. A disc with no destination stays put, so the
   page never offers an affordance it cannot honour. */
.vm a.vmc-btn:hover,
.vm a.vmc-btn:focus-visible{
  transform:translateY(-5px) rotateX(2.5deg) rotateY(-2.5deg);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -3px 6px rgba(0,0,0,0.05),
    0 2px 4px rgba(0,0,0,0.08),
    0 16px 30px rgba(0,0,0,0.19);
}
.vm a.vmc-btn:active{
  transform:translateY(-1px) scale(0.975) rotateX(1deg) rotateY(-1deg);
  box-shadow:
    inset 0 2px 5px rgba(0,0,0,0.10),
    0 1px 2px rgba(0,0,0,0.10),
    0 4px 9px rgba(0,0,0,0.10);
  transition-duration:90ms;
}
.vm a.vmc-btn:focus-visible{
  outline:3px solid var(--red); outline-offset:4px;
}

.vm .vmc-legend{
  margin:26px auto 0; max-width:460px; text-align:center;
  font-size:0.92rem; line-height:1.6; color:var(--charcoal-soft);
}
.vm .vmc-legend strong{ color:var(--red); }
.vm .vmc-legend a{ color:var(--red); font-weight:700; text-decoration:underline; text-underline-offset:2px; }

.vm .sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---------- two columns on real desktop ----------
     CASCADING tiers, not exclusive ranges. The right-hand track has to
     hold the whole circle, and the usable width is clientWidth minus the
     scrollbar minus 48px of .wrap padding — at a 1216px viewport that is
     1153px, not 1216px. Sizing the clock off the viewport instead of the
     real track is what made it overflow. Each tier only raises the clock
     once the track has genuinely grown. ---------- */
/* 2026-09-02 — ORBIT ENLARGED.

   The badges were 96px carrying a 30px mark, which is not recognisable at a
   normal desktop viewing distance. The whole assembly is now bigger.

   The extra width comes from the GRID GAP (48px -> 32px), deliberately NOT
   from the copy column: `minmax(0,620px)` is left exactly as it was so the
   hero paragraph keeps its line breaks. At a 1280px content column that moves
   the visual track from 564px to 580px.

   The portrait is NOT squeezed to pay for the bigger badges — it grows too:
     576 - (2 x 110) - (2 x 18) = 320px, up from 312px. */
@media (min-width: 1216px){
  .vm .vmc-grid{
    display:grid; grid-template-columns:minmax(0,620px) minmax(480px,1fr);
    gap:32px; align-items:center;
  }
  .vm .vmc-visual{ margin-top:0; }
  .vm .vmc{ --clock:496px; --btn:106px; --gap:14px; }
}
/* From ~1300px the .wrap is at its 1280px cap, so the visual track stops
   growing at 580px — this is the widest the clock ever gets. Inside that
   fixed 576px clock the badges are pushed to 122px, which is what the wide
   WORDMARKS need: they are capped by width, not height, so Nissan (6.8:1) and
   Hyundai (7.8:1) only gain height when the badge itself gets wider. */
@media (min-width: 1300px){
  .vm .vmc{ --clock:576px; --btn:122px; --gap:16px; }
}

/* ---------- tablet: stacked, circle scaled down ---------- */
@media (max-width: 1215px){
  .vm .vmc{ --clock:min(560px, 92vw); --btn:104px; --gap:16px; }
}
@media (max-width: 860px){
  .vm .vmc{ --clock:min(470px, 94vw); --btn:92px; --gap:12px; }
}

/* ---------- phones: the ring cannot stay readable, so it becomes a grid.
     Twelve 30-degree slots on a 300px circle would put the discs closer
     together than their own diameter. A 3-column grid keeps every target
     finger-sized. 2026-09-02: the make names are screen-reader-only here too,
     so each cell is now one large mark rather than a small logo over a
     0.76rem label. ---------- */
@media (max-width: 700px){
  .vm .vmc{
    --btn:92px;
    width:100%; height:auto; margin:0;
    display:flex; flex-direction:column; align-items:center; gap:26px;
  }
  .vm .vmc::before{ display:none; }
  .vm .vmc-portrait{
    position:static; transform:none;
    width:min(230px, 62vw);
  }
  .vm .vmc-ring{
    position:static; width:100%;
    display:grid; grid-template-columns:repeat(3, 1fr);
    justify-items:center; gap:16px 8px;
  }
  .vm .vmc-slot{ position:static; transform:none; }
  .vm .vmc-mark{ font-size:0.76rem; }
  .vm .vmc-legend{ margin-top:20px; }
}
@media (max-width: 380px){
  .vm .vmc{ --btn:82px; }
  .vm .vmc-ring{ gap:14px 6px; }
  .vm .vmc-mark{ font-size:0.7rem; }
}

/* ---------- motion preference ---------- */
@media (prefers-reduced-motion: reduce){
  .vm .vmc-btn,
  .vm .vmc-viewall,
  .vm .vmc-viewall .vmc-arrow{ transition:none; }
  .vm a.vmc-btn:hover,
  .vm a.vmc-btn:focus-visible,
  .vm a.vmc-btn:active,
  .vm .vmc-viewall:hover{ transform:none; }
  .vm .vmc-viewall:hover .vmc-arrow{ transform:none; }
  html{ scroll-behavior:auto; }
}

/* The "View all" label is long. On the narrowest phones it has to give up
   its letter-spacing and go full width, or it pushes the page sideways. */
@media (max-width: 430px){
  .vm .vmc-viewall{
    width:100%; justify-content:center; text-align:center;
    font-size:0.86rem; letter-spacing:0.02em; gap:8px;
    padding-left:14px; padding-right:14px;
  }
}

/* ==================================================================
   2026-09-01 — VEHICLE MAKE DIRECTORY PANELS   ( body.vm only )

   Replaces the three text-only region boxes with three premium panels of
   raised logo tiles. Scoped to `.vm` — the frozen service pages share
   none of these class names, and nothing here touches the hero clock,
   the Ford spotlight, What We Repair, Tell Us, or the footer.

   PROVISIONAL ARTWORK: the tiles show the make NAME, not a logo. The
   project contains no manufacturer logo files of any kind, so there is
   nothing to place in the logo slot yet. See the note above .vmd-logo-img
   for the exact swap once licensed artwork exists.
   ================================================================== */

.vm .vmd{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:24px; align-items:start; margin-top:8px;
}

.vm .vmd-panel{
  --panel:var(--red); --panel-deep:var(--red-dark, #A50F15);
  background:var(--white);
  border:1px solid var(--line);
  border-top:0;
  border-radius:16px;
  box-shadow:0 1px 2px rgba(0,0,0,0.05), 0 10px 28px rgba(0,0,0,0.09);
  overflow:hidden;
}
.vm .vmd-panel--asian{    --panel:#D2141B; --panel-deep:#9E0F14; }
.vm .vmd-panel--european{ --panel:#1B4E8C; --panel-deep:#123A69; }
.vm .vmd-panel--domestic{ --panel:#1E7A4D; --panel-deep:#155A38; }

.vm .vmd-head{
  margin:0; padding:15px 18px;
  background:linear-gradient(180deg, var(--panel) 0%, var(--panel-deep) 100%);
  color:var(--white); text-align:center;
  font-family:var(--font-sans); font-size:0.98rem; font-weight:900;
  text-transform:uppercase; letter-spacing:0.09em;
  text-shadow:0 1px 1px rgba(0,0,0,0.22);
  box-shadow:inset 0 -1px 0 rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.22);
}

.vm .vmd-grid{
  list-style:none; margin:0; padding:16px;
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px;
}
.vm .vmd-grid > li{ display:block; }

.vm .vmd-tile{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:7px; height:100%; min-height:96px; padding:12px 6px 10px;
  border-radius:12px;
  background:linear-gradient(168deg, #FFFFFF 0%, #FFFFFF 58%, #F2EEE8 100%);
  border:1px solid var(--line);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -2px 5px rgba(0,0,0,0.045),
    0 1px 2px rgba(0,0,0,0.06),
    0 5px 12px rgba(0,0,0,0.08);
  transform:translateY(0);
  transition:transform 200ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 200ms ease;
  text-decoration:none;
}

/* THE LOGO SLOT — currently unused.

   There is no manufacturer logo artwork in this project, so the tiles show
   the make name alone rather than a monogram that would simply repeat it.
   When licensed artwork lands, add
     <img class="vmd-logo-img" src="assets/makes/kia.svg" alt="">
   as the tile's first child and drop `.vmd-name` back to 0.78rem — the
   tile box, grid and hover physics do not move. */
.vm .vmd-logo-img{
  display:block; margin-bottom:2px;
  max-width:100%; max-height:44px; width:auto; height:auto; object-fit:contain;
}
.vm .vmd-name{
  font-family:var(--font-sans); font-size:0.94rem; font-weight:800;
  text-transform:uppercase; letter-spacing:0.03em; line-height:1.2;
  color:var(--charcoal-soft); text-align:center; overflow-wrap:break-word; hyphens:auto;
}
.vm a.vmd-tile .vmd-name{ color:var(--red); }
.vm .vmd-panel--european a.vmd-tile .vmd-name{ color:var(--red); }

/* Only tiles with a destination lift. A tile with nowhere to go keeps the
   same resting treatment but never behaves like a control. */
.vm a.vmd-tile:hover,
.vm a.vmd-tile:focus-visible{
  transform:translateY(-5px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    0 2px 4px rgba(0,0,0,0.07),
    0 14px 26px rgba(0,0,0,0.17);
  border-color:var(--panel);
}
.vm a.vmd-tile:active{
  transform:translateY(-1px) scale(0.985);
  box-shadow:inset 0 2px 5px rgba(0,0,0,0.10), 0 2px 5px rgba(0,0,0,0.09);
  transition-duration:90ms;
}
.vm a.vmd-tile:focus-visible{ outline:3px solid var(--panel); outline-offset:3px; }

/* ---------- "Do not see your make?" ---------- */
.vm .vmd-note{
  display:flex; align-items:flex-start; gap:16px;
  margin-top:26px; padding:20px 24px;
  background:var(--white); border:1px solid var(--line);
  border-left:4px solid var(--red); border-radius:14px;
  box-shadow:0 1px 2px rgba(0,0,0,0.05), 0 8px 20px rgba(0,0,0,0.07);
}
.vm .vmd-note-icon{
  flex-shrink:0; display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:10px;
  background:var(--red); color:var(--white);
}
.vm .vmd-note-icon svg{ width:22px; height:22px; }
.vm .vmd-note p{
  margin:0; font-size:1rem; line-height:1.65; color:var(--charcoal-soft);
}
.vm .vmd-note strong{ color:var(--charcoal); }
.vm .vmd-note a{ color:var(--red); font-weight:800; }

/* ---------- responsive ---------- */
@media (max-width: 1100px){
  .vm .vmd{ grid-template-columns:1fr 1fr; gap:20px; }
  .vm .vmd-panel--domestic{ grid-column:1 / -1; }
  .vm .vmd-panel--domestic .vmd-grid{ grid-template-columns:repeat(6, minmax(0,1fr)); }
}
@media (max-width: 860px){
  /* one panel per row, so each grid can spread wider */
  .vm .vmd{ grid-template-columns:1fr; }
  .vm .vmd-grid,
  .vm .vmd-panel--domestic .vmd-grid{ grid-template-columns:repeat(5, minmax(0,1fr)); }
}
@media (max-width: 700px){
  .vm .vmd-grid,
  .vm .vmd-panel--domestic .vmd-grid{ grid-template-columns:repeat(4, minmax(0,1fr)); }
}
@media (max-width: 560px){
  .vm .vmd-grid,
  .vm .vmd-panel--domestic .vmd-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; padding:14px; }
  .vm .vmd-tile{ min-height:82px; }
  .vm .vmd-note{ padding:18px; gap:13px; }
}
@media (max-width: 360px){
  .vm .vmd-grid,
  .vm .vmd-panel--domestic .vmd-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .vm .vmd-name{ font-size:0.72rem; }
}

@media (prefers-reduced-motion: reduce){
  .vm .vmd-tile{ transition:none; }
  .vm a.vmd-tile:hover,
  .vm a.vmd-tile:focus-visible,
  .vm a.vmd-tile:active{ transform:none; }
}

/* ==================================================================
   2026-09-01 — DEPTH PASS   ( body.vm only )

   Adds dimension to the Vehicle Makes page: layered shadows, thin inset
   highlights, restrained gradients, small press movement. No layout, no
   copy, no link and no colour-identity changes — every rule below sets
   only box-shadow, background, border, border-radius, transform or
   transition.

   Scoped to `.vm` throughout, so the frozen pages that share
   .lg-related-card, .lg-facts, .btn-* and the footer are untouched.

   House recipe, so the page reads as one system:
     inset 0 1.5px 0 rgba(255,255,255,1)  — top highlight (the bevel)
     inset 0 -3px 6px rgba(0,0,0,.05)     — base shading
     0 1px 2px rgba(0,0,0,.06)            — contact shadow
     0 Npx Mpx rgba(0,0,0,.10)            — the lift
   ================================================================== */

/* ---------- 1. HERO — make badges ---------- */
.vm .vmc-btn{
  background:
    radial-gradient(115% 95% at 30% 12%, #FFFFFF 0%, #FFFFFF 46%, #F4F0EA 78%, #E9E3DA 100%);
  border:1px solid #E2DBD1;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -4px 8px rgba(0,0,0,0.06),
    inset 0 0 0 1px rgba(255,255,255,0.55),
    0 1px 2px rgba(0,0,0,0.07),
    0 4px 8px rgba(0,0,0,0.07),
    0 12px 22px rgba(0,0,0,0.11);
}
/* thin accent ring on the badges that actually go somewhere */
.vm a.vmc-btn{
  border-color:rgba(210,20,27,0.30);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -4px 8px rgba(0,0,0,0.06),
    inset 0 0 0 1px rgba(255,255,255,0.55),
    0 0 0 2px rgba(210,20,27,0.11),
    0 1px 2px rgba(0,0,0,0.07),
    0 4px 8px rgba(0,0,0,0.07),
    0 12px 22px rgba(0,0,0,0.11);
}
.vm a.vmc-btn:hover,
.vm a.vmc-btn:focus-visible{
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -4px 8px rgba(0,0,0,0.05),
    0 0 0 2px rgba(210,20,27,0.22),
    0 2px 4px rgba(0,0,0,0.08),
    0 10px 18px rgba(0,0,0,0.12),
    0 22px 38px rgba(0,0,0,0.18);
}
.vm a.vmc-btn:active{
  box-shadow:
    inset 0 3px 7px rgba(0,0,0,0.13),
    inset 0 -1px 0 rgba(255,255,255,0.7),
    0 1px 2px rgba(0,0,0,0.10),
    0 3px 7px rgba(0,0,0,0.10);
}

/* ---------- 2. HERO BUTTONS ---------- */
.vm .btn-lg{
  transition:transform 170ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 170ms ease, background 170ms ease;
}
.vm .vmc-viewall{
  background:linear-gradient(180deg, #34302C 0%, #201D1A 55%, #171412 100%);
  border-color:#171412;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.18),
    inset 0 -2px 4px rgba(0,0,0,0.35),
    0 1px 2px rgba(0,0,0,0.14),
    0 6px 14px rgba(0,0,0,0.20);
}
.vm .vmc-viewall:hover{
  background:linear-gradient(180deg, #3D3833 0%, #262220 55%, #171512 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    0 2px 4px rgba(0,0,0,0.16),
    0 12px 24px rgba(0,0,0,0.26);
}
.vm .btn-primary{
  background:linear-gradient(180deg, #E4262D 0%, #D2141B 52%, #B5121A 100%);
  border-color:#A50F15;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.28),
    inset 0 -2px 4px rgba(0,0,0,0.20),
    0 1px 2px rgba(0,0,0,0.12),
    0 6px 14px rgba(210,20,27,0.24);
}
.vm .btn-primary:hover{
  background:linear-gradient(180deg, #EC3038 0%, #D2141B 52%, #A50F15 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.30),
    0 2px 4px rgba(0,0,0,0.14),
    0 12px 24px rgba(210,20,27,0.30);
}
.vm .btn-outline-dark{
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 58%, #F3EFE9 100%);
  border-color:#2B2622;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -2px 4px rgba(0,0,0,0.05),
    0 1px 2px rgba(0,0,0,0.07),
    0 6px 13px rgba(0,0,0,0.10);
}
.vm .btn-outline-dark:hover{
  background:linear-gradient(180deg, #2B2622 0%, #171412 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 2px 4px rgba(0,0,0,0.14),
    0 12px 22px rgba(0,0,0,0.22);
}
.vm .btn-lg:active{
  transform:translateY(1px) scale(0.995);
  box-shadow:
    inset 0 3px 6px rgba(0,0,0,0.22),
    0 1px 2px rgba(0,0,0,0.12);
  transition-duration:80ms;
}

/* ---------- 3. FORD SPOTLIGHT ---------- */
.vm .vm-spotlight-card{
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 70%, #FBF8F4 100%);
  border:1px solid #E6DFD5;
  border-radius:16px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 1px 2px rgba(0,0,0,0.05),
    0 6px 14px rgba(0,0,0,0.07),
    0 14px 34px rgba(0,0,0,0.10);
  transition:transform 190ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 190ms ease, border-color 190ms ease;
}
.vm a.vm-spotlight-card:hover{
  transform:translateY(-4px);
  border-color:rgba(210,20,27,0.35);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 2px 5px rgba(0,0,0,0.07),
    0 14px 26px rgba(0,0,0,0.11),
    0 26px 52px rgba(0,0,0,0.15);
}
.vm a.vm-spotlight-card:active{
  transform:translateY(-1px);
  box-shadow:inset 0 2px 6px rgba(0,0,0,0.09), 0 3px 8px rgba(0,0,0,0.10);
  transition-duration:90ms;
}

/* ---------- 4. REGION PANELS ---------- */
.vm .vmd-panel{
  border:1px solid #E4DDD3;
  border-top:0;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.7),
    0 1px 2px rgba(0,0,0,0.05),
    0 8px 18px rgba(0,0,0,0.08),
    0 20px 44px rgba(0,0,0,0.12);
}
.vm .vmd-head{
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--panel) 86%, #FFFFFF) 0%,
      var(--panel) 42%,
      var(--panel-deep) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.34),
    inset 0 -1px 0 rgba(0,0,0,0.26),
    0 3px 8px rgba(0,0,0,0.14);
}
.vm .vmd-grid{
  background:linear-gradient(180deg, #FBF9F6 0%, #FFFFFF 46%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);
}
.vm .vmd-tile{
  background:
    radial-gradient(120% 100% at 32% 8%, #FFFFFF 0%, #FFFFFF 52%, #F5F1EB 82%, #EDE7DE 100%);
  border:1px solid #E4DDD3;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -3px 6px rgba(0,0,0,0.05),
    0 1px 2px rgba(0,0,0,0.06),
    0 4px 9px rgba(0,0,0,0.07),
    0 9px 18px rgba(0,0,0,0.07);
}
.vm a.vmd-tile{
  border-color:color-mix(in srgb, var(--panel) 34%, #E4DDD3);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -3px 6px rgba(0,0,0,0.05),
    0 0 0 2px color-mix(in srgb, var(--panel) 13%, transparent),
    0 1px 2px rgba(0,0,0,0.06),
    0 4px 9px rgba(0,0,0,0.07),
    0 9px 18px rgba(0,0,0,0.07);
}
.vm a.vmd-tile:hover,
.vm a.vmd-tile:focus-visible{
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 0 0 2px color-mix(in srgb, var(--panel) 26%, transparent),
    0 2px 4px rgba(0,0,0,0.07),
    0 12px 22px rgba(0,0,0,0.12),
    0 22px 38px rgba(0,0,0,0.13);
}
.vm a.vmd-tile:active{
  box-shadow:
    inset 0 3px 7px rgba(0,0,0,0.11),
    inset 0 -1px 0 rgba(255,255,255,0.75),
    0 1px 3px rgba(0,0,0,0.09);
}

/* ---------- 5. THE DO-NOT-SEE-YOUR-MAKE CARD ---------- */
.vm .vmd-note{
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 72%, #FBF8F4 100%);
  border:1px solid #E6DFD5;
  border-left:4px solid var(--red);
  border-radius:16px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 1px 2px rgba(0,0,0,0.05),
    0 6px 14px rgba(0,0,0,0.07),
    0 16px 34px rgba(0,0,0,0.10);
}
.vm .vmd-note-icon{
  border-radius:50%;
  background:radial-gradient(120% 110% at 32% 14%, #EE3038 0%, #D2141B 52%, #A50F15 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,0.42),
    inset 0 -3px 6px rgba(0,0,0,0.22),
    0 1px 2px rgba(0,0,0,0.14),
    0 6px 13px rgba(210,20,27,0.30);
}

/* ---------- 6. WHAT WE REPAIR ---------- */
.vm .lg-related-card{
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 68%, #FBF8F4 100%);
  border:1px solid #E6DFD5;
  border-radius:15px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -2px 5px rgba(0,0,0,0.035),
    0 1px 2px rgba(0,0,0,0.05),
    0 6px 13px rgba(0,0,0,0.07),
    0 14px 30px rgba(0,0,0,0.09);
  transition:transform 190ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 190ms ease, border-color 190ms ease;
}
.vm .lg-related-card:hover{
  transform:translateY(-5px);
  border-color:rgba(210,20,27,0.34);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 2px 5px rgba(0,0,0,0.07),
    0 14px 26px rgba(0,0,0,0.11),
    0 26px 48px rgba(0,0,0,0.14);
}
.vm .lg-related-card:active{
  transform:translateY(-1px);
  box-shadow:inset 0 2px 6px rgba(0,0,0,0.09), 0 3px 8px rgba(0,0,0,0.10);
  transition-duration:90ms;
}

/* ---------- 7. TELL US YOUR YEAR, MAKE AND MODEL ---------- */
.vm .lg-facts{
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 72%, #FAF7F3 100%);
  border:1px solid #E6DFD5;
  border-radius:16px;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -2px 6px rgba(0,0,0,0.035),
    0 1px 2px rgba(0,0,0,0.05),
    0 8px 18px rgba(0,0,0,0.07),
    0 20px 44px rgba(0,0,0,0.11);
}

/* ---------- 8. FOOTER CALL / TEXT PANEL ----------
   NOTE: scoped to `.vm`, so this treatment appears on THIS page only. The
   footer is otherwise a sitewide frozen component in home.css, and the
   other 29 pages are unchanged. If it is approved, promoting it sitewide
   is a separate decision and a separate edit to home.css. */
.vm .ct-banner--footer{
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 62%, #F6F1EA 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,1),
    inset 0 -3px 8px rgba(0,0,0,0.06),
    0 2px 4px rgba(0,0,0,0.16),
    0 12px 26px rgba(0,0,0,0.28),
    0 28px 60px rgba(0,0,0,0.32);
}
.vm .ct-banner--footer .ct-icon-btn{
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,0.5),
    inset 0 -3px 6px rgba(0,0,0,0.20),
    0 1px 2px rgba(0,0,0,0.16),
    0 7px 15px rgba(242,96,12,0.34);
}
.vm .ct-banner--footer .ct-banner-strip{
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.9), 0 1px 3px rgba(0,0,0,0.07);
}
.vm .ct-banner--footer .ct-banner-crown{
  box-shadow:0 4px 12px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.9);
}

/* ---------- motion preference ---------- */
@media (prefers-reduced-motion: reduce){
  .vm .btn-lg,
  .vm .vm-spotlight-card,
  .vm .lg-related-card{ transition:none; }
  .vm .btn-lg:active,
  .vm a.vm-spotlight-card:hover,
  .vm a.vm-spotlight-card:active,
  .vm .lg-related-card:hover,
  .vm .lg-related-card:active{ transform:none; }
}

/* ==================================================================
   2026-09-01 — FINAL DIMENSIONAL PASS   ( body.vm only )

   Turns the flat panels into physically-constructed components:
     raised outer frame -> thin red inset accent -> recessed content surface

   Built entirely with pseudo-elements and layered shadows, so NO markup
   changed: `vehicle-makes.html` is untouched by this pass. Every rule is
   scoped to `.vm`, so the frozen pages that share .type-card,
   .lg-facts, .lg-fact, .lg-related-card and .btn-* are unaffected.

   DEPTH HIERARCHY (deliberate, to stop the page becoming noisy):
     hero clock ........ strongest
     Ford frame ........ strong   (frame + accent + recess)
     Tell Us console ... strong   (frame + accent + 4 raised modules)
     region panels ..... strong
     What We Repair .... medium   (left as the earlier pass set it)
     note card, chips .. light
   ================================================================== */

/* ------------------------------------------------------------------
   B. HERO — orbit line and portrait ring
   ------------------------------------------------------------------ */
.vm .vmc::before{
  border:1px solid rgba(242,96,12,0.30);
  border-style:solid;
  opacity:1;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.55),
    0 1px 3px rgba(0,0,0,0.04);
}
.vm .vmc-portrait{
  border:6px solid #FFFFFF;
  box-shadow:
    0 0 0 2px rgba(210,20,27,0.85),
    0 0 0 3px rgba(255,255,255,0.9),
    inset 0 2px 6px rgba(0,0,0,0.18),
    0 10px 22px rgba(0,0,0,0.16),
    0 26px 56px rgba(0,0,0,0.24);
}

/* ------------------------------------------------------------------
   B + E. DASHBOARD CONTROLS — Call / Text / View All
   A solid lower edge gives real physical depth; the press collapses it.
   ------------------------------------------------------------------ */
.vm .btn-lg{
  border-bottom-width:1px;
  transition:transform 190ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 190ms ease, background 190ms ease;
}
.vm .btn-primary{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.32),
    inset 0 -2px 4px rgba(0,0,0,0.22),
    0 5px 0 #8E0D12,
    0 7px 10px rgba(0,0,0,0.18),
    0 14px 26px rgba(210,20,27,0.24);
}
.vm .btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.34),
    0 8px 0 #8E0D12,
    0 11px 16px rgba(0,0,0,0.20),
    0 20px 34px rgba(210,20,27,0.28);
}
.vm .btn-outline-dark{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -2px 4px rgba(0,0,0,0.05),
    0 5px 0 #2B2622,
    0 7px 10px rgba(0,0,0,0.16),
    0 14px 24px rgba(0,0,0,0.12);
}
.vm .btn-outline-dark:hover{
  transform:translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 8px 0 #100E0C,
    0 11px 16px rgba(0,0,0,0.20),
    0 20px 32px rgba(0,0,0,0.18);
}
.vm .vmc-viewall{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.20),
    inset 0 -2px 4px rgba(0,0,0,0.35),
    0 5px 0 #0B0A09,
    0 7px 10px rgba(0,0,0,0.20),
    0 14px 26px rgba(0,0,0,0.22);
}
.vm .vmc-viewall:hover{
  transform:translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.24),
    0 8px 0 #0B0A09,
    0 11px 16px rgba(0,0,0,0.22),
    0 20px 34px rgba(0,0,0,0.26);
}
.vm .btn-lg:active{
  transform:translateY(4px) scale(0.99);
  box-shadow:
    inset 0 3px 7px rgba(0,0,0,0.24),
    0 1px 0 rgba(0,0,0,0.35),
    0 2px 4px rgba(0,0,0,0.14);
  transition-duration:80ms;
}
.vm .btn-lg:focus-visible{ outline:3px solid var(--red); outline-offset:4px; }

/* ------------------------------------------------------------------
   D. FORD FEATURE FRAME
   frame (the <a> itself) -> ::before accent hairline -> ::after recess
   ------------------------------------------------------------------ */
.vm .vm-spotlight-card{
  position:relative; isolation:isolate;
  padding:42px 40px 38px;
  border-radius:30px;
  border:1px solid #E8E0D4;
  background:
    linear-gradient(157deg, #FFFFFF 0%, #FCF9F4 34%, #F4EEE4 72%, #EAE2D5 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,1),
    inset 2px 0 0 rgba(255,255,255,0.7),
    inset 0 -3px 0 rgba(0,0,0,0.06),
    inset -2px 0 0 rgba(0,0,0,0.04),
    0 2px 4px rgba(0,0,0,0.06),
    0 12px 24px rgba(0,0,0,0.10),
    0 30px 60px rgba(0,0,0,0.14);
}
/* thin Sunroof King accent line, sunk just inside the frame */
.vm .vm-spotlight-card::before{
  content:""; position:absolute; inset:13px;
  border:1.5px solid rgba(210,20,27,0.42);
  border-radius:21px;
  pointer-events:none; z-index:0;
  box-shadow:0 1px 0 rgba(255,255,255,0.85);
}
/* softly recessed content surface */
.vm .vm-spotlight-card::after{
  content:""; position:absolute; inset:22px;
  border-radius:16px;
  background:linear-gradient(180deg, #FEFCF9 0%, #FBF7F1 100%);
  box-shadow:
    inset 0 2px 5px rgba(0,0,0,0.07),
    inset 0 -1px 0 rgba(255,255,255,0.9);
  pointer-events:none; z-index:0;
}
.vm .vm-spotlight-card > *{ position:relative; z-index:1; }
.vm a.vm-spotlight-card:hover{
  transform:translateY(-4px);
  border-color:#E2D8C9;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,1),
    inset 0 -3px 0 rgba(0,0,0,0.06),
    0 3px 6px rgba(0,0,0,0.07),
    0 20px 36px rgba(0,0,0,0.13),
    0 44px 78px rgba(0,0,0,0.17);
}
.vm a.vm-spotlight-card:active{
  transform:translateY(-1px);
  box-shadow:
    inset 0 3px 8px rgba(0,0,0,0.10),
    0 3px 8px rgba(0,0,0,0.11);
  transition-duration:90ms;
}
.vm a.vm-spotlight-card:focus-visible{ outline:3px solid var(--red); outline-offset:5px; }

/* the "View Ford sunroof repair" control */
.vm .vm-spotlight-card .lg-more{
  display:inline-flex; align-items:center; gap:9px;
  margin-top:20px; padding:13px 24px;
  border-radius:11px;
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 55%, #F5F0E8 100%);
  border:1px solid #E4DCCE;
  color:var(--red); font-weight:800;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -2px 4px rgba(0,0,0,0.05),
    0 4px 0 #DFD6C6,
    0 6px 9px rgba(0,0,0,0.10),
    0 12px 20px rgba(0,0,0,0.09);
  transition:transform 190ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 190ms ease;
}
.vm a.vm-spotlight-card:hover .lg-more{
  transform:translateY(-2px);
  text-decoration:none;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 6px 0 #DFD6C6,
    0 9px 14px rgba(0,0,0,0.12),
    0 18px 28px rgba(0,0,0,0.11);
}
.vm a.vm-spotlight-card:active .lg-more{
  transform:translateY(2px);
  box-shadow:inset 0 2px 5px rgba(0,0,0,0.12), 0 1px 0 #DFD6C6;
}

/* ------------------------------------------------------------------
   E. TELL US — information console
   ------------------------------------------------------------------ */
.vm .lg-facts{
  position:relative; isolation:isolate;
  max-width:1000px;
  padding:44px 42px;
  border-radius:32px;
  border:1px solid #E8E0D4;
  background:
    linear-gradient(157deg, #FFFFFF 0%, #FCF9F4 34%, #F4EEE4 72%, #E9E1D4 100%);
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:22px;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,1),
    inset 2px 0 0 rgba(255,255,255,0.7),
    inset 0 -3px 0 rgba(0,0,0,0.06),
    inset -2px 0 0 rgba(0,0,0,0.04),
    0 2px 4px rgba(0,0,0,0.06),
    0 14px 28px rgba(0,0,0,0.11),
    0 34px 68px rgba(0,0,0,0.15);
}
.vm .lg-facts::before{
  content:""; position:absolute; inset:13px;
  border:1.5px solid rgba(210,20,27,0.42);
  border-radius:23px;
  pointer-events:none; z-index:0;
  box-shadow:0 1px 0 rgba(255,255,255,0.85);
}
.vm .lg-fact{
  position:relative; z-index:1;
  align-items:center; gap:18px;
  padding:22px 22px;
  border-radius:16px;
  border:1px solid #EBE4D9;
  background:linear-gradient(180deg, #FFFFFF 0%, #FEFCF9 58%, #F8F3EC 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -3px 6px rgba(0,0,0,0.045),
    0 1px 2px rgba(0,0,0,0.05),
    0 6px 13px rgba(0,0,0,0.07),
    0 14px 26px rgba(0,0,0,0.07);
}
/* icon presented as a raised disc */
.vm .lg-fact svg{
  width:60px; height:60px; padding:17px;
  box-sizing:border-box; margin-top:0; border-radius:50%;
  background:radial-gradient(118% 108% at 32% 12%, #FFFFFF 0%, #FFFFFF 54%, #F2ECE3 100%);
  border:1px solid #E7DFD3;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -3px 6px rgba(0,0,0,0.06),
    0 1px 2px rgba(0,0,0,0.07),
    0 6px 12px rgba(0,0,0,0.10);
}
/* vertical accent divider between the disc and the copy */
.vm .lg-fact > div{
  border-left:2px solid rgba(210,20,27,0.55);
  padding-left:17px;
  align-self:stretch;
  display:flex; flex-direction:column; justify-content:center;
}
.vm .lg-fact strong{ font-size:0.86rem; margin-bottom:5px; }

/* ------------------------------------------------------------------
   C. REGION PANELS — physical display shells
   ------------------------------------------------------------------ */
.vm .vmd-panel{
  border-radius:20px;
  border:1px solid #E4DCCE;
  border-top:0;
  background:linear-gradient(180deg, #FFFFFF 0%, #FCFAF7 62%, #F4EFE7 100%);
  box-shadow:
    inset 0 -3px 0 rgba(0,0,0,0.05),
    inset 2px 0 0 rgba(255,255,255,0.8),
    inset -2px 0 0 rgba(0,0,0,0.03),
    0 2px 4px rgba(0,0,0,0.06),
    0 14px 26px rgba(0,0,0,0.10),
    0 32px 60px rgba(0,0,0,0.14);
}
.vm .vmd-head{
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,0.40),
    inset 0 -2px 0 rgba(0,0,0,0.30),
    0 4px 10px rgba(0,0,0,0.18);
}
.vm .vmd-grid{
  margin:12px; padding:14px;
  border-radius:14px;
  background:linear-gradient(180deg, #F8F5F0 0%, #FDFCFA 100%);
  box-shadow:
    inset 0 2px 5px rgba(0,0,0,0.06),
    inset 0 -1px 0 rgba(255,255,255,0.9);
}
.vm .vmd-tile{
  border-radius:13px;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -3px 6px rgba(0,0,0,0.055),
    0 1px 2px rgba(0,0,0,0.06),
    0 4px 0 rgba(0,0,0,0.045),
    0 7px 12px rgba(0,0,0,0.08),
    0 13px 22px rgba(0,0,0,0.07);
}
.vm a.vmd-tile{
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -3px 6px rgba(0,0,0,0.055),
    0 0 0 2px color-mix(in srgb, var(--panel) 15%, transparent),
    0 1px 2px rgba(0,0,0,0.06),
    0 4px 0 color-mix(in srgb, var(--panel) 16%, #E0D8CB),
    0 7px 12px rgba(0,0,0,0.08),
    0 13px 22px rgba(0,0,0,0.07);
}
.vm a.vmd-tile:hover,
.vm a.vmd-tile:focus-visible{
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 0 0 2px color-mix(in srgb, var(--panel) 30%, transparent),
    0 2px 4px rgba(0,0,0,0.07),
    0 7px 0 color-mix(in srgb, var(--panel) 20%, #E0D8CB),
    0 12px 20px rgba(0,0,0,0.12),
    0 24px 40px rgba(0,0,0,0.12);
}
.vm a.vmd-tile:active{
  transform:translateY(-1px) scale(0.985);
  box-shadow:
    inset 0 3px 7px rgba(0,0,0,0.12),
    0 1px 0 color-mix(in srgb, var(--panel) 16%, #E0D8CB);
}

/* ------------------------------------------------------------------
   G. RESPONSIVE — frames must not crush their contents on small screens
   ------------------------------------------------------------------ */
@media (max-width: 900px){
  .vm .lg-facts{ padding:30px 26px; border-radius:26px; gap:18px; }
  .vm .lg-facts::before{ inset:10px; border-radius:18px; }
  .vm .vm-spotlight-card{ padding:32px 28px 30px; border-radius:24px; }
  .vm .vm-spotlight-card::before{ inset:10px; border-radius:16px; }
  .vm .vm-spotlight-card::after{ inset:18px; border-radius:12px; }
}
@media (max-width: 700px){
  /* one column, so each module keeps comfortable padding and a legible icon */
  .vm .lg-facts{ grid-template-columns:1fr; padding:22px 18px; border-radius:22px; }
  .vm .lg-facts::before{ inset:8px; border-radius:15px; }
  .vm .lg-fact{ padding:18px 16px; gap:14px; }
  .vm .lg-fact svg{ width:52px; height:52px; padding:14px; }
  .vm .lg-fact > div{ padding-left:14px; }
  .vm .vm-spotlight-card{ padding:26px 20px 24px; border-radius:20px; }
  .vm .vm-spotlight-card::before{ inset:8px; border-radius:13px; }
  .vm .vm-spotlight-card::after{ inset:14px; border-radius:10px; }
  .vm .vmd-grid{ margin:9px; padding:11px; }
}
@media (max-width: 400px){
  .vm .lg-facts{ padding:16px 12px; }
  .vm .lg-facts::before{ inset:6px; border-radius:13px; }
  .vm .lg-fact{ padding:15px 13px; gap:12px; }
  .vm .lg-fact svg{ width:46px; height:46px; padding:12px; }
  .vm .lg-fact > div{ padding-left:12px; }
  .vm .vm-spotlight-card{ padding:20px 15px 18px; }
  .vm .vm-spotlight-card::before{ inset:6px; border-radius:11px; }
  .vm .vm-spotlight-card::after{ inset:11px; }
  .vm .vm-spotlight-card .lg-more{ padding:11px 16px; }
}

/* ------------------------------------------------------------------
   H. MOTION PREFERENCE
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce){
  .vm .btn-lg,
  .vm .vm-spotlight-card,
  .vm .vm-spotlight-card .lg-more{ transition:none; }
  .vm .btn-primary:hover,
  .vm .btn-outline-dark:hover,
  .vm .vmc-viewall:hover,
  .vm .btn-lg:active,
  .vm a.vm-spotlight-card:hover,
  .vm a.vm-spotlight-card:active,
  .vm a.vm-spotlight-card:hover .lg-more,
  .vm a.vm-spotlight-card:active .lg-more,
  .vm a.vmd-tile:active{ transform:none; }
}

/* ==================================================================
   2026-09-01 — CONSISTENCY PASS   ( body.vm only )

   Two areas only. Everything else on the page is deliberately left as
   approved: header, hero, clock, portrait, hero buttons, Ford frame and
   its CTA, region panels and tiles, the note strip, and the footer.

   DEPTH LADDER after this pass (outermost shadow layer, so the numbers
   are directly comparable):

     region panels ....... 0 32px 60px  rgba(0,0,0,0.14)   strong
     Ford feature frame .. 0 30px 60px  rgba(0,0,0,0.14)   strong
     Tell Us console ..... 0 38px 76px  rgba(0,0,0,0.17)   medium-strong
     What We Repair ...... 0 18px 36px  rgba(0,0,0,0.105)  medium/light
     note strip .......... 0 16px 34px  rgba(0,0,0,0.10)   light

   What We Repair stays at roughly two-thirds the spread and two-thirds
   the opacity of the panels, so the six cards read as secondary controls
   rather than consoles.
   ================================================================== */

/* ------------------------------------------------------------------
   1. WHAT WE REPAIR — six molded cards (medium / light)
   ------------------------------------------------------------------ */
.vm .lg-related-card{
  border-radius:15px;
  border:1px solid #EAE2D6;
  background:linear-gradient(178deg, #FFFFFF 0%, #FEFCF9 56%, #F8F3EC 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 0 0 1px rgba(255,255,255,0.6),
    inset 0 -3px 6px rgba(0,0,0,0.045),
    0 1px 2px rgba(0,0,0,0.05),
    0 3px 0 rgba(0,0,0,0.035),
    0 8px 15px rgba(0,0,0,0.08),
    0 18px 36px rgba(0,0,0,0.105);
  transition:transform 195ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 195ms ease, border-color 195ms ease;
}
.vm .lg-related-card:hover{
  transform:translateY(-4px);
  border-color:rgba(210,20,27,0.30);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 0 0 1px rgba(255,255,255,0.6),
    0 2px 4px rgba(0,0,0,0.06),
    0 5px 0 rgba(0,0,0,0.04),
    0 12px 22px rgba(0,0,0,0.10),
    0 24px 44px rgba(0,0,0,0.115);
}
.vm .lg-related-card:active{
  transform:translateY(-1px);
  box-shadow:
    inset 0 2px 5px rgba(0,0,0,0.085),
    inset 0 -1px 0 rgba(255,255,255,0.8),
    0 1px 0 rgba(0,0,0,0.05),
    0 3px 8px rgba(0,0,0,0.09);
  transition-duration:95ms;
}
.vm .lg-related-card:focus-visible{ outline:3px solid var(--red); outline-offset:4px; }

/* ------------------------------------------------------------------
   2. TELL US CONSOLE — frame ~12% stronger, discs more substantial.
      Structure, 2x2 grid, padding, radius, accent line and recess are
      all unchanged; only shadow weight and disc modelling move.
   ------------------------------------------------------------------ */
.vm .lg-facts{
  box-shadow:
    inset 0 2.5px 0 rgba(255,255,255,1),
    inset 3px 0 0 rgba(255,255,255,0.75),
    inset 0 -4px 0 rgba(0,0,0,0.07),
    inset -3px 0 0 rgba(0,0,0,0.05),
    0 2px 5px rgba(0,0,0,0.07),
    0 16px 32px rgba(0,0,0,0.12),
    0 38px 76px rgba(0,0,0,0.17);
}
.vm .lg-fact svg{
  border:1px solid #E3DACD;
  background:
    radial-gradient(118% 108% at 30% 10%, #FFFFFF 0%, #FFFFFF 50%, #F4EEE5 82%, #EBE3D7 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,1),
    inset 0 -4px 8px rgba(0,0,0,0.075),
    inset 0 0 0 1px rgba(255,255,255,0.55),
    0 1px 2px rgba(0,0,0,0.08),
    0 3px 0 rgba(0,0,0,0.04),
    0 8px 16px rgba(0,0,0,0.13);
}

/* ------------------------------------------------------------------
   MOTION PREFERENCE
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce){
  .vm .lg-related-card{ transition:none; }
  .vm .lg-related-card:hover,
  .vm .lg-related-card:active{ transform:none; }
}

/* ==================================================================
   2026-09-01 — CLOCK BADGES: real logo + name   ( body.vm only )

   The 12 badges around the portrait now carry the sourced manufacturer
   artwork above the make name. NOTHING about the clock geometry moves:
   badge diameter, ring radius, slot angles, portrait size, orbit line,
   gaps and hover/press physics are all untouched. Only the INSIDE of
   each badge changes from one centred label to logo-over-name.

   Logos are constrained on BOTH axes and object-fit:contain, so a wide
   mark (Ford oval, Audi rings) and a square one (Mercedes star, BMW
   roundel) sit on the same optical baseline without distortion.
   ================================================================== */

/* 2026-09-02 — LOGO ONLY, NO VISIBLE NAME.

   The badges previously stacked a ~30px logo over a 0.6rem (9.6px) name.
   Both were too small to read, and the name duplicated the logo it sat
   under. The name is now removed from SIGHT ONLY: .vmc-mark is clipped with
   the standard screen-reader technique rather than display:none, so it still
   supplies the accessible name of each badge — "Mercedes Benz", "Kia" — to
   screen readers, and the linked badges keep a real link text. Nothing is
   removed from the HTML.

   That frees the whole badge for the mark, which is now roughly twice the
   height it was and optically centred. */
.vm .vmc-btn{
  flex-direction:column;
  justify-content:center;
  gap:0;
  padding:8px;
}

/* The mark fills the badge. .vmc-logo takes the whole content box and the
   <img> is capped on BOTH axes with object-fit:contain, so a wide wordmark
   (NISSAN, INFINITI) is limited by width and a round or square mark
   (Mercedes star, BMW roundel, Audi rings) by height — they land on the same
   optical weight instead of one dwarfing the other. */
.vm .vmc-logo{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; flex-shrink:0;
}
.vm .vmc-logo img{
  display:block;
  max-height:76px; max-width:100%;
  width:auto; height:auto;
  object-fit:contain;
}

/* The make name is hidden from SIGHT ONLY — clipped with the standard
   screen-reader technique rather than display:none, so it still supplies the
   accessible name of every badge ("Mercedes Benz", "Kia", ...) and the linked
   badges keep real link text. Nothing was removed from the HTML. */
.vm .vmc-mark{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* With the names gone, the red type no longer signals which makes have a
   dedicated page. That cue moves to the badge itself: a red ring, so the
   legend's "Makes in red have a dedicated repair page" still reads true. */
.vm a.vmc-btn{
  border-color:var(--red);
  box-shadow:
    inset 0 0 0 1px var(--red),
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -3px 6px rgba(0,0,0,0.05),
    0 1px 2px rgba(0,0,0,0.07),
    0 7px 16px rgba(0,0,0,0.11);
}
.vm a.vmc-btn:hover,
.vm a.vmc-btn:focus-visible{
  box-shadow:
    inset 0 0 0 1px var(--red),
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -3px 6px rgba(0,0,0,0.05),
    0 2px 4px rgba(0,0,0,0.08),
    0 16px 30px rgba(0,0,0,0.19);
}

/* ---- badge sizes step down at these widths, so the mark follows ---- */
@media (max-width: 1299px){          /* 106px badge */
  .vm .vmc-logo img{ max-height:66px; }
}
@media (max-width: 1215px){          /* 104px badge, stacked hero */
  .vm .vmc-logo img{ max-height:64px; }
}
@media (max-width: 860px){           /* 92px badge */
  .vm .vmc-btn{ padding:9px; }
  .vm .vmc-logo img{ max-height:56px; }
}
@media (max-width: 700px){           /* 92px badge, 3-col grid */
  .vm .vmc-btn{ padding:9px; }
  .vm .vmc-logo img{ max-height:56px; }
}
@media (max-width: 380px){           /* 82px badge */
  .vm .vmc-btn{ padding:8px; }
  .vm .vmc-logo img{ max-height:50px; }
}

/* ==================================================================
   2026-09-01 — REGION TILES: real logo + name   ( body.vm only )

   The 31 tiles inside the Asian / European / Domestic panels now carry
   the sourced manufacturer artwork above the make name — the same
   concept as the clock badges.

   The three outer panels are NOT touched: red / blue / green headers,
   frames, bevels, shadows, grid columns, make order and the four links
   are all exactly as approved. Only the inside of each tile changes.

   29 of 31 tiles have artwork. Genesis and Porsche carry `data-noart`
   and stay TEXT-ONLY on purpose — no placeholder, no empty box, no
   invented logo. Their name is set at the original tile size so the
   tile reads as finished rather than broken.

   Tile height grows 96 -> 118px (desktop) and 82 -> 104px (mobile).
   That is unavoidable when a tile has to hold a logo AND a name.
   ================================================================== */

.vm .vmd-tile{
  min-height:118px;
  gap:9px;
  padding:14px 8px 12px;
}

/* the logo zone — fixed height so every logo shares one baseline */
.vm .vmd-logo{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:44px; flex-shrink:0;
}
/* constrained on BOTH axes: a wide wordmark and a square emblem both fit
   without distortion */
.vm .vmd-logo img{
  display:block;
  max-height:44px; max-width:100%;
  width:auto; height:auto;
  object-fit:contain;
}

/* name becomes the secondary element under the logo */
.vm .vmd-tile .vmd-name{
  font-size:0.78rem;
  line-height:1.22;
}
/* ...except on the two tiles with no artwork yet, where the name is the
   whole tile and keeps its original weight */
.vm .vmd-tile[data-noart] .vmd-name{
  font-size:0.94rem;
  line-height:1.25;
}

/* ---------- responsive ---------- */
@media (max-width: 1100px){
  .vm .vmd-tile{ min-height:120px; }
}
@media (max-width: 560px){
  .vm .vmd-tile{ min-height:104px; gap:7px; padding:11px 6px 9px; }
  .vm .vmd-logo{ height:34px; }
  .vm .vmd-logo img{ max-height:34px; }
  .vm .vmd-tile .vmd-name{ font-size:0.7rem; }
  .vm .vmd-tile[data-noart] .vmd-name{ font-size:0.84rem; }
}
@media (max-width: 360px){
  .vm .vmd-tile{ min-height:100px; }
  .vm .vmd-logo{ height:32px; }
  .vm .vmd-logo img{ max-height:32px; }
  .vm .vmd-tile .vmd-name{ font-size:0.66rem; }
  .vm .vmd-tile[data-noart] .vmd-name{ font-size:0.78rem; }
}

.hy{
  --k-c1:#FDF8F0;
  --k-c2:#F8F0E3;
  --k-c3:#F1E6D5;
  --k-edge:#E1D3BC;
  --k-screw:#B5A88F;
  --k-ink:#141110;
  --k-body:#3B3531;
  --k-mute:#6B6157;
  --k-hair:rgba(20,17,16,0.10);
}

/* ==================================================================
   1. HERO
   ================================================================== */
.hy .kh-hero{
  background:
    radial-gradient(120% 60% at 80% 0%, rgba(242,96,12,0.06) 0%, rgba(242,96,12,0) 62%),
    linear-gradient(180deg, #FBF6EE 0%, #F7F1E7 100%);
  padding:26px 0 32px;
}
.hy .kh-hero > .wrap{ max-width:1360px; }

/* the one moulded housing on the page */
.hy .kh-housing{
  position:relative;
  padding:26px 30px 28px;
  border-radius:30px;
  border:1px solid var(--k-edge);
  background:
    radial-gradient(80% 55% at 6% 0%, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0) 58%),
    linear-gradient(158deg, var(--k-c1) 0%, var(--k-c2) 50%, var(--k-c3) 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,0.95),
    inset 0 -4px 0 rgba(0,0,0,0.06),
    inset 4px 0 0 rgba(255,255,255,0.5),
    inset -4px 0 0 rgba(0,0,0,0.04),
    0 3px 6px rgba(23,20,18,0.07),
    0 20px 44px rgba(23,20,18,0.13),
    0 44px 88px rgba(23,20,18,0.09);
}
.hy .kh-housing::before{
  content:"";
  position:absolute; inset:11px;
  border-radius:21px;
  border:2px solid rgba(242,96,12,0.52);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.7),
    0 0 18px rgba(242,96,12,0.26),
    inset 0 0 28px rgba(242,96,12,0.07);
  pointer-events:none; z-index:3;
}
.hy .kh-housing::after{
  content:"";
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 29px 29px, var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at calc(100% - 29px) 29px, var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at 29px calc(100% - 29px), var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at calc(100% - 29px) calc(100% - 29px), var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px);
  pointer-events:none; z-index:4;
}

.hy .kh-hero-grid{
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:38px; align-items:center;
  padding:14px 12px 6px 16px;
}
.hy .kh-copy{ min-width:0; }

.hy .kh-copy .breadcrumb{
  display:flex; align-items:center; flex-wrap:wrap; gap:9px;
  margin:0 0 16px;
  font-family:var(--font-sans);
  font-size:0.96rem; font-weight:700;
}
.hy .kh-copy .breadcrumb a{ color:var(--k-ink); }
.hy .kh-copy .breadcrumb a:hover{ color:var(--red); }
.hy .kh-copy .breadcrumb .sep{ color:#B5A88F; }
.hy .kh-copy .breadcrumb .current{ color:var(--red); }

.hy .kh-kicker{
  display:inline-block;
  margin:0 0 14px;
  padding:8px 17px;
  border-radius:999px;
  border:1px solid #EBD9C1;
  background:linear-gradient(178deg, #FFFFFF 0%, #FDF7EE 60%, #F7EFE3 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 1px 2px rgba(0,0,0,0.05),
    0 5px 12px rgba(0,0,0,0.07);
  font-family:var(--font-sans);
  font-size:0.84rem; font-weight:900;
  letter-spacing:0.15em; text-transform:uppercase;
  color:var(--orange);
}
.hy .kh-hero h1{
  font-family:var(--font-sans);
  font-size:clamp(2.3rem, 3.5vw, 3.25rem);
  font-weight:900; line-height:1.06;
  letter-spacing:-0.03em;
  color:var(--k-ink);
  margin:0;
  text-shadow:0 1px 0 rgba(255,255,255,0.9), 0 3px 6px rgba(23,20,18,0.10);
}
.hy .kh-hero h1 .accent{ color:var(--orange); }
/* desktop-only headline breaks (see the <br class="kh-br"> in the page) */
.hy .kh-br{ display:inline; }
.hy .kh-rule{
  width:88px; height:7px; border-radius:4px;
  margin:18px 0 18px;
  background:linear-gradient(90deg, var(--orange) 0%, var(--orange-dark) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,0.85), 0 2px 8px rgba(242,96,12,0.34);
}
.hy .kh-lede{
  font-size:1.13rem; line-height:1.68;
  color:var(--k-body); margin:0; max-width:56ch;
}
.hy .kh-lede strong{ color:var(--k-ink); font-weight:800; }

/* four compact trust facts — text only, hairline dividers, no boxes */
.hy .kh-facts{
  list-style:none; margin:24px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:0;
}
.hy .kh-facts li{
  padding:2px 16px;
  border-left:1px solid var(--k-hair);
  min-width:0;
}
.hy .kh-facts li:first-child{ border-left:0; padding-left:0; }
.hy .kh-facts strong{
  display:block;
  font-family:var(--font-sans);
  font-size:0.97rem; font-weight:900; line-height:1.24;
  letter-spacing:0.02em; text-transform:uppercase;
  color:var(--k-ink);
  /* two lines reserved so a label that wraps ("Kia Sunroof Specialists")
     does not push its own sub-line below the other three cells' */
  min-height:2.48em;
}
.hy .kh-facts span{
  display:block; margin-top:3px;
  font-size:0.92rem; font-weight:600; line-height:1.32;
  color:var(--k-mute);
}

/* ---------- hero image frame (9:16) ----------
   Was a 16-second reel until 2026-09-04. The MP4 was withdrawn (it was a
   render of the old promotional graphic and carried claim wording), so
   this is now a static image. Frame geometry is unchanged — same 248px
   width, same 9:16, same position — so the hero layout did not move. */
.hy .kh-reel{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  min-width:0;
}
.hy .kr-frame{
  position:relative;
  width:300px; max-width:100%;
  /* NO aspect-ratio: the frame takes the artwork's own shape so the whole
     graphic is visible. Adding one back would crop it. */
  border-radius:20px;
  overflow:hidden;
  background:#F4EDE2;
  border:1px solid var(--k-edge);
  line-height:0;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.5),
    0 2px 4px rgba(0,0,0,0.10),
    0 6px 0 rgba(0,0,0,0.04),
    0 18px 36px rgba(0,0,0,0.20),
    0 40px 74px rgba(0,0,0,0.14);
}
/* height:auto + no object-fit = the complete graphic, never cropped,
   never stretched, at its native 2:3 proportions. */
.hy .kr-frame img{
  display:block;
  width:100%; height:auto;
}
.hy .kr-cap{
  margin:0; text-align:center;
  font-family:var(--font-sans);
  font-size:0.86rem; font-weight:700;
  letter-spacing:0.01em;
  color:var(--k-mute);
  max-width:26ch;
}

/* ==================================================================
   SECTION SHELL
   Third pass, 2026-09-04. The hero housing above is now the ONLY
   moulded surface on the page. Everything below it is typography,
   whitespace, hairlines and photographs — no cards, tiles, badges or
   consoles. If a future change wants to add a box here, it needs a
   reason beyond filling space.
   ================================================================== */
.hy .kh-section{ padding:52px 0; }
.hy .kh-section.alt{
  background:linear-gradient(180deg, #FBF6EE 0%, #F6F0E6 100%);
}
.hy .kh-h2{
  /* 38ch keeps "Kia Sunroof Repair — Quick Questions" on one desktop
     line; text-wrap:balance evens out the ones that must wrap. */
  max-width:38ch; margin:0 auto 30px;
  text-wrap:balance;
  text-align:center;
  font-family:var(--font-sans);
  font-size:clamp(1.6rem, 2.5vw, 2.1rem);
  font-weight:900; line-height:1.14;
  letter-spacing:-0.022em; text-transform:uppercase;
  color:var(--k-ink);
}
.hy .kh-h2 .accent{ color:var(--orange); }

/* shared body paragraph */
.hy .ka-copy{
  max-width:66ch; margin:0 auto;
  text-align:center;
  font-size:1.15rem; line-height:1.75;
  color:var(--k-body);
}

/* ==================================================================
   2. HAVING ONE OF THESE KIA SUNROOF PROBLEMS?
   A plain list. Small orange glyph, label, hairline. No boxes.
   ================================================================== */
.hy .kp-list{
  list-style:none; margin:0 auto; padding:0;
  max-width:1000px;
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:48px; row-gap:0;
}
.hy .kp-list li{
  display:flex; align-items:center; gap:15px;
  padding:19px 2px;
  border-top:1px solid var(--k-hair);
  min-width:0;
}
.hy .kp-list li:nth-child(-n+2){ border-top:0; }
.hy .kp-list li svg{
  width:26px; height:26px; flex-shrink:0;
  color:var(--orange);
}
.hy .kp-list span{
  font-family:var(--font-sans);
  font-size:1.14rem; font-weight:800; line-height:1.3;
  letter-spacing:-0.012em;
  color:var(--k-ink);
}

/* ==================================================================
   4. REAL KIA EXPERIENCE
   The photographs are the proof, so they carry a hairline and nothing
   else — no frame, no shadow stack, no caption plate.
   ================================================================== */
.hy .ke-strip{
  max-width:1000px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:20px;
}
.hy .ke-strip figure{ margin:0; min-width:0; }
.hy .ke-strip img{
  display:block;
  width:100%; height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  border-radius:10px;
  border:1px solid var(--k-edge);
  background:#EDE5D8;
}
.hy .ke-strip figcaption{
  margin-top:11px; text-align:center;
  font-family:var(--font-sans);
  font-size:0.92rem; font-weight:800; line-height:1.3;
  color:var(--k-ink);
}

/* ==================================================================
   5. WHAT SHOULD I DO? — plain typography, no panel
   No Call/Text control here by design; it lives in the shared header
   and the shared footer only.
   ================================================================== */
.hy .kl-where{
  margin:34px auto 0;
  max-width:66ch;
  text-align:center;
}
.hy .kl-name{
  margin:0 0 12px;
  font-family:var(--font-sans);
  font-size:1.06rem; font-weight:900; line-height:1.35;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--k-ink);
}
.hy .kl-addr{
  margin:0 0 10px;
  font-family:var(--font-sans);
  font-size:1.35rem; font-weight:900; line-height:1.36;
  letter-spacing:-0.015em;
  color:var(--k-ink);
}
.hy .kl-hours{
  margin:14px 0 0;
  font-size:1.08rem; line-height:1.55;
  color:var(--k-body);
}

/* ==================================================================
   6. QUICK QUESTIONS
   The shared accordion (.faq-list / .faq-item / .faq-question /
   .faq-answer — base styles in pages.css, behaviour from script.js),
   flattened to hairline rows. Only the surface and the type size
   change here, because pages.css shrinks the shared question and
   answer below 768px.
   ================================================================== */
.hy .hy-faq{
  max-width:820px;
  gap:0;
  margin:0 auto;
}
.hy .hy-faq .faq-item{
  border:0;
  border-top:1px solid var(--k-hair);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transition:none;
}
.hy .hy-faq .faq-item:first-child{ border-top:0; }
.hy .hy-faq .faq-item:hover{ transform:none; box-shadow:none; }
.hy .hy-faq .faq-question{
  padding:22px 4px;
  font-size:1.1rem;
  font-weight:800;
  line-height:1.4;
  letter-spacing:-0.005em;
  color:var(--k-ink);
  text-transform:none;
}
.hy .hy-faq .faq-question:hover{ color:var(--orange); }
.hy .hy-faq .faq-question:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:-3px;
}
.hy .hy-faq .faq-question .faq-icon{
  width:26px; height:26px;
  border:0;
  background:transparent;
  box-shadow:none;
  color:var(--orange);
}
.hy .hy-faq .faq-question .faq-icon svg{ width:19px; height:19px; }
.hy .hy-faq .faq-item.is-open .faq-question{ color:var(--orange); }
.hy .hy-faq .faq-answer-inner{
  padding:0 4px 22px;
  font-size:1.06rem;
  line-height:1.74;
  color:var(--k-body);
  max-width:62ch;
}
.hy .hy-faq .faq-answer-inner p{ margin:0; }
/* the shared rule caps an open answer at 400px; at this type size the
   longest answer needs a little more or it clips mid-sentence */
.hy .hy-faq .faq-item.is-open .faq-answer{ max-height:420px; }
/* ==================================================================
   RESPONSIVE — mobile is the priority, so the reel moves directly
   under the hero copy and the type steps down slowly.
   ================================================================== */
@media (max-width: 1180px){
  .hy .kh-hero-grid{ gap:28px; }
  .hy .kr-frame{ width:280px; }
  /* the left column is too narrow for four facts across here */
  .hy .kh-facts{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px 0; }
  .hy .kh-facts li{ padding:0 16px; }
  .hy .kh-facts li:nth-child(odd){ border-left:0; padding-left:0; }
  .hy .kp-list{ column-gap:34px; }
}
@media (max-width: 900px){
  /* stack: copy first, reel directly below it */
  .hy .kh-hero-grid{ grid-template-columns:1fr; gap:26px; padding:12px 8px 4px; }
  .hy .kr-frame{ width:320px; }
  .hy .kh-br{ display:none; }
  .hy .ke-strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
}
@media (max-width: 768px){
  .hy .kh-hero{ padding:18px 0 24px; }
  .hy .kh-housing{ padding:20px 18px 22px; border-radius:24px; }
  .hy .kh-housing::before{ inset:9px; border-radius:17px; }
  .hy .kh-housing::after{
    background-image:
      radial-gradient(circle at 22px 22px, var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at calc(100% - 22px) 22px, var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at 22px calc(100% - 22px), var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at calc(100% - 22px) calc(100% - 22px), var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px);
  }
  .hy .kh-lede{ font-size:1.08rem; }
  .hy .kh-facts li{ padding:0 14px; }
  .hy .kh-section{ padding:38px 0; }
  .hy .kh-h2{ margin-bottom:24px; }
  .hy .ka-copy{ font-size:1.08rem; }
  .hy .kl-where{ margin-top:28px; }
  .hy .kl-addr{ font-size:1.24rem; }
  /* pages.css drops these to 0.92rem / 0.95rem here — re-assert */
  .hy .hy-faq .faq-question{ padding:19px 2px; font-size:1.04rem; }
  .hy .hy-faq .faq-answer-inner{ padding:0 2px 19px; font-size:1.02rem; }
  .hy .hy-faq .faq-item.is-open .faq-answer{ max-height:520px; }
}
@media (max-width: 620px){
  /* one problem per line — the fastest thing to scan on a phone */
  .hy .kp-list{ grid-template-columns:1fr; }
  .hy .kp-list li{ padding:15px 0; border-top:1px solid var(--k-hair); }
  .hy .kp-list li:first-child{ border-top:0; }
}
@media (max-width: 430px){
  .hy .kh-housing{ padding:17px 14px 19px; }
  .hy .kh-hero h1{ font-size:2rem; }
  .hy .kh-lede{ font-size:1.03rem; }
  .hy .kr-frame{ width:min(300px, 80vw); }
  .hy .kp-list span{ font-size:1.08rem; }
  .hy .ke-strip{ gap:13px; }
  .hy .ke-strip figcaption{ font-size:0.87rem; margin-top:8px; }
  .hy .ka-copy{ font-size:1.05rem; }
  .hy .kl-addr{ font-size:1.16rem; }
  .hy .kl-hours{ font-size:1.02rem; }
  .hy .hy-faq .faq-question{ padding:17px 2px; font-size:1.01rem; gap:11px; }
  .hy .hy-faq .faq-answer-inner{ padding:0 2px 17px; font-size:1rem; }
  .hy .hy-faq .faq-item.is-open .faq-answer{ max-height:640px; }
}
@media (max-width: 360px){
  .hy .kh-hero h1{ font-size:1.82rem; }
  .hy .kh-facts{ grid-template-columns:1fr; gap:13px; }
  .hy .kh-facts li{ border-left:0; padding:0; }
}

/* ==================================================================
   2026-09-04 — HYUNDAI LANDING PAGE                   ( body.hy )

   Replaces the 2026-09-01 article-style block that lived here. That
   page was never deployed and its markup is gone, so every rule it
   carried (.hy-hero-head, .hy-badge, .hy-models, .hy-part-note,
   .hy-systems …) went with it.

   Built on the FROZEN Kia stress-call system. The component rules
   above (.kh-hero, .kh-housing, .kh-facts, .kr-frame, .kh-h2,
   .kp-list, .ka-copy, .hy-faq, .kl-where …) are a COPY of the Kia
   block further down this file, with the selector prefix rewritten
   from `.kia` to `.hy`. They are deliberately copied, not shared:
   the Kia page is frozen and deployed, so Hyundai must never be able
   to change it. Editing one page's block does not touch the other.

   Below are the Hyundai-only differences and the two components Kia
   does not have (.hy-steps, .hy-services).

   Scoped entirely to `body.hy`, which exists on
   hyundai-sunroof-repair.html and nowhere else.
   ================================================================== */

/* ---------- hero frame: landscape artwork, so wider than Kia's ----------
   1374x1145 (1.2:1). NO aspect-ratio and height:auto, exactly as on the
   Kia page, so the complete graphic is always visible. Never add
   aspect-ratio or object-fit:cover here — either one crops it. */
.hy .kr-frame{ width:460px; }

/* the closing section gets the page-end breathing room */
.hy .hy-close{ padding-bottom:54px; }

/* ---------- 4. WHAT HAPPENS WHEN YOU COME IN ---------- */
.hy .hy-steps{
  list-style:none; margin:0 auto; padding:0;
  max-width:860px;
  counter-reset:none;
}
.hy .hy-steps li{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  column-gap:18px;
  padding:20px 2px;
  border-top:1px solid var(--k-hair);
  align-items:start;
}
.hy .hy-steps li:first-child{ border-top:0; }
.hy .hy-num{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; flex-shrink:0;
  border-radius:50%;
  background:linear-gradient(168deg, #FF7A24 0%, var(--orange) 45%, var(--orange-dark) 100%);
  color:#fff;
  font-family:var(--font-sans);
  font-size:0.98rem; font-weight:900; line-height:1;
  box-shadow:0 2px 6px rgba(242,96,12,0.32);
}
.hy .hy-steps strong{
  display:block;
  font-family:var(--font-sans);
  font-size:1.1rem; font-weight:900; line-height:1.3;
  letter-spacing:-0.012em;
  color:var(--k-ink);
}
.hy .hy-steps span:not(.hy-num){
  display:block; margin-top:5px;
  font-size:1.02rem; line-height:1.62;
  color:var(--k-body);
}

/* ---------- 5. WHAT WE REPAIR — plain two-column checklist ---------- */
.hy .hy-services{
  list-style:none; margin:0 auto; padding:0;
  max-width:940px;
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  column-gap:44px; row-gap:0;
}
.hy .hy-services li{
  position:relative;
  padding:17px 2px 17px 32px;
  border-top:1px solid var(--k-hair);
  font-family:var(--font-sans);
  font-size:1.08rem; font-weight:800; line-height:1.34;
  letter-spacing:-0.01em;
  color:var(--k-ink);
  min-width:0;
}
.hy .hy-services li:nth-child(-n+2){ border-top:0; }
/* orange tick drawn in CSS — no extra markup, no icon file */
.hy .hy-services li::before{
  content:"";
  position:absolute; left:4px; top:calc(50% - 7px);
  width:8px; height:14px;
  border:solid var(--orange);
  border-width:0 2.6px 2.6px 0;
  transform:rotate(42deg);
}

/* ==================================================================
   RESPONSIVE — same breakpoints as the Kia page.
   ================================================================== */
@media (max-width: 1180px){
  .hy .kr-frame{ width:400px; }
}
@media (max-width: 1024px){
  /* the landscape frame crowds the copy sooner than Kia's portrait one,
     so this page stacks a breakpoint earlier */
  .hy .kh-hero-grid{ grid-template-columns:1fr; gap:26px; padding:12px 8px 4px; }
  .hy .kh-br{ display:none; }
  .hy .kr-frame{ width:min(560px, 100%); }
}
@media (max-width: 768px){
  .hy .hy-services{ column-gap:30px; }
}
@media (max-width: 620px){
  .hy .hy-services{ grid-template-columns:1fr; }
  .hy .hy-services li{ border-top:1px solid var(--k-hair); }
  .hy .hy-services li:first-child{ border-top:0; }
  .hy .hy-steps li{ padding:16px 0; column-gap:14px; }
}
@media (max-width: 430px){
  .hy .hy-services li{ font-size:1.03rem; padding-left:29px; }
  .hy .hy-steps strong{ font-size:1.05rem; }
  .hy .hy-num{ width:30px; height:30px; font-size:0.92rem; }
}
/* ==================================================================
   2026-09-04 — CADILLAC LANDING PAGE                  ( body.cad )

   /cadillac-sunroof-repair/. Built on the FROZEN Kia/Hyundai
   stress-call system.

   The component rules below (.kh-hero, .kh-housing, .kh-facts,
   .kr-frame, .kh-h2, .kp-list, .ka-copy, .cad-faq, .kl-where,
   .cad-steps, .cad-services …) are a COPY of the Hyundai block above,
   with the selector prefix rewritten from `.hy` to `.cad`.

   They are deliberately COPIED, not shared. Kia and Hyundai are both
   approved and frozen, so Cadillac must not be able to reach either
   one. Three near-identical blocks is the intended cost of that
   isolation — never "refactor" them into a shared selector list.

   Scoped entirely to `body.cad`, which exists on
   cadillac-sunroof-repair.html and nowhere else.
   ================================================================== */

.cad{
  --k-c1:#FDF8F0;
  --k-c2:#F8F0E3;
  --k-c3:#F1E6D5;
  --k-edge:#E1D3BC;
  --k-screw:#B5A88F;
  --k-ink:#141110;
  --k-body:#3B3531;
  --k-mute:#6B6157;
  --k-hair:rgba(20,17,16,0.10);
}

/* ==================================================================
   1. HERO
   ================================================================== */
.cad .kh-hero{
  background:
    radial-gradient(120% 60% at 80% 0%, rgba(242,96,12,0.06) 0%, rgba(242,96,12,0) 62%),
    linear-gradient(180deg, #FBF6EE 0%, #F7F1E7 100%);
  padding:26px 0 32px;
}
.cad .kh-hero > .wrap{ max-width:1360px; }

/* the one moulded housing on the page */
.cad .kh-housing{
  position:relative;
  padding:26px 30px 28px;
  border-radius:30px;
  border:1px solid var(--k-edge);
  background:
    radial-gradient(80% 55% at 6% 0%, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0) 58%),
    linear-gradient(158deg, var(--k-c1) 0%, var(--k-c2) 50%, var(--k-c3) 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,0.95),
    inset 0 -4px 0 rgba(0,0,0,0.06),
    inset 4px 0 0 rgba(255,255,255,0.5),
    inset -4px 0 0 rgba(0,0,0,0.04),
    0 3px 6px rgba(23,20,18,0.07),
    0 20px 44px rgba(23,20,18,0.13),
    0 44px 88px rgba(23,20,18,0.09);
}
.cad .kh-housing::before{
  content:"";
  position:absolute; inset:11px;
  border-radius:21px;
  border:2px solid rgba(242,96,12,0.52);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.7),
    0 0 18px rgba(242,96,12,0.26),
    inset 0 0 28px rgba(242,96,12,0.07);
  pointer-events:none; z-index:3;
}
.cad .kh-housing::after{
  content:"";
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 29px 29px, var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at calc(100% - 29px) 29px, var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at 29px calc(100% - 29px), var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at calc(100% - 29px) calc(100% - 29px), var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px);
  pointer-events:none; z-index:4;
}

.cad .kh-hero-grid{
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:38px; align-items:center;
  padding:14px 12px 6px 16px;
}
.cad .kh-copy{ min-width:0; }

.cad .kh-copy .breadcrumb{
  display:flex; align-items:center; flex-wrap:wrap; gap:9px;
  margin:0 0 16px;
  font-family:var(--font-sans);
  font-size:0.96rem; font-weight:700;
}
.cad .kh-copy .breadcrumb a{ color:var(--k-ink); }
.cad .kh-copy .breadcrumb a:hover{ color:var(--red); }
.cad .kh-copy .breadcrumb .sep{ color:#B5A88F; }
.cad .kh-copy .breadcrumb .current{ color:var(--red); }

.cad .kh-kicker{
  display:inline-block;
  margin:0 0 14px;
  padding:8px 17px;
  border-radius:999px;
  border:1px solid #EBD9C1;
  background:linear-gradient(178deg, #FFFFFF 0%, #FDF7EE 60%, #F7EFE3 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 1px 2px rgba(0,0,0,0.05),
    0 5px 12px rgba(0,0,0,0.07);
  font-family:var(--font-sans);
  font-size:0.84rem; font-weight:900;
  letter-spacing:0.15em; text-transform:uppercase;
  color:var(--orange);
}
.cad .kh-hero h1{
  font-family:var(--font-sans);
  font-size:clamp(2.3rem, 3.5vw, 3.25rem);
  font-weight:900; line-height:1.06;
  letter-spacing:-0.03em;
  color:var(--k-ink);
  margin:0;
  text-shadow:0 1px 0 rgba(255,255,255,0.9), 0 3px 6px rgba(23,20,18,0.10);
}
.cad .kh-hero h1 .accent{ color:var(--orange); }
/* desktop-only headline breaks (see the <br class="kh-br"> in the page) */
.cad .kh-br{ display:inline; }
.cad .kh-rule{
  width:88px; height:7px; border-radius:4px;
  margin:18px 0 18px;
  background:linear-gradient(90deg, var(--orange) 0%, var(--orange-dark) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,0.85), 0 2px 8px rgba(242,96,12,0.34);
}
.cad .kh-lede{
  font-size:1.13rem; line-height:1.68;
  color:var(--k-body); margin:0; max-width:56ch;
}
.cad .kh-lede strong{ color:var(--k-ink); font-weight:800; }

/* four compact trust facts — text only, hairline dividers, no boxes */
.cad .kh-facts{
  list-style:none; margin:24px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:0;
}
.cad .kh-facts li{
  padding:2px 16px;
  border-left:1px solid var(--k-hair);
  min-width:0;
}
.cad .kh-facts li:first-child{ border-left:0; padding-left:0; }
.cad .kh-facts strong{
  display:block;
  font-family:var(--font-sans);
  font-size:0.97rem; font-weight:900; line-height:1.24;
  letter-spacing:0.02em; text-transform:uppercase;
  color:var(--k-ink);
  /* two lines reserved so a label that wraps ("Kia Sunroof Specialists")
     does not push its own sub-line below the other three cells' */
  min-height:2.48em;
}
.cad .kh-facts span{
  display:block; margin-top:3px;
  font-size:0.92rem; font-weight:600; line-height:1.32;
  color:var(--k-mute);
}

/* ---------- hero image frame (9:16) ----------
   Was a 16-second reel until 2026-09-04. The MP4 was withdrawn (it was a
   render of the old promotional graphic and carried claim wording), so
   this is now a static image. Frame geometry is unchanged — same 248px
   width, same 9:16, same position — so the hero layout did not move. */
.cad .kh-reel{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  min-width:0;
}
.cad .kr-frame{
  position:relative;
  width:300px; max-width:100%;
  /* NO aspect-ratio: the frame takes the artwork's own shape so the whole
     graphic is visible. Adding one back would crop it. */
  border-radius:20px;
  overflow:hidden;
  background:#F4EDE2;
  border:1px solid var(--k-edge);
  line-height:0;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.5),
    0 2px 4px rgba(0,0,0,0.10),
    0 6px 0 rgba(0,0,0,0.04),
    0 18px 36px rgba(0,0,0,0.20),
    0 40px 74px rgba(0,0,0,0.14);
}
/* height:auto + no object-fit = the complete graphic, never cropped,
   never stretched, at its native 2:3 proportions. */
.cad .kr-frame img{
  display:block;
  width:100%; height:auto;
}
.cad .kr-cap{
  margin:0; text-align:center;
  font-family:var(--font-sans);
  font-size:0.86rem; font-weight:700;
  letter-spacing:0.01em;
  color:var(--k-mute);
  max-width:26ch;
}

/* ==================================================================
   SECTION SHELL
   Third pass, 2026-09-04. The hero housing above is now the ONLY
   moulded surface on the page. Everything below it is typography,
   whitespace, hairlines and photographs — no cards, tiles, badges or
   consoles. If a future change wants to add a box here, it needs a
   reason beyond filling space.
   ================================================================== */
.cad .kh-section{ padding:52px 0; }
.cad .kh-section.alt{
  background:linear-gradient(180deg, #FBF6EE 0%, #F6F0E6 100%);
}
.cad .kh-h2{
  /* 38ch keeps "Kia Sunroof Repair — Quick Questions" on one desktop
     line; text-wrap:balance evens out the ones that must wrap. */
  max-width:38ch; margin:0 auto 30px;
  text-wrap:balance;
  text-align:center;
  font-family:var(--font-sans);
  font-size:clamp(1.6rem, 2.5vw, 2.1rem);
  font-weight:900; line-height:1.14;
  letter-spacing:-0.022em; text-transform:uppercase;
  color:var(--k-ink);
}
.cad .kh-h2 .accent{ color:var(--orange); }

/* shared body paragraph */
.cad .ka-copy{
  max-width:66ch; margin:0 auto;
  text-align:center;
  font-size:1.15rem; line-height:1.75;
  color:var(--k-body);
}

/* ==================================================================
   2. HAVING ONE OF THESE KIA SUNROOF PROBLEMS?
   A plain list. Small orange glyph, label, hairline. No boxes.
   ================================================================== */
.cad .kp-list{
  list-style:none; margin:0 auto; padding:0;
  max-width:1000px;
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:48px; row-gap:0;
}
.cad .kp-list li{
  display:flex; align-items:center; gap:15px;
  padding:19px 2px;
  border-top:1px solid var(--k-hair);
  min-width:0;
}
.cad .kp-list li:nth-child(-n+2){ border-top:0; }
.cad .kp-list li svg{
  width:26px; height:26px; flex-shrink:0;
  color:var(--orange);
}
.cad .kp-list span{
  font-family:var(--font-sans);
  font-size:1.14rem; font-weight:800; line-height:1.3;
  letter-spacing:-0.012em;
  color:var(--k-ink);
}

/* ==================================================================
   4. REAL KIA EXPERIENCE
   The photographs are the proof, so they carry a hairline and nothing
   else — no frame, no shadow stack, no caption plate.
   ================================================================== */
.cad .ke-strip{
  max-width:1000px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:20px;
}
.cad .ke-strip figure{ margin:0; min-width:0; }
.cad .ke-strip img{
  display:block;
  width:100%; height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  border-radius:10px;
  border:1px solid var(--k-edge);
  background:#EDE5D8;
}
.cad .ke-strip figcaption{
  margin-top:11px; text-align:center;
  font-family:var(--font-sans);
  font-size:0.92rem; font-weight:800; line-height:1.3;
  color:var(--k-ink);
}

/* ==================================================================
   5. WHAT SHOULD I DO? — plain typography, no panel
   No Call/Text control here by design; it lives in the shared header
   and the shared footer only.
   ================================================================== */
.cad .kl-where{
  margin:34px auto 0;
  max-width:66ch;
  text-align:center;
}
.cad .kl-name{
  margin:0 0 12px;
  font-family:var(--font-sans);
  font-size:1.06rem; font-weight:900; line-height:1.35;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--k-ink);
}
.cad .kl-addr{
  margin:0 0 10px;
  font-family:var(--font-sans);
  font-size:1.35rem; font-weight:900; line-height:1.36;
  letter-spacing:-0.015em;
  color:var(--k-ink);
}
.cad .kl-hours{
  margin:14px 0 0;
  font-size:1.08rem; line-height:1.55;
  color:var(--k-body);
}

/* ==================================================================
   6. QUICK QUESTIONS
   The shared accordion (.faq-list / .faq-item / .faq-question /
   .faq-answer — base styles in pages.css, behaviour from script.js),
   flattened to hairline rows. Only the surface and the type size
   change here, because pages.css shrinks the shared question and
   answer below 768px.
   ================================================================== */
.cad .cad-faq{
  max-width:820px;
  gap:0;
  margin:0 auto;
}
.cad .cad-faq .faq-item{
  border:0;
  border-top:1px solid var(--k-hair);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transition:none;
}
.cad .cad-faq .faq-item:first-child{ border-top:0; }
.cad .cad-faq .faq-item:hover{ transform:none; box-shadow:none; }
.cad .cad-faq .faq-question{
  padding:22px 4px;
  font-size:1.1rem;
  font-weight:800;
  line-height:1.4;
  letter-spacing:-0.005em;
  color:var(--k-ink);
  text-transform:none;
}
.cad .cad-faq .faq-question:hover{ color:var(--orange); }
.cad .cad-faq .faq-question:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:-3px;
}
.cad .cad-faq .faq-question .faq-icon{
  width:26px; height:26px;
  border:0;
  background:transparent;
  box-shadow:none;
  color:var(--orange);
}
.cad .cad-faq .faq-question .faq-icon svg{ width:19px; height:19px; }
.cad .cad-faq .faq-item.is-open .faq-question{ color:var(--orange); }
.cad .cad-faq .faq-answer-inner{
  padding:0 4px 22px;
  font-size:1.06rem;
  line-height:1.74;
  color:var(--k-body);
  max-width:62ch;
}
.cad .cad-faq .faq-answer-inner p{ margin:0; }
/* the shared rule caps an open answer at 400px; at this type size the
   longest answer needs a little more or it clips mid-sentence */
.cad .cad-faq .faq-item.is-open .faq-answer{ max-height:420px; }
/* ==================================================================
   RESPONSIVE — mobile is the priority, so the reel moves directly
   under the hero copy and the type steps down slowly.
   ================================================================== */
@media (max-width: 1180px){
  .cad .kh-hero-grid{ gap:28px; }
  .cad .kr-frame{ width:280px; }
  /* the left column is too narrow for four facts across here */
  .cad .kh-facts{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px 0; }
  .cad .kh-facts li{ padding:0 16px; }
  .cad .kh-facts li:nth-child(odd){ border-left:0; padding-left:0; }
  .cad .kp-list{ column-gap:34px; }
}
@media (max-width: 900px){
  /* stack: copy first, reel directly below it */
  .cad .kh-hero-grid{ grid-template-columns:1fr; gap:26px; padding:12px 8px 4px; }
  .cad .kr-frame{ width:320px; }
  .cad .kh-br{ display:none; }
  .cad .ke-strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
}
@media (max-width: 768px){
  .cad .kh-hero{ padding:18px 0 24px; }
  .cad .kh-housing{ padding:20px 18px 22px; border-radius:24px; }
  .cad .kh-housing::before{ inset:9px; border-radius:17px; }
  .cad .kh-housing::after{
    background-image:
      radial-gradient(circle at 22px 22px, var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at calc(100% - 22px) 22px, var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at 22px calc(100% - 22px), var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at calc(100% - 22px) calc(100% - 22px), var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px);
  }
  .cad .kh-lede{ font-size:1.08rem; }
  .cad .kh-facts li{ padding:0 14px; }
  .cad .kh-section{ padding:38px 0; }
  .cad .kh-h2{ margin-bottom:24px; }
  .cad .ka-copy{ font-size:1.08rem; }
  .cad .kl-where{ margin-top:28px; }
  .cad .kl-addr{ font-size:1.24rem; }
  /* pages.css drops these to 0.92rem / 0.95rem here — re-assert */
  .cad .cad-faq .faq-question{ padding:19px 2px; font-size:1.04rem; }
  .cad .cad-faq .faq-answer-inner{ padding:0 2px 19px; font-size:1.02rem; }
  .cad .cad-faq .faq-item.is-open .faq-answer{ max-height:520px; }
}
@media (max-width: 620px){
  /* one problem per line — the fastest thing to scan on a phone */
  .cad .kp-list{ grid-template-columns:1fr; }
  .cad .kp-list li{ padding:15px 0; border-top:1px solid var(--k-hair); }
  .cad .kp-list li:first-child{ border-top:0; }
}
@media (max-width: 430px){
  .cad .kh-housing{ padding:17px 14px 19px; }
  .cad .kh-hero h1{ font-size:2rem; }
  .cad .kh-lede{ font-size:1.03rem; }
  .cad .kr-frame{ width:min(300px, 80vw); }
  .cad .kp-list span{ font-size:1.08rem; }
  .cad .ke-strip{ gap:13px; }
  .cad .ke-strip figcaption{ font-size:0.87rem; margin-top:8px; }
  .cad .ka-copy{ font-size:1.05rem; }
  .cad .kl-addr{ font-size:1.16rem; }
  .cad .kl-hours{ font-size:1.02rem; }
  .cad .cad-faq .faq-question{ padding:17px 2px; font-size:1.01rem; gap:11px; }
  .cad .cad-faq .faq-answer-inner{ padding:0 2px 17px; font-size:1rem; }
  .cad .cad-faq .faq-item.is-open .faq-answer{ max-height:640px; }
}
@media (max-width: 360px){
  .cad .kh-hero h1{ font-size:1.82rem; }
  .cad .kh-facts{ grid-template-columns:1fr; gap:13px; }
  .cad .kh-facts li{ border-left:0; padding:0; }
}

/* ==================================================================
   2026-09-04 — HYUNDAI LANDING PAGE                   ( body.cad )

   Replaces the 2026-09-01 article-style block that lived here. That
   page was never deployed and its markup is gone, so every rule it
   carried (.cad-hero-head, .cad-badge, .cad-models, .cad-part-note,
   .cad-systems …) went with it.

   Built on the FROZEN Kia stress-call system. The component rules
   above (.kh-hero, .kh-housing, .kh-facts, .kr-frame, .kh-h2,
   .kp-list, .ka-copy, .cad-faq, .kl-where …) are a COPY of the Kia
   block further down this file, with the selector prefix rewritten
   from `.kia` to `.cad`. They are deliberately copied, not shared:
   the Kia page is frozen and deployed, so Hyundai must never be able
   to change it. Editing one page's block does not touch the other.

   Below are the Hyundai-only differences and the two components Kia
   does not have (.cad-steps, .cad-services).

   Scoped entirely to `body.cad`, which exists on
   hyundai-sunroof-repair.html and nowhere else.
   ================================================================== */

/* ---------- hero frame: landscape artwork, so wider than Kia's ----------
   1374x1145 (1.2:1). NO aspect-ratio and height:auto, exactly as on the
   Kia page, so the complete graphic is always visible. Never add
   aspect-ratio or object-fit:cover here — either one crops it. */
.cad .kr-frame{ width:460px; }

/* the closing section gets the page-end breathing room */
.cad .cad-close{ padding-bottom:54px; }

/* ---------- 4. WHAT HAPPENS WHEN YOU COME IN ---------- */
.cad .cad-steps{
  list-style:none; margin:0 auto; padding:0;
  max-width:860px;
  counter-reset:none;
}
.cad .cad-steps li{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  column-gap:18px;
  padding:20px 2px;
  border-top:1px solid var(--k-hair);
  align-items:start;
}
.cad .cad-steps li:first-child{ border-top:0; }
.cad .cad-num{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; flex-shrink:0;
  border-radius:50%;
  background:linear-gradient(168deg, #FF7A24 0%, var(--orange) 45%, var(--orange-dark) 100%);
  color:#fff;
  font-family:var(--font-sans);
  font-size:0.98rem; font-weight:900; line-height:1;
  box-shadow:0 2px 6px rgba(242,96,12,0.32);
}
.cad .cad-steps strong{
  display:block;
  font-family:var(--font-sans);
  font-size:1.1rem; font-weight:900; line-height:1.3;
  letter-spacing:-0.012em;
  color:var(--k-ink);
}
.cad .cad-steps span:not(.cad-num){
  display:block; margin-top:5px;
  font-size:1.02rem; line-height:1.62;
  color:var(--k-body);
}

/* ---------- 5. WHAT WE REPAIR — plain two-column checklist ---------- */
.cad .cad-services{
  list-style:none; margin:0 auto; padding:0;
  max-width:940px;
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  column-gap:44px; row-gap:0;
}
.cad .cad-services li{
  position:relative;
  padding:17px 2px 17px 32px;
  border-top:1px solid var(--k-hair);
  font-family:var(--font-sans);
  font-size:1.08rem; font-weight:800; line-height:1.34;
  letter-spacing:-0.01em;
  color:var(--k-ink);
  min-width:0;
}
.cad .cad-services li:nth-child(-n+2){ border-top:0; }
/* orange tick drawn in CSS — no extra markup, no icon file */
.cad .cad-services li::before{
  content:"";
  position:absolute; left:4px; top:calc(50% - 7px);
  width:8px; height:14px;
  border:solid var(--orange);
  border-width:0 2.6px 2.6px 0;
  transform:rotate(42deg);
}

/* ==================================================================
   RESPONSIVE — same breakpoints as the Kia page.
   ================================================================== */
@media (max-width: 1180px){
  .cad .kr-frame{ width:400px; }
}
@media (max-width: 1024px){
  /* the landscape frame crowds the copy sooner than Kia's portrait one,
     so this page stacks a breakpoint earlier */
  .cad .kh-hero-grid{ grid-template-columns:1fr; gap:26px; padding:12px 8px 4px; }
  .cad .kh-br{ display:none; }
  .cad .kr-frame{ width:min(560px, 100%); }
}
@media (max-width: 768px){
  .cad .cad-services{ column-gap:30px; }
}
@media (max-width: 620px){
  .cad .cad-services{ grid-template-columns:1fr; }
  .cad .cad-services li{ border-top:1px solid var(--k-hair); }
  .cad .cad-services li:first-child{ border-top:0; }
  .cad .cad-steps li{ padding:16px 0; column-gap:14px; }
}
@media (max-width: 430px){
  .cad .cad-services li{ font-size:1.03rem; padding-left:29px; }
  .cad .cad-steps strong{ font-size:1.05rem; }
  .cad .cad-num{ width:30px; height:30px; font-size:0.92rem; }
}

/* ==================================================================
   CADILLAC-ONLY DIFFERENCES
   The artwork is 1536x1024 (3:2) — wider than Hyundai's 1.2:1 and
   much wider than Kia's portrait — so the hero frame is sized for it.
   As on both frozen pages, .kr-frame carries NO aspect-ratio and the
   img runs height:auto, so the complete graphic is always visible.
   Adding aspect-ratio or object-fit:cover here would crop it.
   ================================================================== */
.cad .kr-frame{ width:540px; }

@media (max-width: 1180px){
  .cad .kr-frame{ width:440px; }
}
@media (max-width: 1024px){
  /* a 3:2 frame crowds the copy sooner than Hyundai's, so this page
     stacks at the same 1024 breakpoint and then runs full width */
  .cad .kr-frame{ width:min(640px, 100%); }
}


/* ==================================================================
   2026-09-04 — LINCOLN LANDING PAGE                   ( body.lin )

   /lincoln-sunroof-repair/. Built on the FROZEN Kia/Hyundai/Cadillac
   stress-call system.

   The component rules below are a COPY of the Cadillac block above,
   with the selector prefix rewritten from `.cad` to `.lin`.

   COPIED, NOT SHARED — on purpose. Kia, Hyundai and Cadillac are all
   approved and frozen, so Lincoln must not be able to reach any of
   them. Four near-identical blocks is the intended cost of that
   isolation; never "refactor" them into a shared selector list.

   Scoped entirely to `body.lin`, which exists on
   lincoln-sunroof-repair.html and nowhere else.
   ================================================================== */

.lin{
  --k-c1:#FDF8F0;
  --k-c2:#F8F0E3;
  --k-c3:#F1E6D5;
  --k-edge:#E1D3BC;
  --k-screw:#B5A88F;
  --k-ink:#141110;
  --k-body:#3B3531;
  --k-mute:#6B6157;
  --k-hair:rgba(20,17,16,0.10);
}

/* ==================================================================
   1. HERO
   ================================================================== */
.lin .kh-hero{
  background:
    radial-gradient(120% 60% at 80% 0%, rgba(242,96,12,0.06) 0%, rgba(242,96,12,0) 62%),
    linear-gradient(180deg, #FBF6EE 0%, #F7F1E7 100%);
  padding:26px 0 32px;
}
.lin .kh-hero > .wrap{ max-width:1360px; }

/* the one moulded housing on the page */
.lin .kh-housing{
  position:relative;
  padding:26px 30px 28px;
  border-radius:30px;
  border:1px solid var(--k-edge);
  background:
    radial-gradient(80% 55% at 6% 0%, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0) 58%),
    linear-gradient(158deg, var(--k-c1) 0%, var(--k-c2) 50%, var(--k-c3) 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,0.95),
    inset 0 -4px 0 rgba(0,0,0,0.06),
    inset 4px 0 0 rgba(255,255,255,0.5),
    inset -4px 0 0 rgba(0,0,0,0.04),
    0 3px 6px rgba(23,20,18,0.07),
    0 20px 44px rgba(23,20,18,0.13),
    0 44px 88px rgba(23,20,18,0.09);
}
.lin .kh-housing::before{
  content:"";
  position:absolute; inset:11px;
  border-radius:21px;
  border:2px solid rgba(242,96,12,0.52);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.7),
    0 0 18px rgba(242,96,12,0.26),
    inset 0 0 28px rgba(242,96,12,0.07);
  pointer-events:none; z-index:3;
}
.lin .kh-housing::after{
  content:"";
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 29px 29px, var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at calc(100% - 29px) 29px, var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at 29px calc(100% - 29px), var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at calc(100% - 29px) calc(100% - 29px), var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px);
  pointer-events:none; z-index:4;
}

.lin .kh-hero-grid{
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:38px; align-items:center;
  padding:14px 12px 6px 16px;
}
.lin .kh-copy{ min-width:0; }

.lin .kh-copy .breadcrumb{
  display:flex; align-items:center; flex-wrap:wrap; gap:9px;
  margin:0 0 16px;
  font-family:var(--font-sans);
  font-size:0.96rem; font-weight:700;
}
.lin .kh-copy .breadcrumb a{ color:var(--k-ink); }
.lin .kh-copy .breadcrumb a:hover{ color:var(--red); }
.lin .kh-copy .breadcrumb .sep{ color:#B5A88F; }
.lin .kh-copy .breadcrumb .current{ color:var(--red); }

.lin .kh-kicker{
  display:inline-block;
  margin:0 0 14px;
  padding:8px 17px;
  border-radius:999px;
  border:1px solid #EBD9C1;
  background:linear-gradient(178deg, #FFFFFF 0%, #FDF7EE 60%, #F7EFE3 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 1px 2px rgba(0,0,0,0.05),
    0 5px 12px rgba(0,0,0,0.07);
  font-family:var(--font-sans);
  font-size:0.84rem; font-weight:900;
  letter-spacing:0.15em; text-transform:uppercase;
  color:var(--orange);
}
.lin .kh-hero h1{
  font-family:var(--font-sans);
  font-size:clamp(2.3rem, 3.5vw, 3.25rem);
  font-weight:900; line-height:1.06;
  letter-spacing:-0.03em;
  color:var(--k-ink);
  margin:0;
  text-shadow:0 1px 0 rgba(255,255,255,0.9), 0 3px 6px rgba(23,20,18,0.10);
}
.lin .kh-hero h1 .accent{ color:var(--orange); }
/* desktop-only headline breaks (see the <br class="kh-br"> in the page) */
.lin .kh-br{ display:inline; }
.lin .kh-rule{
  width:88px; height:7px; border-radius:4px;
  margin:18px 0 18px;
  background:linear-gradient(90deg, var(--orange) 0%, var(--orange-dark) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,0.85), 0 2px 8px rgba(242,96,12,0.34);
}
.lin .kh-lede{
  font-size:1.13rem; line-height:1.68;
  color:var(--k-body); margin:0; max-width:56ch;
}
.lin .kh-lede strong{ color:var(--k-ink); font-weight:800; }

/* four compact trust facts — text only, hairline dividers, no boxes */
.lin .kh-facts{
  list-style:none; margin:24px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:0;
}
.lin .kh-facts li{
  padding:2px 16px;
  border-left:1px solid var(--k-hair);
  min-width:0;
}
.lin .kh-facts li:first-child{ border-left:0; padding-left:0; }
.lin .kh-facts strong{
  display:block;
  font-family:var(--font-sans);
  font-size:0.97rem; font-weight:900; line-height:1.24;
  letter-spacing:0.02em; text-transform:uppercase;
  color:var(--k-ink);
  /* two lines reserved so a label that wraps ("Kia Sunroof Specialists")
     does not push its own sub-line below the other three cells' */
  min-height:2.48em;
}
.lin .kh-facts span{
  display:block; margin-top:3px;
  font-size:0.92rem; font-weight:600; line-height:1.32;
  color:var(--k-mute);
}

/* ---------- hero image frame (9:16) ----------
   Was a 16-second reel until 2026-09-04. The MP4 was withdrawn (it was a
   render of the old promotional graphic and carried claim wording), so
   this is now a static image. Frame geometry is unchanged — same 248px
   width, same 9:16, same position — so the hero layout did not move. */
.lin .kh-reel{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  min-width:0;
}
.lin .kr-frame{
  position:relative;
  width:300px; max-width:100%;
  /* NO aspect-ratio: the frame takes the artwork's own shape so the whole
     graphic is visible. Adding one back would crop it. */
  border-radius:20px;
  overflow:hidden;
  background:#F4EDE2;
  border:1px solid var(--k-edge);
  line-height:0;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.5),
    0 2px 4px rgba(0,0,0,0.10),
    0 6px 0 rgba(0,0,0,0.04),
    0 18px 36px rgba(0,0,0,0.20),
    0 40px 74px rgba(0,0,0,0.14);
}
/* height:auto + no object-fit = the complete graphic, never cropped,
   never stretched, at its native 2:3 proportions. */
.lin .kr-frame img{
  display:block;
  width:100%; height:auto;
}
.lin .kr-cap{
  margin:0; text-align:center;
  font-family:var(--font-sans);
  font-size:0.86rem; font-weight:700;
  letter-spacing:0.01em;
  color:var(--k-mute);
  max-width:26ch;
}

/* ==================================================================
   SECTION SHELL
   Third pass, 2026-09-04. The hero housing above is now the ONLY
   moulded surface on the page. Everything below it is typography,
   whitespace, hairlines and photographs — no cards, tiles, badges or
   consoles. If a future change wants to add a box here, it needs a
   reason beyond filling space.
   ================================================================== */
.lin .kh-section{ padding:52px 0; }
.lin .kh-section.alt{
  background:linear-gradient(180deg, #FBF6EE 0%, #F6F0E6 100%);
}
.lin .kh-h2{
  /* 38ch keeps "Kia Sunroof Repair — Quick Questions" on one desktop
     line; text-wrap:balance evens out the ones that must wrap. */
  max-width:38ch; margin:0 auto 30px;
  text-wrap:balance;
  text-align:center;
  font-family:var(--font-sans);
  font-size:clamp(1.6rem, 2.5vw, 2.1rem);
  font-weight:900; line-height:1.14;
  letter-spacing:-0.022em; text-transform:uppercase;
  color:var(--k-ink);
}
.lin .kh-h2 .accent{ color:var(--orange); }

/* shared body paragraph */
.lin .ka-copy{
  max-width:66ch; margin:0 auto;
  text-align:center;
  font-size:1.15rem; line-height:1.75;
  color:var(--k-body);
}

/* ==================================================================
   2. HAVING ONE OF THESE KIA SUNROOF PROBLEMS?
   A plain list. Small orange glyph, label, hairline. No boxes.
   ================================================================== */
.lin .kp-list{
  list-style:none; margin:0 auto; padding:0;
  max-width:1000px;
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:48px; row-gap:0;
}
.lin .kp-list li{
  display:flex; align-items:center; gap:15px;
  padding:19px 2px;
  border-top:1px solid var(--k-hair);
  min-width:0;
}
.lin .kp-list li:nth-child(-n+2){ border-top:0; }
.lin .kp-list li svg{
  width:26px; height:26px; flex-shrink:0;
  color:var(--orange);
}
.lin .kp-list span{
  font-family:var(--font-sans);
  font-size:1.14rem; font-weight:800; line-height:1.3;
  letter-spacing:-0.012em;
  color:var(--k-ink);
}

/* ==================================================================
   4. REAL KIA EXPERIENCE
   The photographs are the proof, so they carry a hairline and nothing
   else — no frame, no shadow stack, no caption plate.
   ================================================================== */
.lin .ke-strip{
  max-width:1000px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:20px;
}
.lin .ke-strip figure{ margin:0; min-width:0; }
.lin .ke-strip img{
  display:block;
  width:100%; height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  border-radius:10px;
  border:1px solid var(--k-edge);
  background:#EDE5D8;
}
.lin .ke-strip figcaption{
  margin-top:11px; text-align:center;
  font-family:var(--font-sans);
  font-size:0.92rem; font-weight:800; line-height:1.3;
  color:var(--k-ink);
}

/* ==================================================================
   5. WHAT SHOULD I DO? — plain typography, no panel
   No Call/Text control here by design; it lives in the shared header
   and the shared footer only.
   ================================================================== */
.lin .kl-where{
  margin:34px auto 0;
  max-width:66ch;
  text-align:center;
}
.lin .kl-name{
  margin:0 0 12px;
  font-family:var(--font-sans);
  font-size:1.06rem; font-weight:900; line-height:1.35;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--k-ink);
}
.lin .kl-addr{
  margin:0 0 10px;
  font-family:var(--font-sans);
  font-size:1.35rem; font-weight:900; line-height:1.36;
  letter-spacing:-0.015em;
  color:var(--k-ink);
}
.lin .kl-hours{
  margin:14px 0 0;
  font-size:1.08rem; line-height:1.55;
  color:var(--k-body);
}

/* ==================================================================
   6. QUICK QUESTIONS
   The shared accordion (.faq-list / .faq-item / .faq-question /
   .faq-answer — base styles in pages.css, behaviour from script.js),
   flattened to hairline rows. Only the surface and the type size
   change here, because pages.css shrinks the shared question and
   answer below 768px.
   ================================================================== */
.lin .lin-faq{
  max-width:820px;
  gap:0;
  margin:0 auto;
}
.lin .lin-faq .faq-item{
  border:0;
  border-top:1px solid var(--k-hair);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transition:none;
}
.lin .lin-faq .faq-item:first-child{ border-top:0; }
.lin .lin-faq .faq-item:hover{ transform:none; box-shadow:none; }
.lin .lin-faq .faq-question{
  padding:22px 4px;
  font-size:1.1rem;
  font-weight:800;
  line-height:1.4;
  letter-spacing:-0.005em;
  color:var(--k-ink);
  text-transform:none;
}
.lin .lin-faq .faq-question:hover{ color:var(--orange); }
.lin .lin-faq .faq-question:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:-3px;
}
.lin .lin-faq .faq-question .faq-icon{
  width:26px; height:26px;
  border:0;
  background:transparent;
  box-shadow:none;
  color:var(--orange);
}
.lin .lin-faq .faq-question .faq-icon svg{ width:19px; height:19px; }
.lin .lin-faq .faq-item.is-open .faq-question{ color:var(--orange); }
.lin .lin-faq .faq-answer-inner{
  padding:0 4px 22px;
  font-size:1.06rem;
  line-height:1.74;
  color:var(--k-body);
  max-width:62ch;
}
.lin .lin-faq .faq-answer-inner p{ margin:0; }
/* the shared rule caps an open answer at 400px; at this type size the
   longest answer needs a little more or it clips mid-sentence */
.lin .lin-faq .faq-item.is-open .faq-answer{ max-height:420px; }
/* ==================================================================
   RESPONSIVE — mobile is the priority, so the reel moves directly
   under the hero copy and the type steps down slowly.
   ================================================================== */
@media (max-width: 1180px){
  .lin .kh-hero-grid{ gap:28px; }
  .lin .kr-frame{ width:280px; }
  /* the left column is too narrow for four facts across here */
  .lin .kh-facts{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px 0; }
  .lin .kh-facts li{ padding:0 16px; }
  .lin .kh-facts li:nth-child(odd){ border-left:0; padding-left:0; }
  .lin .kp-list{ column-gap:34px; }
}
@media (max-width: 900px){
  /* stack: copy first, reel directly below it */
  .lin .kh-hero-grid{ grid-template-columns:1fr; gap:26px; padding:12px 8px 4px; }
  .lin .kr-frame{ width:320px; }
  .lin .kh-br{ display:none; }
  .lin .ke-strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
}
@media (max-width: 768px){
  .lin .kh-hero{ padding:18px 0 24px; }
  .lin .kh-housing{ padding:20px 18px 22px; border-radius:24px; }
  .lin .kh-housing::before{ inset:9px; border-radius:17px; }
  .lin .kh-housing::after{
    background-image:
      radial-gradient(circle at 22px 22px, var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at calc(100% - 22px) 22px, var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at 22px calc(100% - 22px), var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at calc(100% - 22px) calc(100% - 22px), var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px);
  }
  .lin .kh-lede{ font-size:1.08rem; }
  .lin .kh-facts li{ padding:0 14px; }
  .lin .kh-section{ padding:38px 0; }
  .lin .kh-h2{ margin-bottom:24px; }
  .lin .ka-copy{ font-size:1.08rem; }
  .lin .kl-where{ margin-top:28px; }
  .lin .kl-addr{ font-size:1.24rem; }
  /* pages.css drops these to 0.92rem / 0.95rem here — re-assert */
  .lin .lin-faq .faq-question{ padding:19px 2px; font-size:1.04rem; }
  .lin .lin-faq .faq-answer-inner{ padding:0 2px 19px; font-size:1.02rem; }
  .lin .lin-faq .faq-item.is-open .faq-answer{ max-height:520px; }
}
@media (max-width: 620px){
  /* one problem per line — the fastest thing to scan on a phone */
  .lin .kp-list{ grid-template-columns:1fr; }
  .lin .kp-list li{ padding:15px 0; border-top:1px solid var(--k-hair); }
  .lin .kp-list li:first-child{ border-top:0; }
}
@media (max-width: 430px){
  .lin .kh-housing{ padding:17px 14px 19px; }
  .lin .kh-hero h1{ font-size:2rem; }
  .lin .kh-lede{ font-size:1.03rem; }
  .lin .kr-frame{ width:min(300px, 80vw); }
  .lin .kp-list span{ font-size:1.08rem; }
  .lin .ke-strip{ gap:13px; }
  .lin .ke-strip figcaption{ font-size:0.87rem; margin-top:8px; }
  .lin .ka-copy{ font-size:1.05rem; }
  .lin .kl-addr{ font-size:1.16rem; }
  .lin .kl-hours{ font-size:1.02rem; }
  .lin .lin-faq .faq-question{ padding:17px 2px; font-size:1.01rem; gap:11px; }
  .lin .lin-faq .faq-answer-inner{ padding:0 2px 17px; font-size:1rem; }
  .lin .lin-faq .faq-item.is-open .faq-answer{ max-height:640px; }
}
@media (max-width: 360px){
  .lin .kh-hero h1{ font-size:1.82rem; }
  .lin .kh-facts{ grid-template-columns:1fr; gap:13px; }
  .lin .kh-facts li{ border-left:0; padding:0; }
}

/* ==================================================================
   2026-09-04 — HYUNDAI LANDING PAGE                   ( body.lin )

   Replaces the 2026-09-01 article-style block that lived here. That
   page was never deployed and its markup is gone, so every rule it
   carried (.lin-hero-head, .lin-badge, .lin-models, .lin-part-note,
   .lin-systems …) went with it.

   Built on the FROZEN Kia stress-call system. The component rules
   above (.kh-hero, .kh-housing, .kh-facts, .kr-frame, .kh-h2,
   .kp-list, .ka-copy, .lin-faq, .kl-where …) are a COPY of the Kia
   block further down this file, with the selector prefix rewritten
   from `.kia` to `.lin`. They are deliberately copied, not shared:
   the Kia page is frozen and deployed, so Hyundai must never be able
   to change it. Editing one page's block does not touch the other.

   Below are the Hyundai-only differences and the two components Kia
   does not have (.lin-steps, .lin-services).

   Scoped entirely to `body.lin`, which exists on
   hyundai-sunroof-repair.html and nowhere else.
   ================================================================== */

/* ---------- hero frame: landscape artwork, so wider than Kia's ----------
   1374x1145 (1.2:1). NO aspect-ratio and height:auto, exactly as on the
   Kia page, so the complete graphic is always visible. Never add
   aspect-ratio or object-fit:cover here — either one crops it. */
.lin .kr-frame{ width:460px; }

/* the closing section gets the page-end breathing room */
.lin .lin-close{ padding-bottom:54px; }

/* ---------- 4. WHAT HAPPENS WHEN YOU COME IN ---------- */
.lin .lin-steps{
  list-style:none; margin:0 auto; padding:0;
  max-width:860px;
  counter-reset:none;
}
.lin .lin-steps li{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  column-gap:18px;
  padding:20px 2px;
  border-top:1px solid var(--k-hair);
  align-items:start;
}
.lin .lin-steps li:first-child{ border-top:0; }
.lin .lin-num{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; flex-shrink:0;
  border-radius:50%;
  background:linear-gradient(168deg, #FF7A24 0%, var(--orange) 45%, var(--orange-dark) 100%);
  color:#fff;
  font-family:var(--font-sans);
  font-size:0.98rem; font-weight:900; line-height:1;
  box-shadow:0 2px 6px rgba(242,96,12,0.32);
}
.lin .lin-steps strong{
  display:block;
  font-family:var(--font-sans);
  font-size:1.1rem; font-weight:900; line-height:1.3;
  letter-spacing:-0.012em;
  color:var(--k-ink);
}
.lin .lin-steps span:not(.lin-num){
  display:block; margin-top:5px;
  font-size:1.02rem; line-height:1.62;
  color:var(--k-body);
}

/* ---------- 5. WHAT WE REPAIR — plain two-column checklist ---------- */
.lin .lin-services{
  list-style:none; margin:0 auto; padding:0;
  max-width:940px;
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  column-gap:44px; row-gap:0;
}
.lin .lin-services li{
  position:relative;
  padding:17px 2px 17px 32px;
  border-top:1px solid var(--k-hair);
  font-family:var(--font-sans);
  font-size:1.08rem; font-weight:800; line-height:1.34;
  letter-spacing:-0.01em;
  color:var(--k-ink);
  min-width:0;
}
.lin .lin-services li:nth-child(-n+2){ border-top:0; }
/* orange tick drawn in CSS — no extra markup, no icon file */
.lin .lin-services li::before{
  content:"";
  position:absolute; left:4px; top:calc(50% - 7px);
  width:8px; height:14px;
  border:solid var(--orange);
  border-width:0 2.6px 2.6px 0;
  transform:rotate(42deg);
}

/* ==================================================================
   RESPONSIVE — same breakpoints as the Kia page.
   ================================================================== */
@media (max-width: 1180px){
  .lin .kr-frame{ width:400px; }
}
@media (max-width: 1024px){
  /* the landscape frame crowds the copy sooner than Kia's portrait one,
     so this page stacks a breakpoint earlier */
  .lin .kh-hero-grid{ grid-template-columns:1fr; gap:26px; padding:12px 8px 4px; }
  .lin .kh-br{ display:none; }
  .lin .kr-frame{ width:min(560px, 100%); }
}
@media (max-width: 768px){
  .lin .lin-services{ column-gap:30px; }
}
@media (max-width: 620px){
  .lin .lin-services{ grid-template-columns:1fr; }
  .lin .lin-services li{ border-top:1px solid var(--k-hair); }
  .lin .lin-services li:first-child{ border-top:0; }
  .lin .lin-steps li{ padding:16px 0; column-gap:14px; }
}
@media (max-width: 430px){
  .lin .lin-services li{ font-size:1.03rem; padding-left:29px; }
  .lin .lin-steps strong{ font-size:1.05rem; }
  .lin .lin-num{ width:30px; height:30px; font-size:0.92rem; }
}

/* ==================================================================
   CADILLAC-ONLY DIFFERENCES
   The artwork is 1536x1024 (3:2) — wider than Hyundai's 1.2:1 and
   much wider than Kia's portrait — so the hero frame is sized for it.
   As on both frozen pages, .kr-frame carries NO aspect-ratio and the
   img runs height:auto, so the complete graphic is always visible.
   Adding aspect-ratio or object-fit:cover here would crop it.
   ================================================================== */
.lin .kr-frame{ width:540px; }

@media (max-width: 1180px){
  .lin .kr-frame{ width:440px; }
}
@media (max-width: 1024px){
  /* a 3:2 frame crowds the copy sooner than Hyundai's, so this page
     stacks at the same 1024 breakpoint and then runs full width */
  .lin .kr-frame{ width:min(640px, 100%); }
}



/* ==================================================================
   LINCOLN-ONLY DIFFERENCES
   The artwork is 1536x764 (2:1) — the widest of the four — so the
   hero frame is sized for it. As on the three frozen pages,
   .kr-frame carries NO aspect-ratio and the img runs height:auto,
   so the complete graphic is always visible. Adding aspect-ratio or
   object-fit:cover here would crop it.
   ================================================================== */
.lin .kr-frame{ width:600px; }

@media (max-width: 1180px){
  .lin .kr-frame{ width:480px; }
}
@media (max-width: 1024px){
  .lin .kr-frame{ width:min(700px, 100%); }
}
/* ================================================================
   SUPERSEDED 2026-09-01 — these .vm-spotlight-card rules are INERT.
   No element on any page carries that class any more; the Ford
   spotlight is now a plain linked <img>. Verified: a page load makes
   ZERO requests for the old background. The two url() layers were
   changed to `none` because the file is not staged for deploy and the
   path would resolve to css/assets/ on the server, so reinstating the
   class would 404. Rendering is unaffected - the rules match nothing.
   ================================================================ */
/* ==================================================================
   2026-09-01 — FORD FEATURE: IMAGE-FIRST BANNER   ( body.vm only )

   Source: assets/ford-f150-cowboy-web.webp (1088x630, 34 KB), cropped
   from the supplied mockup composite. The 1.52 MB original PNG stays
   untouched as the master - it has text baked into its pixels.

   LAYER ROLES WERE SWAPPED so the photo can be graded without touching
   the type. Previously `filter` sat on the card, which filtered the
   heading, copy and button along with the background:

     ::before   full-bleed photo + local wash + grading  (was the accent line)
     ::after    red accent hairline, no fill             (was the recess)
     children   real HTML, z-index 1, unfiltered

   The wash is a LOCALISED ellipse anchored to the left edge behind the
   copy, not a full-width ramp. It is gone by roughly 60% of the panel,
   so the seats, dash and roof stay clearly readable across the middle
   and right.
   ================================================================== */

.vm .vm-spotlight-card{
  /* the ivory frame itself - the photo layer sits on top of this */
  background-image:
    linear-gradient(157deg, #FFFFFF 0%, #FCF9F4 34%, #F4EEE4 72%, #EAE2D5 100%);
  background-size:auto;
  background-position:center;
  filter:none;                 /* grading moved to the photo layer */
  overflow:hidden;             /* keeps the photo inside the frame radius */
}

/* ---------- the photo layer ---------- */
.vm .vm-spotlight-card::before{
  content:""; position:absolute; inset:0;
  border:0; border-radius:inherit;
  background-image:
    /* localised cream wash - an ellipse behind the copy, fading fast */
    radial-gradient(ellipse 60% 135% at 0% 50%,
      rgba(254,252,249,0.96) 0%,
      rgba(254,252,249,0.93) 26%,
      rgba(254,252,249,0.72) 44%,
      rgba(254,252,249,0.34) 58%,
      rgba(254,252,249,0.10) 72%,
      rgba(254,252,249,0.00) 86%),
    /* depth - darkens the photo without greying it */
    linear-gradient(rgba(20,17,14,0.14), rgba(20,17,14,0.14)),
    none  /* was url("assets/ford-f150-cowboy-web.webp") - see note above */;
  background-repeat:no-repeat, no-repeat, no-repeat;
  background-size:auto, auto, cover;
  background-position:center, center, center 42%;
  /* natural clarity lift - contrast and a touch of saturation only */
  filter:contrast(1.12) saturate(1.08) brightness(0.97);
  box-shadow:none;
  pointer-events:none;
  z-index:0;
}

/* ---------- the red accent hairline ---------- */
.vm .vm-spotlight-card::after{
  content:""; position:absolute; inset:13px;
  border:1.5px solid rgba(210,20,27,0.42);
  border-radius:21px;
  background:none;
  box-shadow:0 1px 0 rgba(255,255,255,0.35);
  pointer-events:none;
  z-index:0;
}

/* copy sits above both layers and is never filtered */
.vm .vm-spotlight-card > *{ position:relative; z-index:1; }
.vm .vm-spotlight-card h3,
.vm .vm-spotlight-card p{ max-width:56%; }

@media (max-width: 1100px){
  .vm .vm-spotlight-card h3,
  .vm .vm-spotlight-card p{ max-width:62%; }
}

/* ---------- stacked layouts ----------
   The copy runs full width here, so the wash has to cover more - but it
   is still a gradient that clears toward the bottom, leaving the lower
   half of the truck plainly visible rather than fogging the whole panel. */
@media (max-width: 820px){
  .vm .vm-spotlight-card::before{
    background-image:
      linear-gradient(180deg,
        rgba(254,252,249,0.94) 0%,
        rgba(254,252,249,0.90) 38%,
        rgba(254,252,249,0.66) 60%,
        rgba(254,252,249,0.34) 78%,
        rgba(254,252,249,0.16) 100%),
      linear-gradient(rgba(20,17,14,0.14), rgba(20,17,14,0.14)),
      none  /* was url("assets/ford-f150-cowboy-web.webp") - see note above */;
    background-size:auto, auto, cover;
    background-position:center, center, center 46%;
  }
  .vm .vm-spotlight-card::after{ inset:10px; border-radius:16px; }
  .vm .vm-spotlight-card h3,
  .vm .vm-spotlight-card p{ max-width:100%; }
}
@media (max-width: 700px){
  .vm .vm-spotlight-card::after{ inset:8px; border-radius:13px; }
}


/* ==================================================================
   2026-09-01 - FORD SPOTLIGHT: SUPPLIED GRAPHIC, SHOWN WHOLE
   ( body.vm only - /vehicle-makes/ )

   The Ford card is no longer a text card with a photo behind it. The
   owner-supplied graphic IS the card. It already carries its own
   heading, service list and badge in its pixels, so the panel adds
   NOTHING on top of it: no cream wash, no tint, no accent hairline,
   no heading, no paragraph, no button.

   The old .vm-spotlight-card rules above are deliberately left in
   place but are now inert - nothing on the page carries that class.
   Restoring the previous card is therefore a markup-only revert.

   Deliberate choices:
   - The anchor carries NO border-radius and NO overflow clipping, so
     not one pixel of the graphic is cut. Rounded corners would nibble
     the sky, the sand and the seat.
   - The only decoration is a drop shadow, which sits UNDER the image,
     never over it.
   - width/height attributes match the file exactly (1370x1148) so the
     browser reserves the right box and the page does not shift.
   ================================================================== */

/* 2026-09-01 - STRUCTURAL WIDTH CORRECTION.

   The 90% / 1150px version could never get wider than ~1109px, because
   .wrap caps the content column at 1280px minus 24px gutters = 1232px.
   Constraining the image harder was never going to help; the CONTAINER
   was the limit. So this Ford banner - and nothing else on the page -
   breaks out of .wrap.

   Break-out mechanics (desktop only):
     margin-left:50%        puts the box's left edge on the centre line
                            of .wrap's content box
     transform:translateX(-50%)  pulls it back by half its own width

   .wrap is itself centred in the viewport, so its centre line IS the
   viewport centre and the banner lands centred. Nothing in the chain
   clips it: .content-section is padding-only and neither html nor body
   sets overflow-x.

   At a 1440px viewport this renders ~1325px wide - inside the
   1250-1350px target. Only the BOX changes; the <img> keeps
   width:100% / height:auto, so the 1370x1148 ratio is exact and no
   pixel is cropped. */

/* Phone and tablet keep the normal page gutter - no break-out. */
.vm .vm-spotlight{
  width:100%;
  max-width:none;
  margin-left:auto;
  margin-right:auto;
}

/* Desktop: wide showcase banner, out past the text column. */
@media (min-width: 901px){
  .vm .vm-spotlight{
    width:92vw;
    max-width:1400px;
    margin-left:50%;
    margin-right:0;
    transform:translateX(-50%);
  }
}

.vm .vm-spotlight-img{
  display:block;
  line-height:0;              /* kills the inline-image descender gap */
  background:none;
  border:0;
  padding:0;
  box-shadow:
    0 2px 4px rgba(0,0,0,0.06),
    0 12px 24px rgba(0,0,0,0.10),
    0 30px 60px rgba(0,0,0,0.14);
  transition:transform 190ms cubic-bezier(0.2,0.7,0.3,1), box-shadow 190ms ease;
}

/* The complete image, proportions preserved, fluid to the container. */
.vm .vm-spotlight-img img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
}

.vm a.vm-spotlight-img:hover{
  transform:translateY(-4px);
  box-shadow:
    0 3px 6px rgba(0,0,0,0.07),
    0 20px 36px rgba(0,0,0,0.13),
    0 44px 78px rgba(0,0,0,0.17);
}
.vm a.vm-spotlight-img:active{
  transform:translateY(-1px);
  box-shadow:0 3px 8px rgba(0,0,0,0.11);
  transition-duration:90ms;
}
.vm a.vm-spotlight-img:focus-visible{ outline:3px solid var(--red); outline-offset:5px; }

@media (prefers-reduced-motion: reduce){
  .vm .vm-spotlight-img,
  .vm a.vm-spotlight-img:hover,
  .vm a.vm-spotlight-img:active{ transform:none; transition:none; }
}


/* ==================================================================
   2026-09-01 - WHAT WE REPAIR: SUPPLIED WIDE GRAPHIC   ( body.vm only )

   Replaces the six .lg-related-card tiles. Same break-out mechanics as
   the Ford banner directly above it, so the two wide graphics on this
   page line up on the same edges:

     margin-left:50%  +  transform:translateX(-50%)

   .wrap is centred in the viewport, so its centre line is the viewport
   centre and the banner lands centred. Desktop only - phone and tablet
   keep the normal page gutter.

   Only the BOX is styled. The <img> is width:100% / height:auto, so the
   1774x887 (exactly 2:1) proportions are preserved and nothing is
   cropped. No radius, no overflow clipping, no filter, no overlay.
   ================================================================== */

.vm .vm-wwr{
  width:100%;
  max-width:none;
  margin:26px auto 0;
}
.vm .vm-wwr img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
}

@media (min-width: 901px){
  .vm .vm-wwr{
    width:92vw;
    max-width:1400px;
    margin-left:50%;
    margin-right:0;
    transform:translateX(-50%);
  }
}


/* ---------- screen-reader-only heading + supporting line ----------
   Scoped: applied only where .vm-sr-only is written into the markup, which is
   the What We Repair <h2> block and its .section-sub. NOT display:none - both
   stay in the accessibility tree and in the document outline. */
.vm .vm-sr-only{
  position:absolute;
  width:1px; height:1px;
  margin:-1px; padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

/* ---------- the six transparent service hotspots ----------
   The graphic paints six panels and six "LEARN MORE" affordances, so the
   clickable areas must sit ON those panels rather than in a separate list.

   Positions are PERCENTAGES of .vm-wwr, so they scale with the image at every
   viewport and never need re-measuring. They were read off a 2.5% calibration
   grid rendered over the trimmed 1774x816 artwork.

   Row 1 spans 4.0-39.5% vertically, row 2 spans 62.0-97.0%. The gap between
   them is the centre "WHAT WE REPAIR" plate, which is deliberately NOT
   clickable - it names the section, it is not a service.

   Nothing here paints anything: background is transparent and there is no
   border until focus. The graphic is untouched. */
.vm .vm-wwr{ position:relative; }

.vm .vm-wwr-hot{
  position:absolute;
  display:block;
  background:transparent;
  border-radius:10px;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}

/* Visible keyboard focus. Only ever drawn on :focus-visible, so a mouse click
   never paints a ring over the artwork. */
.vm .vm-wwr-hot:focus{ outline:none; }
.vm .vm-wwr-hot:focus-visible{
  outline:3px solid var(--red);
  outline-offset:-3px;
  background:rgba(210,20,27,0.07);
}

/* rows */
.vm .vm-wwr-hot--r1c1,
.vm .vm-wwr-hot--r1c2,
.vm .vm-wwr-hot--r1c3{ top:4.0%;  height:35.5%; }
.vm .vm-wwr-hot--r2c1,
.vm .vm-wwr-hot--r2c2,
.vm .vm-wwr-hot--r2c3{ top:62.0%; height:35.0%; }

/* columns */
.vm .vm-wwr-hot--r1c1,
.vm .vm-wwr-hot--r2c1{ left:2.0%;  width:29.5%; }
.vm .vm-wwr-hot--r1c2,
.vm .vm-wwr-hot--r2c2{ left:32.2%; width:32.0%; }
.vm .vm-wwr-hot--r1c3,
.vm .vm-wwr-hot--r2c3{ left:65.3%; width:32.6%; }


/* ==================================================================
   2026-09-01 - REGION + SERVICE DASHBOARDS   ( body.vm only )

   Two owner-supplied graphics become the visible design for
   "Browse By Vehicle Region" and the shop-information block. Same
   break-out geometry as the Ford and What We Repair banners, so all
   four wide graphics on this page share one set of edges.

   NOTHING was deleted from the markup. The region directory and the
   four information cards are still in the DOM as .vm-sr-only text -
   clipped, never display:none - so every make name, the shop address
   and the opening hours stay indexable and stay in the accessibility
   tree. See the notes in vehicle-makes.html.
   ================================================================== */

.vm .vm-rgn,
.vm .vm-svc{
  position:relative;
  width:100%;
  max-width:none;
  margin:26px auto 0;
}
.vm .vm-rgn img,
.vm .vm-svc img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
}

@media (min-width: 901px){
  .vm .vm-rgn,
  .vm .vm-svc{
    width:92vw;
    max-width:1400px;
    margin-left:50%;
    margin-right:0;
    transform:translateX(-50%);
  }
}

/* ---------- region anchor points ----------
   Zero-size landing points pinned over their painted column, so the 81+
   sitewide links into #asian / #european / #domestic still scroll to the
   right part of the graphic. home.css already sets
   [id]{scroll-margin-top:96px}, which clears the sticky header. */
.vm .vm-rgn-anchor{
  position:absolute;
  width:0; height:0;
  overflow:hidden;
  pointer-events:none;
}
.vm .vm-rgn-anchor--asian{    left:6.0%;  top:21%; }
.vm .vm-rgn-anchor--european{ left:36.0%; top:21%; }
.vm .vm-rgn-anchor--domestic{ left:66.5%; top:21%; }

/* ---------- make hotspots ----------
   Percentages of the 1691x930 artwork, read off a calibration grid, so they
   track the image at every viewport. Only the four makes that have a
   dedicated page are clickable - the rest carry no destination to give. */
.vm .vm-rgn-hot{
  position:absolute;
  display:block;
  background:transparent;
  border-radius:12px;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.vm .vm-rgn-hot:focus{ outline:none; }
.vm .vm-rgn-hot:focus-visible{
  outline:3px solid var(--red);
  outline-offset:-3px;
  background:rgba(210,20,27,0.10);
}

.vm .vm-rgn-hot--kia{      left:7.4%;  top:29.5%; width:7.8%; height:13.5%; }
.vm .vm-rgn-hot--toyota{   left:7.4%;  top:43.5%; width:7.8%; height:13.5%; }
.vm .vm-rgn-hot--mercedes{ left:37.8%; top:29.5%; width:7.8%; height:14.5%; }
.vm .vm-rgn-hot--ford{     left:68.2%; top:29.5%; width:7.8%; height:13.5%; }


/* ==================================================================
   2026-09-01 - "DO NOT SEE YOUR MAKE?" DASHBOARD   ( body.vm only )

   Same break-out geometry and edges as the Ford, What We Repair,
   region and service graphics, so all five line up. The graphic is
   the entire visible presentation - deliberately NO card, border,
   background, heading or repeated wording is drawn around it.
   ================================================================== */

.vm .vm-dns{
  position:relative;
  width:100%;
  max-width:none;
  margin:26px auto 0;
}
.vm .vm-dns img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
}

@media (min-width: 901px){
  .vm .vm-dns{
    width:92vw;
    max-width:1400px;
    margin-left:50%;
    margin-right:0;
    transform:translateX(-50%);
  }
}

/* The phone hotspot, sized in percentages of the 1916x821 artwork so it
   tracks the painted number at every viewport. Read off a calibration grid:
   the number occupies roughly 56.5-75% across and 51-58% down. */
/* Anchored on the CENTRE of the painted number rather than its top-left, so
   the min sizes below can grow it symmetrically. Without them the box would
   scale to 53x12 px at a 320px viewport - far under the 44x44 minimum touch
   target - and the number would be almost untappable on a phone. On desktop
   the percentages already exceed 44px, so the minimums change nothing there. */
.vm .vm-dns-hot{
  position:absolute;
  left:65.75%; top:54.75%;
  transform:translate(-50%, -50%);
  width:19.5%; height:10.5%;
  min-width:44px; min-height:44px;
  display:block;
  background:transparent;
  border-radius:8px;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.vm .vm-dns-hot:focus{ outline:none; }
.vm .vm-dns-hot:focus-visible{
  outline:3px solid var(--red);
  outline-offset:2px;
  background:rgba(210,20,27,0.10);
}

/* ---------- keyboard escape hatch for screen-reader-only links ----------
   .vm-sr-only blocks are clipped, so a link inside one would otherwise be a
   focus stop with nothing visible on screen - a WCAG 2.4.11 problem. When
   anything inside gains focus the block un-clips and pins itself top-left,
   exactly like a skip link. Screen readers and crawlers are unaffected. */
.vm .vm-sr-only:focus-within{
  position:fixed;
  top:14px; left:14px;
  width:auto; height:auto;
  max-width:min(560px, calc(100vw - 28px));
  margin:0; padding:14px 18px;
  overflow:visible;
  clip:auto;
  clip-path:none;
  white-space:normal;
  z-index:2000;
  background:#FFFFFF;
  color:var(--charcoal, #222);
  border:2px solid var(--red);
  border-radius:12px;
  box-shadow:0 10px 28px rgba(0,0,0,0.24);
}


/* ==================================================================
   2026-09-01 - VEHICLE MAKES HERO: 3D MOLDED DASHBOARD SKIN
   ( body.vm only, and only the hero - nothing below it is touched )

   Reference: Website Media/Website Photos/Graphics/
              vehicle-makes-hero-3d-sunroof-king.png

   Deliberately CSS-ONLY. The hero is still real HTML: real H1, real
   breadcrumb, real lede, real buttons, real links, the real owner
   portrait and the real 12 manufacturer SVGs. No screenshot is used,
   so text stays selectable and indexable and the ring stays keyboard
   navigable.

   Nothing here changes GEOMETRY. The --clock / --btn / --gap variables
   and the rotate->translate->rotate placement are untouched, so every
   existing responsive rule still governs layout. This block only adds
   surface: colour, moulding, trim, screws, depth and glow.

   Layer order inside .vmc-hero:
     ::before   moulded outer frame + corner screws     z-index 0
     ::after    orange illuminated inner trim           z-index 1
     .wrap      all real content                        z-index 2
   ================================================================== */

/* ---------- the warm cream ground ---------- */
.vm .vmc-hero{
  position:relative;
  isolation:isolate;
  border-bottom:0;
  padding:30px 0 34px;
  background:
    radial-gradient(120% 90% at 82% 22%, rgba(242,96,12,0.10) 0%, rgba(242,96,12,0) 58%),
    radial-gradient(90% 70% at 8% 0%, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(168deg, #FBF4E9 0%, #F7EEE0 46%, #F2E6D4 100%);
}

/* ---------- moulded outer frame ----------
   Four radial-gradients paint the corner screws; the border and layered
   shadows do the moulding. No extra markup, no images. */
.vm .vmc-hero::before{
  content:"";
  position:absolute; inset:14px;
  border-radius:26px;
  border:1px solid #E3D5BF;
  background-image:
    radial-gradient(circle at 26px 26px, #C9BCA6 0 3.5px, #EFE6D6 3.5px 7px, rgba(0,0,0,0) 7.5px),
    radial-gradient(circle at calc(100% - 26px) 26px, #C9BCA6 0 3.5px, #EFE6D6 3.5px 7px, rgba(0,0,0,0) 7.5px),
    radial-gradient(circle at 26px calc(100% - 26px), #C9BCA6 0 3.5px, #EFE6D6 3.5px 7px, rgba(0,0,0,0) 7.5px),
    radial-gradient(circle at calc(100% - 26px) calc(100% - 26px), #C9BCA6 0 3.5px, #EFE6D6 3.5px 7px, rgba(0,0,0,0) 7.5px);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,0.95),
    inset 0 -3px 0 rgba(0,0,0,0.06),
    inset 3px 0 0 rgba(255,255,255,0.55),
    inset -3px 0 0 rgba(0,0,0,0.04),
    0 2px 4px rgba(23,20,18,0.06),
    0 16px 34px rgba(23,20,18,0.11),
    0 36px 70px rgba(23,20,18,0.13);
  pointer-events:none;
  z-index:0;
}

/* ---------- orange illuminated inner trim ---------- */
.vm .vmc-hero::after{
  content:"";
  position:absolute; inset:26px;
  border-radius:18px;
  border:2px solid rgba(242,96,12,0.55);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.75),
    0 0 14px rgba(242,96,12,0.28),
    inset 0 0 22px rgba(242,96,12,0.10);
  pointer-events:none;
  z-index:1;
}

.vm .vmc-hero > .wrap{ position:relative; z-index:2; padding-top:20px; padding-bottom:20px; }

/* ---------- copy column ---------- */
.vm .vmc-hero .lg-kicker{ color:var(--orange); letter-spacing:0.12em; }
.vm .vmc-hero h1{ text-shadow:0 1px 0 rgba(255,255,255,0.9), 0 2px 3px rgba(23,20,18,0.10); }
.vm .vmc-hero .page-hero-accent{
  background:linear-gradient(90deg, var(--orange) 0%, var(--orange-dark) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,0.8), 0 2px 6px rgba(242,96,12,0.35);
}
.vm .vmc-hero .breadcrumb .current{ color:var(--orange-dark); }

/* ---------- dimensional CTAs ----------
   A hard colour edge under each control does the moulded-key look; the
   press state removes it so the button physically sinks. */
.vm .vmc-hero .vmc-viewall{
  border-radius:12px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    0 5px 0 #0C0A09,
    0 8px 14px rgba(23,20,18,0.26),
    0 16px 30px rgba(23,20,18,0.20);
}
.vm .vmc-hero .vmc-viewall:hover{
  transform:translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    0 7px 0 #0C0A09,
    0 12px 20px rgba(23,20,18,0.30),
    0 22px 38px rgba(23,20,18,0.24);
}
.vm .vmc-hero .vmc-viewall:active{
  transform:translateY(3px);
  box-shadow:inset 0 2px 6px rgba(0,0,0,0.45), 0 1px 0 #0C0A09;
}

.vm .vmc-hero .vmc-contact-row .btn-primary{
  border-radius:12px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.35),
    0 5px 0 var(--red-dark),
    0 8px 14px rgba(210,20,27,0.32),
    0 16px 30px rgba(23,20,18,0.18);
}
.vm .vmc-hero .vmc-contact-row .btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.35),
    0 7px 0 var(--red-dark),
    0 12px 20px rgba(210,20,27,0.38),
    0 22px 38px rgba(23,20,18,0.22);
}
.vm .vmc-hero .vmc-contact-row .btn-primary:active{
  transform:translateY(3px);
  box-shadow:inset 0 2px 6px rgba(0,0,0,0.30), 0 1px 0 var(--red-dark);
}

.vm .vmc-hero .vmc-contact-row .btn-outline-dark{
  border-radius:12px;
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFDF9 55%, #F3EADC 100%);
  border-color:#E0D2BC;
  color:var(--charcoal);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 5px 0 #D8C9B2,
    0 8px 14px rgba(23,20,18,0.16),
    0 16px 28px rgba(23,20,18,0.13);
}
.vm .vmc-hero .vmc-contact-row .btn-outline-dark:hover{
  background:linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 55%, #F7F0E5 100%);
  color:var(--charcoal);
  transform:translateY(-2px);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 7px 0 #D8C9B2,
    0 12px 20px rgba(23,20,18,0.20),
    0 22px 36px rgba(23,20,18,0.16);
}
.vm .vmc-hero .vmc-contact-row .btn-outline-dark:active{
  transform:translateY(3px);
  box-shadow:inset 0 2px 6px rgba(0,0,0,0.14), 0 1px 0 #D8C9B2;
}

/* ---------- the ring guide, now an illuminated orange track ---------- */
.vm .vmc-hero .vmc::before{
  border:2px solid rgba(242,96,12,0.30);
  opacity:1;
  box-shadow:0 0 12px rgba(242,96,12,0.20), inset 0 0 12px rgba(242,96,12,0.10);
}

/* ---------- owner portrait: orange rim and glow ---------- */
.vm .vmc-hero .vmc-portrait{
  border:6px solid #FFFDF8;
  box-shadow:
    0 0 0 3px var(--orange),
    0 0 0 7px rgba(242,96,12,0.20),
    0 0 26px rgba(242,96,12,0.35),
    0 20px 46px rgba(23,20,18,0.26);
}

/* ---------- make discs: moulded cream keys ---------- */
.vm .vmc-hero .vmc-btn{
  background:linear-gradient(162deg, #FFFFFF 0%, #FFFCF6 48%, #F2E7D6 100%);
  border:1px solid #E6D8C2;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -4px 8px rgba(150,120,80,0.13),
    0 1px 2px rgba(23,20,18,0.08),
    0 8px 18px rgba(23,20,18,0.14);
}
/* linked discs read as live controls: orange rim, orange label */
.vm .vmc-hero a.vmc-btn{
  border-color:rgba(242,96,12,0.55);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    inset 0 -4px 8px rgba(150,120,80,0.13),
    0 0 0 1px rgba(242,96,12,0.18),
    0 0 12px rgba(242,96,12,0.22),
    0 8px 18px rgba(23,20,18,0.16);
}
.vm .vmc-hero a.vmc-btn .vmc-mark{ color:var(--orange-dark); }
.vm .vmc-hero a.vmc-btn:hover,
.vm .vmc-hero a.vmc-btn:focus-visible{
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 0 0 1px rgba(242,96,12,0.30),
    0 0 20px rgba(242,96,12,0.38),
    0 18px 34px rgba(23,20,18,0.22);
}
.vm .vmc-hero .vmc-legend a{ color:var(--orange-dark); }

/* ---------- responsive: the frame must not crush the content ---------- */
@media (max-width: 900px){
  .vm .vmc-hero{ padding:20px 0 24px; }
  .vm .vmc-hero::before{ inset:10px; border-radius:20px; }
  .vm .vmc-hero::after{ inset:19px; border-radius:14px; }
  .vm .vmc-hero > .wrap{ padding-top:14px; padding-bottom:14px; }
}
@media (max-width: 560px){
  .vm .vmc-hero{ padding:14px 0 18px; }
  .vm .vmc-hero::before{ inset:7px; border-radius:16px; }
  .vm .vmc-hero::after{ inset:14px; border-radius:11px; }
  .vm .vmc-hero > .wrap{ padding-top:12px; padding-bottom:12px; }
}
@media (max-width: 380px){
  .vm .vmc-hero::before{ inset:5px; border-radius:13px; }
  .vm .vmc-hero::after{ inset:11px; border-radius:9px; }
}

@media (prefers-reduced-motion: reduce){
  .vm .vmc-hero .vmc-viewall,
  .vm .vmc-hero .vmc-contact-row .btn{ transition:none; }
  .vm .vmc-hero .vmc-viewall:hover,
  .vm .vmc-hero .vmc-contact-row .btn:hover{ transform:none; }
}

/* ==================================================================
   2026-09-04 — KIA PAGE: SIMPLE LIGHT LANDING PAGE     ( body.kia )

   Reference: Website Media/Website Photos/Graphics/
              kia-sunroof-repair-light-landing-page-reference.png

   Second pass on 2026-09-04. The first pass was still a grid of
   decorative cards; this one strips the page back to six sections,
   a real 16-second Kia reel in the hero, one plain problem list, one
   photo strip, one trust bar, four questions and a small location
   block. Minimal boxes on purpose.

   CONTAINMENT: every selector below is scoped to `body.kia`, a class
   that exists on kia-sunroof-repair.html and nowhere else, so no rule
   here can reach another page that loads this stylesheet. Same
   pattern as `body.vm` (Vehicle Makes) further up this file.

   VISUAL SYSTEM: the approved light language — cream surfaces, a
   recessed illuminated orange trim on the hero housing, corner
   fasteners, black type, orange accents. Restrained: the hero is the
   only fully moulded housing on the page.
   ================================================================== */

.kia{
  --k-c1:#FDF8F0;
  --k-c2:#F8F0E3;
  --k-c3:#F1E6D5;
  --k-edge:#E1D3BC;
  --k-screw:#B5A88F;
  --k-ink:#141110;
  --k-body:#3B3531;
  --k-mute:#6B6157;
  --k-hair:rgba(20,17,16,0.10);
}

/* ==================================================================
   1. HERO
   ================================================================== */
.kia .kh-hero{
  background:
    radial-gradient(120% 60% at 80% 0%, rgba(242,96,12,0.06) 0%, rgba(242,96,12,0) 62%),
    linear-gradient(180deg, #FBF6EE 0%, #F7F1E7 100%);
  padding:26px 0 32px;
}
.kia .kh-hero > .wrap{ max-width:1360px; }

/* the one moulded housing on the page */
.kia .kh-housing{
  position:relative;
  padding:26px 30px 28px;
  border-radius:30px;
  border:1px solid var(--k-edge);
  background:
    radial-gradient(80% 55% at 6% 0%, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0) 58%),
    linear-gradient(158deg, var(--k-c1) 0%, var(--k-c2) 50%, var(--k-c3) 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,0.95),
    inset 0 -4px 0 rgba(0,0,0,0.06),
    inset 4px 0 0 rgba(255,255,255,0.5),
    inset -4px 0 0 rgba(0,0,0,0.04),
    0 3px 6px rgba(23,20,18,0.07),
    0 20px 44px rgba(23,20,18,0.13),
    0 44px 88px rgba(23,20,18,0.09);
}
.kia .kh-housing::before{
  content:"";
  position:absolute; inset:11px;
  border-radius:21px;
  border:2px solid rgba(242,96,12,0.52);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.7),
    0 0 18px rgba(242,96,12,0.26),
    inset 0 0 28px rgba(242,96,12,0.07);
  pointer-events:none; z-index:3;
}
.kia .kh-housing::after{
  content:"";
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 29px 29px, var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at calc(100% - 29px) 29px, var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at 29px calc(100% - 29px), var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px),
    radial-gradient(circle at calc(100% - 29px) calc(100% - 29px), var(--k-screw) 0 4.2px, #EFE6D6 4.2px 8.6px, rgba(0,0,0,0) 9.1px);
  pointer-events:none; z-index:4;
}

.kia .kh-hero-grid{
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:38px; align-items:center;
  padding:14px 12px 6px 16px;
}
.kia .kh-copy{ min-width:0; }

.kia .kh-copy .breadcrumb{
  display:flex; align-items:center; flex-wrap:wrap; gap:9px;
  margin:0 0 16px;
  font-family:var(--font-sans);
  font-size:0.96rem; font-weight:700;
}
.kia .kh-copy .breadcrumb a{ color:var(--k-ink); }
.kia .kh-copy .breadcrumb a:hover{ color:var(--red); }
.kia .kh-copy .breadcrumb .sep{ color:#B5A88F; }
.kia .kh-copy .breadcrumb .current{ color:var(--red); }

.kia .kh-kicker{
  display:inline-block;
  margin:0 0 14px;
  padding:8px 17px;
  border-radius:999px;
  border:1px solid #EBD9C1;
  background:linear-gradient(178deg, #FFFFFF 0%, #FDF7EE 60%, #F7EFE3 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 1px 2px rgba(0,0,0,0.05),
    0 5px 12px rgba(0,0,0,0.07);
  font-family:var(--font-sans);
  font-size:0.84rem; font-weight:900;
  letter-spacing:0.15em; text-transform:uppercase;
  color:var(--orange);
}
.kia .kh-hero h1{
  font-family:var(--font-sans);
  font-size:clamp(2.3rem, 3.5vw, 3.25rem);
  font-weight:900; line-height:1.06;
  letter-spacing:-0.03em;
  color:var(--k-ink);
  margin:0;
  text-shadow:0 1px 0 rgba(255,255,255,0.9), 0 3px 6px rgba(23,20,18,0.10);
}
.kia .kh-hero h1 .accent{ color:var(--orange); }
/* desktop-only headline breaks (see the <br class="kh-br"> in the page) */
.kia .kh-br{ display:inline; }
.kia .kh-rule{
  width:88px; height:7px; border-radius:4px;
  margin:18px 0 18px;
  background:linear-gradient(90deg, var(--orange) 0%, var(--orange-dark) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,0.85), 0 2px 8px rgba(242,96,12,0.34);
}
.kia .kh-lede{
  font-size:1.13rem; line-height:1.68;
  color:var(--k-body); margin:0; max-width:56ch;
}
.kia .kh-lede strong{ color:var(--k-ink); font-weight:800; }

/* four compact trust facts — text only, hairline dividers, no boxes */
.kia .kh-facts{
  list-style:none; margin:24px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:0;
}
.kia .kh-facts li{
  padding:2px 16px;
  border-left:1px solid var(--k-hair);
  min-width:0;
}
.kia .kh-facts li:first-child{ border-left:0; padding-left:0; }
.kia .kh-facts strong{
  display:block;
  font-family:var(--font-sans);
  font-size:0.97rem; font-weight:900; line-height:1.24;
  letter-spacing:0.02em; text-transform:uppercase;
  color:var(--k-ink);
  /* two lines reserved so a label that wraps ("Kia Sunroof Specialists")
     does not push its own sub-line below the other three cells' */
  min-height:2.48em;
}
.kia .kh-facts span{
  display:block; margin-top:3px;
  font-size:0.92rem; font-weight:600; line-height:1.32;
  color:var(--k-mute);
}

/* ---------- hero image frame (9:16) ----------
   Was a 16-second reel until 2026-09-04. The MP4 was withdrawn (it was a
   render of the old promotional graphic and carried claim wording), so
   this is now a static image. Frame geometry is unchanged — same 248px
   width, same 9:16, same position — so the hero layout did not move. */
.kia .kh-reel{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  min-width:0;
}
.kia .kr-frame{
  position:relative;
  width:300px; max-width:100%;
  /* NO aspect-ratio: the frame takes the artwork's own shape so the whole
     graphic is visible. Adding one back would crop it. */
  border-radius:20px;
  overflow:hidden;
  background:#F4EDE2;
  border:1px solid var(--k-edge);
  line-height:0;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.5),
    0 2px 4px rgba(0,0,0,0.10),
    0 6px 0 rgba(0,0,0,0.04),
    0 18px 36px rgba(0,0,0,0.20),
    0 40px 74px rgba(0,0,0,0.14);
}
/* height:auto + no object-fit = the complete graphic, never cropped,
   never stretched, at its native 2:3 proportions. */
.kia .kr-frame img{
  display:block;
  width:100%; height:auto;
}
.kia .kr-cap{
  margin:0; text-align:center;
  font-family:var(--font-sans);
  font-size:0.86rem; font-weight:700;
  letter-spacing:0.01em;
  color:var(--k-mute);
  max-width:26ch;
}

/* ==================================================================
   SECTION SHELL
   Third pass, 2026-09-04. The hero housing above is now the ONLY
   moulded surface on the page. Everything below it is typography,
   whitespace, hairlines and photographs — no cards, tiles, badges or
   consoles. If a future change wants to add a box here, it needs a
   reason beyond filling space.
   ================================================================== */
.kia .kh-section{ padding:52px 0; }
.kia .kh-section.alt{
  background:linear-gradient(180deg, #FBF6EE 0%, #F6F0E6 100%);
}
.kia .kh-h2{
  /* 38ch keeps "Kia Sunroof Repair — Quick Questions" on one desktop
     line; text-wrap:balance evens out the ones that must wrap. */
  max-width:38ch; margin:0 auto 30px;
  text-wrap:balance;
  text-align:center;
  font-family:var(--font-sans);
  font-size:clamp(1.6rem, 2.5vw, 2.1rem);
  font-weight:900; line-height:1.14;
  letter-spacing:-0.022em; text-transform:uppercase;
  color:var(--k-ink);
}
.kia .kh-h2 .accent{ color:var(--orange); }

/* shared body paragraph */
.kia .ka-copy{
  max-width:66ch; margin:0 auto;
  text-align:center;
  font-size:1.15rem; line-height:1.75;
  color:var(--k-body);
}

/* ==================================================================
   2. HAVING ONE OF THESE KIA SUNROOF PROBLEMS?
   A plain list. Small orange glyph, label, hairline. No boxes.
   ================================================================== */
.kia .kp-list{
  list-style:none; margin:0 auto; padding:0;
  max-width:1000px;
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:48px; row-gap:0;
}
.kia .kp-list li{
  display:flex; align-items:center; gap:15px;
  padding:19px 2px;
  border-top:1px solid var(--k-hair);
  min-width:0;
}
.kia .kp-list li:nth-child(-n+2){ border-top:0; }
.kia .kp-list li svg{
  width:26px; height:26px; flex-shrink:0;
  color:var(--orange);
}
.kia .kp-list span{
  font-family:var(--font-sans);
  font-size:1.14rem; font-weight:800; line-height:1.3;
  letter-spacing:-0.012em;
  color:var(--k-ink);
}

/* ==================================================================
   4. REAL KIA EXPERIENCE
   The photographs are the proof, so they carry a hairline and nothing
   else — no frame, no shadow stack, no caption plate.
   ================================================================== */
.kia .ke-strip{
  max-width:1000px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:20px;
}
.kia .ke-strip figure{ margin:0; min-width:0; }
.kia .ke-strip img{
  display:block;
  width:100%; height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  border-radius:10px;
  border:1px solid var(--k-edge);
  background:#EDE5D8;
}
.kia .ke-strip figcaption{
  margin-top:11px; text-align:center;
  font-family:var(--font-sans);
  font-size:0.92rem; font-weight:800; line-height:1.3;
  color:var(--k-ink);
}

/* ==================================================================
   5. WHAT SHOULD I DO? — plain typography, no panel
   No Call/Text control here by design; it lives in the shared header
   and the shared footer only.
   ================================================================== */
.kia .kl-where{
  margin:34px auto 0;
  max-width:66ch;
  text-align:center;
}
.kia .kl-name{
  margin:0 0 12px;
  font-family:var(--font-sans);
  font-size:1.06rem; font-weight:900; line-height:1.35;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--k-ink);
}
.kia .kl-addr{
  margin:0 0 10px;
  font-family:var(--font-sans);
  font-size:1.35rem; font-weight:900; line-height:1.36;
  letter-spacing:-0.015em;
  color:var(--k-ink);
}
.kia .kl-hours{
  margin:14px 0 0;
  font-size:1.08rem; line-height:1.55;
  color:var(--k-body);
}

/* ==================================================================
   6. QUICK QUESTIONS
   The shared accordion (.faq-list / .faq-item / .faq-question /
   .faq-answer — base styles in pages.css, behaviour from script.js),
   flattened to hairline rows. Only the surface and the type size
   change here, because pages.css shrinks the shared question and
   answer below 768px.
   ================================================================== */
.kia .kia-faq{
  max-width:820px;
  gap:0;
  margin:0 auto;
}
.kia .kia-faq .faq-item{
  border:0;
  border-top:1px solid var(--k-hair);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transition:none;
}
.kia .kia-faq .faq-item:first-child{ border-top:0; }
.kia .kia-faq .faq-item:hover{ transform:none; box-shadow:none; }
.kia .kia-faq .faq-question{
  padding:22px 4px;
  font-size:1.1rem;
  font-weight:800;
  line-height:1.4;
  letter-spacing:-0.005em;
  color:var(--k-ink);
  text-transform:none;
}
.kia .kia-faq .faq-question:hover{ color:var(--orange); }
.kia .kia-faq .faq-question:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:-3px;
}
.kia .kia-faq .faq-question .faq-icon{
  width:26px; height:26px;
  border:0;
  background:transparent;
  box-shadow:none;
  color:var(--orange);
}
.kia .kia-faq .faq-question .faq-icon svg{ width:19px; height:19px; }
.kia .kia-faq .faq-item.is-open .faq-question{ color:var(--orange); }
.kia .kia-faq .faq-answer-inner{
  padding:0 4px 22px;
  font-size:1.06rem;
  line-height:1.74;
  color:var(--k-body);
  max-width:62ch;
}
.kia .kia-faq .faq-answer-inner p{ margin:0; }
/* the shared rule caps an open answer at 400px; at this type size the
   longest answer needs a little more or it clips mid-sentence */
.kia .kia-faq .faq-item.is-open .faq-answer{ max-height:420px; }
/* ==================================================================
   RESPONSIVE — mobile is the priority, so the reel moves directly
   under the hero copy and the type steps down slowly.
   ================================================================== */
@media (max-width: 1180px){
  .kia .kh-hero-grid{ gap:28px; }
  .kia .kr-frame{ width:280px; }
  /* the left column is too narrow for four facts across here */
  .kia .kh-facts{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px 0; }
  .kia .kh-facts li{ padding:0 16px; }
  .kia .kh-facts li:nth-child(odd){ border-left:0; padding-left:0; }
  .kia .kp-list{ column-gap:34px; }
}
@media (max-width: 900px){
  /* stack: copy first, reel directly below it */
  .kia .kh-hero-grid{ grid-template-columns:1fr; gap:26px; padding:12px 8px 4px; }
  .kia .kr-frame{ width:320px; }
  .kia .kh-br{ display:none; }
  .kia .ke-strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
}
@media (max-width: 768px){
  .kia .kh-hero{ padding:18px 0 24px; }
  .kia .kh-housing{ padding:20px 18px 22px; border-radius:24px; }
  .kia .kh-housing::before{ inset:9px; border-radius:17px; }
  .kia .kh-housing::after{
    background-image:
      radial-gradient(circle at 22px 22px, var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at calc(100% - 22px) 22px, var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at 22px calc(100% - 22px), var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px),
      radial-gradient(circle at calc(100% - 22px) calc(100% - 22px), var(--k-screw) 0 3.4px, #EFE6D6 3.4px 7px, rgba(0,0,0,0) 7.5px);
  }
  .kia .kh-lede{ font-size:1.08rem; }
  .kia .kh-facts li{ padding:0 14px; }
  .kia .kh-section{ padding:38px 0; }
  .kia .kh-h2{ margin-bottom:24px; }
  .kia .ka-copy{ font-size:1.08rem; }
  .kia .kl-where{ margin-top:28px; }
  .kia .kl-addr{ font-size:1.24rem; }
  /* pages.css drops these to 0.92rem / 0.95rem here — re-assert */
  .kia .kia-faq .faq-question{ padding:19px 2px; font-size:1.04rem; }
  .kia .kia-faq .faq-answer-inner{ padding:0 2px 19px; font-size:1.02rem; }
  .kia .kia-faq .faq-item.is-open .faq-answer{ max-height:520px; }
}
@media (max-width: 620px){
  /* one problem per line — the fastest thing to scan on a phone */
  .kia .kp-list{ grid-template-columns:1fr; }
  .kia .kp-list li{ padding:15px 0; border-top:1px solid var(--k-hair); }
  .kia .kp-list li:first-child{ border-top:0; }
}
@media (max-width: 430px){
  .kia .kh-housing{ padding:17px 14px 19px; }
  .kia .kh-hero h1{ font-size:2rem; }
  .kia .kh-lede{ font-size:1.03rem; }
  .kia .kr-frame{ width:min(300px, 80vw); }
  .kia .kp-list span{ font-size:1.08rem; }
  .kia .ke-strip{ gap:13px; }
  .kia .ke-strip figcaption{ font-size:0.87rem; margin-top:8px; }
  .kia .ka-copy{ font-size:1.05rem; }
  .kia .kl-addr{ font-size:1.16rem; }
  .kia .kl-hours{ font-size:1.02rem; }
  .kia .kia-faq .faq-question{ padding:17px 2px; font-size:1.01rem; gap:11px; }
  .kia .kia-faq .faq-answer-inner{ padding:0 2px 17px; font-size:1rem; }
  .kia .kia-faq .faq-item.is-open .faq-answer{ max-height:640px; }
}
@media (max-width: 360px){
  .kia .kh-hero h1{ font-size:1.82rem; }
  .kia .kh-facts{ grid-template-columns:1fr; gap:13px; }
  .kia .kh-facts li{ border-left:0; padding:0; }
}

