:root {
    --ink: #1a1917;
    --panel: #232120;
    --panel-2: #2b2926;
    --steel: #8b867c;
    --steel-dim: #55524c;
    --paper: #f2ede1;
    --paper-dim: #cfc9ba;
    --amber: #e2a335;
    --amber-dim: #b98430;
    --rust: #c1502f;
    --line: rgba(242,237,225,0.12);
    box-sizing: border-box;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  :root:not([data-theme="light"]) {
    color-scheme: dark;
  }
  @media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) {
      --ink: #ece7db;
      --panel: #ffffff;
      --panel-2: #f5f1e6;
      --paper: #201e1b;
      --paper-dim: #4a463f;
      --line: rgba(26,25,23,0.12);
    }
  }
  :root[data-theme="dark"] {
    --ink: #1a1917;
    --panel: #232120;
    --panel-2: #2b2926;
    --paper: #f2ede1;
    --paper-dim: #cfc9ba;
    --line: rgba(242,237,225,0.12);
  }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(84px + env(safe-area-inset-top, 0px));
  }
  html, body { height: 100%; }
  body {
    background: var(--ink);
    color: var(--paper);
    font-family: "IBM Plex Sans", sans-serif;
    line-height: 1.55;
    overflow-x: hidden;
  }
  img { max-width: 100%; display: block; }
  a { color: inherit; }
  .wrap {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 28px;
  }
  h1, h2, h3 {
    font-family: "Oswald", sans-serif;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.08;
  }

  /* ---------- hazard band ---------- */
  .hazard {
    height: 10px;
    width: 100%;
    background: repeating-linear-gradient(
      -45deg,
      var(--amber),
      var(--amber) 18px,
      var(--ink) 18px,
      var(--ink) 36px
    );
  }

  /* ---------- top bar ---------- */
  header.top {
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(26,25,23,0.92);
    backdrop-filter: blur(6px);
    border-bottom: 1px solid var(--line);
    padding-top: env(safe-area-inset-top, 0px);
  }
  :root[data-theme="light"] header.top,
  @media (prefers-color-scheme: light) { header.top { background: rgba(236,231,219,0.92); } }
  .topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    gap: 20px;
  }
  .brand {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-family: "Oswald", sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.01em;
  }
  .brand .mark {
    display: inline-block;
    width: 10px;
    height: 10px;
    background: var(--amber);
    transform: rotate(45deg);
  }
  nav.links {
    display: flex;
    gap: 26px;
    font-size: 0.92rem;
    color: var(--paper-dim);
  }
  nav.links a { text-decoration: none; transition: color .15s ease; }
  nav.links a:hover, nav.links a:focus-visible { color: var(--amber); }
  .call-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--amber);
    color: #201d17;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 10px 16px;
    text-decoration: none;
    border: none;
  }
  .call-btn:hover { background: var(--amber-dim); }

  /* ---------- hero ---------- */
  .hero {
    padding: 76px 0 64px;
    position: relative;
  }
  .hero .wrap {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 48px;
    align-items: end;
  }
  .hero-eyebrow {
    color: var(--amber);
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 18px;
  }
  .hero h1 {
    font-size: clamp(2.6rem, 5.4vw, 4.4rem);
    color: var(--paper);
    max-width: 12ch;
  }
  .hero p.lede {
    margin-top: 22px;
    font-size: 1.12rem;
    color: var(--paper-dim);
    max-width: 46ch;
  }
  .hero-cta {
    margin-top: 32px;
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
  }
  .btn {
    display: inline-block;
    padding: 14px 24px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.98rem;
    border: 1px solid var(--line);
  }
  .btn.primary { background: var(--amber); color: #201d17; border-color: var(--amber); }
  .btn.primary:hover { background: var(--amber-dim); border-color: var(--amber-dim); }
  .btn.ghost { background: transparent; color: var(--paper); }
  .btn.ghost:hover { border-color: var(--paper-dim); }

  .hero-card {
    background: var(--panel);
    border: 1px solid var(--line);
    padding: 28px;
  }
  .hero-card .stat {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    font-size: 0.95rem;
  }
  .hero-card .stat:last-child { border-bottom: none; }
  .hero-card .stat .k { color: var(--paper-dim); }
  .hero-card .stat .v { color: var(--paper); font-weight: 600; text-align: right; }

  /* ---------- bay strip (illustrative, css-drawn) ---------- */
  .bay {
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--panel-2);
    overflow: hidden;
  }
  .bay-track {
    display: flex;
    gap: 0;
    width: max-content;
    animation: scroll-left 32s linear infinite;
  }
  @media (prefers-reduced-motion: reduce) { .bay-track { animation: none; } }
  .bay-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 34px;
    white-space: nowrap;
    color: var(--steel);
    font-size: 0.9rem;
    font-weight: 500;
    border-right: 1px solid var(--line);
  }
  .bay-item svg { width: 16px; height: 16px; flex: none; }
  @keyframes scroll-left {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
  }

  /* ---------- section shell ---------- */
  section { padding: 84px 0; }
  .section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 40px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 22px;
  }
  .section-head h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); }
  .section-head p { color: var(--paper-dim); max-width: 40ch; font-size: 0.98rem; }

  /* ---------- services ---------- */
  .services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
  }
  .svc {
    background: var(--panel);
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 200px;
  }
  .svc .top-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
  }
  .svc h3 { font-size: 1.18rem; color: var(--paper); }
  .svc .price {
    font-family: "Oswald", sans-serif;
    font-weight: 600;
    font-size: 1.3rem;
    color: var(--amber);
    white-space: nowrap;
  }
  .svc p { color: var(--paper-dim); font-size: 0.92rem; flex: 1; }
  .svc .book {
    align-self: flex-start;
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--paper);
    text-decoration: none;
    border-bottom: 1px solid var(--amber);
    padding-bottom: 2px;
  }
  .svc .book:hover { color: var(--amber); }

  /* ---------- about ---------- */
  .about {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
  }
  .about-visual {
    aspect-ratio: 4/3;
    background: var(--panel);
    border: 1px solid var(--line);
    position: relative;
    overflow: hidden;
  }
  .about-visual svg { width: 100%; height: 100%; }
  .about-copy h2 { margin-bottom: 18px; font-size: clamp(1.8rem, 3vw, 2.4rem); }
  .about-copy p { color: var(--paper-dim); margin-bottom: 16px; max-width: 52ch; }
  .checklist { list-style: none; margin-top: 24px; display: grid; gap: 12px; }
  .checklist li { display: flex; gap: 12px; align-items: flex-start; font-size: 0.95rem; color: var(--paper); }
  .checklist svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--amber); }

  /* ---------- hours / location ---------- */
  .info {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
  }
  .info-card {
    background: var(--panel);
    padding: 32px 28px;
  }
  .info-card h3 {
    font-size: 1rem;
    color: var(--amber);
    margin-bottom: 16px;
    text-transform: none;
  }
  .info-card .big {
    font-family: "Oswald", sans-serif;
    font-size: 1.5rem;
    color: var(--paper);
    margin-bottom: 6px;
  }
  .info-card p { color: var(--paper-dim); font-size: 0.94rem; }
  .info-card a { color: var(--paper); text-decoration: none; }
  .info-card a:hover { color: var(--amber); }
  .hours-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.92rem;
    padding: 6px 0;
    color: var(--paper-dim);
  }
  .hours-row span:last-child { color: var(--paper); font-weight: 500; }

  /* ---------- footer / CTA ---------- */
  .cta-band {
    background: var(--panel-2);
    border-top: 1px solid var(--line);
    padding: 72px 0;
    text-align: center;
  }
  .cta-band h2 { font-size: clamp(1.9rem, 4vw, 2.8rem); max-width: 18ch; margin: 0 auto 18px; }
  .cta-band p { color: var(--paper-dim); margin-bottom: 30px; }
  .cta-buttons { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }

  footer.site {
    padding: 40px 0;
    border-top: 1px solid var(--line);
  }
  footer.site .wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 0.85rem;
    color: var(--steel);
  }

  /* ---------- responsive ---------- */
  @media (max-width: 860px) {
    nav.links { display: none; }
    .hero .wrap { grid-template-columns: 1fr; }
    .services-grid { grid-template-columns: 1fr 1fr; }
    .about { grid-template-columns: 1fr; }
    .info { grid-template-columns: 1fr; }
  }
  @media (max-width: 520px) {
    .wrap { padding: 0 18px; }
    .services-grid { grid-template-columns: 1fr; }
    .hero { padding: 52px 0 44px; }
    section { padding: 60px 0; }
  }

  :focus-visible {
    outline: 2px solid var(--amber);
    outline-offset: 2px;
  }
