html { scrollbar-gutter: stable; }
/* Full service rows share one link and one accessible keyboard target. */
.service-group li { display: block; padding: 0; }
.service-group li > .service-link {
  position: static;
  inset: auto;
  width: 100%;
  height: auto;
  min-height: 48px;
  padding: 12px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: #c8c0b5;
  font: inherit;
  transform: none;
  transition: color 160ms ease, background-color 160ms ease;
}
.service-link > span:last-child { color: var(--bronze-light); font-size: 17px; }
.service-group li > .service-link:hover { color: var(--cream); background: rgba(210,173,112,.055); transform: none; }
.service-group li > .service-link:active { background: rgba(210,173,112,.12); }

/* Track length and travel are measured in pixels in marquee.js. */
.gallery-row.loop-row, .review-marquee.loop-row {
  position: relative;
  overflow: hidden;
  overscroll-behavior-inline: contain;
  scroll-snap-type: none;
}
.gallery-row .gallery-track, .review-marquee .review-track, .service-ribbon .ribbon-track {
  animation: none !important;
  transform: none;
}
.loop-track { display: flex; flex-wrap: nowrap; width: max-content; will-change: transform; }
.loop-track > * { flex-shrink: 0; }
.loop-track [data-loop-clone] { scroll-snap-align: none; }
.gallery-intro > p { margin: 0 0 8px; }
.reviews-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.motion-toggle {
  min-height: 44px;
  padding: 4px 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  border: 0;
  background: transparent;
  color: var(--bronze-light);
  font: 500 10px/1.4 var(--font-body);
  cursor: pointer;
}
.motion-toggle:hover { color: var(--cream); }
.motion-toggle:active { opacity: .7; }
.motion-icon { position: relative; display: block; width: 12px; height: 12px; flex: 0 0 12px; }
.motion-icon::before, .motion-icon::after { content: ""; position: absolute; top: 1px; width: 2px; height: 10px; background: currentColor; }
.motion-icon::before { left: 2px; }
.motion-icon::after { right: 2px; }
.motion-toggle[aria-pressed="true"] .motion-icon::before { left: 3px; width: 0; height: 0; background: none; border-left: 8px solid currentColor; border-block: 5px solid transparent; }
.motion-toggle[aria-pressed="true"] .motion-icon::after { display: none; }
.service-ribbon { position: relative; }
.service-ribbon .ribbon-toggle {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  width: 44px;
  height: 100%;
  min-height: 0;
  padding: 0;
  justify-content: center;
  background: var(--bronze);
  border-left: 1px solid rgba(25,20,14,.25);
  color: #19140e;
}
.ribbon-toggle .motion-label { display: none; }
.loop-row.loop-reduced { overflow-x: auto; scrollbar-width: thin; }
.loop-reduced .loop-track { will-change: auto; }

@media (max-width: 900px) {
  .site-header { display: grid; grid-template-columns: 1fr 44px; align-items: center; gap: 20px; padding-inline: 24px; }
  .site-header .header-cta { display: none; }
  .site-header .menu-toggle {
    position: relative;
    margin: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    background: transparent;
    border: 1px solid rgba(208,175,117,.4);
    color: var(--cream);
    cursor: pointer;
    touch-action: manipulation;
    transition: background-color 160ms ease;
  }
  .site-header .menu-toggle:active { background: rgba(208,175,117,.15); }
  .menu-icon { position: relative; display: block; width: 20px; height: 16px; }
  .menu-toggle .menu-icon i {
    position: absolute;
    left: 0;
    width: 20px;
    height: 1.5px;
    background: currentColor;
    transform: none;
    transform-origin: center;
    transition: transform 180ms ease, opacity 120ms ease;
  }
  .menu-toggle .menu-icon i:nth-child(1) { top: 1px; }
  .menu-toggle .menu-icon i:nth-child(2) { top: 7px; }
  .menu-toggle .menu-icon i:nth-child(3) { top: 13px; }
  .menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-header .main-nav {
    position: absolute;
    top: calc(100% - 2px);
    left: auto;
    right: 24px;
    width: min(320px, calc(100vw - 48px));
    margin: 0;
    padding: 8px 19px;
    display: none;
    flex-direction: column;
    gap: 0;
    border: 1px solid rgba(208,175,117,.25);
    background: #211d17;
    box-shadow: 0 16px 32px rgba(0,0,0,.22);
  }
  .site-header .main-nav.is-open { display: flex; }
  .site-header .main-nav a { display: flex; justify-content: flex-start; min-height: 52px; margin: 0; padding: 12px 2px; font-size: 13px; letter-spacing: .035em; text-align: left; border-bottom: 1px solid rgba(208,175,117,.13); }
  .site-header .main-nav a:last-child { border-bottom: 0; }
  .hero-copy { left: 5%; top: auto; bottom: 27%; width: 175px; max-width: 43%; }
  .hero-copy .hero-description, .hero-copy .hero-small-link, .hero-copy .hero-fine-rule { display: none; }
  .hero-motto { margin-bottom: 0; font-size: 24px; text-shadow: 0 1px 5px rgba(0,0,0,.8); }
  .hero-location { top: auto; bottom: 28%; right: 5%; width: auto; max-width: 36%; text-shadow: 0 1px 5px rgba(0,0,0,.8); }
  .hero-location .hero-location-detail, .hero-location .hero-small-link, .hero-location .hero-fine-rule { display: none; }
  .hero-location > p:first-child { margin-bottom: 0; color: var(--cream); font-size: 10px; }
  .hero-proof, .hero-social { color: var(--cream); text-shadow: 0 1px 4px #171511; }
}
@media (max-width: 650px) {
  .site-header { padding-inline: 20px; }
  .site-header .main-nav { right: 20px; width: min(320px, calc(100vw - 40px)); }
  .hero-overline { top: 12%; left: 20px; font-size: 7px; }
  .hero-copy { left: 20px; bottom: 26%; width: 155px; }
  .hero-motto { font-size: 23px; }
  .hero-location { bottom: 27%; right: 20px; }
  .hero-location > p:first-child { font-size: 8px; }
  .reviews-actions { align-items: flex-start; margin-top: 14px; gap: 0; }
  .reviews-heading .reviews-actions .text-link { margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-toggle { display: none; }
  .menu-toggle .menu-icon i { transition: none; }
}
