/* ============================================================
   GENEVA MOTOR HAUS — vdp-v2.css — the vehicle detail page
   ============================================================
   Loaded after geneva-final-v2.css and srp-v2.css on cars/*.html (the body
   carries .is-srp too: the 1700 measure and the lot card are the SRP's).

   THE MEASURES ARE CMC'S VDP, read off its live preview on 2026-09-14 at
   1920 / 1440 / 390; the numbers in the comments are theirs. One defect is
   not carried: below 60rem their photograph collapses to 2px — here it
   keeps a 3:2 frame. The ground, faces, plates, pills and radii are
   Geneva's.
   ============================================================ */

.is-vdp [hidden] { display: none !important; }
.is-vdp main { padding-block-start: calc(var(--gf-head-h) + clamp(24px, 3vw, 32px)); }
.is-vdp :is(#about, #ask, #finance, #shipping) { scroll-margin-block-start: calc(var(--gf-head-h-c) + 24px); }

/* ---- the top bar: breadcrumb, and the page's own tools (39px pills) ---- */
.is-vdp .vdp-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-block-end: 32px;
}
.is-vdp .vdp-crumbs ol { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none; color: var(--ink-3); font: 400 var(--t-micro)/1.6 var(--font-label); }
.is-vdp .vdp-crumbs li + li::before { content: "/"; margin-inline-end: 12px; }
.is-vdp .vdp-crumbs a { color: var(--ink-3); text-decoration: none; }
.is-vdp .vdp-crumbs a:hover { color: var(--ink); }
.is-vdp .vdp-crumbs [aria-current] { color: var(--ink-2); }
.is-vdp .vdp-tools { display: flex; flex-wrap: wrap; gap: 8px; }
.is-vdp .vdp-tool {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px 9px;
  border: 0;
  border-radius: 999px;
  background: rgb(243 238 230 / 0.06);
  color: var(--ink-2);
  font: 400 var(--t-micro)/1.6 var(--font-label);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 150ms var(--ease-out), color 150ms var(--ease-out);
}
.is-vdp .vdp-tool:hover { background: rgb(243 238 230 / 0.12); color: var(--ink); }
.is-vdp .vdp-tool:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.is-vdp .vdp-tool[aria-pressed="true"] { background: var(--bone); color: var(--bone-ink); }
.is-vdp .vdp-tool[aria-pressed="true"] svg path { fill: currentColor; }

/* ---- the summary: 60fr / 40fr on 32, the two columns ending on one line - */
.is-vdp .vdp-sum {
  display: grid;
  grid-template-columns: minmax(0, 60fr) minmax(22rem, 40fr);
  gap: clamp(24px, 2.4vw, 32px);
}

/* the photograph takes whatever height the panel makes (CMC's move); a
   3:2-ish floor keeps a short panel from starving it */
.is-vdp .vdp-gal { display: flex; flex-direction: column; min-inline-size: 0; container-type: inline-size; }
.is-vdp .vdp-gal__stage {
  position: relative;
  flex: 1 1 auto;
  min-block-size: 60cqi;
  overflow: hidden;
  border: 1px solid var(--rule);
  border-radius: 16px;
  background: var(--bg-sunk);
}
.is-vdp .vdp-gal__frame {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 520ms var(--ease-out);
}
/* a phone shot held upright is shown whole, not cropped to a sliver */
.is-vdp .vdp-gal__frame.is-portrait { object-fit: contain; }
.is-vdp .vdp-gal__frame.is-active { opacity: 1; }
.is-vdp .vdp-gal__arrow {
  position: absolute;
  inset-block-start: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  inline-size: 38px;
  block-size: 38px;
  margin-block-start: -19px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgb(var(--bg-rgb) / 0.62);
  color: var(--ink);
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: background-color 150ms var(--ease-out);
}
.is-vdp .vdp-gal__arrow--prev { inset-inline-start: 16px; }
.is-vdp .vdp-gal__arrow--next { inset-inline-end: 16px; }
.is-vdp .vdp-gal__arrow:hover { background: rgb(var(--bg-rgb) / 0.9); }
.is-vdp .vdp-gal__arrow:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.is-vdp .vdp-gal__count {
  position: absolute;
  inset-inline-start: 16px;
  inset-block-end: 16px;
  z-index: 2;
  margin: 0;
  padding: 6px 11px 7px;
  border-radius: 6px;
  background: rgb(var(--bg-rgb) / 0.85);
  color: var(--ink-2);
  font: 400 var(--t-micro)/1.6 var(--font-label);
  font-variant-numeric: tabular-nums;
}
.is-vdp .vdp-gal__count b { color: var(--ink); font-weight: 600; }
.is-vdp .vdp-gal__none {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 16px;
  block-size: 100%;
  margin: 0;
  color: var(--ink-3);
  font: 500 var(--t-micro)/1.4 var(--font-label);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.is-vdp .vdp-gal__ask {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 17px 10px;
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  color: var(--ink);
  font: 500 var(--t-micro)/1.6 var(--font-label);
  text-decoration: none;
}
.is-vdp .vdp-gal__ask:hover { border-color: var(--ink); }
.is-vdp .vdp-gal__ask:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
/* six thumbnails in view on 12; more scroll within the strip */
.is-vdp .vdp-gal__strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 5 * 12px) / 6);
  gap: 12px;
  margin: 16px 0 0;
  padding: 0;
  overflow-x: auto;
  list-style: none;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}
.is-vdp .vdp-gal__strip::-webkit-scrollbar { display: none; }
.is-vdp .vdp-gal__strip li { scroll-snap-align: start; }
.is-vdp .vdp-gal__thumb {
  position: relative;
  display: block;
  inline-size: 100%;
  aspect-ratio: 3 / 2;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 8px;
  background: var(--bg-sunk);
  cursor: pointer;
}
.is-vdp .vdp-gal__thumb img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; filter: saturate(0.8) brightness(0.7); transition: filter 200ms var(--ease-out); }
.is-vdp .vdp-gal__thumb::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1.5px transparent; transition: box-shadow 200ms var(--ease-out); }
.is-vdp .vdp-gal__thumb:hover img { filter: none; }
.is-vdp .vdp-gal__thumb[aria-current="true"] img { filter: none; }
.is-vdp .vdp-gal__thumb[aria-current="true"]::after { box-shadow: inset 0 0 0 1.5px var(--ink); }
.is-vdp .vdp-gal__thumb:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

/* the panel: head · price · specs · action, each a 24px section on a hairline */
.is-vdp .vdp-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--rule);
  border-radius: 12px;
  background: var(--bg-raised);
}
.is-vdp .vdp-panel > * { padding: 24px; }
.is-vdp .vdp-panel > * + * { border-block-start: 1px solid var(--rule); }
.is-vdp .vdp-plate__title { display: flex; align-items: flex-end; gap: 16px; margin: 18px 0 0; font-weight: inherit; }
.is-vdp .vdp-plate__year {
  flex: none;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2.75rem, 3.3vw, 4rem);
  line-height: 0.82;
  letter-spacing: -0.01em;
  font-variant-numeric: lining-nums;
  color: var(--ink);
}
.is-vdp .vdp-plate__name { display: flex; flex-direction: column; gap: 4px; min-inline-size: 0; }
.is-vdp .vdp-plate__make { color: var(--ink-3); font: 500 var(--t-micro)/1.1 var(--font-label); letter-spacing: 0.06em; text-transform: uppercase; }
.is-vdp .vdp-plate__model { color: var(--ink); font: 700 clamp(1.375rem, 1.9vw, 1.75rem)/1.14 var(--font-body); letter-spacing: -0.03em; text-wrap: balance; }
.is-vdp .vdp-price { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.is-vdp .vdp-price__k { color: var(--ink-3); font: 400 var(--t-micro)/1.6 var(--font-label); }
.is-vdp .vdp-price__v { color: var(--ink); font: 600 clamp(2rem, 2.6vw, 2.5rem)/1 var(--font-body); letter-spacing: -0.02em; font-variant-numeric: lining-nums tabular-nums; }
.is-vdp .vdp-price__dated { margin: 12px 0 0; color: var(--ink-3); font: 400 var(--t-micro)/1.6 var(--font-label); }
/* the rows: 14 on 14, 35px each, a hairline under, 10 between */
.is-vdp .vdp-panel__specs { margin: 0; }
.is-vdp .vdp-spec { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-block-end: 12px; border-block-end: 1px solid var(--rule); }
.is-vdp .vdp-spec + .vdp-spec { margin-block-start: 10px; }
.is-vdp .vdp-spec dt { flex: none; color: var(--ink-3); font: 400 var(--t-micro)/1.6 var(--font-label); }
.is-vdp .vdp-spec dd { margin: 0; min-inline-size: 0; color: var(--ink); font: 400 var(--t-micro)/1.6 var(--font-body); text-align: end; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.is-vdp .vdp-panel__act { margin-block-start: auto; }
.is-vdp .vdp-plate__cta { inline-size: 100%; justify-content: center; }

/* ---- the ways in: the summary's own columns, 24 above, 24 inside ------- */
.is-vdp .vdp-act {
  display: grid;
  grid-template-columns: minmax(0, 60fr) minmax(22rem, 40fr);
  gap: 16px clamp(24px, 2.4vw, 32px);
  align-items: center;
  margin-block-start: 24px;
  padding-block: 24px;
}
.is-vdp .vdp-act__where {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
  padding: 16px 24px;
  border: 1px solid var(--rule);
  border-radius: 12px;
  background: var(--bg-raised);
}
.is-vdp .vdp-act__k { margin: 0; color: var(--ink-3); font: 500 var(--t-micro)/1.6 var(--font-label); letter-spacing: 0.06em; text-transform: uppercase; }
.is-vdp .vdp-act__v { margin: 0; color: var(--ink); font: 400 var(--t-micro)/1.6 var(--font-body); }
.is-vdp .vdp-act__link { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-2); font: 500 var(--t-micro)/1.6 var(--font-label); text-decoration: none; }
.is-vdp .vdp-act__link:hover { color: var(--ink); }
.is-vdp .vdp-act__pill { margin-inline-start: auto; padding: 5px 12px 6px; border-radius: 999px; background: rgb(243 238 230 / 0.06); color: var(--ink-2); font: 400 var(--t-micro)/1.6 var(--font-label); text-decoration: none; }
.is-vdp .vdp-act__pill:hover { color: var(--ink); background: rgb(243 238 230 / 0.12); }
.is-vdp .vdp-act__contact { display: flex; flex-wrap: wrap; gap: 12px; padding-inline: 24px; }
.is-vdp .vdp-pill {
  display: inline-flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 16px 9px;                           /* 41 with the hairline, as CMC's */
  border: 1px solid transparent;
  border-radius: 999px;
  font: 500 var(--t-micro)/1.6 var(--font-label);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 150ms var(--ease-out), border-color 150ms var(--ease-out);
}
.is-vdp .vdp-pill--accent { background: var(--action); color: var(--action-ink); }
.is-vdp .vdp-pill--accent:hover { background: var(--action-hover); }
.is-vdp .vdp-pill--bone { background: var(--bone); color: var(--bone-ink); }
.is-vdp .vdp-pill--bone:hover { background: color-mix(in srgb, var(--bone) 88%, #000); }
.is-vdp .vdp-pill--line { border-color: var(--rule-strong); color: var(--ink); }
.is-vdp .vdp-pill--line:hover { border-color: var(--ink); }
.is-vdp :is(.vdp-pill, .vdp-act__link, .vdp-act__pill):focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

/* ---- the record: 96px disclosure cards on 16 ------------------------------ */
.is-vdp .vdp-record { display: grid; gap: 16px; margin-block-start: clamp(72px, 6vw, 128px); }
.is-vdp .vdp-acc { border: 1px solid var(--rule-strong); border-radius: 12px; background: var(--bg-raised); }
.is-vdp .vdp-acc__sum {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 32px clamp(24px, 3.4vw, 48px);
  color: var(--ink);
  list-style: none;
  cursor: pointer;
  border-radius: 12px;
}
.is-vdp .vdp-acc__sum::-webkit-details-marker { display: none; }
.is-vdp .vdp-acc__sum:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.is-vdp .vdp-acc__label { flex: 1; font: 700 clamp(1.0625rem, 1.4vw, 1.25rem)/1.6 var(--font-display); letter-spacing: -0.01em; }

/* THE MARK: a 32px ring with a plus drawn on whole pixels — two 12×2 bars,
   so it stays sharp at 1× and 2×. Opening does not spin or fade it: the
   vertical bar folds shut on its own centre, leaving the minus. */
.is-vdp .vdp-acc__mark {
  position: relative;
  flex: none;
  inline-size: 32px;
  block-size: 32px;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px var(--rule-strong);
  color: var(--ink);
  transition: box-shadow 200ms var(--ease-out), background-color 200ms var(--ease-out);
}
.is-vdp .vdp-acc__mark::before,
.is-vdp .vdp-acc__mark::after {
  content: "";
  position: absolute;
  inset-block-start: 15px;
  inset-inline-start: 10px;
  inline-size: 12px;
  block-size: 2px;
  border-radius: 1px;
  background: currentColor;
}
.is-vdp .vdp-acc__mark::after {
  inset-block-start: 10px;
  inset-inline-start: 15px;
  inline-size: 2px;
  block-size: 12px;
  transform-origin: 50% 50%;
  transition: transform 280ms cubic-bezier(0.2, 0, 0, 1);
}
.is-vdp .vdp-acc[open] > .vdp-acc__sum .vdp-acc__mark::after { transform: scaleY(0); }
.is-vdp .vdp-acc__sum:hover .vdp-acc__mark,
.is-vdp .vdp-acc[open] > .vdp-acc__sum .vdp-acc__mark { box-shadow: inset 0 0 0 1px var(--ink-2); background: rgb(243 238 230 / 0.06); }

.is-vdp .vdp-acc__body { padding: 0 clamp(24px, 3.4vw, 48px) 48px; }
.is-vdp .vdp-acc__body > p { max-inline-size: 68ch; margin: 0 0 16px; color: var(--ink-2); font: 400 1rem/1.6 var(--font-body); }
.is-vdp .vdp-acc__body > p.vdp-about__lead { color: var(--ink); }
.is-vdp .vdp-about__points { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; padding: 0; list-style: none; }
.is-vdp .vdp-about__points li { padding: 8px 16px; border-radius: 999px; background: var(--eyebrow-plate); color: var(--ink); font: 500 var(--t-micro)/1.3 var(--font-label); }
.is-vdp .vdp-acc__body .vdp-acc__note { margin: 24px 0 0; color: var(--ink-3); font: 400 var(--t-micro)/1.5 var(--font-label); }

/* the forms: boxed fields on a 12rem grid */
.is-vdp .vdp-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 16px 24px; }
.is-vdp .vdp-field { display: grid; gap: 8px; min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.is-vdp .vdp-field--wide { grid-column: 1 / -1; }
.is-vdp .vdp-field > span,
.is-vdp .vdp-field > legend { padding: 0; color: var(--ink-2); font: 500 var(--t-micro)/1.3 var(--font-label); letter-spacing: 0.06em; text-transform: uppercase; }
.is-vdp .vdp-field :is(input:not([type="radio"]), select, textarea) {
  inline-size: 100%;
  min-block-size: 44px;
  padding: 10px 16px;
  border: 1px solid var(--rule-strong);
  border-radius: 10px;
  background: rgb(243 238 230 / 0.03);
  color: var(--ink);
  font: 400 1rem/1.4 var(--font-body);
  appearance: none;
}
.is-vdp .vdp-field textarea { min-block-size: 7rem; resize: vertical; }
.is-vdp .vdp-field select { background: rgb(243 238 230 / 0.03) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M0 0h8L4 5z' fill='%23F3EEE6'/%3E%3C/svg%3E") no-repeat right 16px center; }
.is-vdp .vdp-field select option { background: var(--bg-raised); color: var(--ink); }
.is-vdp .vdp-field :is(input, select, textarea):focus { outline: none; border-color: var(--ink); }
.is-vdp .vdp-field input[readonly] { color: var(--ink-2); }
.is-vdp .vdp-field :is(input, textarea)::placeholder { color: var(--ink-3); opacity: 1; }
.is-vdp .vdp-when { display: flex; flex-wrap: wrap; gap: 8px; }
.is-vdp .vdp-when legend { inline-size: 100%; margin-block-end: 8px; }
.is-vdp .vdp-when label { position: relative; }
.is-vdp .vdp-when input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.is-vdp .vdp-when span { display: inline-block; padding: 9px 17px 10px; border: 1px solid var(--rule-strong); border-radius: 999px; color: var(--ink-2); font: 500 var(--t-micro)/1.6 var(--font-label); transition: background-color 150ms var(--ease-out), color 150ms var(--ease-out); }
.is-vdp .vdp-when input:checked + span { border-color: var(--bone); background: var(--bone); color: var(--bone-ink); }
.is-vdp .vdp-when input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 2px; }
.is-vdp .vdp-form__foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.is-vdp .vdp-calc__out { display: block; color: var(--ink); font: 600 clamp(1.75rem, 2.4vw, 2.25rem)/1.1 var(--font-body); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.is-vdp .vdp-sent { max-inline-size: 60ch; outline: none; }
.is-vdp .vdp-sent__t { margin: 0; color: var(--ink); font: 700 clamp(1.5rem, 2vw, 1.75rem)/1.2 var(--font-display); }
.is-vdp .vdp-sent__p { margin: 12px 0 0; color: var(--ink-2); font: 400 1rem/1.6 var(--font-body); }
.is-vdp .vdp-sent__p a { color: var(--ink); }

/* ---- the standards: eyebrow · 22 · title 32 · 32 · four cards on 24 ---- */
.is-vdp .vdp-stds { margin-block-start: clamp(96px, 6vw, 128px); }
.is-vdp .vdp-stds__title { margin: 22px 0 0; color: var(--ink); font: 700 clamp(1.375rem, 2.2vw, 2rem)/1.1 var(--font-display); letter-spacing: -0.012em; }
.is-vdp .vdp-stds__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 24px; margin: 32px 0 0; padding: 0; list-style: none; }
.is-vdp .vdp-stds__item { padding: 24px; border: 1px solid var(--rule); border-radius: 12px; background: var(--bg-raised); }
.is-vdp .vdp-stds__k { margin: 0; color: var(--ink); font: 600 1rem/1.6 var(--font-body); }
.is-vdp .vdp-stds__v { margin: 8px 0 0; color: var(--ink-2); font: 400 var(--t-micro)/1.5 var(--font-body); }
.is-vdp .vdp-stds__link { display: inline-flex; align-items: center; gap: 8px; margin-block-start: 12px; color: var(--ink); font: 500 var(--t-micro)/1.6 var(--font-label); text-decoration: none; }
.is-vdp .vdp-stds__link:hover { color: var(--ink-2); }

/* ---- centred chapter titles: 32/1.1, 48 to their content --------------- */
.is-vdp .vdp-h2 { margin: 0; color: var(--ink); font: 700 clamp(1.375rem, 2.2vw, 2rem)/1.1 var(--font-display); letter-spacing: -0.012em; text-align: center; }

/* ---- the photographs at size: an even contact sheet on 24 ---------------- */
.is-vdp .vdp-sheet { margin-block-start: clamp(96px, 6vw, 128px); }
.is-vdp .vdp-shots { display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); gap: 24px; margin: 48px 0 0; padding: 0; list-style: none; }
.is-vdp .vdp-shots a { display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 10px; background: var(--bg-sunk); }
.is-vdp .vdp-shots img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; filter: saturate(0.9); transition: transform 400ms var(--ease-out), filter 400ms var(--ease-out); }
.is-vdp .vdp-shots a:is(:hover, :focus-visible) img { filter: none; }
@media (hover: hover) and (pointer: fine) {
  .is-vdp .vdp-shots a:hover img { transform: scale(1.03); }
}
.is-vdp .vdp-shots a:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.is-vdp .vdp-sheet__more { margin: 24px 0 0; text-align: center; }
.is-vdp .vdp-sheet__more a { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-2); font: 500 var(--t-micro)/1.6 var(--font-label); letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; }
.is-vdp .vdp-sheet__more a:hover { color: var(--ink); }

/* ---- the rest of the lot: six cards, three in view, paging -------------- */
.is-vdp .vdp-rel { padding-block: clamp(96px, 6vw, 128px); }
.is-vdp .vdp-rel__track {
  --gap: clamp(24px, 2.2vw, 32px);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 2 * var(--gap)) / 3);
  gap: var(--gap);
  margin: 48px 0 0;
  padding: 2px 0;
  overflow-x: auto;
  list-style: none;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
}
.is-vdp .vdp-rel__track::-webkit-scrollbar { display: none; }
.is-vdp .vdp-rel__track > li { scroll-snap-align: start; }
.is-vdp .vdp-rel__dots { display: flex; justify-content: center; gap: 12px; margin-block-start: 32px; }
.is-vdp .vdp-rel__dots:empty { display: none; }
.is-vdp .vdp-rel__dot { inline-size: 24px; block-size: 24px; padding: 0; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.is-vdp .vdp-rel__dot::before { content: ""; inline-size: 7px; block-size: 7px; border-radius: 999px; background: var(--ink-3); transition: background-color 150ms var(--ease-out), transform 150ms var(--ease-out); }
.is-vdp .vdp-rel__dot[aria-current="true"]::before { background: var(--ink); transform: scale(1.3); }
.is-vdp .vdp-rel__dot:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; border-radius: 999px; }

/* ---- narrower ----------------------------------------------------------------- */
@media (max-width: 960px) {
  .is-vdp .vdp-sum,
  .is-vdp .vdp-act { grid-template-columns: minmax(0, 1fr); }
  .is-vdp .vdp-gal__stage { flex: none; min-block-size: 0; aspect-ratio: 3 / 2; }   /* CMC collapses here; this does not */
  .is-vdp .vdp-gal--none .vdp-gal__stage { aspect-ratio: 16 / 9; }
  .is-vdp .vdp-gal__strip { gap: 8px; grid-auto-columns: calc((100% - 5 * 8px) / 6); }
  .is-vdp .vdp-act__contact { padding-inline: 0; }
  .is-vdp .vdp-rel__track { grid-auto-columns: calc((100% - var(--gap)) / 2); }
}
@media (max-width: 640px) {
  .is-vdp .vdp-stds__grid,
  .is-vdp .vdp-shots { gap: 16px; }
  .is-vdp .vdp-rel__track { grid-auto-columns: 84%; }
  .is-vdp .vdp-act__pill { margin-inline-start: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .is-vdp :is(.vdp-gal__frame, .vdp-gal__thumb img, .vdp-gal__thumb::after, .vdp-gal__arrow, .vdp-tool, .vdp-pill,
              .vdp-acc__mark, .vdp-acc__mark::after, .vdp-shots img, .vdp-rel__dot::before, .vdp-when span) { transition: none; }
  .is-vdp .vdp-shots a:hover img { transform: none; }
}
