/* ==========================================================================
   Zerox24 Smog Stations — Smog Check Directory
   "Inspection Sticker" theme. Standalone. Not shared.

   Visual premise: this is NOT a publishing brand or a service marketplace.
   It reads like a state DMV inspection sticker on an envelope: bone-white
   form paper, steel-blue authority lines, status badges that match how a
   STAR-certified, test-only, walk-in or fast-pass station is actually
   stamped in the field. All-caps mono labels do the heavy lifting; no
   serifs anywhere.

   Eye-comfort rules: bone background never pure white, ink charcoal not
   pure black, accents desaturated and only used at status-badge size.
   ========================================================================== */

:root {
  --zsm-paper:        #FAFAF6;
  --zsm-paper-2:      #F1F1EA;
  --zsm-form:         #FFFFFE;          /* form-field interior */
  --zsm-line:         #C9CCCE;
  --zsm-line-soft:    #DEE0E2;
  --zsm-rule:         #92989D;

  --zsm-ink:          #1B2733;
  --zsm-ink-soft:     #3D4854;
  --zsm-mute:         #6B7480;

  --zsm-steel:        #244A77;          /* authority — labels, primary CTA */
  --zsm-steel-deep:   #142C4D;
  --zsm-steel-soft:   #4F7AA8;

  --zsm-pass:         #1B7F3E;          /* STAR / pass / detected */
  --zsm-pass-bg:      #DEF0E2;
  --zsm-walk:         #B4661A;          /* walk-in / no appointment */
  --zsm-walk-bg:      #F6E6CD;
  --zsm-fast:         #244A77;          /* fast pass — same family as steel */
  --zsm-fast-bg:      #E0E8F1;
  --zsm-renewal:      #4A4F65;          /* DMV renewal — slate */
  --zsm-renewal-bg:   #E2E2EA;
  --zsm-test:         #6E2A6B;          /* test-only — uncommon, distinct */
  --zsm-test-bg:      #EEDFEC;
  --zsm-diesel:       #2A2A2A;          /* diesel — black industrial */
  --zsm-diesel-bg:    #DDDDDD;

  --zsm-stamp-red:    #B43232;          /* corner stamp accent only */

  --zsm-radius:       2px;              /* rectangular government-form feel */
  --zsm-radius-stamp: 0;

  --zsm-font-sans:    "IBM Plex Sans", "Helvetica Neue", "Segoe UI", system-ui, sans-serif;
  --zsm-font-cond:    "IBM Plex Sans Condensed", "IBM Plex Sans", sans-serif;
  --zsm-font-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --zsm-content:      1240px;
}

* { box-sizing: border-box; }

html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body.zsm-body {
  margin: 0;
  background: var(--zsm-paper);
  color: var(--zsm-ink);
  font-family: var(--zsm-font-sans);
  font-size: 15px;
  line-height: 1.55;
  letter-spacing: 0.005em;
}

a { color: var(--zsm-steel); text-decoration: none; transition: color .12s; }
a:hover { color: var(--zsm-stamp-red); }

img, svg { max-width: 100%; display: block; }
button { font: inherit; cursor: pointer; }

.zsm-wrap { width: 100%; max-width: var(--zsm-content); margin: 0 auto; padding: 0 32px; }
@media (max-width: 720px) { .zsm-wrap { padding: 0 18px; } }

.zsm-eyebrow {
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--zsm-mute);
  font-weight: 500;
}
.zsm-eyebrow--steel { color: var(--zsm-steel); }
.zsm-eyebrow--stamp { color: var(--zsm-stamp-red); }

.zsm-display {
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.06;
}

/* ---------- Top stripe (DMV form bar) ---------- */
.zsm-stripe {
  background: var(--zsm-steel-deep);
  color: var(--zsm-paper);
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.zsm-stripe__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 7px 0;
}
.zsm-stripe__id { font-weight: 600; }
.zsm-stripe__id::before {
  content: "FORM ZX-";
  color: rgba(250, 250, 246, 0.55);
  margin-right: 6px;
}

/* ---------- Header ---------- */
.zsm-nav {
  background: var(--zsm-paper);
  border-bottom: 1px solid var(--zsm-rule);
  position: sticky;
  top: 0;
  z-index: 30;
}
.zsm-nav__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  gap: 24px;
}
.zsm-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--zsm-ink);
}
.zsm-brand:hover { color: var(--zsm-steel-deep); }
.zsm-brand__logo {
  height: 44px;
  width: auto;
  display: block;
}
@media (max-width: 700px) {
  .zsm-brand__logo { height: 36px; }
}
.zsm-brand__mark {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  background: var(--zsm-steel-deep);
  color: var(--zsm-paper);
  font-family: var(--zsm-font-mono);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  position: relative;
  border-radius: 0;
}
.zsm-brand__mark::after {
  /* perforation tab on the right edge — subtle ticket feel */
  content: "";
  position: absolute;
  right: -3px;
  top: 4px; bottom: 4px;
  width: 2px;
  background-image: linear-gradient(to bottom, transparent 0 3px, var(--zsm-steel-deep) 3px 6px);
  background-size: 2px 6px;
}
.zsm-brand__name {
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 19px;
  letter-spacing: 0.005em;
  display: block;
  text-transform: uppercase;
}
.zsm-brand__name span { color: var(--zsm-steel); }
.zsm-brand__tag {
  font-family: var(--zsm-font-mono);
  font-size: 9.5px;
  letter-spacing: 0.22em;
  color: var(--zsm-mute);
  text-transform: uppercase;
  display: block;
  margin-top: 2px;
}

.zsm-nav__links { display: flex; gap: 28px; align-items: center; }
.zsm-nav__links a {
  color: var(--zsm-ink-soft);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.03em;
  position: relative;
  padding: 4px 0;
  text-transform: uppercase;
  font-family: var(--zsm-font-mono);
}
.zsm-nav__links a:hover, .zsm-nav__links a.is-active { color: var(--zsm-steel-deep); }
.zsm-nav__links a.is-active::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -2px;
  height: 2px; background: var(--zsm-stamp-red);
}

.zsm-nav__cta {
  border: 1px solid var(--zsm-steel-deep);
  background: var(--zsm-steel-deep);
  color: var(--zsm-paper);
  padding: 9px 16px;
  border-radius: 0;
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
  transition: background .12s, color .12s;
}
.zsm-nav__cta:hover { background: var(--zsm-stamp-red); border-color: var(--zsm-stamp-red); }

@media (max-width: 880px) { .zsm-nav__links { display: none; } }

/* ---------- Hero ---------- */
.zsm-hero {
  padding: 56px 0 36px;
  border-bottom: 1px solid var(--zsm-line);
  background: var(--zsm-paper);
  position: relative;
}
.zsm-hero__grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 56px;
  align-items: end;
}
.zsm-hero__copy { max-width: 560px; }

.zsm-hero__class {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: var(--zsm-paper-2);
  border: 1px solid var(--zsm-line);
  padding: 7px 14px;
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--zsm-ink);
  margin-bottom: 28px;
}
.zsm-hero__class strong { color: var(--zsm-stamp-red); font-weight: 700; }

.zsm-hero h1 {
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: clamp(40px, 5.6vw, 68px);
  line-height: 1.04;
  margin: 0 0 22px;
  color: var(--zsm-ink);
  letter-spacing: -0.005em;
  text-transform: none;
}
.zsm-hero h1 strong { color: var(--zsm-steel-deep); font-weight: 700; }
.zsm-hero__lede {
  font-size: 16px;
  line-height: 1.65;
  color: var(--zsm-ink-soft);
  margin: 0 0 32px;
  max-width: 540px;
}

/* DMV-form metric ledger: thin top + bottom rules, mono numbers, capsed labels */
.zsm-hero__ledger {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 2px solid var(--zsm-ink);
  border-bottom: 1px solid var(--zsm-rule);
  padding: 14px 0;
}
.zsm-hero__ledger-cell { padding: 0 18px; border-right: 1px solid var(--zsm-line); }
.zsm-hero__ledger-cell:last-child { border-right: none; }
.zsm-hero__ledger-cell:first-child { padding-left: 0; }
.zsm-hero__ledger-value {
  font-family: var(--zsm-font-mono);
  font-size: 26px;
  font-weight: 600;
  color: var(--zsm-steel-deep);
  font-feature-settings: "tnum";
}
.zsm-hero__ledger-label {
  font-family: var(--zsm-font-mono);
  font-size: 9.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zsm-mute);
  margin-top: 6px;
}

/* Inspection-sticker quad in hero — 4 stacked status-badges with stamp corners */
.zsm-hero__sticker {
  background: var(--zsm-form);
  border: 1px solid var(--zsm-rule);
  padding: 22px 22px 28px;
  position: relative;
}
.zsm-hero__sticker::before, .zsm-hero__sticker::after {
  content: "";
  position: absolute;
  width: 22px; height: 22px;
  border-color: var(--zsm-stamp-red);
  border-style: solid;
}
.zsm-hero__sticker::before {
  top: -1px; left: -1px;
  border-width: 2px 0 0 2px;
}
.zsm-hero__sticker::after {
  bottom: -1px; right: -1px;
  border-width: 0 2px 2px 0;
}
.zsm-hero__sticker-head {
  display: flex; justify-content: space-between; align-items: baseline;
  border-bottom: 1px dashed var(--zsm-line);
  padding-bottom: 12px; margin-bottom: 14px;
}
.zsm-hero__sticker-title {
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zsm-stamp-red);
  font-weight: 700;
}
.zsm-hero__sticker-issue {
  font-family: var(--zsm-font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  color: var(--zsm-mute);
}
.zsm-hero__sticker-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.zsm-hero__sticker-item {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--zsm-font-mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.zsm-hero__sticker-item span:first-child,
.zsm-hero__sticker-item a span:first-child { color: var(--zsm-ink); }
.zsm-hero__sticker-item span:last-child,
.zsm-hero__sticker-item a span:last-child { color: var(--zsm-mute); }
.zsm-hero__sticker-item a {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%;
  color: inherit;
  padding: 4px 0;
  border-bottom: 1px dashed transparent;
  transition: border-color .12s, color .12s;
}
.zsm-hero__sticker-item a:hover { border-bottom-color: var(--zsm-stamp-red); }
.zsm-hero__sticker-item a:hover span:first-child { color: var(--zsm-stamp-red); }

@media (max-width: 920px) {
  .zsm-hero__grid { grid-template-columns: 1fr; gap: 32px; }
  .zsm-hero__sticker { max-width: 460px; }
}

/* ---------- Status badges ---------- */
.zsm-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px 9px;
  border-radius: 0;
  border: 1px solid currentColor;
  background: var(--zsm-paper);
}
.zsm-badge::before {
  content: "";
  width: 6px; height: 6px;
  background: currentColor;
  display: inline-block;
}
.zsm-badge--star    { color: var(--zsm-pass);    background: var(--zsm-pass-bg);    border-color: var(--zsm-pass); }
.zsm-badge--walk    { color: var(--zsm-walk);    background: var(--zsm-walk-bg);    border-color: var(--zsm-walk); }
.zsm-badge--fast    { color: var(--zsm-fast);    background: var(--zsm-fast-bg);    border-color: var(--zsm-fast); }
.zsm-badge--renewal { color: var(--zsm-renewal); background: var(--zsm-renewal-bg); border-color: var(--zsm-renewal); }
.zsm-badge--test    { color: var(--zsm-test);    background: var(--zsm-test-bg);    border-color: var(--zsm-test); }
.zsm-badge--diesel  { color: var(--zsm-diesel);  background: var(--zsm-diesel-bg);  border-color: var(--zsm-diesel); }
.zsm-badge--smog    { color: var(--zsm-steel);   background: var(--zsm-fast-bg);    border-color: var(--zsm-steel); }
.zsm-badge--off     { color: var(--zsm-mute); background: transparent; border-style: dashed; }
.zsm-badge--off::before { background: transparent; border: 1px solid currentColor; }

/* ---------- Section ---------- */
.zsm-section { padding: 56px 0; }
.zsm-section__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
  flex-wrap: wrap;
  border-top: 1px solid var(--zsm-rule);
  padding-top: 22px;
}
.zsm-section__title {
  margin: 0;
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 28px;
  letter-spacing: -0.005em;
}
.zsm-section__num {
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zsm-stamp-red);
  font-weight: 700;
  display: block;
  margin-bottom: 6px;
}
.zsm-section__desc {
  margin: 0;
  color: var(--zsm-mute);
  max-width: 480px;
  font-size: 13.5px;
  line-height: 1.6;
}

/* ---------- States grid (DMV jurisdiction blocks) ---------- */
.zsm-states {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--zsm-line);
  border-left: 1px solid var(--zsm-line);
}
.zsm-state-card {
  background: var(--zsm-form);
  border-right: 1px solid var(--zsm-line);
  border-bottom: 1px solid var(--zsm-line);
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: inherit;
  position: relative;
  transition: background .12s;
}
.zsm-state-card:hover { background: var(--zsm-paper-2); }
.zsm-state-card:hover .zsm-state-card__abbr { color: var(--zsm-stamp-red); }
.zsm-state-card__abbr {
  font-family: var(--zsm-font-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zsm-steel);
  font-weight: 700;
  transition: color .12s;
}
.zsm-state-card__name {
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 18px;
  letter-spacing: -0.005em;
  line-height: 1.15;
}
.zsm-state-card__count {
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  color: var(--zsm-mute);
  letter-spacing: 0.06em;
  margin-top: 2px;
}
.zsm-state-card__strong {
  /* California / strong-emissions states get a red corner mark */
  position: absolute; top: 6px; right: 6px;
  width: 8px; height: 8px;
  background: var(--zsm-stamp-red);
}

@media (max-width: 1080px) { .zsm-states { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px)  { .zsm-states { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .zsm-states { grid-template-columns: 1fr; } }

/* ---------- Featured stations (inspection cards) ---------- */
.zsm-featured-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.zsm-featured-card {
  background: var(--zsm-form);
  border: 1px solid var(--zsm-rule);
  display: grid;
  grid-template-columns: 110px 1fr;
  color: inherit;
  transition: border-color .12s;
  position: relative;
}
.zsm-featured-card:hover { border-color: var(--zsm-steel-deep); }
.zsm-featured-card::before {
  /* perforation column between photo & body, like a real sticker */
  content: "";
  position: absolute; left: 110px; top: 8px; bottom: 8px;
  width: 1px;
  background-image: linear-gradient(to bottom, transparent 0 3px, var(--zsm-line) 3px 6px);
  background-size: 1px 6px;
}
.zsm-featured-card__id {
  position: absolute; top: 0; left: 0;
  background: var(--zsm-steel-deep);
  color: var(--zsm-paper);
  padding: 3px 6px;
  font-family: var(--zsm-font-mono);
  font-size: 9.5px;
  letter-spacing: 0.16em;
  z-index: 2;
  font-weight: 600;
}
.zsm-featured-card__photo {
  position: relative;
  background: var(--zsm-steel-deep);
  aspect-ratio: 1 / 1;
}
.zsm-featured-card__photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.35) contrast(1.05); }
.zsm-featured-card__body { padding: 18px 18px 20px; display: flex; flex-direction: column; gap: 8px; }
.zsm-featured-card__name {
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: -0.005em;
}
.zsm-featured-card__loc {
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--zsm-mute);
}
.zsm-featured-card__badges {
  display: flex; gap: 5px; flex-wrap: wrap; margin-top: 4px;
}

@media (max-width: 720px) { .zsm-featured-grid { grid-template-columns: 1fr; } }

/* ---------- Stories ---------- */
.zsm-stories {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.zsm-story-card { background: transparent; display: flex; flex-direction: column; gap: 12px; color: inherit; }
.zsm-story-card__cover {
  border: 1px solid var(--zsm-rule);
  overflow: hidden;
  aspect-ratio: 5 / 4;
  background: var(--zsm-paper-2);
}
.zsm-story-card__cover img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.35) contrast(1.05); }
.zsm-story-card__cat {
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zsm-stamp-red);
  font-weight: 700;
}
.zsm-story-card__title {
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.22;
  margin: 0;
  letter-spacing: -0.005em;
}
.zsm-story-card__excerpt { color: var(--zsm-mute); font-size: 13px; line-height: 1.6; margin: 0; }

@media (max-width: 880px) { .zsm-stories { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .zsm-stories { grid-template-columns: 1fr; } }

/* ---------- Listing page ---------- */
.zsm-listing-hero {
  padding: 44px 0 24px;
  border-bottom: 1px solid var(--zsm-rule);
}
.zsm-listing-hero h1 {
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: clamp(34px, 4.5vw, 46px);
  letter-spacing: -0.005em;
  line-height: 1.08;
  margin: 12px 0 14px;
}
.zsm-listing-hero p {
  color: var(--zsm-ink-soft);
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
  max-width: 660px;
}
.zsm-listing-hero__stats {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--zsm-line);
}
.zsm-listing-hero__stat { display: flex; gap: 10px; align-items: baseline; }
.zsm-listing-hero__stat strong {
  font-family: var(--zsm-font-mono); font-weight: 600; font-size: 22px;
  color: var(--zsm-steel-deep); font-feature-settings: "tnum";
}
.zsm-listing-hero__stat span {
  font-family: var(--zsm-font-mono); font-size: 10.5px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--zsm-mute);
}

.zsm-listing {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 40px;
  padding: 36px 0 64px;
}

.zsm-filter-rail h3 {
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zsm-stamp-red);
  margin: 0 0 12px;
  font-weight: 700;
}
.zsm-filter-rail__group { margin-bottom: 28px; }
.zsm-filter-rail__list { list-style: none; padding: 0; margin: 0; }
.zsm-filter-rail__list a {
  display: flex; justify-content: space-between; padding: 7px 0;
  border-bottom: 1px solid var(--zsm-line-soft);
  color: var(--zsm-ink-soft); font-size: 13.5px;
  font-family: var(--zsm-font-sans);
  transition: color .12s, padding .12s;
}
.zsm-filter-rail__list a:hover { color: var(--zsm-steel-deep); padding-left: 6px; }
.zsm-filter-rail__list a.is-active { color: var(--zsm-stamp-red); font-weight: 600; }
.zsm-filter-rail__list span:last-child {
  font-family: var(--zsm-font-mono); font-size: 11px; color: var(--zsm-mute);
}

.zsm-results__head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; margin-bottom: 12px;
  padding-bottom: 14px; border-bottom: 1px solid var(--zsm-rule);
}
.zsm-results__title { margin: 0; font-family: var(--zsm-font-cond); font-weight: 600; font-size: 26px; letter-spacing: -0.005em; }
.zsm-results__meta { font-family: var(--zsm-font-mono); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--zsm-mute); }

.zsm-results__chips { display: flex; gap: 6px; flex-wrap: wrap; margin: 14px 0 18px; }
.zsm-chip {
  display: inline-flex; gap: 6px; align-items: center;
  padding: 4px 10px; border-radius: 0;
  background: var(--zsm-paper-2); color: var(--zsm-steel-deep);
  border: 1px solid var(--zsm-line);
  font-size: 12px; font-family: var(--zsm-font-mono); letter-spacing: 0.04em;
}
.zsm-chip a { color: inherit; opacity: .7; }
.zsm-chip a:hover { opacity: 1; color: var(--zsm-stamp-red); }

.zsm-results__list {
  display: grid;
  border-top: 1px solid var(--zsm-line);
}
.zsm-result-row {
  display: grid;
  grid-template-columns: 90px 1fr auto;
  gap: 22px;
  border-bottom: 1px solid var(--zsm-line);
  padding: 16px 8px;
  align-items: center;
  color: inherit;
  background: transparent;
  transition: background .12s;
  position: relative;
}
.zsm-result-row:hover { background: var(--zsm-paper-2); }
.zsm-result-row__id {
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--zsm-mute);
  text-align: center;
  padding: 8px;
  background: var(--zsm-paper-2);
  border: 1px solid var(--zsm-line);
}
.zsm-result-row__id strong { display: block; font-size: 18px; color: var(--zsm-steel-deep); font-weight: 700; line-height: 1; }
.zsm-result-row__name {
  margin: 0;
  font-family: var(--zsm-font-cond);
  font-weight: 600; font-size: 19px; line-height: 1.18;
  letter-spacing: -0.005em;
}
.zsm-result-row__loc {
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--zsm-mute);
  margin: 4px 0 10px;
}
.zsm-result-row__badges { display: flex; gap: 5px; flex-wrap: wrap; }
.zsm-result-row__rating {
  display: flex; flex-direction: column; align-items: flex-end; gap: 4px;
  min-width: 110px;
  font-family: var(--zsm-font-mono);
}
.zsm-result-row__rating strong {
  font-family: var(--zsm-font-mono); font-weight: 700; font-size: 22px;
  color: var(--zsm-ink); font-feature-settings: "tnum";
}
.zsm-result-row__rating-meta {
  font-size: 10px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--zsm-mute);
}
.zsm-result-row__rating-empty {
  color: var(--zsm-mute);
  font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase;
}
.zsm-result-row--list-only {
  background-image: linear-gradient(135deg, transparent 0 14px, rgba(146, 152, 157, 0.05) 14px 28px, transparent 28px 42px);
}

.zsm-pagination { display: flex; gap: 4px; justify-content: center; margin-top: 36px; }
.zsm-pagination a, .zsm-pagination span {
  padding: 7px 12px; border-radius: 0;
  background: var(--zsm-form); border: 1px solid var(--zsm-line);
  font-family: var(--zsm-font-mono); font-size: 12px; color: var(--zsm-ink-soft);
}
.zsm-pagination a:hover { color: var(--zsm-steel-deep); border-color: var(--zsm-steel-deep); }
.zsm-pagination .is-active {
  background: var(--zsm-steel-deep); color: var(--zsm-paper); border-color: var(--zsm-steel-deep); font-weight: 700;
}

@media (max-width: 880px) {
  .zsm-listing { grid-template-columns: 1fr; gap: 24px; }
  .zsm-result-row { grid-template-columns: 60px 1fr; }
  .zsm-result-row__rating { display: none; }
  /* Push results above filters on mobile so users see hits first */
  .zsm-filter-rail { order: 2; }
  .zsm-results { order: 1; }
}

/* Collapsible filter rail (details/summary) */
.zsm-filter-rail__group {
  border-bottom: 1px solid var(--zsm-line-soft);
  padding-bottom: 12px;
  margin-bottom: 18px;
}
.zsm-filter-rail__heading {
  list-style: none;
  cursor: pointer;
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zsm-stamp-red);
  font-weight: 700;
  padding: 6px 24px 8px 0;
  position: relative;
}
.zsm-filter-rail__heading::-webkit-details-marker { display: none; }
.zsm-filter-rail__heading::after {
  content: "+";
  position: absolute;
  right: 4px; top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  color: var(--zsm-steel);
}
.zsm-filter-rail__group[open] > .zsm-filter-rail__heading::after { content: "−"; }
.zsm-filter-rail__group > .zsm-filter-rail__list {
  max-height: 280px;
  overflow-y: auto;
  margin-top: 6px;
}
/* Desktop: always show contents, hide the toggle indicator */
@media (min-width: 881px) {
  .zsm-filter-rail__group > *:not(summary) { display: block !important; }
  .zsm-filter-rail__heading { pointer-events: none; padding-right: 0; }
  .zsm-filter-rail__heading::after { display: none; }
  .zsm-filter-rail__group > .zsm-filter-rail__list {
    max-height: none;
    overflow-y: visible;
  }
}

/* "Limited evidence" listing-row helper links */
.zsm-result-row--list-only { color: inherit; }
.zsm-result-row__limited-actions {
  display: flex;
  gap: 14px;
  margin-top: 8px;
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.zsm-result-row__limited-actions a {
  color: var(--zsm-steel-deep);
  border-bottom: 1px solid var(--zsm-line);
  padding-bottom: 1px;
}
.zsm-result-row__limited-actions a:hover { color: var(--zsm-stamp-red); border-color: var(--zsm-stamp-red); }

/* "Limited evidence" badge variant */
.zsm-badge--off {
  color: var(--zsm-mute);
  background: var(--zsm-paper-2);
  border-color: var(--zsm-line);
}

/* 3-item pagination layout (Previous · Page X of Y · Next) */
.zsm-pagination {
  align-items: center;
  gap: 8px;
}
.zsm-pagination__nav {
  font-weight: 600;
  letter-spacing: 0.04em;
}
.zsm-pagination__nav--disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.zsm-pagination__counter {
  font-family: var(--zsm-font-mono);
  font-size: 12px;
  color: var(--zsm-mute);
  letter-spacing: 0.06em;
  background: transparent;
  border: none;
  padding: 7px 4px;
}

html, body { overflow-x: hidden; }

/* ---------- Detail page (inspection-report style) ---------- */
.zsm-detail-hero {
  padding: 36px 0 28px;
  border-bottom: 1px solid var(--zsm-rule);
  background: var(--zsm-paper);
}
.zsm-detail-hero__crumbs {
  font-family: var(--zsm-font-mono);
  font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--zsm-mute);
  margin-bottom: 18px;
}
.zsm-detail-hero__crumbs a { color: var(--zsm-steel); }
.zsm-detail-hero h1 {
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: clamp(32px, 4.5vw, 46px);
  line-height: 1.06;
  letter-spacing: -0.005em;
  margin: 0 0 12px;
}
.zsm-detail-hero__type {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--zsm-font-mono);
  font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--zsm-steel-deep);
  background: var(--zsm-paper-2);
  padding: 5px 10px;
  border: 1px solid var(--zsm-line);
}
.zsm-detail-hero__addr {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--zsm-ink-soft); font-size: 14px;
  margin-top: 14px;
}
.zsm-detail-hero__rating {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--zsm-font-mono); font-size: 12px;
  margin-top: 14px;
}
.zsm-detail-hero__rating strong { font-family: var(--zsm-font-mono); font-size: 18px; color: var(--zsm-steel-deep); font-weight: 700; }
.zsm-detail-hero__badges { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 18px; }
.zsm-detail-hero__actions { display: flex; gap: 8px; margin-top: 26px; flex-wrap: wrap; }

.zsm-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 18px; border-radius: 0;
  font-family: var(--zsm-font-mono);
  font-size: 11.5px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  border: 1px solid var(--zsm-steel-deep);
  background: var(--zsm-steel-deep); color: var(--zsm-paper);
  transition: background .12s, color .12s, border-color .12s;
}
.zsm-btn:hover { background: var(--zsm-stamp-red); border-color: var(--zsm-stamp-red); }
.zsm-btn--ghost { background: transparent; color: var(--zsm-steel-deep); }
.zsm-btn--ghost:hover { background: var(--zsm-steel-deep); color: var(--zsm-paper); }

.zsm-detail {
  padding: 32px 0 56px;
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 44px;
}
.zsm-detail__main { min-width: 0; }
.zsm-detail__sidebar {
  display: flex; flex-direction: column; gap: 16px;
  position: sticky;
  top: 24px;
  align-self: start;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
}
/* Sidebar scroll affordance — soft scrollbar that doesn't dominate */
.zsm-detail__sidebar::-webkit-scrollbar { width: 6px; }
.zsm-detail__sidebar::-webkit-scrollbar-thumb { background: var(--zsm-line); }

.zsm-detail-section {
  margin-bottom: 36px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--zsm-line);
}
.zsm-detail-section:last-child { border-bottom: none; }
.zsm-detail-section h2 {
  font-family: var(--zsm-font-cond); font-weight: 600;
  font-size: 22px; line-height: 1.18; margin: 0 0 16px;
  letter-spacing: -0.005em;
  display: flex; align-items: baseline; gap: 12px;
}
.zsm-detail-section h2::before {
  content: attr(data-line);
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--zsm-stamp-red);
  border: 1px solid var(--zsm-stamp-red);
  padding: 2px 7px;
  flex-shrink: 0;
  text-transform: uppercase;
}
.zsm-detail-section p { font-size: 15px; line-height: 1.7; color: var(--zsm-ink-soft); }

/* Inspection-report check rows */
.zsm-checklist {
  list-style: none; padding: 0; margin: 0;
  border-top: 2px solid var(--zsm-ink);
  border-bottom: 1px solid var(--zsm-rule);
}
.zsm-checklist__item {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--zsm-line);
  align-items: center;
}
.zsm-checklist__item:last-child { border-bottom: none; }
.zsm-checklist__item--off { color: var(--zsm-mute); }

.zsm-checklist__num {
  font-family: var(--zsm-font-mono);
  font-size: 11px; font-weight: 700;
  color: var(--zsm-mute);
  letter-spacing: 0.04em;
  font-feature-settings: "tnum";
}
.zsm-checklist__label {
  font-family: var(--zsm-font-sans);
  font-size: 15px;
  font-weight: 500;
  color: var(--zsm-ink);
}
.zsm-checklist__item--off .zsm-checklist__label { color: var(--zsm-mute); }
.zsm-checklist__meta {
  font-family: var(--zsm-font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.zsm-checklist__status--yes { color: var(--zsm-pass); font-weight: 700; }
.zsm-checklist__status--no { color: var(--zsm-mute); }
.zsm-checklist__source { color: var(--zsm-steel); }

/* Evidence quote — clinical, no italic, more like a transcript line */
.zsm-evidence { display: flex; flex-direction: column; gap: 14px; }
.zsm-evidence-quote {
  background: var(--zsm-form);
  border: 1px solid var(--zsm-line);
  border-left: 3px solid var(--zsm-steel);
  padding: 14px 16px 12px;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--zsm-ink);
  font-family: var(--zsm-font-sans);
  margin: 0;
}
.zsm-evidence__source {
  font-family: var(--zsm-font-mono);
  font-size: 9.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zsm-mute);
  margin-top: 8px;
  display: block;
}

/* Hours */
.zsm-hours {
  display: grid; grid-template-columns: 90px 1fr; row-gap: 4px; column-gap: 18px;
  font-family: var(--zsm-font-mono); font-size: 12px; color: var(--zsm-ink-soft);
}
.zsm-hours dt { color: var(--zsm-mute); letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; }
.zsm-hours dd { margin: 0; }

/* Sidebar cards */
.zsm-side-card {
  background: var(--zsm-form);
  border: 1px solid var(--zsm-rule);
  padding: 18px 18px 20px;
  position: relative;
}
.zsm-side-card::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0;
  height: 4px; background: var(--zsm-steel-deep);
}
.zsm-side-card h3 {
  margin: 0 0 12px;
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--zsm-stamp-red);
  font-weight: 700;
}
.zsm-side-card__row {
  display: flex; flex-direction: column; gap: 4px; padding: 9px 0;
  border-bottom: 1px dashed var(--zsm-line);
}
.zsm-side-card__row:last-child { border-bottom: none; }
.zsm-side-card__label {
  font-family: var(--zsm-font-mono);
  font-size: 9.5px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--zsm-mute); font-weight: 500;
}
.zsm-side-card__value { font-size: 14px; color: var(--zsm-ink); }
.zsm-side-card__value a { color: var(--zsm-steel-deep); }
.zsm-side-card__value a:hover { color: var(--zsm-stamp-red); }

.zsm-linked-story {
  background: var(--zsm-form);
  border: 1px solid var(--zsm-rule);
  padding: 18px 18px 20px;
  display: flex; flex-direction: column; gap: 12px;
  position: relative;
}
.zsm-linked-story::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0;
  height: 4px; background: var(--zsm-stamp-red);
}
.zsm-linked-story__cover {
  aspect-ratio: 16/9;
  border: 1px solid var(--zsm-line);
  overflow: hidden;
}
.zsm-linked-story__cover img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.35) contrast(1.05); }
.zsm-linked-story__cat { font-family: var(--zsm-font-mono); font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--zsm-stamp-red); font-weight: 700; }
.zsm-linked-story__title { font-family: var(--zsm-font-cond); font-weight: 600; font-size: 18px; margin: 0; line-height: 1.18; letter-spacing: -0.005em; }
.zsm-linked-story__excerpt { color: var(--zsm-ink-soft); font-size: 13px; line-height: 1.55; margin: 0; }
.zsm-linked-story__cta { font-family: var(--zsm-font-mono); font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--zsm-steel-deep); font-weight: 700; }

@media (max-width: 960px) {
  .zsm-detail { grid-template-columns: 1fr; }
  .zsm-detail__sidebar {
    order: -1;
    position: static;
    max-height: none;
    overflow: visible;
  }
}

/* ---------- Article ---------- */
.zsm-article { max-width: 720px; margin: 56px auto; padding: 0 24px; }
.zsm-article__cat { font-family: var(--zsm-font-mono); font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--zsm-stamp-red); font-weight: 700; }
.zsm-article h1 {
  font-family: var(--zsm-font-cond);
  font-weight: 600; font-size: clamp(34px, 4.5vw, 46px);
  line-height: 1.06; margin: 14px 0 22px;
  letter-spacing: -0.005em;
}
.zsm-article__meta {
  font-family: var(--zsm-font-mono); font-size: 11.5px;
  color: var(--zsm-mute); letter-spacing: 0.06em;
}
.zsm-article__cover {
  aspect-ratio: 16/9; border: 1px solid var(--zsm-rule); overflow: hidden;
  margin: 32px 0 36px;
}
.zsm-article__cover img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.35) contrast(1.05); }
.zsm-article__lead {
  font-size: 18px; line-height: 1.55; color: var(--zsm-ink); font-family: var(--zsm-font-sans);
  font-weight: 500;
  margin-bottom: 28px;
}
.zsm-article__body { font-size: 16px; line-height: 1.78; color: var(--zsm-ink-soft); }
.zsm-article__body h2, .zsm-article__body h3 {
  font-family: var(--zsm-font-cond); font-weight: 600;
  letter-spacing: -0.005em; color: var(--zsm-ink);
  margin: 36px 0 14px;
}
.zsm-article__body h2 { font-size: 24px; }
.zsm-article__body h3 { font-size: 20px; }
.zsm-article__body p { margin: 0 0 18px; }
.zsm-article__body ul, .zsm-article__body ol { padding-left: 22px; margin: 0 0 18px; }
.zsm-article__body li { margin-bottom: 6px; }
.zsm-article__body a { color: var(--zsm-steel-deep); border-bottom: 1px solid currentColor; }
.zsm-article__promo {
  border: 1px solid var(--zsm-rule);
  border-left: 3px solid var(--zsm-stamp-red);
  padding: 18px;
  margin: 32px 0;
  background: var(--zsm-paper-2);
}

/* ---------- Footer ---------- */
.zsm-footer {
  background: var(--zsm-steel-deep);
  color: rgba(250, 250, 246, 0.78);
  padding: 48px 0 28px;
  margin-top: 80px;
  border-top: 4px solid var(--zsm-stamp-red);
}
.zsm-footer__grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 44px;
  align-items: start;
}
.zsm-footer__brand { display: flex; flex-direction: column; gap: 10px; max-width: 380px; }
.zsm-footer__brand-name {
  font-family: var(--zsm-font-cond); font-size: 24px; font-weight: 600; color: var(--zsm-paper);
  letter-spacing: 0.005em; text-transform: uppercase;
}
.zsm-footer__brand-tag {
  font-family: var(--zsm-font-mono); font-size: 10.5px; letter-spacing: 0.22em;
  color: rgba(250, 250, 246, 0.5); text-transform: uppercase;
}
.zsm-footer__copy { font-size: 13.5px; line-height: 1.6; }
.zsm-footer h4 {
  margin: 0 0 14px;
  font-family: var(--zsm-font-mono); font-size: 10.5px; letter-spacing: 0.22em;
  text-transform: uppercase; color: rgba(250, 250, 246, 0.5);
  font-weight: 700;
}
.zsm-footer__links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 7px; }
.zsm-footer__links a { color: rgba(250, 250, 246, 0.86); font-size: 13.5px; }
.zsm-footer__links a:hover { color: #f0a5a5; }
.zsm-footer__legal {
  border-top: 1px solid rgba(250, 250, 246, 0.12);
  margin-top: 36px;
  padding-top: 18px;
  display: flex; gap: 18px; flex-wrap: wrap; justify-content: space-between;
  font-family: var(--zsm-font-mono); font-size: 10.5px; letter-spacing: 0.06em;
  color: rgba(250, 250, 246, 0.5);
}
.zsm-footer__legal a { color: rgba(250, 250, 246, 0.86); }

@media (max-width: 760px) { .zsm-footer__grid { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- Misc ---------- */
.zsm-empty {
  text-align: center; padding: 56px 24px; color: var(--zsm-mute);
  background: var(--zsm-form); border: 1px dashed var(--zsm-rule);
}
.zsm-empty h2 { font-family: var(--zsm-font-cond); font-weight: 600; color: var(--zsm-ink); margin: 0 0 8px; }

.zsm-static {
  max-width: 720px;
  margin: 56px auto 96px;
  padding: 0 24px;
}
.zsm-static h1 {
  font-family: var(--zsm-font-cond);
  font-weight: 600; font-size: clamp(34px, 4.5vw, 48px);
  margin: 0 0 22px; letter-spacing: -0.005em; line-height: 1.06;
}
.zsm-static p { font-size: 15.5px; line-height: 1.7; color: var(--zsm-ink-soft); }
.zsm-static a { color: var(--zsm-steel-deep); border-bottom: 1px solid var(--zsm-line); }

/* -------- Plan A — Inspection Ticket + consolidated Go Panel -------- */

/* Compact hero — strips out the giant action button row */
.zsm-detail-hero--compact { padding-bottom: 26px; }

/* ============== INSPECTION TICKET ============== */
.zsm-ticket {
  position: relative;
  margin: 22px 0 32px;
  background: var(--zsm-form);
  border: 2px solid var(--zsm-ink);
  /* perforated bottom edge — gives the printed-ticket feel */
  background-image:
    radial-gradient(circle at 8px 100%, var(--zsm-paper) 4px, transparent 4.5px),
    radial-gradient(circle at 8px 100%, var(--zsm-paper) 4px, transparent 4.5px);
  background-size: 16px 8px;
  background-repeat: repeat-x;
  background-position: bottom;
}
.zsm-ticket::before,
.zsm-ticket::after {
  content: "";
  position: absolute;
  top: -9px;
  width: 16px; height: 16px;
  background: var(--zsm-paper);
  border: 2px solid var(--zsm-ink);
  border-radius: 50%;
}
.zsm-ticket::before { left: -10px; }
.zsm-ticket::after  { right: -10px; }

.zsm-ticket__head {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 12px 22px;
  border-bottom: 1px dashed var(--zsm-ink);
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zsm-ink);
  background: var(--zsm-paper-2);
}
.zsm-ticket__series { color: var(--zsm-stamp-red); font-weight: 700; }
.zsm-ticket__title { font-weight: 700; font-size: 12px; }
.zsm-ticket__date { color: var(--zsm-mute); }

/* Status lights row */
.zsm-ticket__lights {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-bottom: 1px dashed var(--zsm-ink);
}
.zsm-light {
  padding: 18px 16px;
  text-align: center;
  border-right: 1px dashed var(--zsm-line);
}
.zsm-light:last-child { border-right: none; }
.zsm-light__dot {
  display: block;
  width: 18px; height: 18px;
  border-radius: 50%;
  margin: 0 auto 8px;
  background: var(--zsm-line);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.15), 0 0 0 4px transparent;
}
.zsm-light__label {
  display: block;
  font-family: var(--zsm-font-mono);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.15em;
  color: var(--zsm-ink);
  margin-bottom: 4px;
}
.zsm-light__caption {
  display: block;
  font-size: 11px;
  color: var(--zsm-mute);
  line-height: 1.3;
}
.zsm-light--site .zsm-light__dot {
  background: var(--zsm-pass);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.2), 0 0 0 4px var(--zsm-pass-bg);
}
.zsm-light--site .zsm-light__caption { color: var(--zsm-pass); font-weight: 600; }
.zsm-light--maps .zsm-light__dot {
  background: var(--zsm-walk);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.2), 0 0 0 4px var(--zsm-walk-bg);
}
.zsm-light--maps .zsm-light__caption { color: var(--zsm-walk); font-weight: 600; }
.zsm-light--unknown .zsm-light__dot {
  background: var(--zsm-paper-2);
  box-shadow: inset 0 0 0 1px var(--zsm-line), 0 0 0 4px transparent;
}

/* Body — call block + bring block side by side */
.zsm-ticket__body {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 0;
}
.zsm-ticket__call {
  padding: 22px;
  border-right: 1px dashed var(--zsm-ink);
  display: flex; flex-direction: column; gap: 14px;
}
.zsm-ticket__phone {
  display: block;
  background: var(--zsm-ink);
  color: var(--zsm-paper);
  padding: 14px 18px;
  border: 2px solid var(--zsm-ink);
  font-family: var(--zsm-font-mono);
  text-align: left;
  transition: background .12s;
}
.zsm-ticket__phone:hover { background: var(--zsm-stamp-red); border-color: var(--zsm-stamp-red); color: var(--zsm-paper); }
.zsm-ticket__phone--missing {
  background: var(--zsm-paper-2);
  color: var(--zsm-mute);
  border-color: var(--zsm-line);
}
.zsm-ticket__phone-kicker {
  display: block;
  font-size: 10px;
  letter-spacing: 0.22em;
  opacity: 0.7;
  margin-bottom: 4px;
}
.zsm-ticket__phone-num {
  display: block;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-feature-settings: "tnum";
}
.zsm-ticket__links {
  display: flex; gap: 14px; flex-wrap: wrap;
  font-family: var(--zsm-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.zsm-ticket__links a {
  color: var(--zsm-steel-deep);
  border-bottom: 1px solid var(--zsm-line);
  padding-bottom: 1px;
}
.zsm-ticket__links a:hover { color: var(--zsm-stamp-red); border-color: var(--zsm-stamp-red); }
.zsm-ticket__bring {
  padding: 22px;
  background: var(--zsm-paper-2);
}
.zsm-ticket__bring-head {
  display: block;
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.22em;
  color: var(--zsm-stamp-red);
  text-transform: uppercase;
  margin-bottom: 10px;
  font-weight: 700;
}
.zsm-ticket__bring ul {
  list-style: none; padding: 0; margin: 0;
}
.zsm-ticket__bring li {
  position: relative;
  padding: 6px 0 6px 22px;
  font-size: 13.5px;
  color: var(--zsm-ink);
  border-bottom: 1px dotted var(--zsm-line);
}
.zsm-ticket__bring li:last-child { border-bottom: none; }
.zsm-ticket__bring li::before {
  content: "□";
  position: absolute; left: 0; top: 6px;
  font-family: var(--zsm-font-mono);
  font-weight: 700;
  color: var(--zsm-steel);
}
.zsm-ticket__limited {
  margin: 0;
  padding: 12px 22px;
  background: var(--zsm-paper-2);
  border-top: 1px dashed var(--zsm-ink);
  font-family: var(--zsm-font-mono);
  font-size: 12px;
  color: var(--zsm-stamp-red);
  letter-spacing: 0.04em;
}

/* ============== DMV-renewal context list (2-col on desktop) ============== */
.zsm-renewal-context__list {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
}
.zsm-renewal-context__list li {
  position: relative;
  padding: 10px 14px 10px 36px;
  background: var(--zsm-paper-2);
  border-left: 3px solid var(--zsm-steel);
  font-size: 13.5px;
  color: var(--zsm-ink);
  line-height: 1.5;
}
.zsm-renewal-context__list li::before {
  content: "→";
  position: absolute; left: 14px; top: 10px;
  font-family: var(--zsm-font-mono);
  font-weight: 700;
  color: var(--zsm-steel);
}
@media (max-width: 700px) {
  .zsm-renewal-context__list { grid-template-columns: 1fr; }
}

/* ============== MAP grid (map left, storefront photo + actions right) ============== */
.zsm-map-grid {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 20px;
  margin-top: 12px;
  align-items: start;
}
.zsm-map {
  width: 100%;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--zsm-rule);
  background: var(--zsm-paper-2);
  overflow: hidden;
}
.zsm-map iframe { width: 100%; height: 100%; border: 0; display: block; }

.zsm-map-side {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.zsm-map-side__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--zsm-rule);
  background: var(--zsm-paper-2);
  overflow: hidden;
}
.zsm-map-side__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(0.4) contrast(1.05);
  display: block;
}
/* Placeholder variant — no grayscale, no contrast bump (the SVG already
   uses the brand palette and would be muddied by photo filters). */
.zsm-map-side__photo--placeholder img {
  filter: none;
  object-fit: contain;
  background: var(--zsm-paper-2);
}
.zsm-map-side__photo-tag {
  position: absolute;
  top: 8px; left: 8px;
  font-family: var(--zsm-font-mono);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--zsm-paper);
  background: var(--zsm-ink);
  padding: 3px 7px;
}

.zsm-map-meta {
  display: flex; flex-direction: column; gap: 12px;
  padding: 14px 16px;
  background: var(--zsm-paper-2);
  border: 1px solid var(--zsm-line);
}
.zsm-map-meta__addr {
  font-family: var(--zsm-font-mono);
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--zsm-ink);
  margin: 0 0 2px;
}
.zsm-map-meta__dir,
.zsm-map-meta__alt {
  display: inline-block;
  font-family: var(--zsm-font-mono);
  font-size: 11.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--zsm-steel-deep);
  border-bottom: 1px solid var(--zsm-line);
  align-self: flex-start;
  padding-bottom: 1px;
}
.zsm-map-meta__dir:hover,
.zsm-map-meta__alt:hover { color: var(--zsm-stamp-red); border-color: var(--zsm-stamp-red); }
.zsm-map-meta__phone {
  font-family: var(--zsm-font-mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--zsm-steel-deep);
  letter-spacing: 0.02em;
  font-feature-settings: "tnum";
  border-top: 1px dashed var(--zsm-line);
  padding-top: 12px;
}
.zsm-map-meta__phone:hover { color: var(--zsm-stamp-red); }

/* ============== EXPLAINER list (numbered, single-column) ============== */
.zsm-explainer-list {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  counter-reset: none;
}
.zsm-explainer-list li {
  display: grid;
  grid-template-columns: 50px 1fr;
  grid-template-areas: "num title" "num body";
  column-gap: 18px;
  row-gap: 6px;
  padding: 16px 0;
  border-bottom: 1px solid var(--zsm-line-soft);
}
.zsm-explainer-list li:last-child { border-bottom: none; }
.zsm-explainer-list__num {
  grid-area: num;
  font-family: var(--zsm-font-mono);
  font-weight: 700;
  font-size: 22px;
  color: var(--zsm-stamp-red);
  letter-spacing: -0.02em;
  line-height: 1;
  padding-top: 4px;
}
.zsm-explainer-list h3 { grid-area: title; }
.zsm-explainer-list p { grid-area: body; }
.zsm-explainer-list h3 {
  margin: 0 0 6px;
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 16px;
  color: var(--zsm-steel-deep);
}
.zsm-explainer-list p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--zsm-ink-soft);
}

.zsm-matrix-details {
  margin-top: 22px;
  border-top: 1px solid var(--zsm-line);
  padding-top: 8px;
}
.zsm-matrix-details > summary {
  cursor: pointer;
  font-family: var(--zsm-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zsm-stamp-red);
  font-weight: 700;
  padding: 8px 0;
  list-style: none;
}
.zsm-matrix-details > summary::-webkit-details-marker { display: none; }

/* ============== FIELD NOTES — combined evidence + reviews ============== */
.zsm-fieldnotes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 14px;
}
.zsm-fieldnote {
  margin: 0;
  padding: 14px 16px 14px 18px;
  background: var(--zsm-form);
  border-left: 4px solid var(--zsm-steel);
}
.zsm-fieldnote--review { border-left-color: var(--zsm-walk); }
.zsm-fieldnote__tag {
  display: inline-block;
  font-family: var(--zsm-font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zsm-mute);
  margin-bottom: 6px;
  font-weight: 700;
}
.zsm-fieldnote--site .zsm-fieldnote__tag { color: var(--zsm-steel); }
.zsm-fieldnote--review .zsm-fieldnote__tag { color: var(--zsm-walk); }
.zsm-fieldnote p {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--zsm-ink);
  font-style: italic;
}

/* ============== GO PANEL — combined Before-you-drive-over ============== */
.zsm-go-panel {
  margin: 36px 0;
  background: var(--zsm-form);
  border: 1px solid var(--zsm-rule);
  border-top: 4px solid var(--zsm-stamp-red);
}
.zsm-go-panel__head {
  padding: 22px 26px 8px;
  border-bottom: 1px dashed var(--zsm-line);
}
.zsm-go-panel__kicker {
  display: inline-block;
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.22em;
  color: var(--zsm-stamp-red);
  font-weight: 700;
  margin-bottom: 6px;
}
.zsm-go-panel__head h2 {
  margin: 0 0 10px;
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 28px;
  letter-spacing: -0.005em;
  color: var(--zsm-steel-deep);
}
.zsm-go-panel__head h2::before { display: none; } /* override default LINE prefix */
.zsm-go-panel__head p {
  margin: 0;
  font-size: 14.5px;
  color: var(--zsm-ink-soft);
  line-height: 1.6;
}
.zsm-go-panel__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.zsm-go-block {
  padding: 22px 26px;
  border-right: 1px dashed var(--zsm-line);
  border-bottom: 1px dashed var(--zsm-line);
}
.zsm-go-block:nth-child(2n) { border-right: none; }
.zsm-go-block:nth-last-child(-n+2) { border-bottom: none; }
.zsm-go-block h3 {
  margin: 0 0 12px;
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 16px;
  color: var(--zsm-stamp-red);
  letter-spacing: 0.005em;
}
.zsm-go-block .zsm-doc-list,
.zsm-go-block .zsm-skip-list { margin-top: 0; }
.zsm-go-block > p {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--zsm-ink-soft);
}

/* ============== SHARED smaller bits ============== */
.zsm-description-copy {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--zsm-ink-soft);
}

.zsm-doc-list,
.zsm-skip-list {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}
.zsm-doc-list li {
  position: relative;
  padding: 7px 0 7px 22px;
  border-bottom: 1px dashed var(--zsm-line);
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--zsm-ink);
}
.zsm-doc-list li:last-child { border-bottom: none; }
.zsm-doc-list li::before {
  content: "□";
  position: absolute; left: 0; top: 7px;
  color: var(--zsm-steel);
  font-family: var(--zsm-font-mono);
  font-weight: 700;
}
.zsm-skip-list li {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--zsm-line-soft);
  align-items: baseline;
}
.zsm-skip-list li:last-child { border-bottom: none; }
.zsm-skip-list__tag {
  font-family: var(--zsm-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--zsm-steel-deep);
}
.zsm-skip-list__copy {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--zsm-ink-soft);
}

/* Areas tag */
.zsm-areas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.zsm-area-tag {
  font-family: var(--zsm-font-mono);
  font-size: 11.5px;
  letter-spacing: 0.04em;
  padding: 5px 12px;
  background: var(--zsm-fast-bg);
  color: var(--zsm-steel-deep);
  border: 1px solid var(--zsm-line);
}

/* FAQ accordion (used inside go-panel block 4) */
.zsm-faq {
  margin-top: 0;
  border-top: 1px solid var(--zsm-line);
}
.zsm-faq__item {
  border-bottom: 1px solid var(--zsm-line);
}
.zsm-faq__item summary {
  list-style: none;
  cursor: pointer;
  padding: 12px 28px 12px 0;
  font-family: var(--zsm-font-cond);
  font-weight: 600;
  font-size: 14px;
  color: var(--zsm-ink);
  position: relative;
}
.zsm-faq__item summary::-webkit-details-marker { display: none; }
.zsm-faq__item summary::after {
  content: "+";
  position: absolute;
  right: 4px; top: 50%;
  transform: translateY(-50%);
  font-family: var(--zsm-font-mono);
  font-size: 16px;
  color: var(--zsm-steel);
}
.zsm-faq__item[open] summary::after { content: "−"; }
.zsm-faq__item p {
  margin: 0 0 14px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--zsm-ink-soft);
}

/* Sidebar — call-questions card */
.zsm-side-card--questions { border-left: 3px solid var(--zsm-stamp-red); }
.zsm-call-questions {
  list-style: none;
  margin: 0; padding: 0;
}
.zsm-call-questions li {
  position: relative;
  padding: 9px 0 9px 22px;
  border-bottom: 1px dashed var(--zsm-line-soft);
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--zsm-ink);
}
.zsm-call-questions li:last-child { border-bottom: none; }
.zsm-call-questions li::before {
  content: "?";
  position: absolute; left: 4px; top: 9px;
  font-family: var(--zsm-font-mono);
  font-weight: 700;
  color: var(--zsm-stamp-red);
}

.zsm-limited-detail { display: none; } /* legacy class, replaced by ticket__limited */

/* Mobile stacking */
@media (max-width: 880px) {
  .zsm-ticket__lights { grid-template-columns: repeat(2, 1fr); }
  .zsm-light:nth-child(2n) { border-right: none; }
  .zsm-light:nth-child(-n+2) { border-bottom: 1px dashed var(--zsm-line); }
  .zsm-ticket__body { grid-template-columns: 1fr; }
  .zsm-ticket__call { border-right: none; border-bottom: 1px dashed var(--zsm-ink); }
  .zsm-map-grid { grid-template-columns: 1fr; }
  .zsm-fieldnotes { grid-template-columns: 1fr; }
  .zsm-go-panel__grid { grid-template-columns: 1fr; }
  .zsm-go-block { border-right: none; }
  .zsm-go-block:nth-last-child(-n+2) { border-bottom: 1px dashed var(--zsm-line); }
  .zsm-go-block:last-child { border-bottom: none; }
  .zsm-skip-list li { grid-template-columns: 1fr; gap: 4px; }
}

/* -------- Legacy round-1 selectors removed in plan-A restructure -------- */
.zsm-static a:hover { color: var(--zsm-stamp-red); }
