/* Shared finishing rules; retain the original warm light/dark palette. */
:is(.hero, .film-window, .path, .beyond-kitchen, .contact, .contact-panel, .service-moment, .feature) .kicker {
  color: var(--warm);
}
.sub-hero-copy > .kicker { color: #806039; font-size: .875rem; }
.nav a { font-size: .875rem; }
.nav a, .footer-links a, .footer-contact a { min-height: 44px; display: inline-flex; align-items: center; }
.nav { gap: clamp(12px, 1.8vw, 28px); }
.sub-hero-copy h1 { overflow-wrap: break-word; hyphens: auto; }
.hotspot-card { background: rgba(32, 26, 23, .94); visibility: hidden; }
.image-hotspot.is-active + .hotspot-card { visibility: visible; }
.style-lab__caption { background: rgba(32, 26, 23, .88); }
.style-lab__choice:focus-visible { outline: 3px solid var(--red); outline-offset: -4px; }
:is(.contact-panel, .site-footer, .service-moment, .contact-online) :focus-visible {
  outline-color: #fff; box-shadow: 0 0 0 6px var(--ink);
}
.contact-options { scroll-margin-top: 100px; }
[data-reveal].is-reveal-ready:focus-within { opacity: 1; transform: none; }
.compare-stage:has(.compare-range:focus-visible) { outline: 3px solid var(--red); outline-offset: 4px; }
.compare-stage:has(.compare-range:focus-visible) .compare-handle { box-shadow: 0 0 0 4px #fff, 0 0 0 7px var(--red); }
.has-large-text .logo { flex-shrink: 0; }
.has-large-text .nav-toggle { display: block; flex-shrink: 0; }
.has-large-text .nav {
  position: fixed; top: 76px; left: 14px; right: 14px;
  display: grid; gap: 4px; padding: 18px; color: var(--ink);
  background: var(--paper); border: 1px solid var(--dark-line);
  max-height: calc(100dvh - 100px); overflow-y: auto;
  visibility: hidden; opacity: 0; pointer-events: none;
}
.has-large-text .nav.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
.has-large-text .hero { padding-block: 110px 24px; gap: 30px; }
.has-large-text .hero-note {
  position: relative; inset: auto; margin: 0 18px;
  width: min(620px, calc(100% - 36px)); justify-self: center;
}
.has-large-text .hero > .video-toggle { position: relative; inset: auto; justify-self: center; }
.has-large-text :is(.sub-hero, .content-band, .contact-options, .service-overview-grid, .steps, .process-detail, .visit-grid, .site-footer) { grid-template-columns: minmax(0, 1fr); }
.has-large-text :is(h1, h2, h3, .btn, .footer-contact a) { overflow-wrap: anywhere; hyphens: auto; }
.has-large-text .mobile-contact { position: static; transform: none; width: auto; margin: 12px; }
.has-large-text body { padding-bottom: 0; }
.has-large-text .contact-panel { grid-template-columns: minmax(0, 1fr); }
.has-large-text .contact-panel > * { min-width: 0; max-width: 100%; }
.has-large-text :is(p, .kicker, figcaption, .style-lab__choice) { overflow-wrap: anywhere; hyphens: auto; }
.has-large-text .style-lab__swatches { grid-template-columns: repeat(auto-fit, minmax(min(100%, 6rem), 1fr)); }
.has-large-text .sub-hero-copy { max-width: 100%; }
.has-large-text .sub-hero-copy > p { max-width: 52ch; }
@media (min-width: 901px) and (max-width: 1200px) {
  .topbar { padding-inline: 22px; }
  .nav { gap: 12px; }
  .nav a { letter-spacing: .06em; }
}
@media (max-width: 900px) {
  .nav { max-height: calc(100dvh - 100px); overflow-y: auto; overscroll-behavior: contain; }
  .nav a { font-size: 1rem; }
}
@media (max-width: 560px) {
  .mobile-contact { bottom: max(8px, env(safe-area-inset-bottom)); }
  .mobile-contact a { min-height: 44px; }
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .site-footer { grid-template-columns: minmax(0, 1fr); }
  .footer-contact { min-width: 0; overflow-wrap: anywhere; }
  .sub-hero-copy h1 { font-size: clamp(2.25rem, 10vw, 3.5rem); line-height: 1.05; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
