/* Final Website presentation layer. Never targets the Booking iframe or Elfsight subtree. */
:root {
  --ride-font-heading: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  --ride-font-body: Inter, system-ui, -apple-system, sans-serif;
  --ride-h1: 52px;
  --ride-h2: 38px;
  --ride-h3: 26px;
  --ride-h4: 21px;
  --ride-body: 17px;
  --ride-support: 14px;
  --ride-button: 16px;
  --ride-heading-weight: 600;
  --ride-body-leading: 1.65;
  --ride-content: 1200px;
  --ride-reading: 896px;
  --ride-gutter: 32px;
  --ride-section: 72px;
  --ride-control-height: 48px;
  --ride-radius: 4px;
  --ride-card-radius: 8px;
  --ride-card-shadow: 0 4px 18px color-mix(in srgb, var(--guest-ink) 6%, transparent);
  --ride-card-hover-shadow: 0 8px 24px color-mix(in srgb, var(--guest-ink) 10%, transparent);
  --ride-photo-overlay: linear-gradient(90deg, color-mix(in srgb, var(--guest-ink) 72%, transparent), color-mix(in srgb, var(--guest-ink) 28%, transparent));
}

/* Override legacy viewport-scaled tokens only inside Website-owned content. */
.legacy-page, .re-booking {
  --type-h1: var(--ride-h1);
  --type-h2: var(--ride-h2);
  --type-h3: var(--ride-h3);
  --type-h4: var(--ride-h4);
  --type-h1-weight: var(--ride-heading-weight);
  --type-h2-weight: var(--ride-heading-weight);
  --type-h3-weight: var(--ride-heading-weight);
  --type-h4-weight: var(--ride-heading-weight);
  --type-h1-line-height: 1.15;
  --type-h2-line-height: 1.2;
  --type-h3-line-height: 1.3;
  --type-h4-line-height: 1.35;
  --type-h1-letter-spacing: 0;
  --type-h2-letter-spacing: 0;
  --type-h3-letter-spacing: 0;
  --type-eyebrow-letter-spacing: 0;
  --type-body: var(--ride-body);
  --type-lead: var(--ride-body);
  --type-card-body: var(--ride-body);
  --type-faq-answer: var(--ride-body);
  --type-body-line-height: var(--ride-body-leading);
  --type-card-body-line-height: var(--ride-body-leading);
  --type-button: var(--ride-button);
  --type-nav: 15px;
  --type-small: var(--ride-support);
  --type-caption: var(--ride-support);
  font-family: var(--ride-font-body);
  font-size: var(--ride-body);
  line-height: var(--ride-body-leading);
  letter-spacing: 0;
}
.legacy-page :is(h1,h2,h3,h4,h5,h6):not(.guest-widget *,[data-review-widget] *) {
  font-family: var(--ride-font-heading) !important;
  letter-spacing: 0 !important;
  overflow-wrap: break-word;
}
.legacy-page :is(p,li,figcaption,small,a,button,label,input,select,textarea):not(.guest-widget *,[data-review-widget] *) {
  font-family: var(--ride-font-body);
  letter-spacing: 0 !important;
}
.legacy-page main p:not(.guest-widget *,[data-review-widget] *, .type-small,.type-caption,.type-eyebrow,.guest-eyebrow,.guest-photo-credit) {
  font-size: var(--ride-body) !important;
  line-height: var(--ride-body-leading) !important;
}
.legacy-page :is(.guest-eyebrow,.guest-photo-credit,.guest-figure figcaption,.type-small,.type-caption):not(.guest-widget *,[data-review-widget] *) {
  font-size: var(--ride-support) !important;
  line-height: 1.5 !important;
}
.legacy-page main :is(h1,h2,h3,h4):not(.sr-only,.guest-widget *,[data-review-widget] *) { text-wrap: pretty; }
.legacy-page main :is(h1,h2,h3,h4) + p:not(.guest-widget *,[data-review-widget] *) { margin-top: 16px; }

/* Comparable service containers; article widths and the approved split opening remain distinct. */
.legacy-page:not([data-page-family="article"]) main :is(.max-w-5xl,.max-w-6xl,.max-w-7xl,.guest-container) {
  max-width: var(--ride-content);
  padding-left: var(--ride-gutter);
  padding-right: var(--ride-gutter);
}
.legacy-page[data-page-family="article"] main > :is(div,section) > .max-w-4xl,
.legacy-page[data-page-family="article"] main > .max-w-4xl {
  max-width: var(--ride-reading);
  padding-left: var(--ride-gutter);
  padding-right: var(--ride-gutter);
}
.legacy-page main > section:is(.py-12,.py-16,.py-20),
.legacy-page main > div:is(.py-16,.py-20),
.legacy-page :is(.guest-editorial,.guest-owner,.guest-reviews) {
  padding-top: var(--ride-section);
  padding-bottom: var(--ride-section);
}
.legacy-page .guest-opening > .guest-container { max-width: 1440px; }
.legacy-page .guest-opening h1 { font-size: var(--ride-h1) !important; }
.legacy-page .guest-opening-copy { min-width: 0; }
.legacy-page .guest-opening :is(.guest-opening-lead,.guest-opening-support) { font-size: var(--ride-body); }
.legacy-page .guest-opening .guest-actions { grid-template-columns: 1fr; max-width: 420px; }
@media (min-width: 1440px) {
  .legacy-page .guest-opening .guest-actions { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: none; }
}
.legacy-page .guest-reviews-compact { padding-top: 48px; padding-bottom: 48px; }

/* Normalize service hero proportions without forcing articles or guest photos into a template. */
.legacy-page[data-page-family="service"] main > section.relative.overflow-hidden:first-child:has(h1) {
  height: auto;
  min-height: 560px;
}
.legacy-page[data-page-family="service"] main > section:first-child > .relative {
  padding-top: 64px;
  padding-bottom: 64px;
}
.legacy-page[data-page-family="service"] main > section:first-child > .relative.h-full { min-height: 560px; }
.legacy-page[data-page-family="service"] main > section:first-child > .absolute:has(img) > :is(.bg-gradient-to-r,.bg-gradient-to-b) {
  background-image: var(--ride-photo-overlay);
}

/* Translate old article/guide accents into the homepage's charcoal and ivory language. */
.legacy-page main :is(.bg-gray-950,.bg-gray-900):not(.guest-widget *,[data-review-widget] *) { background-color: var(--guest-ink); }
.legacy-page main :is(.bg-amber-50,.bg-yellow-50):not(.guest-widget *,[data-review-widget] *) { background-color: var(--guest-ivory); }
.legacy-page main :is(.border-amber-100,.border-amber-200,.border-amber-400):not(.guest-widget *,[data-review-widget] *) { border-color: var(--guest-line); }
.legacy-page main :is(.bg-amber-500,.bg-amber-600,.bg-amber-700):not(.guest-widget *,[data-review-widget] *) { background-color: var(--guest-ink); color: var(--guest-ivory); }
.legacy-page main :is(.text-amber-300,.text-amber-400):not(.guest-widget *,[data-review-widget] *) { color: var(--guest-accent); }
.legacy-page main :is(.text-amber-600,.text-amber-700,.text-amber-800):not(.guest-widget *,[data-review-widget] *) { color: var(--guest-muted); }
.legacy-page[data-page-family="article"] main > section > .absolute.opacity-15 { background-image: none !important; }

/* Existing action classes opt in; FAQ controls, carousel dots and plain links are excluded. */
.legacy-page :is(a.type-button,button.type-button,a.guest-action, a.rounded-lg.font-semibold, a.rounded-xl.font-semibold, a.rounded-full.font-semibold):not(.guest-widget *,[data-review-widget] *) {
  min-height: var(--ride-control-height);
  height: auto;
  padding: 12px 24px;
  border-radius: var(--ride-radius);
  font-size: var(--ride-button) !important;
  font-weight: 600;
  line-height: 1.4 !important;
  white-space: normal;
  text-align: center;
  transition: background-color .2s, color .2s, box-shadow .2s;
}
.legacy-page :is(a.type-button,a.guest-action):focus-visible {
  outline: 2px solid var(--guest-accent);
  outline-offset: 4px;
}
.legacy-page .header-mobile-toggle { min-height: 44px; min-width: 44px; }
.legacy-page main button.rounded-lg.type-small.font-semibold:not(.guest-widget *,[data-review-widget] *) {
  min-height: 44px; padding: 10px 18px; font-size: var(--ride-button) !important; border-radius: var(--ride-radius); line-height: 1.4;
}
.legacy-page :is(.header-nav-link,.header-mobile-nav-link) { font-size: 15px; letter-spacing: 0; }
.legacy-page .header-nav-link:is(.active,:hover,:focus-visible),
.legacy-page .header-mobile-nav-link:is(.active,:hover,:focus-visible) { color: var(--guest-ivory); }
.legacy-page footer { font-family: var(--ride-font-body); }
.legacy-page footer :is(p,a,li) { font-size: var(--ride-support); line-height: 1.65; }
nav[aria-label="Quick contact"] a,.legacy-page div.md\:hidden.fixed.bottom-0 a {
  font-family: var(--ride-font-body); font-size: 15px; letter-spacing: 0;
  border-radius: var(--ride-radius); line-height: 1.4; min-height: 44px;
}

/* Repeated items only: no nested frames, no changes to image crops or editorial sections. */
.legacy-page main :is(article.rounded-2xl,div.rounded-2xl.border,div.rounded-xl.border,div.bg-card.rounded-2xl,div.bg-card.rounded-xl):not(.guest-widget *,[data-review-widget] *) {
  border-radius: var(--ride-card-radius);
  border-color: var(--guest-line);
  box-shadow: var(--ride-card-shadow);
}
.legacy-page main :is(article.rounded-2xl,div.bg-card.rounded-2xl,div.bg-card.rounded-xl):not(.guest-widget *,[data-review-widget] *):hover {
  box-shadow: var(--ride-card-hover-shadow);
}
.legacy-page main :is(.grid,.flex) > :is(article,div).border :is(h3,h4):not(.guest-widget *,[data-review-widget] *) {
  font-size: var(--ride-h4) !important;
  line-height: 1.35 !important;
}
.legacy-page main :is(.grid,.flex) > :is(div,article):not(.guest-widget *,[data-review-widget] *) { min-width: 0; }
.legacy-page main table:not(.guest-widget *,[data-review-widget] *) { font-family: var(--ride-font-body); font-size: var(--ride-support); }

/* Website-owned booking shell only. Its secure frame dimensions/messages are untouched. */
.re-booking { background: var(--guest-ink); color: var(--guest-ivory); font-family: var(--ride-font-body); }
.re-booking .re-booking-header { border-color: var(--guest-dark-line); padding-left: var(--ride-gutter); padding-right: var(--ride-gutter); }
.re-booking .re-booking-nav { font-size: 15px; letter-spacing: 0; flex-wrap: wrap; gap: 16px 20px; }
.re-booking .re-booking-nav a { color: var(--guest-ivory); min-height: 44px; display: inline-flex; align-items: center; }
.re-booking :is(.re-booking-help,.re-booking-fallback) { font-size: var(--ride-support); line-height: var(--ride-body-leading); color: var(--guest-light-muted); letter-spacing: 0; }
.re-booking :is(.re-booking-help,.re-booking-fallback) a { color: var(--guest-ivory); }

@media (min-width: 768px) and (max-width: 1023px) {
  :root { --ride-h1: 48px; --ride-h2: 34px; --ride-gutter: 24px; --ride-section: 56px; }
  .legacy-page .guest-opening > .guest-container { grid-template-columns: 1fr; gap: 24px; }
  .legacy-page .guest-opening-copy { grid-column: auto; grid-row: auto; }
  .legacy-page .guest-opening-photo,.legacy-page .guest-opening .guest-photo-credit { grid-column: auto; grid-row: auto; }
  .legacy-page .guest-opening .guest-actions { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 620px; }
}
@media (max-width: 767px) {
  :root { --ride-h1: 34px; --ride-h2: 28px; --ride-h3: 22px; --ride-h4: 19px; --ride-body: 16px; --ride-button: 15px; --ride-gutter: 20px; --ride-section: 48px; }
  .legacy-page[data-page-family="service"] main > section.relative.overflow-hidden:first-child:has(h1),
  .legacy-page[data-page-family="service"] main > section:first-child > .relative.h-full { min-height: 480px; }
  .legacy-page[data-page-family="service"] main > section:first-child > .relative { padding-top: 48px; padding-bottom: 48px; }
  .legacy-page .guest-opening .guest-actions { max-width: none; width: 100%; }
  .legacy-page .guest-review-heading { grid-template-columns: 1fr; gap: 0; }
  .legacy-page .guest-google-wordmark { margin-bottom: 20px; }
  .legacy-page main a.type-button { padding-left: 20px; padding-right: 20px; }
  .re-booking .re-booking-header { gap: 8px; }
  .re-booking .re-booking-nav { gap: 4px 16px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .legacy-page :is(a.type-button,button.type-button,a.guest-action) { transition: none; }
}