:root {
    --ink: #1a1816;
    --ink-soft: #4a4640;
    --ink-faint: #6b6459;
    --ground: #ece9e3;
    --surface: #faf8f4;
    --surface-2: #e2ded4;
    --line: #d3cec2;
    --line-strong: #b8b0a0;
    --accent: #b81f26;
    --accent-ink: #fdf6f2;
    --accent-soft: #f3ded9;
    --gold: #c98f1f;
    --gold-soft: #f2e6c9;
    --steel: #45525c;
    --steel-soft: #dde3e6;
    --shadow: 0 1px 2px rgba(26, 24, 22, 0.08), 0 12px 32px rgba(26, 24, 22, 0.10);
    --display: "Oswald", "Arial Narrow", sans-serif;
    --body: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  }
  * { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce) {
    * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  }
  body { margin: 0; background: var(--ground); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
  a { color: inherit; }
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
  .page { max-width: 1080px; margin: 0 auto; padding: 0 28px; }
  [hidden] { display: none !important; }

  .preview-ribbon { background: var(--steel); color: var(--steel-soft); font-family: var(--mono); font-size: 11px; letter-spacing: 0.03em; text-align: center; padding: 5px 16px; opacity: 0.85; }
  .preview-ribbon strong { color: var(--gold); font-weight: 600; }
  .ribbon-claim { color: #fff; background: var(--accent); font-weight: 700; text-decoration: none; padding: 2px 9px; border-radius: 3px; margin-left: 8px; filter: brightness(1.18); transition: background .15s ease, filter .15s ease; }
  .ribbon-claim:hover { background: var(--gold); color: #241b04; filter: none; }

  /* -------- nav -------- */
  .topbar {
    display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0;
    border-bottom: 1px solid transparent; flex-wrap: wrap; position: sticky; top: 0; z-index: 40;
    background: transparent;
    transition: background 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, padding 0.25s ease;
  }
  .topbar.scrolled {
    background: color-mix(in srgb, var(--ground) 88%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom-color: var(--line);
    box-shadow: 0 4px 24px rgba(26, 24, 22, 0.08);
    padding: 12px 0;
  }
  .topbar.scrolled .wordmark { font-size: 19px; }
  .wordmark { font-family: var(--display); font-weight: 700; font-size: 22px; letter-spacing: 0.01em; text-transform: uppercase; color: var(--ink); text-decoration: none; transition: font-size 0.25s ease; }
  .wordmark span { color: var(--accent); }
  .nav-links { display: flex; align-items: center; gap: 26px; list-style: none; margin: 0; padding: 0; }
  .nav-links a { font-family: var(--mono); font-size: 13.5px; letter-spacing: 0.03em; text-transform: uppercase; text-decoration: none; color: var(--ink-soft); padding: 4px 2px; border-bottom: 2px solid transparent; transition: color 0.15s ease, border-color 0.15s ease; }
  .nav-links a:hover { color: var(--ink); }
  .nav-links a[aria-current="page"] { color: var(--accent); border-color: var(--accent); }
  .topbar-call { display: flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 15px; font-weight: 600; text-decoration: none; color: var(--ink); border: 1px solid var(--line-strong); padding: 9px 15px; border-radius: 3px; background: var(--surface); transition: background 0.15s ease, border-color 0.15s ease; white-space: nowrap; }
  .topbar-call:hover { background: var(--accent-soft); border-color: var(--accent); }
  .topbar-call .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); flex: none; }
  @media (max-width: 680px) { .nav-links { gap: 16px; order: 3; width: 100%; justify-content: center; padding-top: 12px; border-top: 1px solid var(--line); } }

  /* -------- app pages -------- */
  .app-page { animation: page-in 0.45s ease both; }
  @keyframes page-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
  @media (prefers-reduced-motion: reduce) { .app-page { animation: none; } }

  /* -------- hero -------- */
  .hero { position: relative; overflow: hidden; min-height: 540px; display: flex; align-items: flex-end; }
  .hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 8%; will-change: transform; }
  .hero-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,17,14,0.15) 0%, rgba(20,17,14,0.55) 60%, rgba(20,17,14,0.92) 100%); }
  .hero-content { position: relative; z-index: 2; width: 100%; padding: 60px 28px 42px; max-width: 1080px; margin: 0 auto; color: #fdf8f2; }
  .hero-eyebrow { font-family: var(--mono); font-size: 13px; letter-spacing: 0.09em; text-transform: uppercase; color: #fdf8f2; margin: 0 0 14px; }
  .hero h1 { font-family: var(--display); font-weight: 700; text-transform: uppercase; font-size: clamp(2.4rem, 6.4vw, 4.2rem); line-height: 0.98; letter-spacing: 0.005em; margin: 0 0 16px; text-wrap: balance; }
  .hero h1 em { font-style: normal; color: var(--accent); }
  .hero-sub { font-size: 1.12rem; max-width: 46ch; color: #eee3d6; margin: 0 0 26px; }
  .hero-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
  .btn { font-family: var(--body); font-weight: 600; font-size: 15px; padding: 14px 26px; border-radius: 3px; border: 1px solid transparent; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 9px; transition: transform 0.12s ease, background 0.15s ease; }
  .btn:hover { transform: translateY(-1px); }
  .btn-primary { background: var(--accent); color: var(--accent-ink); box-shadow: var(--shadow); }
  .btn-primary:hover { background: #d02b2d; }
  .btn-ghost { background: rgba(253,248,242,0.08); color: #fdf8f2; border-color: rgba(253,248,242,0.4); }
  .btn-ghost:hover { background: rgba(253,248,242,0.16); }
  .hero-rating { margin-top: 26px; display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 14.5px; color: #f1e7d8; }
  .stars { color: var(--gold); letter-spacing: 1px; }

  /* -------- stat strip -------- */
  .stat-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .stat { padding: 24px 20px; border-right: 1px solid var(--line); text-align: center; }
  .stat:last-child { border-right: none; }
  .stat .n { font-family: var(--display); font-weight: 600; font-size: 1.9rem; color: var(--ink); font-variant-numeric: tabular-nums; }
  .stat .l { font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-faint); margin-top: 4px; }
  @media (max-width: 720px) { .stat-strip { grid-template-columns: repeat(2, 1fr); } .stat:nth-child(2) { border-right: none; } }

  section.block { padding: 64px 0; }
  section.block.tight { padding: 48px 0; }
  .kicker { font-family: var(--mono); font-size: 12.5px; letter-spacing: 0.09em; text-transform: uppercase; color: var(--accent); margin: 0 0 10px; }
  h2 { font-family: var(--display); font-weight: 700; text-transform: uppercase; font-size: clamp(1.6rem, 3.2vw, 2.3rem); letter-spacing: 0.005em; margin: 0 0 8px; text-wrap: balance; }
  .section-sub { color: var(--ink-soft); max-width: 60ch; margin: 0 0 36px; font-size: 1.02rem; }
  .page-head { padding: 40px 0 8px; border-bottom: 1px solid var(--line); }
  .page-head h1 { font-family: var(--display); font-weight: 700; text-transform: uppercase; font-size: clamp(2rem, 5vw, 3rem); margin: 0 0 10px; }
  .page-head p { color: var(--ink-soft); max-width: 60ch; margin: 0 0 28px; }

  /* -------- teaser row (home) -------- */
  .teaser-row { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 26px; }
  .teaser-tag { font-family: var(--mono); font-size: 13px; letter-spacing: 0.02em; padding: 9px 16px; border: 1px solid var(--line-strong); border-radius: 20px; background: var(--surface); }
  .more-link { font-weight: 600; color: var(--accent); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }

  /* -------- services: spec sheet -------- */
  .spec-sheet { border-top: 2px solid var(--ink); }
  .spec-row { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: baseline; padding: 18px 4px; border-bottom: 1px solid var(--line); }
  .spec-row .name { font-family: var(--body); font-weight: 600; font-size: 1.05rem; }
  .spec-row .tag { font-family: var(--mono); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--steel); background: var(--steel-soft); padding: 4px 10px; border-radius: 2px; white-space: nowrap; }
  .spec-note { margin-top: 22px; color: var(--ink-faint); font-size: 0.92rem; font-family: var(--mono); }

  /* -------- gallery -------- */
  .gallery { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 14px; height: 380px; }
  .gallery figure { margin: 0; position: relative; overflow: hidden; border-radius: 4px; height: 100%; }
  .gallery img { position: absolute; inset: -10% 0; width: 100%; height: 120%; object-fit: cover; will-change: transform; }
  .gallery figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 14px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.03em; color: #f6efe4; background: linear-gradient(0deg, rgba(15,13,11,0.75), rgba(15,13,11,0)); }
  @media (max-width: 720px) { .gallery { grid-template-columns: 1fr; height: auto; } .gallery figure { height: 220px; } }

  /* -------- reviews -------- */
  .rating-summary { display: flex; align-items: center; gap: 16px; margin-bottom: 34px; font-family: var(--mono); }
  .rating-summary .big { font-family: var(--display); font-size: 2.6rem; font-weight: 700; line-height: 1; }
  .reviews { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
  .review { background: var(--surface); padding: 26px; }
  .review .stars { display: block; margin-bottom: 12px; }
  .review p { font-size: 1rem; color: var(--ink); margin: 0 0 14px; }
  .review .who { font-family: var(--mono); font-size: 12.5px; color: var(--ink-faint); }
  @media (max-width: 720px) { .reviews { grid-template-columns: 1fr; } }

  /* -------- hours / ticket -------- */
  .ticket-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: start; }
  .ticket { border: 1px dashed var(--line-strong); border-radius: 4px; padding: 24px 26px; background: var(--surface); }
  .ticket-title { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 16px; }
  .hours-row { display: flex; justify-content: space-between; font-family: var(--mono); font-size: 14.5px; padding: 6px 0; border-bottom: 1px dotted var(--line); font-variant-numeric: tabular-nums; }
  .hours-row:last-child { border-bottom: none; }
  .hours-row.today { color: var(--accent); font-weight: 600; }
  .addr-block { font-size: 1.02rem; margin-bottom: 18px; }
  .addr-block strong { display: block; font-family: var(--display); text-transform: uppercase; font-size: 1.15rem; margin-bottom: 6px; }
  .maps-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--accent); text-decoration: none; font-size: 0.95rem; }
  @media (max-width: 720px) { .ticket-wrap { grid-template-columns: 1fr; } }

  /* -------- quote form -------- */
  .quote-block { background: var(--surface-2); border-radius: 6px; padding: 40px; }
  form.quote { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 22px; }
  form.quote .full { grid-column: 1 / -1; }
  label { display: block; font-family: var(--mono); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 6px; }
  input, textarea { width: 100%; font-family: var(--body); font-size: 15px; padding: 11px 13px; border: 1px solid var(--line-strong); border-radius: 3px; background: var(--surface); color: var(--ink); }
  textarea { resize: vertical; min-height: 90px; }
  input[type="file"] { padding: 9px 10px; font-size: 13.5px; cursor: pointer; }
  input[type="file"]::file-selector-button { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid var(--line-strong); border-radius: 3px; background: var(--surface-2); color: var(--ink); padding: 7px 12px; margin-right: 12px; cursor: pointer; }
  input[type="file"]::file-selector-button:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
  .photo-hint { display: block; margin-top: 6px; font-size: 12.5px; color: var(--ink-faint); }
  .photo-hint.is-error { color: var(--accent); font-weight: 600; }
  .photo-preview { margin-top: 10px; max-width: 160px; border-radius: 4px; border: 1px solid var(--line-strong); display: none; }
  .photo-preview.is-visible { display: block; }
  .consent-row { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; color: var(--ink-soft); line-height: 1.5; }
  .consent-row input[type="checkbox"] { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--accent); flex: none; }
  .consent-row a { color: var(--accent); font-weight: 600; text-decoration: none; }
  .consent-row a:hover { text-decoration: underline; }
  .quote-submit-row { display: flex; align-items: center; gap: 16px; margin-top: 4px; }
  #quote-status { font-family: var(--mono); font-size: 13.5px; color: var(--steel); }
  @media (max-width: 640px) { form.quote { grid-template-columns: 1fr; } }

  /* -------- claim banner -------- */
  .claim-banner { background: var(--ink); color: var(--ground); border-radius: 6px; padding: 38px 40px; display: flex; justify-content: space-between; align-items: center; gap: 28px; flex-wrap: wrap; }
  .claim-banner h3 { font-family: var(--display); text-transform: uppercase; font-size: 1.4rem; margin: 0 0 8px; }
  .claim-banner p { margin: 0; color: #cfc8bb; max-width: 46ch; font-size: 0.96rem; }

  .policy { max-width: 62ch; }
  .policy h3 { font-family: var(--display); text-transform: uppercase; font-size: 1.05rem; margin: 26px 0 8px; }
  .policy h3:first-child { margin-top: 0; }
  .policy p { margin: 0 0 14px; color: var(--ink-soft); }
  .policy a { color: var(--accent); font-weight: 600; }
  .footer-links { display: flex; gap: 16px; }
  .footer-links a { color: var(--ink-faint); text-decoration: none; }
  .footer-links a:hover { color: var(--ink); text-decoration: underline; }

  .site-footer { background: var(--ink); color: var(--ground); margin-top: 40px; }
  .footer-main { display: grid; grid-template-columns: 1.3fr 0.8fr 1fr 0.8fr; gap: 32px; padding: 52px 0 36px; }
  .footer-brand .wordmark { color: var(--ground); font-size: 20px; margin-bottom: 12px; display: inline-block; }
  .footer-brand .wordmark span { color: var(--gold); }
  .footer-brand p { color: #cabfae; font-size: 14px; max-width: 34ch; margin: 0; }
  .footer-col h4 { font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: #a89d89; margin: 0 0 14px; }
  .footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
  .footer-col a { color: #e7e0d3; text-decoration: none; font-size: 14.5px; }
  .footer-col a:hover { color: var(--gold); }
  .footer-col address { font-style: normal; color: #cabfae; font-size: 14.5px; line-height: 1.7; }
  .footer-bottom { border-top: 1px solid rgba(253,248,242,0.14); padding: 18px 0 26px; font-family: var(--mono); font-size: 12px; color: #a89d89; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
  .footer-bottom a { color: #c9bfaf; text-decoration: underline; }
  .footer-bottom-links { display: flex; gap: 18px; }
  @media (max-width: 900px) { .footer-main { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 720px) { .footer-main { grid-template-columns: 1fr; gap: 30px; } }

  /* -------- open/closed status -------- */
  .status-badge { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 13px; font-weight: 700; padding: 7px 14px; border-radius: 20px; white-space: nowrap; }
  .status-badge .pulse { width: 8px; height: 8px; border-radius: 50%; flex: none; position: relative; }
  .status-badge.is-open .pulse::after {
    content: ""; position: absolute; inset: -4px; border-radius: 50%; background: inherit;
    animation: pulse-ring 1.8s ease-out infinite;
  }
  @keyframes pulse-ring { 0% { opacity: 0.55; transform: scale(0.6); } 100% { opacity: 0; transform: scale(1.8); } }
  @media (prefers-reduced-motion: reduce) { .status-badge.is-open .pulse::after { animation: none; display: none; } }
  .status-badge.is-open { background: #e8f3ea; color: #0d3f21; }
  .status-badge.is-open .pulse { background: #2f9e52; }
  .status-badge.is-closed { background: var(--gold-soft); color: #5c3f0a; }
  .status-badge.is-closed .pulse { background: var(--gold); }

  /* -------- sticky mobile call bar -------- */
  .mobile-bar { display: none; }
  @media (max-width: 720px) {
    body { padding-bottom: 64px; }
    .mobile-bar {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      position: fixed;
      left: 0; right: 0; bottom: 0;
      z-index: 60;
      background: var(--ink);
      border-top: 1px solid rgba(253,248,242,0.14);
      padding-bottom: env(safe-area-inset-bottom, 0);
    }
    .mobile-bar a {
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 3px; padding: 10px 4px 8px;
      font-family: var(--mono); font-size: 11px; letter-spacing: 0.02em; text-transform: uppercase;
      color: #e7e0d3; text-decoration: none; border-right: 1px solid rgba(253,248,242,0.12);
    }
    .mobile-bar a:last-child { border-right: none; }
    .mobile-bar a.primary { background: var(--accent); color: var(--accent-ink); }
    .mobile-bar svg { width: 18px; height: 18px; }
  }

  /* -------- emergency card: bold, not pastel -------- */
  .emergency-card { background: var(--accent); border: none; border-radius: 6px; padding: 30px 32px; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; box-shadow: var(--shadow); }
  .emergency-card h3 { font-family: var(--display); text-transform: uppercase; font-size: 1.3rem; margin: 0 0 6px; color: var(--accent-ink); }
  .emergency-card p { margin: 0; max-width: 44ch; color: var(--accent-ink); opacity: 0.92; font-size: 0.98rem; }
  .emergency-actions { display: flex; gap: 12px; flex-wrap: wrap; flex: none; }
  .emergency-card .btn-primary { background: var(--accent-ink); color: var(--accent); }
  .emergency-card .btn-primary:hover { background: #fff; }
  .emergency-card .btn-outline { background: transparent; color: var(--accent-ink); border: 1.5px solid var(--accent-ink); }
  .emergency-card .btn-outline:hover { background: rgba(255,255,255,0.12); }

  /* -------- dark band (reviews teaser on home) -------- */
  .dark-band { background: var(--ink); color: var(--ground); }
  .dark-band .kicker { color: var(--gold); }
  .dark-band h2 { color: var(--ground); }
  .dark-band .review { background: rgba(253,248,242,0.05); border-color: rgba(253,248,242,0.12); }
  .dark-band .review p { color: var(--ground); }
  .dark-band .review .who { color: #b7ad9c; }
  .dark-band .reviews { background: rgba(253,248,242,0.12); border-color: rgba(253,248,242,0.12); }
  .dark-band .more-link { color: var(--gold); }

  /* -------- service cards (replaces pill tags) -------- */
  .service-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 26px; }
  .service-card { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 22px 20px; transition: border-color 0.15s ease, transform 0.15s ease; }
  .service-card:hover { border-color: var(--accent); transform: translateY(-2px); }
  .service-card svg { width: 30px; height: 30px; color: var(--accent); margin-bottom: 14px; }
  .service-card h4 { font-family: var(--display); text-transform: uppercase; font-size: 1.02rem; margin: 0 0 6px; letter-spacing: 0.01em; }
  .service-card p { font-size: 0.92rem; color: var(--ink-soft); margin: 0 0 10px; }
  .service-card .from { font-family: var(--mono); font-size: 12px; color: var(--ink-faint); }
  @media (max-width: 780px) { .service-cards { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 500px) { .service-cards { grid-template-columns: 1fr; } }

  /* -------- trust/brand strip -------- */
  .brand-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 22px 36px; padding: 20px 0; }
  .brand-item { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 13px; color: var(--ink-soft); }
  .brand-item.confirmed { font-weight: 700; color: var(--ink); text-transform: uppercase; letter-spacing: 0.02em; }
  .brand-sep { color: var(--line-strong); }

  /* -------- scroll-reveal -------- */
  .reveal { opacity: 1; transform: none; }
  @media (prefers-reduced-motion: no-preference) {
    .reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.55s ease, transform 0.55s ease; }
    .reveal.is-visible { opacity: 1; transform: translateY(0); }
  }

  /* -------- review card upgrade -------- */
  .review { position: relative; border-left: 3px solid var(--accent); }
  .review-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
  .review-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--steel-soft); color: var(--steel); display: flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: 700; font-size: 14px; flex: none; }
  .review-meta { display: flex; flex-direction: column; gap: 2px; }
  .review-meta .name { font-weight: 600; font-size: 0.92rem; }
  .review-meta .date { font-family: var(--mono); font-size: 11px; color: var(--ink-faint); }
  .google-g { width: 14px; height: 14px; flex: none; }
  .pull-quote { border-left: none; padding: 34px 30px; }
  .pull-quote p { font-family: var(--display); font-size: 1.4rem; font-weight: 500; line-height: 1.3; text-transform: none; }
  .pull-quote .stars { margin-bottom: 16px; }

  /* -------- pricing -------- */
  .example-flag { display: inline-block; font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--steel); background: var(--steel-soft); padding: 3px 9px; border-radius: 2px; margin-bottom: 18px; }
  .price-row { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 16px 4px; border-bottom: 1px dotted var(--line); align-items: baseline; }
  .price-row .name { font-weight: 600; }
  .price-row .amount { font-family: var(--mono); font-variant-numeric: tabular-nums; color: var(--accent); font-weight: 600; white-space: nowrap; }
  .price-note { margin-top: 18px; font-size: 0.9rem; color: var(--ink-faint); }

  /* -------- trust row -------- */
  .trust-row { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .trust-item { font-family: var(--mono); font-size: 13px; color: var(--ink-soft); display: flex; align-items: center; gap: 8px; }
  .trust-item strong { color: var(--ink); font-family: var(--body); }
  .trust-item-example { color: var(--ink-faint); font-style: italic; }

  /* -------- map card (Artifacts can't embed a live external map iframe; the real deployed site can) -------- */
  .map-embed {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
    aspect-ratio: 16/9; border-radius: 4px; border: 1px dashed var(--line-strong);
    background: linear-gradient(135deg, var(--surface-2) 25%, var(--surface) 25%, var(--surface) 50%, var(--surface-2) 50%, var(--surface-2) 75%, var(--surface) 75%);
    background-size: 24px 24px;
    color: var(--ink); text-decoration: none; text-align: center; padding: 20px;
  }
  .map-embed svg { width: 30px; height: 30px; color: var(--accent); }
  .map-embed span { font-weight: 600; font-size: 0.95rem; }
  .map-embed .tap-hint { font-family: var(--mono); font-size: 11.5px; font-weight: 400; letter-spacing: 0.03em; text-transform: uppercase; color: var(--ink-faint); }
  .map-embed:hover { border-color: var(--accent); }

  /* -------- real live map embed (works here — this isn't an Artifact, no CSP framing restriction) -------- */
  .map-embed-frame { border-radius: 4px; overflow: hidden; border: 1px solid var(--line); aspect-ratio: 16/9; }
  .map-embed-frame iframe { width: 100%; height: 100%; border: 0; display: block; }