/* estetica.ae · built on the Estetica Design System (estetica-design-system@1.0.0).
   Tokens below are copied verbatim from tokens/*.css; fonts are self-hosted
   (same Fraunces opsz+wght and Inter families as tokens/fonts.css). */

/* ---------- fonts ---------- */
@font-face { font-family: 'Fraunces'; font-style: normal; font-display: swap; font-weight: 100 900; src: url('/assets/fonts/fraunces-latin-opsz-normal.woff2') format('woff2-variations'), url('/assets/fonts/fraunces-latin-opsz-normal.woff2') format('woff2'); }
@font-face { font-family: 'Fraunces'; font-style: italic; font-display: swap; font-weight: 100 900; src: url('/assets/fonts/fraunces-latin-opsz-italic.woff2') format('woff2-variations'), url('/assets/fonts/fraunces-latin-opsz-italic.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-display: swap; font-weight: 100 900; src: url('/assets/fonts/inter-latin-wght-normal.woff2') format('woff2-variations'), url('/assets/fonts/inter-latin-wght-normal.woff2') format('woff2'); }

/* ---------- tokens/colors.css ---------- */
:root {
  --paper: #fdfaf3;
  --paper-warm: #f6efe1;
  --paper-tan: #ebe1cd;
  --tan-soft: #f0e8d8;
  --tan: #c8a986;
  --tan-deep: #a8825d;
  --ink: #1a1814;
  --ink-70: rgba(26,24,20,0.72);
  --ink-50: rgba(26,24,20,0.52);
  --ink-30: rgba(26,24,20,0.30);
  --ink-15: rgba(26,24,20,0.15);
  --ink-08: rgba(26,24,20,0.08);
  --on-ink: #fdfaf3;
  --on-ink-70: rgba(253,250,243,0.72);
  --on-ink-50: rgba(253,250,243,0.55);
  --on-ink-18: rgba(253,250,243,0.18);
  --on-ink-10: rgba(253,250,243,0.10);
  --surface: var(--paper);
  --surface-alt: var(--paper-warm);
  --surface-callout: var(--tan-soft);
  --text: var(--ink);
  --text-muted: var(--ink-50);
  --accent: var(--tan-deep);
  --rule-strong: var(--ink);
  --rule-soft: var(--ink-15);
  --rule-hair: var(--ink-08);
  --selection-bg: var(--tan-soft);
}
:root.screen, .screen, [data-surface="screen"] { --paper: #ffffff; --paper-warm: #fdfaf3; }
.on-ink, [data-surface="ink"] {
  --surface: var(--ink); --text: var(--on-ink); --text-muted: var(--on-ink-50);
  --rule-strong: var(--on-ink); --rule-soft: var(--on-ink-18); --rule-hair: var(--on-ink-10);
  --accent: var(--tan);
}

/* ---------- tokens/fonts.css ---------- */
:root {
  --font-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
}

/* ---------- tokens/typography.css ---------- */
:root {
  --fs-display-1: 96px; --lh-display-1: 0.95;
  --fs-display-2: 64px; --lh-display-2: 0.95;
  --fs-heading-1: 36px; --lh-heading-1: 1.05;
  --fs-heading-2: 24px; --lh-heading-2: 1.15;
  --fs-body-serif: 18px; --lh-body-serif: 1.55;
  --fs-lede: 26px; --lh-lede: 1.45;
  --fs-price: 21px;
  --fs-label: 11px;
  --fs-micro: 11px;
  --fs-body-small: 13px; --lh-body-small: 1.55;
  --track-display: -0.03em;
  --track-display-x: -0.045em;
  --track-heading: -0.01em;
  --track-caps-kicker: 0.42em;
  --track-caps-micro: 0.28em;
  --track-caps-nav: 0.32em;
  --weight-display: 400;
  --weight-heading: 500;
  --weight-caps: 600;
}
/* Screen scaling: the print scale is the ceiling; phones get smaller display sizes. */
@media (max-width: 720px) {
  :root { --fs-display-1: 52px; --fs-display-2: 42px; --fs-heading-1: 30px; --fs-lede: 21px; --fs-body-serif: 17px; }
}
.display-1 { font-family: var(--font-serif); font-weight: 400; font-size: var(--fs-display-1); line-height: var(--lh-display-1); letter-spacing: var(--track-display); }
.display-2 { font-family: var(--font-serif); font-weight: 400; font-size: var(--fs-display-2); line-height: var(--lh-display-2); letter-spacing: var(--track-display); }
.heading-1 { font-family: var(--font-serif); font-weight: 500; font-size: var(--fs-heading-1); line-height: var(--lh-heading-1); letter-spacing: var(--track-heading); }
.heading-2 { font-family: var(--font-serif); font-weight: 500; font-size: var(--fs-heading-2); line-height: var(--lh-heading-2); letter-spacing: var(--track-heading); }
.lede { font-family: var(--font-serif); font-weight: 400; font-size: var(--fs-lede); line-height: var(--lh-lede); letter-spacing: -0.005em; text-wrap: pretty; }
.lede em { font-style: italic; color: var(--accent); }
.body-serif { font-family: var(--font-serif); font-weight: 400; font-size: var(--fs-body-serif); line-height: var(--lh-body-serif); letter-spacing: -0.005em; text-wrap: pretty; }
.body-serif b { color: var(--text); font-weight: 500; }
.body-small { font-family: var(--font-sans); font-weight: 400; font-size: var(--fs-body-small); line-height: var(--lh-body-small); letter-spacing: 0.04em; color: var(--text-muted); }
.price-num { overflow-wrap: anywhere; font-family: var(--font-serif); font-weight: 500; font-size: var(--fs-price); letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.label-caps { font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-label); letter-spacing: var(--track-caps-kicker); text-transform: uppercase; color: var(--accent); }
.micro-caps { font-family: var(--font-sans); font-weight: 500; font-size: var(--fs-micro); letter-spacing: var(--track-caps-micro); text-transform: uppercase; color: var(--text-muted); }
.serif { font-family: var(--font-serif); }
.sans { font-family: var(--font-sans); }
.mono { font-family: var(--font-mono); }
.num { font-variant-numeric: tabular-nums; }
.dot { color: var(--accent); }
em.accent, .accent-text { color: var(--accent); font-style: italic; }

/* ---------- tokens/spacing.css ---------- */
:root {
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px;
  --space-6: 36px; --space-7: 48px; --space-8: 56px; --space-9: 96px;
  --shell-pad: 56px; --shell-pad-mobile: 24px; --shell-max: 1320px; --section-gap: 96px;
  --rule-w: 1px; --radius-none: 0; --radius-pill: 999px;
  --ease: cubic-bezier(.2,.7,.2,1); --dur-fast: .15s; --dur: .2s; --dur-slow: .5s;
}
.page-shell { width: 100%; max-width: var(--shell-max); margin: 0 auto; padding: 0 var(--shell-pad); }
@media (max-width: 720px) { .page-shell { padding: 0 var(--shell-pad-mobile); } :root { --section-gap: 64px; } }
.rule { height: 1px; background: var(--rule-soft); border: 0; }
.rule-strong { height: 1px; background: var(--rule-strong); border: 0; }
.rule-hair { height: 1px; background: var(--rule-hair); border: 0; }

/* ---------- tokens/base.css ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--surface); color: var(--text); font-family: var(--font-sans); -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; font-feature-settings: 'tnum' 1; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
::selection { background: var(--selection-bg); color: var(--ink); }
.arr { display: inline-block; transition: transform var(--dur) var(--ease); }
:hover > .arr, .arr-host:hover .arr { transform: translateX(4px); }

/* ================= Components (from the DS bundle's inline styles) ================= */

/* Button: ghost (default) · primary. Pill, Inter caps, trailing arrow. */
.btn { display: inline-flex; align-items: center; gap: 12px; padding: 14px 22px; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.34em; text-transform: uppercase; font-weight: 600; border: 1px solid var(--ink); border-radius: var(--radius-pill, 999px); background: var(--paper); color: var(--ink); cursor: pointer; transition: background .15s, color .15s, border-color .15s; text-decoration: none; white-space: nowrap; }
.btn:hover { background: var(--ink); color: var(--paper); }
.btn.primary { background: var(--ink); color: var(--paper); }
.btn.primary:hover { background: var(--tan-deep); border-color: var(--tan-deep); }
.btn .arr { transition: transform .2s cubic-bezier(.2,.7,.2,1); }
.btn:hover .arr { transform: translateX(4px); }
.actions { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }

/* Chip: outline tone; pressed = active (ink). */
.chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border: 1px solid var(--ink-15); border-radius: 999px; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; font-weight: 600; background: transparent; color: var(--ink-50); cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.chip:hover { color: var(--ink); border-color: var(--ink-30); }
.chip[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* Callout: the one filled box. */
.callout { padding: 22px 28px; background: var(--tan-soft); display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; }
.callout .c-label { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.34em; text-transform: uppercase; color: var(--tan-deep); font-weight: 600; white-space: nowrap; }
.callout .c-body { font-family: var(--font-serif); font-size: 16px; line-height: 1.55; color: var(--ink-70); text-wrap: pretty; }
.callout .c-body b { color: var(--ink); font-weight: 500; }
@media (max-width: 720px) { .callout { grid-template-columns: 1fr; gap: 10px; padding: 20px 22px; } }

/* SectionHead: kicker, big serif title with the terminal tan dot, optional stats. */
.section-head { padding-bottom: 18px; border-bottom: 1px solid var(--ink); display: grid; grid-template-columns: 1fr; align-items: end; gap: 24px; }
.section-head.has-stats { grid-template-columns: 1fr auto; }
.section-head .kicker { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.42em; text-transform: uppercase; color: var(--tan-deep); font-weight: 600; margin-bottom: 14px; }
.section-head h1, .section-head h2 { font-family: var(--font-serif); font-weight: 400; font-size: var(--fs-display-2); line-height: 0.95; letter-spacing: -0.03em; color: var(--ink); margin: 0; text-wrap: balance; }
.section-head.xl h1, .section-head.xl h2 { font-size: var(--fs-display-1); }
.section-head.md h2 { font-size: clamp(34px, 4vw, 44px); }
.section-head .t-dot { color: var(--tan-deep); }
.section-head .stats { text-align: right; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink-50); line-height: 1.85; }
.section-head .stats b { color: var(--ink); font-weight: 500; }
@media (max-width: 720px) { .section-head.has-stats { grid-template-columns: 1fr; } .section-head .stats { text-align: left; } }

/* Runner (used as the site masthead). */
.runner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 32px; padding: 28px 0 18px; border-bottom: 1px solid var(--ink); }
.wordmark { display: inline-block; }
.wordmark .wm { font-family: var(--font-serif); font-weight: 500; font-size: 26px; letter-spacing: -0.01em; line-height: 1; color: var(--ink); }
.wordmark .wm .dot { color: var(--tan-deep); }
.wordmark .lab { display: block; margin-top: 6px; font-family: var(--font-sans); font-size: 10px; letter-spacing: 0.34em; text-transform: uppercase; color: var(--ink-50); }
.runner .center { text-align: center; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--ink-50); }
.runner .right { text-align: right; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink-50); }

/* CategoryHead: number, name, meta over an ink rule. */
.category-head { display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: 16px; padding: 6px 0 8px; border-bottom: 1px solid var(--ink); }
.category-head .no { font-family: var(--font-serif); font-weight: 400; font-size: 18px; color: var(--tan-deep); }
.category-head .name { font-family: var(--font-serif); font-weight: 500; font-size: 24px; letter-spacing: -0.01em; line-height: 1; color: var(--ink); margin: 0; }
.category-head .meta { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--ink-50); text-align: right; }
@media (max-width: 560px) { .category-head { grid-template-columns: auto 1fr; } .category-head .meta { grid-column: 1 / -1; text-align: left; } }

/* PriceRow: description + sub-line, tabular figure + unit after it. */
.price-row { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 24px; padding: 11px 0; border-bottom: 1px solid var(--ink-08); }
.price-row .desc { font-family: var(--font-serif); font-size: 17px; color: var(--ink); }
.price-row .sub { display: block; font-family: var(--font-sans); font-size: 12px; color: var(--ink-50); margin-top: 3px; letter-spacing: 0.04em; }
.price-row .val { text-align: right; white-space: nowrap; }
.price-row .fig { font-family: var(--font-serif); font-weight: 500; font-size: 21px; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; color: var(--ink); }
.price-row .unit { font-family: var(--font-sans); font-size: 10px; letter-spacing: 0.28em; color: var(--ink-50); margin-left: 6px; text-transform: uppercase; }
.price-row .text-val { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink-50); }

/* ================= Site layout glue (tokens only) ================= */
.skip { position: absolute; left: -9999px; top: 8px; background: var(--ink); color: var(--paper); padding: 10px 16px; z-index: 100; font-size: 12px; }
.skip:focus { left: 16px; }
:focus-visible { outline: 1px solid var(--tan-deep); outline-offset: 3px; }

.site-head { background: var(--paper); position: relative; z-index: 20; }
.site-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 28px; }
.site-nav a { color: var(--ink-50); padding-block: 4px; transition: color .15s; }
.site-nav a:hover { color: var(--ink); }
.site-nav a[aria-current="page"] { color: var(--ink); }
.nav-btn { display: none; }
@media (max-width: 1080px) {
  .runner { grid-template-columns: auto 1fr; }
  .runner .center { grid-column: 1 / -1; order: 3; }
  .runner .right { order: 2; }
}
@media (max-width: 720px) {
  .runner { grid-template-columns: 1fr auto; gap: 16px; padding: 20px 0 14px; }
  .runner .right .btn { display: none; }
  .nav-btn { display: inline-flex; }
  .runner .center { display: none; }
  .runner .center.open { display: block; }
  .site-nav { flex-direction: column; align-items: stretch; gap: 0; text-align: left; }
  .site-nav a { padding: 14px 0; border-top: 1px solid var(--ink-08); }
  .site-nav .btn { margin-top: 16px; justify-content: center; }
}
.site-nav .btn { display: none; }
@media (max-width: 720px) { .site-nav .btn { display: inline-flex; } }

main { display: block; }
.sec { margin-top: var(--section-gap); }
.sec-first { margin-top: var(--space-8); }
.panel { background: var(--paper-warm); padding-block: var(--section-gap); margin-top: var(--section-gap); }
.stack { display: grid; gap: var(--space-5); }
.stack-lg { display: grid; gap: var(--space-7); }
.measure { max-width: 62ch; }
.lede-wrap { margin-top: var(--space-6); max-width: 30em; }
.muted { color: var(--ink-50); }
.ink-70 { color: var(--ink-70); }

/* Plates (photos): square corners, museum-label captions. */
.plate { margin: 0; display: grid; gap: 10px; }
.plate img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--ink); display: block; }
.plate.wide img { aspect-ratio: auto; }
.plate figcaption { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: baseline; }
.plate figcaption .micro-caps { white-space: nowrap; }

.hero { display: grid; gap: var(--space-7); }
.hero-plate { margin-top: var(--space-7); }

.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7) var(--space-8); }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6) var(--space-5); }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6) var(--space-5); }
@media (max-width: 1080px) { .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .grid-2, .grid-4 { grid-template-columns: minmax(0, 1fr); } .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-3); } .plate figcaption { grid-template-columns: 1fr; gap: 2px; } }

.item { display: grid; gap: var(--space-4); align-content: start; }
.item .body-serif { color: var(--ink-70); }
.item p { margin: 0; }
@media (max-width: 720px) { .grid-3.cards-1 { grid-template-columns: 1fr; gap: var(--space-7); } }

.split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--space-8); align-items: start; }
.split.flip > :first-child { order: 2; }
@media (max-width: 900px) { .split, .split.flip { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } .split.flip > :first-child { order: 0; } }

.spec-row { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--ink-08); }
.spec-row .k { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink-50); white-space: nowrap; }
.spec-row .v { font-family: var(--font-serif); font-size: 17px; color: var(--ink); }
.spec-row .v small { display: block; font-family: var(--font-sans); font-size: 12px; color: var(--ink-50); margin-top: 3px; letter-spacing: 0.04em; }
.spec-list .spec-row { grid-template-columns: minmax(120px, 200px) 1fr; }
@media (max-width: 560px) { .spec-list .spec-row { grid-template-columns: 1fr; gap: 4px; } }

.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.hair-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.hair-table th { text-align: left; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink-50); font-weight: 500; padding: 0 16px 10px 0; border-bottom: 1px solid var(--ink); }
.hair-table td { padding: 12px 16px 12px 0; border-bottom: 1px solid var(--ink-08); font-family: var(--font-serif); font-size: 17px; color: var(--ink-70); vertical-align: top; }
.hair-table td:first-child { color: var(--ink); font-weight: 500; }

.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6) var(--space-5); }
@media (max-width: 1080px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .steps { grid-template-columns: 1fr; } }

.filters { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block: var(--space-6); }
.gallery [hidden] { display: none; }
.gallery button { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }

.lightbox { border: 1px solid var(--ink); padding: var(--space-5); background: var(--paper); color: var(--ink); max-width: min(92vw, 1000px); width: 100%; }
.lightbox::backdrop { background: rgba(26,24,20,0.72); }
.lightbox figure { margin: 0; display: grid; gap: var(--space-4); }
.lightbox img { width: 100%; max-height: 72vh; object-fit: contain; background: var(--ink); }
.lb-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); align-items: center; }

.contact-rows .price-row { padding-block: 22px; align-items: center; }
.contact-rows .desc { font-size: 22px; }

.prose { max-width: 68ch; display: grid; gap: var(--space-4); }
.prose h2 { margin: var(--space-6) 0 0; }
.prose ul { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.prose li { font-family: var(--font-serif); font-size: var(--fs-body-serif); line-height: var(--lh-body-serif); color: var(--ink-70); }
.prose p { margin: 0; }

.cta-line { display: grid; gap: var(--space-5); justify-items: start; margin-top: var(--space-6); }

/* Footer: dark ink panel. */
.site-foot { background: var(--ink); color: var(--on-ink); margin-top: var(--section-gap); padding-block: var(--space-8) var(--space-6); }
.site-foot .wordmark .wm { color: var(--on-ink); }
.site-foot .wordmark .wm .dot { color: var(--tan); }
.site-foot .wordmark .lab { color: var(--on-ink-50); }
.foot-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: var(--space-6); padding-bottom: var(--space-7); border-bottom: 1px solid var(--on-ink-18); }
.foot-grid h4 { margin: 0 0 var(--space-4); font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.42em; text-transform: uppercase; color: var(--tan); font-weight: 600; }
.foot-grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.foot-grid li, .foot-grid p { font-family: var(--font-serif); font-size: 16px; line-height: 1.55; color: var(--on-ink-70); margin: 0; }
.foot-grid a:hover { color: var(--on-ink); }
.foot-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); padding-top: var(--space-5); font-family: var(--font-sans); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--on-ink-50); }
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr 1fr; } .foot-grid > :first-child { grid-column: 1 / -1; } }
@media (max-width: 480px) { .foot-grid { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }

/* ================= v3: hero, facts, service index, service lists, scanner guide ================= */
.hero2 { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: var(--space-8); align-items: end; padding-top: var(--space-8); }
.hero2 .h-copy { display: grid; gap: var(--space-5); align-content: end; padding-bottom: var(--space-2); }
.hero2 h1 { font-family: var(--font-serif); font-weight: 400; font-size: var(--fs-display-1); line-height: var(--lh-display-1); letter-spacing: var(--track-display); margin: 0; text-wrap: balance; }
.hero2 h1 .t-dot { color: var(--tan-deep); }
.hero2 .kicker { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.42em; text-transform: uppercase; color: var(--tan-deep); font-weight: 600; }
.hero2 .lede { max-width: 30em; margin: 0; }
.hero2 .plate img { aspect-ratio: 4 / 5; }
@media (max-width: 900px) { .hero2 { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); padding-top: var(--space-7); } }

/* Reach band: where we deliver and which scanners connect (home, start) */
.reach { margin-top: var(--space-7); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink-15); }
.reach-row { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: var(--space-5); align-items: baseline; padding: 18px 0 17px; }
.reach-row + .reach-row { border-top: 1px solid var(--ink-08); }
.reach .k { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.34em; text-transform: uppercase; color: var(--ink-50); font-weight: 600; }
.reach .v { margin: 0; font-family: var(--font-serif); font-weight: 400; font-size: 22px; line-height: 1.5; color: var(--ink); text-wrap: pretty; }
.reach .grp { display: block; }
.reach .it { white-space: nowrap; }
.reach .it i { font-style: normal; color: var(--ink-30); margin: 0 0.12em 0 0.36em; }
@media (max-width: 720px) { .reach-row { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 16px 0 15px; } .reach .v { font-size: 19px; } }

/* Minimal masthead for the unlisted ads page: wordmark + WhatsApp only */
.runner.runner-min { grid-template-columns: 1fr auto; }
@media (max-width: 720px) { .runner.runner-min .right .btn { display: inline-flex; } }
@media (max-width: 480px) { .runner.runner-min .wordmark .lab { display: none; } }
.offer[hidden] { display: none; }

.svc-index { margin-top: var(--space-6); border-top: 1px solid var(--ink); }
.svc-row { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto 28px; gap: 20px; align-items: baseline; padding: 26px 0 24px; border-bottom: 1px solid var(--ink-15); color: var(--ink); transition: background .15s; }
.svc-row .no { font-family: var(--font-serif); font-size: 18px; color: var(--tan-deep); }
.svc-row .nm { font-family: var(--font-serif); font-weight: 400; font-size: var(--fs-heading-1); line-height: var(--lh-heading-1); letter-spacing: var(--track-heading); margin: 0; }
.svc-row .ds { display: block; margin-top: 8px; font-family: var(--font-serif); font-size: 17px; line-height: 1.5; color: var(--ink-70); max-width: 46em; }
.svc-row .mt { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--ink-50); text-align: right; white-space: nowrap; }
.svc-row .arr { font-family: var(--font-sans); color: var(--ink); justify-self: end; }
.svc-row:hover .nm { color: var(--tan-deep); }
@media (max-width: 720px) { .svc-row { grid-template-columns: 36px minmax(0, 1fr) 20px; } .svc-row .mt { grid-column: 2; grid-row: 2; text-align: left; white-space: normal; } }

.svc-section { scroll-margin-top: 24px; }
.svc-body { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--space-8); margin-top: var(--space-7); align-items: start; }
.svc-body.no-photo { grid-template-columns: minmax(0, 1fr); }
.groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7) var(--space-6); }
.no-photo .groups { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.group ul { list-style: none; margin: 0; padding: 0; }
.group li { font-family: var(--font-serif); font-size: 17px; color: var(--ink); padding: 11px 0; border-bottom: 1px solid var(--ink-08); }
.group .note { margin-top: 12px; }
@media (max-width: 1080px) { .no-photo .groups { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .svc-body { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } }
@media (max-width: 620px) { .groups, .no-photo .groups { grid-template-columns: minmax(0, 1fr); } }

.jump { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-6); }
.jump a.chip { color: var(--ink-70); }
.scanners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-8) var(--space-8); margin-top: var(--space-7); }
.scanner { display: grid; gap: var(--space-3); align-content: start; scroll-margin-top: 24px; }
.steps-list { list-style: none; margin: 0; padding: 0; counter-reset: s; }
.steps-list li { counter-increment: s; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--ink-08); font-family: var(--font-serif); font-size: 17px; line-height: 1.45; color: var(--ink); }
.steps-list li::before { content: counter(s, decimal-leading-zero); font-family: var(--font-serif); font-size: 14px; color: var(--tan-deep); font-variant-numeric: tabular-nums; }
.steps-list b { font-weight: 500; }
.scanner .note { color: var(--ink-50); }
@media (max-width: 900px) { .scanners { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); } }
