
:root {
  --ink: #13282b;
  --muted: #687371;
  --soft: #f8f6f1;
  --paper: #fffefa;
  --line: rgba(19, 40, 43, .12);
  --sea: #2d7580;
  --sea-dark: #174a52;
  --clay: #a7775e;
  --leaf: #6f856f;
  --shadow: 0 18px 44px rgba(19, 40, 43, .07);
  --radius: 8px;
  --container: 1160px;

  /* Primary CTA: solid dusty teal, readable, not aggressive */
  --cta-fill: #1a525b;
  --cta-fill-hover: #24646e;
  --cta-text: #fffefa;

  /* Functional UI timing only (decorative motion lives in motion.css) */
  --ui-ease: cubic-bezier(.25, .1, .25, 1);
  --ui-duration-fast: .18s;
  --ui-duration: .28s;
}

* { box-sizing: border-box; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
  letter-spacing: 0;
}

img, video { max-width: 100%; display: block; }

[hidden] { display: none !important; }

a { color: inherit; }

.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 100;
  background: var(--paper);
  padding: .7rem 1rem;
  border: 1px solid var(--line);
}

.skip-link:focus { top: 1rem; }

.container {
  width: min(100% - 2rem, var(--container));
  margin-inline: auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
  /* Activates with viewport-fit=cover; zero on devices without insets */
  padding-top: env(safe-area-inset-top, 0px);
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
}

.header-inner {
  width: min(100% - 1rem, 1240px);
  max-width: 100%;
  min-height: 72px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: .9rem;
  min-width: 0;
}

.brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: 0;
  text-decoration: none;
  color: var(--ink);
}

.brand-logo {
  width: clamp(108px, 10vw, 132px);
  height: auto;
  transform: none;
  filter: none;
  opacity: 1;
}

.nav {
  display: flex;
  align-items: center;
  gap: .2rem;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  flex: 1 1 auto;
  padding: .4rem 0;
  padding-inline-end: 1.15rem;
  scroll-padding-inline: .85rem;
  -webkit-overflow-scrolling: touch;
}

.nav::-webkit-scrollbar {
  display: none;
}

/* AUD-010 / MOB-014: edge fades signal more items without inventing a hamburger. */
.nav.nav--overflow.nav--at-start:not(.nav--at-end) {
  mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 1.6rem), transparent 100%);
}

.nav.nav--overflow.nav--at-end:not(.nav--at-start) {
  mask-image: linear-gradient(90deg, transparent 0%, #000 1.6rem, #000 100%);
}

.nav.nav--overflow:not(.nav--at-start):not(.nav--at-end) {
  mask-image: linear-gradient(90deg, transparent 0%, #000 1.25rem, #000 calc(100% - 1.25rem), transparent 100%);
}

.nav a, .lang-link {
  text-decoration: none;
  color: var(--muted);
  font-size: .9rem;
  white-space: nowrap;
  padding: .46rem .64rem;
  border-radius: 999px;
  transition:
    color var(--ui-duration-fast) var(--ui-ease),
    background var(--ui-duration-fast) var(--ui-ease);
}

.nav a:hover, .nav a[aria-current="page"], .lang-link:hover {
  color: var(--ink);
  background: rgba(23, 74, 82, .07);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex: 0 0 auto;
  min-width: 0;
}

.header-phone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .38rem;
  min-height: 44px;
  min-width: 44px;
  padding: .46rem .64rem;
  border-radius: 999px;
  text-decoration: none;
  color: var(--muted);
  font-size: .86rem;
  white-space: nowrap;
  transition:
    color var(--ui-duration-fast) var(--ui-ease),
    background var(--ui-duration-fast) var(--ui-ease);
}

.header-phone:hover {
  color: var(--ink);
  background: rgba(23, 74, 82, .07);
}

.header-phone-icon {
  display: inline-flex;
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
}

.header-phone-icon svg {
  width: 100%;
  height: 100%;
}

.header-messenger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: .46rem;
  border-radius: 999px;
  text-decoration: none;
  color: var(--muted);
  transition:
    color var(--ui-duration-fast) var(--ui-ease),
    background var(--ui-duration-fast) var(--ui-ease);
}

.header-messenger:hover,
.header-messenger:focus-visible {
  color: var(--ink);
  background: rgba(23, 74, 82, .07);
}

.header-messenger-icon {
  display: inline-flex;
  width: 1.12rem;
  height: 1.12rem;
  flex: 0 0 auto;
}

.header-messenger-icon svg {
  width: 100%;
  height: 100%;
}

.header-messenger--telegram:hover,
.header-messenger--telegram:focus-visible {
  color: var(--sea);
}

.header-messenger--whatsapp:hover,
.header-messenger--whatsapp:focus-visible {
  color: var(--leaf);
}

.button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(23, 74, 82, .22);
  background: rgba(255, 254, 250, .78);
  color: var(--sea-dark);
  text-decoration: none;
  font: inherit;
  padding: .7rem 1rem;
  border-radius: 999px;
  font-weight: 550;
  cursor: pointer;
  box-shadow: none;
  transition:
    background var(--ui-duration-fast) var(--ui-ease),
    border-color var(--ui-duration-fast) var(--ui-ease),
    color var(--ui-duration-fast) var(--ui-ease),
    transform var(--ui-duration-fast) var(--ui-ease);
}

.button:hover {
  background: rgba(23, 74, 82, .08);
  border-color: rgba(23, 74, 82, .34);
}

.button:active:not(:disabled) {
  transform: translateY(0);
}

.button:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .28);
  outline-offset: 2px;
}

.button:disabled {
  cursor: not-allowed;
  opacity: .58;
}

.button-small { min-height: 40px; padding: .52rem .9rem; font-size: .9rem; font-weight: 550; }

.button-label-short { display: none; }

.button-ghost {
  background: rgba(255, 255, 255, .1);
  border-color: rgba(255, 255, 255, .62);
  color: #fff;
}

.button-secondary {
  background: var(--paper);
  color: var(--sea-dark);
  border-color: var(--line);
}

.header-actions .button,
.hero-actions .button:first-child,
.booking-form .form-actions .button:first-child,
.page-cta-action,
.home-mobile-cta.button,
.site-footer .footer-cta.button {
  background: var(--cta-fill);
  border-color: var(--cta-fill);
  color: var(--cta-text);
  font-weight: 550;
}

.header-actions .button:hover,
.hero-actions .button:first-child:hover,
.booking-form .form-actions .button:first-child:hover,
.page-cta-action:hover:not(:disabled),
.home-mobile-cta.button:hover,
.site-footer .footer-cta.button:hover,
.site-footer .footer-cta.button:focus-visible {
  background: var(--cta-fill-hover);
  border-color: var(--cta-fill-hover);
  color: var(--cta-text);
}

.hero {
  position: relative;
  min-height: min(780px, 88vh);
  min-height: min(780px, 88svh);
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--ink);
}

.hero-image, .sub-hero img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-image { object-position: center 44%; }
.sub-hero img { object-position: center; }
.sub-hero-img--upper { object-position: center 38%; }
.sub-hero-img--facade { object-position: center 44%; }
.sub-hero-img--sea { object-position: center 48%; }

.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(16, 38, 41, .08), rgba(16, 38, 41, .6)),
    linear-gradient(90deg, rgba(16, 38, 41, .54), rgba(16, 38, 41, .08) 64%, rgba(16, 38, 41, .02));
}

.hero-content {
  position: relative;
  color: #fff;
  padding: 4.2rem 0 3.2rem;
}

.hero h1, .section-heading h2 {
  margin: 0;
  line-height: 1.05;
  letter-spacing: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.hero h1 {
  max-width: 620px;
  font-size: clamp(2.2rem, 4.35vw, 3.68rem);
  font-weight: 400;
  line-height: 1.14;
  letter-spacing: -.012em;
  text-shadow: 0 12px 34px rgba(0, 0, 0, .28);
}

.hero-lead {
  margin: .72rem 0 0;
  max-width: 520px;
  font-size: clamp(.94rem, 1.42vw, 1.07rem);
  font-weight: 450;
  color: rgba(255, 254, 250, .76);
  letter-spacing: .012em;
  line-height: 1.5;
  text-shadow: 0 8px 24px rgba(0, 0, 0, .24);
}

.hero-highlights {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem 0;
  margin: 1.1rem 0 0;
  padding: 0;
  list-style: none;
}

.hero-highlights li {
  position: relative;
  padding: 0 1.05rem;
  color: rgba(255, 254, 250, .76);
  font-size: clamp(.82rem, 1.22vw, .91rem);
  font-weight: 450;
  letter-spacing: .016em;
  line-height: 1.45;
  text-shadow: 0 6px 20px rgba(0, 0, 0, .22);
}

.hero-highlights li:first-child { padding-left: 0; }

.hero-highlights li + li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: .82em;
  background: rgba(255, 254, 250, .26);
}

.hero-highlights .hero-highlight-accent {
  font-weight: 540;
  color: rgba(241, 216, 188, .92);
  font-variant-numeric: tabular-nums;
}

.eyebrow {
  margin: 0 0 .8rem;
  color: var(--clay);
  font-size: .78rem;
  font-weight: 720;
}

.hero .eyebrow { color: #f1d8bc; }

.hero-content .eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin-bottom: .85rem;
  padding: .32rem .62rem;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  background: rgba(13, 31, 34, .36);
  color: rgba(255, 254, 250, .92);
  font-size: .67rem;
  font-weight: 650;
  letter-spacing: .11em;
  text-transform: uppercase;
  text-shadow: 0 1px 14px rgba(0, 0, 0, .28);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .1);
  backdrop-filter: blur(10px);
}

.hero-content .eyebrow.hero-eyebrow,
.home-page .hero-content .eyebrow {
  display: block;
  min-height: 0;
  margin-bottom: .95rem;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  font-size: clamp(.78rem, 1.2vw, .84rem);
  font-weight: 500;
  letter-spacing: .018em;
  text-transform: none;
  color: rgba(241, 216, 188, .84);
  text-shadow: 0 2px 18px rgba(0, 0, 0, .24);
}

.hero-content .eyebrow.hero-eyebrow::before,
.home-page .hero-content .eyebrow::before {
  content: "";
  display: inline-block;
  width: 1.35rem;
  height: 1px;
  margin-right: .62rem;
  vertical-align: middle;
  background: linear-gradient(90deg, rgba(241, 216, 188, .58), rgba(241, 216, 188, .1));
}

.hero-promise {
  margin: 0 0 1rem;
  max-width: min(30rem, 88%);
}

.hero-promise-text {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(.78rem, 1.1vw, .84rem);
  font-weight: 480;
  letter-spacing: .038em;
  line-height: 1.5;
  color: rgba(255, 254, 250, .64);
  text-shadow: 0 1px 16px rgba(0, 0, 0, .22);
}

.sub-hero-content .hero-highlights {
  margin-top: 1rem;
}

.sub-hero-content .eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 0;
  margin-bottom: 1rem;
  padding: .4rem .82rem;
  border: 1px solid rgba(255, 254, 250, .18);
  border-radius: 999px;
  background: rgba(13, 31, 34, .22);
  color: rgba(255, 254, 250, .84);
  font-size: clamp(.68rem, .95vw, .73rem);
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: none;
  text-shadow: none;
  box-shadow: 0 6px 22px rgba(0, 0, 0, .08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.45rem;
}

.home-page .hero-actions {
  margin-top: 1.25rem;
}

.home-page .hero-footnote {
  margin: .82rem 0 0;
  max-width: min(36rem, 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(.74rem, 1.05vw, .8rem);
  font-weight: 480;
  letter-spacing: .028em;
  line-height: 1.55;
  color: rgba(255, 254, 250, .5);
  text-shadow: 0 1px 14px rgba(0, 0, 0, .18);
}

.home-page .hero-footnote-link {
  color: rgba(241, 216, 188, .76);
  text-decoration: none;
  border-bottom: 1px solid rgba(241, 216, 188, .2);
  transition:
    color var(--ui-duration-fast) var(--ui-ease),
    border-color var(--ui-duration-fast) var(--ui-ease);
}

.home-page .hero-footnote-link:hover,
.home-page .hero-footnote-link:focus-visible {
  color: rgba(241, 216, 188, .94);
  border-color: rgba(241, 216, 188, .42);
}

.home-page .hero-footnote-sep {
  margin: 0 .34rem;
  opacity: .42;
}

.hero-search {
  margin-top: 1.15rem;
  max-width: min(38rem, 100%);
}

.hero-search-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
}

.hero-search-field {
  display: grid;
  gap: .28rem;
  min-width: 0;
}

.hero-search-field span {
  color: rgba(255, 254, 250, .72);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hero-search-field input,
.hero-search-field select {
  width: 100%;
  min-height: 48px;
  padding: .62rem .72rem;
  border: 1px solid rgba(255, 254, 250, .2);
  border-radius: calc(var(--radius) - 2px);
  background: rgba(255, 254, 250, .94);
  color: var(--ink);
  font: inherit;
  font-size: .92rem;
  line-height: 1.2;
}

.hero-search-field input:focus-visible,
.hero-search-field select:focus-visible {
  outline: 2px solid rgba(241, 216, 188, .72);
  outline-offset: 2px;
}

.hero-search-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: .8rem;
}

.hero-search-submit,
.hero-search-secondary {
  min-height: 48px;
}

/* MOB-022: home bottom sticky chase CTA removed (header CTA kept). */
.home-mobile-bar,
.home-mobile-bar[hidden] {
  display: none !important;
}

body.has-home-mobile-bar {
  padding-bottom: 0 !important;
}

.home-mobile-bar-inner {
  width: min(100%, 960px);
  margin-inline: auto;
}

.home-mobile-cta.button {
  width: 100%;
  justify-content: center;
  min-height: 48px;
}

.home-mid-cta {
  text-align: center;
}

.home-mid-cta__quote {
  margin: 0 auto;
  max-width: 38rem;
  padding: 0;
  border: none;
}

.home-mid-cta__quote p {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  font-style: italic;
  line-height: 1.45;
  color: var(--ink);
}

.home-mid-cta__quote cite {
  display: block;
  margin-top: .85rem;
  font-size: .74rem;
  font-style: normal;
  color: var(--muted);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.home-mid-cta__action {
  margin-top: 1.35rem;
  min-height: 48px;
}

.home-mid-cta__note {
  margin: .72rem 0 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.4;
}

.home-trust-cta {
  display: grid;
  justify-items: center;
  gap: .65rem;
  margin-top: 1.8rem;
  text-align: center;
}

.home-trust-cta .button {
  min-height: 48px;
}

.home-trust-cta__note {
  margin: 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.4;
}

.page-cta--home__trust {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: .9rem;
  font-weight: 650;
  letter-spacing: .01em;
}

.hero-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 0;
  margin-top: 1.6rem;
}

.hero-stats span {
  position: relative;
  padding: 0 1.15rem;
  border: none;
  background: none;
  color: rgba(255, 254, 250, .86);
  font-size: .86rem;
  font-weight: 620;
  letter-spacing: .01em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .28);
}

.hero-stats span:first-child { padding-left: 0; }

.hero-stats span + span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255, 254, 250, .5);
}

.section-block {
  padding: clamp(3rem, 6vw, 5rem) 0;
  background: var(--paper);
}

.section-muted { background: linear-gradient(180deg, #fffefa, var(--soft)); }

.section-heading {
  max-width: 760px;
  margin-bottom: 2rem;
}

.section-heading h2 {
  font-size: clamp(2rem, 4.5vw, 4.1rem);
}

.section-heading p {
  color: var(--muted);
  font-size: 1.05rem;
}

.two-column {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.fact-grid, .amenity-grid, .note-grid, .pricing-grid, .pricing-details, .review-grid {
  display: grid;
  gap: 1rem;
}

.fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.amenity-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.note-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pricing-grid, .pricing-details { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.pricing-details { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.review-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.reviews-page .section-block {
  padding-block: clamp(2.8rem, 5vw, 4.6rem);
}

.reviews-page .hero-stats span {
  color: rgba(255, 254, 250, .88);
}

.reviews-heading {
  max-width: 760px;
  margin-inline: auto;
}

.review-insight {
  max-width: 680px;
  margin: 1rem auto 0;
  color: var(--ink);
  font-size: clamp(1.05rem, 1.8vw, 1.18rem);
  line-height: 1.55;
}

.reviews-trust-panel {
  display: grid;
  gap: clamp(1.1rem, 2.4vw, 1.5rem);
  margin-top: clamp(1.4rem, 2.8vw, 2rem);
  padding: clamp(1.45rem, 3vw, 2rem) clamp(1rem, 2.5vw, 1.6rem);
  border: 1px solid rgba(19, 40, 43, .07);
  border-radius: calc(var(--radius) + 2px);
  background: rgba(255, 254, 250, .52);
  box-shadow: none;
}

.reviews-trust-score {
  text-align: center;
}

.reviews-trust-label {
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.reviews-trust-value {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 7vw, 4.6rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.02em;
}

.reviews-trust-value span {
  color: rgba(19, 40, 43, .42);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .36em;
  font-weight: 560;
}

.reviews-trust-meta {
  margin: .65rem 0 0;
  color: rgba(19, 40, 43, .58);
  font-size: .88rem;
  line-height: 1.45;
}

.reviews-trust-meta a {
  color: var(--sea-dark);
  font-weight: 680;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .24);
  text-underline-offset: .22em;
}

.reviews-trust-meta a:hover,
.reviews-trust-meta a:focus-visible {
  color: var(--sea);
  text-decoration-color: currentColor;
}

.reviews-trust-categories {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .25rem;
  padding-top: clamp(.85rem, 2vw, 1.2rem);
  border-top: 1px solid rgba(19, 40, 43, .06);
}

.reviews-trust-categories span {
  min-width: 0;
  padding: .55rem .35rem;
  border: none;
  border-radius: 0;
  background: transparent;
  text-align: center;
}

.reviews-trust-categories strong,
.reviews-trust-categories small {
  display: block;
}

.reviews-trust-categories strong {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2.4vw, 1.72rem);
  font-weight: 500;
  line-height: 1.1;
}

.reviews-trust-categories small {
  margin-top: .28rem;
  color: rgba(19, 40, 43, .52);
  font-size: .7rem;
  font-weight: 620;
  letter-spacing: .06em;
  line-height: 1.25;
  text-transform: uppercase;
}

.reviews-quotes-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.2vw, 1.35rem);
  margin-top: clamp(1.4rem, 3vw, 2rem);
}

.reviews-quote-card {
  position: relative;
  margin: 0;
  padding: clamp(1.35rem, 2.6vw, 1.75rem) clamp(1.25rem, 2.4vw, 1.65rem);
  padding-left: clamp(1.45rem, 2.8vw, 1.85rem);
  border: 1px solid rgba(19, 40, 43, .08);
  border-left: 3px solid rgba(45, 117, 128, .38);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .94);
  box-shadow: 0 10px 28px rgba(19, 40, 43, .035);
  overflow: hidden;
}

.reviews-quote-card::before {
  content: "\201C";
  position: absolute;
  top: .45rem;
  right: .85rem;
  color: rgba(45, 117, 128, .14);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.8rem, 5vw, 3.6rem);
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  pointer-events: none;
}

.reviews-quote-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 1.9vw, 1.26rem);
  font-style: italic;
  line-height: 1.48;
}

.reviews-quote-card footer {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 1.05rem;
  padding-top: .9rem;
  border-top: 1px solid rgba(19, 40, 43, .07);
  color: rgba(19, 40, 43, .54);
  font-size: .74rem;
  font-style: normal;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.reviews-theme-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .58rem;
  margin: clamp(1.1rem, 2.5vw, 1.6rem) 0 0;
  padding: clamp(1.1rem, 2.4vw, 1.5rem);
  border: 1px solid rgba(19, 40, 43, .07);
  border-radius: calc(var(--radius) + 2px);
  background: rgba(255, 254, 250, .62);
  list-style: none;
}

.reviews-theme-tags li {
  padding: .48rem .92rem;
  border: 1px solid rgba(45, 117, 128, .14);
  border-radius: 999px;
  background: rgba(255, 254, 250, .92);
  color: var(--sea-dark);
  font-size: .86rem;
  font-weight: 640;
  line-height: 1.25;
}

.reviews-theme-tags--trust {
  margin: clamp(.95rem, 2vw, 1.25rem) 0 0;
  padding: clamp(.95rem, 2vw, 1.2rem) 0 0;
  border: none;
  border-top: 1px solid rgba(19, 40, 43, .06);
  border-radius: 0;
  background: transparent;
}

.reviews-theme-tags--reviews {
  margin: 0 0 clamp(1.1rem, 2.4vw, 1.5rem);
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  justify-content: center;
}

.hero-highlights.reviews-hero-trust {
  margin-top: 1rem;
}

.reviews-page .hero-highlights .hero-highlight-accent {
  color: rgba(186, 220, 225, .94);
}

/* Reviews ratings / motifs (surgical polish) */
.reviews-page .reviews-ratings .section-heading {
  text-align: center;
  margin-bottom: clamp(1.35rem, 2.8vw, 1.95rem);
}

.reviews-page .reviews-ratings .section-heading h2 {
  max-width: 22ch;
  margin-inline: auto;
  color: rgba(19, 40, 43, .86);
  font-size: clamp(1.55rem, 2.9vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.22;
}

.reviews-page .reviews-ratings .section-heading .eyebrow {
  margin-bottom: .55rem;
}

.reviews-page .reviews-themes {
  padding-block: clamp(3.2rem, 5.6vw, 4.8rem);
}

.reviews-page .reviews-themes .section-heading {
  max-width: none;
  margin-bottom: clamp(1.45rem, 2.8vw, 2rem);
}

.reviews-page .reviews-themes .section-heading h2 {
  font-size: clamp(1.55rem, 2.9vw, 2.2rem);
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.2;
}

.reviews-page .reviews-trust-panel {
  margin-top: clamp(1.15rem, 2.4vw, 1.55rem);
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.reviews-trust-sources {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.2vw, 1.35rem);
  align-items: stretch;
}

.reviews-trust-source {
  position: relative;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  gap: .55rem;
  justify-items: center;
  text-align: center;
  min-width: 0;
  min-height: 100%;
  padding: clamp(1.2rem, 2.4vw, 1.55rem) clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: calc(var(--radius) + 2px);
  background: rgba(255, 254, 250, .96);
  box-shadow: 0 10px 28px rgba(19, 40, 43, .04);
  transition: border-color var(--ui-duration-fast) var(--ui-ease),
    background var(--ui-duration-fast) var(--ui-ease),
    box-shadow var(--ui-duration-fast) var(--ui-ease),
    transform var(--ui-duration-fast) var(--ui-ease);
}

.reviews-trust-source::before {
  content: "";
  position: absolute;
  top: 0;
  left: 18%;
  right: 18%;
  height: 1px;
  border-radius: 0 0 1px 1px;
  background: var(--trust-accent, rgba(45, 117, 128, .28));
  opacity: .75;
}

.reviews-trust-source--booking {
  --trust-accent: rgba(23, 74, 82, .38);
  border-color: rgba(19, 40, 43, .12);
  background: rgba(255, 254, 250, .98);
  box-shadow: 0 10px 28px rgba(19, 40, 43, .042);
}

.reviews-trust-source--google {
  --trust-accent: rgba(45, 117, 128, .36);
  border-color: rgba(45, 117, 128, .16);
  background: rgba(250, 252, 252, .98);
  box-shadow: 0 10px 28px rgba(19, 40, 43, .04);
}

.reviews-trust-source-label {
  margin: 0;
  color: rgba(19, 40, 43, .7);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.reviews-trust-count {
  margin: 0;
  color: rgba(19, 40, 43, .64);
  font-size: .9rem;
  line-height: 1.4;
  font-weight: 520;
}

.reviews-trust-note {
  margin: 0;
  max-width: 18ch;
  color: rgba(19, 40, 43, .46);
  font-size: .8rem;
  line-height: 1.45;
}

.reviews-trust-source-detail {
  width: 100%;
  min-height: 0;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
}

.reviews-trust-source-detail:empty {
  min-height: 0;
}

.reviews-page .reviews-trust-source--google .reviews-trust-source-detail {
  flex-direction: column;
  gap: .7rem;
}

.reviews-page .reviews-trust-score-pips {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  padding-top: .15rem;
  border-top: 1px solid rgba(19, 40, 43, .06);
  padding-top: clamp(.85rem, 2vw, 1.2rem);
  width: min(100%, 16rem);
}

.reviews-page .reviews-trust-score-pips span {
  width: .72rem;
  height: .72rem;
  border-radius: 50%;
  background: linear-gradient(160deg, rgba(45, 117, 128, .95), rgba(23, 74, 82, .8));
  box-shadow: 0 0 0 3px rgba(45, 117, 128, .12);
}

.reviews-trust-source-link {
  margin: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: end;
}

@media (max-width: 760px) {
  .reviews-trust-sources {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

.reviews-page .reviews-booking-mark {
  color: var(--sea-dark);
  letter-spacing: .07em;
  font-weight: 760;
}

.reviews-page .reviews-google-mark {
  color: var(--sea-dark);
  letter-spacing: .07em;
  font-weight: 700;
}

.reviews-page .reviews-trust-source--booking .reviews-trust-value {
  color: var(--sea-dark);
}

.reviews-page .reviews-trust-source--google .reviews-trust-value {
  color: var(--sea-dark);
}

.reviews-page .reviews-trust-value {
  font-variant-numeric: tabular-nums;
  letter-spacing: -.03em;
  text-shadow: none;
}

.reviews-page .reviews-trust-value span {
  color: rgba(19, 40, 43, .46);
}

.reviews-page .reviews-trust-source--booking .reviews-trust-value span {
  color: rgba(23, 74, 82, .5);
}

.reviews-page .reviews-trust-source--google .reviews-trust-value span {
  color: rgba(45, 117, 128, .55);
}

.reviews-page .reviews-trust-categories {
  display: grid;
  gap: clamp(.55rem, 1.2vw, .85rem);
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  padding-top: clamp(.85rem, 2vw, 1.2rem);
  border-top: 1px solid rgba(19, 40, 43, .06);
}

.reviews-page .reviews-trust-categories-row {
  display: grid;
  gap: .25rem;
}

.reviews-page .reviews-trust-categories-row--top {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: min(100%, 26rem);
  margin-inline: auto;
}

.reviews-page .reviews-trust-categories-row--bottom {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reviews-page .reviews-trust-categories strong {
  color: rgba(23, 74, 82, .88);
  letter-spacing: -.015em;
}

.reviews-page .reviews-trust-categories small {
  color: rgba(19, 40, 43, .46);
}

.reviews-page .reviews-trust-categories span {
  position: relative;
}

.reviews-page .reviews-trust-categories span::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: .15rem;
  transform: translateX(-50%);
  width: 1.25rem;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(45, 117, 128, .22), transparent);
}

.reviews-trust-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .55rem .72rem;
  margin: 0;
  padding-top: clamp(.75rem, 1.8vw, 1rem);
  border-top: 1px solid rgba(19, 40, 43, .06);
}

.reviews-trust-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: .55rem 1rem;
  border: 1px solid rgba(45, 117, 128, .24);
  border-radius: 999px;
  background: rgba(255, 254, 250, .96);
  color: var(--sea-dark);
  font-size: .84rem;
  font-weight: 620;
  letter-spacing: .01em;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: border-color .28s ease, color .28s ease, background .28s ease, box-shadow .28s ease;
}

.reviews-trust-source--booking .reviews-trust-link {
  border-color: rgba(23, 74, 82, .28);
  background: rgba(255, 254, 250, .99);
  font-weight: 640;
}

.reviews-trust-source--google .reviews-trust-link {
  border-color: rgba(23, 74, 82, .24);
  background: rgba(255, 254, 250, .98);
  color: var(--sea-dark);
  font-weight: 620;
}

.reviews-trust-link:hover {
  border-color: rgba(23, 74, 82, .34);
  color: var(--sea-dark);
  background: rgba(255, 254, 250, .99);
  box-shadow: 0 4px 14px rgba(19, 40, 43, .07);
}

.reviews-trust-source--google .reviews-trust-link:hover {
  border-color: rgba(45, 117, 128, .38);
  background: rgba(236, 244, 245, .55);
  color: var(--sea-dark);
}

.reviews-trust-link:focus-visible {
  border-color: rgba(23, 74, 82, .36);
  color: var(--sea-dark);
  background: rgba(255, 254, 250, .99);
  outline: 2px solid rgba(45, 117, 128, .36);
  outline-offset: 2px;
  box-shadow: 0 4px 14px rgba(19, 40, 43, .07);
}

.reviews-trust-link:active {
  transform: translateY(1px);
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .reviews-page .reviews-trust-source:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(19, 40, 43, .05);
  }

  .reviews-page .reviews-trust-source--booking:hover {
    border-color: rgba(19, 40, 43, .16);
  }

  .reviews-page .reviews-trust-source--google:hover {
    border-color: rgba(45, 117, 128, .28);
  }
}

@media (prefers-reduced-motion: reduce) {
  .reviews-page .reviews-trust-source {
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
  }

  .reviews-page .reviews-trust-source:hover {
    transform: none;
  }
}

.reviews-trust-verify {
  margin: 0;
  padding-top: clamp(.85rem, 2vw, 1.1rem);
  border-top: 1px solid rgba(19, 40, 43, .06);
  text-align: center;
  color: rgba(19, 40, 43, .54);
  font-size: .86rem;
  line-height: 1.55;
}

.reviews-motifs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 1.7vw, 1.35rem);
  margin-top: 0;
  align-items: stretch;
}

.reviews-motif {
  --motif-accent: rgba(45, 117, 128, .42);
  position: relative;
  margin: 0;
  grid-column: span 1;
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  gap: .78rem;
  min-height: clamp(9.5rem, 13.5vw, 11.75rem);
  padding: clamp(1.75rem, 2.6vw, 2.15rem) clamp(1.55rem, 2.3vw, 2rem);
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: calc(var(--radius) + 1px);
  background: rgba(255, 254, 250, .97);
  box-shadow: 0 10px 26px rgba(19, 40, 43, .035);
  transition: border-color var(--ui-duration-fast) var(--ui-ease),
    background var(--ui-duration-fast) var(--ui-ease),
    box-shadow var(--ui-duration-fast) var(--ui-ease),
    transform var(--ui-duration-fast) var(--ui-ease);
}

.reviews-motif::before {
  content: "";
  position: absolute;
  top: clamp(1.15rem, 2vw, 1.35rem);
  left: clamp(1.55rem, 2.3vw, 2rem);
  width: 1.55rem;
  height: 1.5px;
  border-radius: 1px;
  background: var(--motif-accent);
  opacity: .85;
}

.reviews-motif[data-motif="sea"] {
  --motif-accent: rgba(45, 117, 128, .5);
  border-color: rgba(45, 117, 128, .14);
}

.reviews-motif[data-motif="photo"] {
  --motif-accent: rgba(167, 119, 94, .48);
  border-color: rgba(167, 119, 94, .16);
}

.reviews-motif[data-motif="clean"] {
  --motif-accent: rgba(111, 133, 111, .48);
  border-color: rgba(111, 133, 111, .15);
}

.reviews-motif[data-motif="yard"] {
  --motif-accent: rgba(23, 74, 82, .48);
  border-color: rgba(23, 74, 82, .14);
}

.reviews-motif[data-motif="essentials"] {
  --motif-accent: rgba(45, 117, 128, .42);
  border-color: rgba(19, 40, 43, .12);
}

.reviews-motif[data-motif="home"] {
  --motif-accent: rgba(167, 119, 94, .46);
  border-color: rgba(167, 119, 94, .15);
}

.reviews-motif figcaption {
  margin: .62rem 0 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.12rem, 1.8vw, 1.28rem);
  font-weight: 500;
  letter-spacing: -.014em;
  line-height: 1.22;
  text-transform: none;
}

.reviews-motif p {
  margin: 0;
  color: rgba(19, 40, 43, .7);
  font-size: clamp(.92rem, 1.35vw, 1.02rem);
  font-weight: 450;
  line-height: 1.48;
  letter-spacing: .005em;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .reviews-motif:hover {
    border-color: rgba(19, 40, 43, .15);
    box-shadow: 0 12px 28px rgba(19, 40, 43, .045);
    transform: translateY(-1px);
  }

  .reviews-motif:hover::before {
    width: 1.85rem;
    opacity: 1;
  }

  .reviews-motif[data-motif="sea"]:hover,
  .reviews-motif[data-motif="essentials"]:hover {
    border-color: rgba(45, 117, 128, .28);
  }

  .reviews-motif[data-motif="photo"]:hover,
  .reviews-motif[data-motif="home"]:hover {
    border-color: rgba(167, 119, 94, .3);
  }

  .reviews-motif[data-motif="clean"]:hover {
    border-color: rgba(111, 133, 111, .28);
  }

  .reviews-motif[data-motif="yard"]:hover {
    border-color: rgba(23, 74, 82, .28);
  }
}

.reviews-motif:focus-within {
  outline: 2px solid rgba(45, 117, 128, .28);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .reviews-motif {
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
  }

  .reviews-motif:hover {
    transform: none;
  }
}

@media (max-width: 1100px) {
  .reviews-motifs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reviews-motif {
    min-height: clamp(8.75rem, 16vw, 10.5rem);
  }
}

@media (max-width: 560px) {
  .reviews-motifs {
    grid-template-columns: 1fr;
    gap: .85rem;
  }

  .reviews-motif {
    min-height: 0;
    padding: 1.35rem 1.2rem 1.25rem;
    gap: .55rem;
  }

  .reviews-motif::before {
    top: 1rem;
    left: 1.2rem;
  }
}

.reviews-ugc-lead {
  max-width: 34ch;
  margin: .48rem auto 0;
  color: rgba(19, 40, 43, .52);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 1.55vw, 1.1rem);
  font-style: italic;
  line-height: 1.45;
}

.reviews-ugc--lead .section-heading {
  text-align: center;
}

.reviews-ugc-grid {
  margin-top: clamp(1.35rem, 2.8vw, 2rem);
}

.reviews-ugc-item {
  margin: 0;
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  align-self: start;
  gap: .78rem;
  min-width: 0;
}

.reviews-ugc-item .reviews-guest-photo {
  margin: 0;
  width: 100%;
}

.reviews-ugc-caption {
  display: grid;
  gap: .18rem;
  padding: 0;
  min-height: 0;
  align-content: start;
  justify-items: start;
  text-align: left;
}

.reviews-ugc-name {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 1.5vw, 1.08rem);
  font-weight: 400;
  line-height: 1.3;
}

.reviews-ugc-context,
.reviews-ugc-moment {
  color: rgba(19, 40, 43, .52);
  font-size: .82rem;
  line-height: 1.45;
  letter-spacing: .01em;
}

.reviews-ugc-moment {
  color: rgba(19, 40, 43, .62);
  font-style: italic;
}

.reviews-ugc-caption--quiet {
  text-align: center;
}

.reviews-ugc-caption--quiet .reviews-ugc-moment {
  font-style: normal;
}

.reviews-ugc--lead {
  padding-block: clamp(2.2rem, 4vw, 3.4rem);
}

.reviews-ugc--closing {
  padding-block: clamp(1.8rem, 3.2vw, 2.6rem) clamp(1.35rem, 2.6vw, 2rem);
}

.reviews-ugc-grid--quiet {
  margin-top: 0;
}

.reviews-ugc .reviews-ugc-story {
  margin-top: clamp(1.25rem, 2.6vw, 1.75rem);
}

.reviews-ugc-story {
  margin: 0;
  display: grid;
  gap: .78rem;
}

.reviews-ugc-photo {
  margin: 0;
  min-width: 0;
}

.reviews-ugc-caption--story {
  display: grid;
  gap: .18rem;
  justify-items: start;
  padding: 0;
  text-align: left;
}

.reviews-guest-photos--duo .reviews-guest-photo {
  aspect-ratio: 3 / 4;
  min-height: 0;
  width: 100%;
}

.reviews-filter {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: center;
  margin: 0 0 clamp(1.35rem, 2.8vw, 1.85rem);
  padding: 0;
}

.reviews-filter-btn {
  padding: .44rem .88rem;
  border: 1px solid rgba(45, 117, 128, .1);
  border-radius: 999px;
  background: transparent;
  color: rgba(19, 40, 43, .42);
  font: inherit;
  font-size: .84rem;
  letter-spacing: .01em;
  cursor: pointer;
  transition: border-color .28s ease, color .28s ease, background .28s ease;
}

.reviews-filter-btn:hover,
.reviews-filter-btn:focus-visible {
  border-color: rgba(23, 74, 82, .2);
  color: rgba(23, 74, 82, .72);
}

.reviews-filter-btn.is-active {
  border-color: rgba(23, 74, 82, .28);
  background: rgba(23, 74, 82, .05);
  color: var(--sea-dark);
  font-weight: 620;
}

.reviews-filter-empty {
  margin: 0 0 1.25rem;
  text-align: center;
  color: rgba(19, 40, 43, .52);
  font-size: .9rem;
  line-height: 1.55;
}

.reviews-page .review-grid {
  gap: clamp(.95rem, 2vw, 1.35rem);
  align-items: start;
  margin-top: 0;
}

.reviews-page .review-card.is-filtered-out {
  display: none;
}

.reviews-page .review-card--google {
  background: rgba(255, 254, 250, .86);
}

.reviews-page .review-card {
  display: flex;
  flex-direction: column;
  gap: .72rem;
  min-height: 0;
  padding: clamp(1.15rem, 2.2vw, 1.5rem);
  background: rgba(255, 254, 250, .92);
  border-color: rgba(19, 40, 43, .09);
  box-shadow: 0 12px 32px rgba(19, 40, 43, .042);
}

.reviews-page .review-card:not(.review-card--featured) {
  border-left: 2px solid rgba(45, 117, 128, .22);
  background: rgba(255, 254, 250, .96);
  box-shadow: 0 10px 28px rgba(19, 40, 43, .04);
  transition: border-color .28s ease, box-shadow .28s ease, transform .28s ease;
}

@media (hover: hover) and (pointer: fine) {
  .reviews-page .review-card:not(.review-card--featured):hover {
    border-left-color: rgba(45, 117, 128, .34);
    box-shadow: 0 12px 30px rgba(19, 40, 43, .05);
    transform: translateY(-1px);
  }
}

.reviews-page .review-card--google:not(.review-card--featured) {
  border-left-color: rgba(19, 40, 43, .14);
  background: rgba(255, 254, 250, .94);
}

@media (hover: hover) and (pointer: fine) {
  .reviews-page .review-card--google:not(.review-card--featured):hover {
    border-left-color: rgba(19, 40, 43, .22);
  }
}

.reviews-page .review-card:not(.review-card--featured) .review-text {
  color: rgba(19, 40, 43, .87);
}

.reviews-page .review-card:not(.review-card--featured) .review-author {
  color: rgba(19, 40, 43, .91);
}

.reviews-page .review-card:not(.review-card--featured) .review-meta {
  color: rgba(19, 40, 43, .5);
}

.reviews-page .review-card:not(.review-card--featured) .review-byline .review-score {
  color: var(--sea-dark);
}

.reviews-page .review-text {
  flex: 1;
  margin: 0;
  order: 3;
  color: rgba(19, 40, 43, .84);
  font-size: clamp(.98rem, 1.5vw, 1.05rem);
  line-height: 1.62;
}

.reviews-page .review-byline {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .85rem;
  order: 1;
  margin-top: 0;
  padding-bottom: .55rem;
  border-bottom: 1px solid rgba(19, 40, 43, .06);
}

.reviews-page .review-author {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.04rem, 1.6vw, 1.14rem);
  font-weight: 400;
  line-height: 1.25;
}

.reviews-page .review-byline .review-score {
  flex: 0 0 auto;
  padding: .18rem .5rem;
  border: 1px solid rgba(45, 117, 128, .16);
  border-radius: 999px;
  background: rgba(255, 255, 253, .88);
  color: var(--sea-dark);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .78rem;
  font-variant-numeric: tabular-nums;
  font-weight: 640;
  letter-spacing: .02em;
  line-height: 1.2;
  white-space: nowrap;
}

.reviews-page .review-score-denom {
  color: rgba(19, 40, 43, .34);
  font-weight: 520;
  letter-spacing: .02em;
}

.reviews-page .review-top strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.04rem, 1.6vw, 1.14rem);
  font-weight: 400;
}

.reviews-page .review-top span,
.reviews-page .review-top .review-score {
  background: rgba(255, 254, 250, .72);
  border: 1px solid rgba(23, 74, 82, .14);
  color: var(--sea-dark);
  font-size: .82rem;
  font-weight: 660;
}

.reviews-page .review-meta {
  order: 2;
  margin: 0;
  color: rgba(19, 40, 43, .5);
  font-size: .72rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.reviews-page .review-card--featured .review-text {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.05rem, 1.7vw, 1.18rem);
  line-height: 1.58;
  color: rgba(19, 40, 43, .88);
}

.reviews-page .review-card--featured {
  grid-column: 1 / -1;
  padding: clamp(1.35rem, 2.6vw, 1.85rem) clamp(1.25rem, 2.4vw, 1.75rem);
  border-left: 3px solid rgba(45, 117, 128, .34);
  background: rgba(255, 254, 250, .96);
}

.reviews-verify {
  max-width: 34rem;
  margin-inline: auto;
  text-align: center;
}

.reviews-verify-text {
  margin: 0;
  color: rgba(19, 40, 43, .62);
  font-size: .94rem;
  line-height: 1.6;
}

.reviews-verify-link {
  margin: .72rem 0 0;
}

.reviews-verify-link a {
  color: rgba(19, 40, 43, .54);
  font-size: .86rem;
  letter-spacing: .01em;
  text-decoration: underline;
  text-decoration-color: rgba(19, 40, 43, .22);
  text-underline-offset: .18em;
  transition: color .28s ease, text-decoration-color .28s ease;
}

.reviews-verify-link a:hover,
.reviews-verify-link a:focus-visible {
  color: var(--sea-dark);
  text-decoration-color: currentColor;
}

.reviews-verify-sep {
  margin: 0 .45rem;
  color: rgba(19, 40, 43, .28);
}

.reviews-guest-photos {
  display: grid;
  grid-template-columns: 1.12fr 1fr;
  gap: .7rem;
  margin-top: clamp(1rem, 2.2vw, 1.45rem);
  align-items: start;
}

.reviews-guest-photos.reviews-ugc-grid,
.reviews-guest-photos.reviews-ugc-grid--quiet {
  align-items: start;
}

.reviews-guest-photos--duo .reviews-guest-photo {
  aspect-ratio: 3 / 4;
  min-height: 0;
  width: 100%;
}

.reviews-guest-photos--row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.55rem, 1.4vw, .75rem);
}

.reviews-guest-photo-stack {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: .7rem;
  min-height: 0;
}

.reviews-guest-photo {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--radius) + 1px);
  border: 1px solid rgba(19, 40, 43, .07);
  background: rgba(255, 254, 250, .72);
}

.reviews-guest-photo--lead {
  min-height: clamp(300px, 46vw, 560px);
}

.reviews-guest-photo-stack .reviews-guest-photo {
  min-height: 0;
}

.reviews-guest-photo img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
}

.reviews-guest-photos--row .reviews-guest-photo {
  aspect-ratio: 3 / 4;
  min-height: 0;
}

.reviews-closing {
  margin: 0;
  padding: 0;
  border: none;
}

.reviews-closing-text {
  margin: 0 auto;
  max-width: 28ch;
  text-align: center;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.38rem, 2.55vw, 1.88rem);
  font-weight: 400;
  line-height: 1.56;
  letter-spacing: -.02em;
  color: rgba(19, 40, 43, .82);
  text-wrap: balance;
}

.reviews-closing-brand,
.reviews-leave-brand {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: .1em;
  color: var(--sea-dark);
}

.reviews-page-ending {
  background: linear-gradient(180deg, var(--soft) 0%, #fdfbf7 38%, #fdfbf7 100%);
  border-top: 1px solid rgba(19, 40, 43, .05);
}

.reviews-page-finale {
  /* One closing breath with the CTA below */
  padding: clamp(3rem, 5.5vw, 4.5rem) 0 clamp(1.05rem, 1.8vw, 1.45rem);
  background: transparent;
  border-top: none;
}

.page-cta--reviews {
  /* Same soft band as finale — no new surface */
  padding: 0 0 clamp(1.85rem, 3.2vw, 2.55rem);
  background: transparent;
  border-top: none;
}

.page-cta--reviews__shell {
  display: grid;
  justify-items: center;
  gap: clamp(1rem, 1.9vw, 1.35rem);
  text-align: center;
}

.page-cta--reviews__copy {
  max-width: 34ch;
  margin-top: 0;
}

.page-cta--reviews__copy .eyebrow {
  margin: 0 0 .4rem;
}

.page-cta--reviews h2 {
  max-width: none;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.22rem, 1.85vw, 1.46rem);
  font-weight: 400;
  letter-spacing: -.012em;
  color: rgba(19, 40, 43, .76);
}

.page-cta--reviews__copy p {
  max-width: none;
  margin: .58rem 0 0;
  color: rgba(19, 40, 43, .5);
  font-size: clamp(.9rem, 1.35vw, .98rem);
  line-height: 1.62;
}

.page-cta--reviews .page-cta-action {
  min-width: min(100%, 240px);
  margin-top: clamp(.15rem, .5vw, .35rem);
}

.page-cta--reviews__verify {
  margin: .72rem 0 0;
  color: rgba(19, 40, 43, .52);
  font-size: .84rem;
  line-height: 1.55;
}

.page-cta--reviews__verify a {
  color: rgba(19, 40, 43, .54);
  text-decoration: underline;
  text-decoration-color: rgba(19, 40, 43, .22);
  text-underline-offset: .18em;
}

.page-cta--reviews__verify a:hover,
.page-cta--reviews__verify a:focus-visible {
  color: var(--sea-dark);
  text-decoration-color: currentColor;
}

.reviews-soft-cta {
  padding-block: clamp(1.6rem, 3vw, 2.4rem);
}

.reviews-soft-cta-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: clamp(1.35rem, 2.8vw, 1.85rem) clamp(1.2rem, 2.6vw, 1.6rem);
  border: 1px solid rgba(19, 40, 43, .08);
  border-radius: calc(var(--radius) + 2px);
  background: rgba(255, 254, 250, .58);
  box-shadow: none;
  text-align: center;
}

.reviews-soft-cta-inner p {
  margin: 0;
  max-width: 34ch;
  color: rgba(19, 40, 43, .68);
  font-size: clamp(1rem, 1.6vw, 1.08rem);
  line-height: 1.5;
}

.reviews-soft-cta-inner .button {
  flex: 0 0 auto;
  min-width: min(100%, 220px);
  background: var(--sea-dark);
  border-color: var(--sea-dark);
  color: #fff;
  white-space: nowrap;
}

.reviews-soft-cta-inner .button:hover {
  background: var(--sea);
  border-color: var(--sea);
}

.reviews-leave-section {
  padding: 0 0 clamp(1.75rem, 2.8vw, 2.25rem);
  border-top: none;
  background: transparent;
}

.reviews-leave {
  max-width: 34rem;
  margin-inline: auto;
  padding-top: clamp(1.1rem, 2vw, 1.45rem);
  border-top: 1px solid rgba(19, 40, 43, .06);
  text-align: center;
}

.reviews-leave-label {
  margin: 0;
  color: rgba(19, 40, 43, .48);
  font-size: .84rem;
  line-height: 1.45;
  letter-spacing: .01em;
}

.reviews-leave-brand {
  font-weight: 400;
}

.reviews-leave-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .35rem .55rem;
  margin: .48rem 0 0;
}

.reviews-leave-link {
  color: rgba(19, 40, 43, .46);
  font-size: .78rem;
  letter-spacing: .01em;
  line-height: 1.4;
  text-decoration: underline;
  text-decoration-color: rgba(19, 40, 43, .18);
  text-underline-offset: .2em;
  transition: color var(--ui-duration-fast) var(--ui-ease), text-decoration-color var(--ui-duration-fast) var(--ui-ease);
}

.reviews-leave-link--primary {
  color: rgba(23, 74, 82, .62);
  font-weight: 580;
  text-decoration-color: rgba(23, 74, 82, .22);
}

.reviews-leave-link:hover,
.reviews-leave-link:focus-visible {
  color: var(--sea-dark);
  text-decoration-color: currentColor;
}

.reviews-leave-or {
  color: rgba(19, 40, 43, .22);
  font-size: .72rem;
}

.reviews-share-quiet {
  margin: 0;
  text-align: center;
  color: rgba(19, 40, 43, .36);
  font-size: .74rem;
  line-height: 1.55;
  letter-spacing: .01em;
}

.reviews-share-quiet .reviews-share-link {
  color: rgba(19, 40, 43, .44);
  font-size: inherit;
}

.reviews-share {
  max-width: 36rem;
  margin-inline: auto;
  text-align: center;
}

.reviews-share-eyebrow {
  margin: 0;
  color: rgba(19, 40, 43, .4);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .8rem;
  font-weight: 450;
  letter-spacing: 0;
  line-height: 1.35;
  text-transform: none;
}

.reviews-share-title {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.28rem, 2.1vw, 1.56rem);
  font-weight: 400;
  line-height: 1.28;
  letter-spacing: -.015em;
  color: var(--ink);
}

.reviews-share-lead {
  margin: .22rem 0 0;
  color: rgba(19, 40, 43, .38);
  font-size: .78rem;
  line-height: 1.5;
}

.reviews-share-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .4rem .5rem;
  margin: .52rem 0 0;
  text-align: center;
}

.reviews-share-pill {
  padding: .32rem .72rem;
  border: 1px solid rgba(45, 117, 128, .1);
  border-radius: 999px;
  background: transparent;
  color: rgba(19, 40, 43, .46);
  font-size: .76rem;
  letter-spacing: .01em;
  line-height: 1.35;
  text-decoration: none;
  transition: border-color var(--ui-duration-fast) var(--ui-ease), color var(--ui-duration-fast) var(--ui-ease), background var(--ui-duration-fast) var(--ui-ease);
}

.reviews-share-pill:hover,
.reviews-share-pill:focus-visible {
  border-color: rgba(23, 74, 82, .26);
  color: var(--sea-dark);
  background: rgba(255, 254, 250, .92);
}

.reviews-share-link {
  color: rgba(19, 40, 43, .58);
  text-decoration: underline;
  text-decoration-color: rgba(19, 40, 43, .22);
  text-underline-offset: .18em;
  transition: color var(--ui-duration-fast) var(--ui-ease), text-decoration-color var(--ui-duration-fast) var(--ui-ease);
}

.reviews-share-link:hover,
.reviews-share-link:focus-visible {
  color: var(--sea-dark);
  text-decoration-color: currentColor;
}

.reviews-share-or {
  margin: 0 .45rem;
  color: rgba(19, 40, 43, .28);
  font-size: .82rem;
}

.booking-proof {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .48rem .82rem;
  width: auto;
  max-width: min(100%, 720px);
  margin: 1.05rem auto 0;
  padding: .62rem .82rem;
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: 999px;
  background: rgba(255, 254, 250, .72);
  color: rgba(19, 40, 43, .66);
  box-shadow: 0 14px 34px rgba(19, 40, 43, .045);
}

.booking-proof span {
  color: rgba(19, 40, 43, .54);
  font-size: .78rem;
  font-weight: 760;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.booking-proof strong {
  color: var(--ink);
  font-size: .98rem;
  font-weight: 780;
}

.booking-proof small {
  color: rgba(19, 40, 43, .6);
  font-size: .9rem;
}

.booking-proof a {
  color: var(--sea-dark);
  font-size: .9rem;
  font-weight: 720;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .24);
  text-underline-offset: .24em;
}

.booking-proof a:hover,
.booking-proof a:focus-visible {
  color: var(--sea);
  text-decoration-color: currentColor;
}

.booking-proof-compact {
  margin-top: .85rem;
}

.fact-card, .amenity-card, .note-card, .price-card, .review-card, .booking-contact-card {
  background: rgba(255, 254, 250, .76);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1rem;
  box-shadow: none;
}

.fact-card h3, .amenity-card h3, .note-card h3, .price-card h2, .review-card strong {
  margin: 0 0 .45rem;
}

.fact-card p, .note-card p, .review-card p, .price-card p, .booking-contact-card p { color: var(--muted); }

.booking-contact-action .button {
  margin-top: .75rem;
}

.property-notes {
  gap: .85rem;
  margin: 1.2rem 0;
}

.property-notes .note-card {
  position: relative;
  overflow: hidden;
  min-height: 172px;
  padding: 1.08rem;
  background: linear-gradient(180deg, rgba(255, 254, 250, .96), rgba(248, 246, 241, .62));
  box-shadow: 0 18px 34px rgba(19, 40, 43, .045);
}

.property-notes .note-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--sea), var(--leaf), var(--clay));
  opacity: .72;
}

.property-notes .note-card::after {
  display: none;
}

.property-notes .note-card h3 {
  padding-right: 0;
}

.property-notes .note-card h3,
.property-notes .note-card p {
  position: relative;
  z-index: 1;
}

.amenity-card ul, .price-card ul, .pricing-details ul {
  margin: 1rem 0 0;
  padding-left: 1.2rem;
}

.amenity-card li, .price-card li, .pricing-details li { margin: .35rem 0; }

.story-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.story-card {
  background: rgba(255, 254, 250, .72);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.story-card img {
  width: 100%;
  height: 430px;
  object-fit: cover;
}

.story-card div { padding: 1rem; }

.story-card h3 { margin: 0 0 .35rem; }
.story-card p { margin: 0; color: var(--muted); }

.split-feature {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 2rem;
  align-items: start;
}

.rate-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}

.rate-strip div {
  background: rgba(255, 254, 250, .74);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: .95rem;
}

.rate-strip span, .rate-strip small {
  display: block;
  color: var(--muted);
}

.rate-strip strong {
  display: block;
  margin: .5rem 0;
  font-size: 1.15rem;
}

.text-link {
  display: inline-flex;
  margin-top: .4rem;
  color: var(--sea-dark);
  font-weight: 700;
  text-decoration-thickness: 1px;
}

.page-cta {
  color: var(--ink);
  border-bottom: none;
}

.page-cta h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -.01em;
}

.page-cta-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: auto;
  min-height: 46px;
  padding: .7rem 1.2rem;
  font-size: .94rem;
}

.page-cta--home {
  /* Continues section-muted (--soft) and returns to --soft for the footer */
  padding: clamp(1.65rem, 2.8vw, 2.15rem) 0 clamp(2.2rem, 3.6vw, 2.85rem);
  text-align: center;
  background: linear-gradient(
    180deg,
    var(--soft) 0%,
    #faf6f0 42%,
    #f8f4ec 72%,
    var(--soft) 100%
  );
  border-top: none;
}

.home-page .section-muted:has(+ .page-cta--home),
.home-page .section-block:has(+ .page-cta--home) {
  padding-bottom: 9rem;
}

.home-page .page-cta--home {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.page-cta--home h2 {
  max-width: 22ch;
  font-size: clamp(1.38rem, 2vw, 1.64rem);
  font-weight: 400;
  letter-spacing: -.016em;
  line-height: 1.22;
  color: rgba(19, 40, 43, .86);
}

.page-cta--home__lead {
  max-width: 38ch;
  margin: .6rem 0 0;
  color: rgba(19, 40, 43, .54);
  font-size: .94rem;
  line-height: 1.55;
}

.page-cta--home .page-cta-action {
  margin-top: 1.45rem;
  min-width: min(100%, 248px);
}

.page-cta--home__note {
  margin: .85rem 0 0;
  max-width: 42ch;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.5;
}

.page-cta--home__note a {
  color: var(--sea);
  text-decoration: underline;
  text-underline-offset: .12em;
}

.page-cta--home__note a:hover {
  color: var(--sea-dark);
}

.page-cta--home__shell {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.page-cta--property {
  padding: clamp(2.25rem, 3.6vw, 3rem) 0 clamp(2.35rem, 3.8vw, 3.1rem);
  background: transparent;
  border-top: none;
}

.property-page .section-muted:has(+ .page-cta--property),
.property-page #house-reviews:has(+ .page-cta--property) {
  padding-bottom: clamp(1.65rem, 2.8vw, 2.2rem);
}

.page-cta--property h2 {
  max-width: 22ch;
  margin: 0 auto;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.28rem, 1.95vw, 1.52rem);
  font-weight: 400;
  letter-spacing: -.018em;
  color: rgba(19, 40, 43, .82);
  line-height: 1.28;
}

.page-cta--property__shell {
  display: grid;
  justify-items: center;
  gap: clamp(1.15rem, 2vw, 1.45rem);
  text-align: center;
}

.page-cta--property__copy {
  max-width: 32rem;
}

.page-cta--property__copy p {
  max-width: 36ch;
  margin: .65rem auto 0;
  color: rgba(19, 40, 43, .54);
  font-size: clamp(.9rem, 1.32vw, .96rem);
  line-height: 1.6;
}

.property-page .page-cta--property .page-cta-action {
  min-width: min(100%, 248px);
}

.page-cta--gallery {
  position: relative;
  z-index: 1;
  /* Extra quiet air before the shared soft footer */
  padding: clamp(2.35rem, 4vw, 3.1rem) 0 clamp(2.85rem, 4.6vw, 3.55rem);
  color: rgba(255, 254, 250, .92);
  text-align: center;
  background: linear-gradient(180deg, #080f10 0%, #0c1516 62%, #101c1d 100%);
  border-top: 1px solid rgba(255, 254, 250, .06);
  box-shadow: 0 28px 56px -20px rgba(8, 15, 16, .5);
}

.page-cta--gallery__shell {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.page-cta--gallery h2 {
  max-width: 18ch;
  font-size: clamp(1.42rem, 2vw, 1.72rem);
  color: rgba(255, 254, 250, .94);
}

.page-cta--gallery p {
  max-width: 34ch;
  margin: .52rem 0 0;
  color: rgba(255, 254, 250, .62);
  font-size: .93rem;
  line-height: 1.55;
}

.page-cta--gallery .page-cta-action {
  margin-top: 1.4rem;
  background: rgba(255, 254, 250, .95);
  color: var(--sea-dark);
  border-color: rgba(255, 254, 250, .95);
}

.page-cta--gallery .page-cta-action:hover {
  background: #fff;
  border-color: #fff;
}

.page-cta--location {
  /* From location-faq paper → coastal breath → footer soft */
  padding: clamp(2.9rem, 4.8vw, 3.75rem) 0 clamp(3rem, 5vw, 3.85rem);
  background: linear-gradient(
    180deg,
    var(--paper) 0%,
    rgba(236, 244, 243, .42) 38%,
    var(--soft) 100%
  );
  border-top: none;
  text-align: center;
}

.location-page .location-faq:has(+ .page-cta--location) {
  padding-bottom: clamp(1.35rem, 2.5vw, 1.9rem);
}

.page-cta--location__shell {
  display: grid;
  justify-items: center;
  gap: clamp(1.2rem, 2.1vw, 1.55rem);
}

.page-cta--location__copy {
  max-width: 32rem;
}

.page-cta--location h2 {
  max-width: 20ch;
  margin: 0 auto;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.3rem, 2vw, 1.58rem);
  font-weight: 400;
  color: rgba(19, 40, 43, .84);
  letter-spacing: -.016em;
  line-height: 1.22;
}

.page-cta--location__copy p {
  max-width: 36ch;
  margin: .58rem auto 0;
  color: rgba(19, 40, 43, .52);
  font-size: clamp(.9rem, 1.32vw, .96rem);
  line-height: 1.58;
}

.page-cta--location .page-cta-action {
  min-width: min(100%, 248px);
}

.page-cta--pricing {
  /* Quiet afterthought after the wizard — paper in, soft out to footer */
  padding: clamp(2.35rem, 3.8vw, 3.1rem) 0 clamp(2.55rem, 4vw, 3.25rem);
  background: linear-gradient(180deg, var(--paper) 0%, var(--soft) 100%);
  border-top: none;
  text-align: center;
}

.stay-cost-page .stay-pricing-config:has(+ .page-cta--pricing) {
  padding-bottom: clamp(1.75rem, 3vw, 2.35rem);
}

.page-cta--pricing__shell {
  display: grid;
  justify-items: center;
  gap: clamp(1.05rem, 1.8vw, 1.35rem);
}

.page-cta--pricing__copy {
  max-width: 32rem;
}

.page-cta--pricing h2 {
  max-width: 24ch;
  margin: 0 auto;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.22rem, 1.85vw, 1.44rem);
  font-weight: 400;
  letter-spacing: -.014em;
  color: rgba(19, 40, 43, .82);
  line-height: 1.26;
}

.page-cta--pricing__copy p {
  max-width: 38ch;
  margin: .5rem auto 0;
  color: rgba(19, 40, 43, .52);
  font-size: clamp(.88rem, 1.28vw, .94rem);
  line-height: 1.55;
}

.page-cta--pricing .page-cta-action {
  min-width: min(100%, 248px);
}

.page-cta--faq {
  /* From faq-answers soft → warm release → soft for footer */
  padding: clamp(3rem, 5.4vw, 4.1rem) 0 clamp(3.1rem, 5.5vw, 4.2rem);
  text-align: center;
  background: linear-gradient(
    180deg,
    var(--soft) 0%,
    #f3eee6 40%,
    #f7f2ea 68%,
    var(--soft) 100%
  );
  border-top: none;
}

.faq-page .faq-answers:has(+ .page-cta--faq) {
  padding-bottom: clamp(1.65rem, 3vw, 2.25rem);
}

.faq-page .faq-answers + .page-cta--faq {
  margin-top: 0;
}

.page-cta--faq__shell {
  display: grid;
  justify-items: center;
  gap: clamp(1.3rem, 2.5vw, 1.7rem);
}

.page-cta--faq__copy {
  max-width: 34rem;
}

.page-cta--faq__copy .eyebrow {
  margin: 0 0 .45rem;
}

.page-cta--faq h2 {
  max-width: 20ch;
  margin: 0 auto;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.34rem, 2.1vw, 1.64rem);
  font-weight: 400;
  letter-spacing: -.014em;
  line-height: 1.22;
  color: rgba(19, 40, 43, .84);
}

.page-cta--faq__copy p:not(.eyebrow) {
  max-width: 34ch;
  margin: .65rem auto 0;
  color: rgba(19, 40, 43, .52);
  font-size: clamp(.9rem, 1.32vw, .96rem);
  line-height: 1.55;
}

.page-cta--faq .page-cta-action {
  min-width: min(100%, 256px);
  min-height: 2.875rem;
  margin-top: 0;
}

.faq-prebook {
  padding-block: clamp(1.4rem, 2.5vw, 1.9rem);
  background: linear-gradient(180deg, #fffefa 0%, var(--soft) 100%);
}

.faq-prebook .section-heading {
  text-align: center;
  margin-bottom: clamp(.65rem, 1.3vw, .85rem);
}

.faq-prebook .section-heading h2 {
  font-size: clamp(1.22rem, 2vw, 1.42rem);
  color: rgba(19, 40, 43, .84);
}

.faq-prebook .section-heading p {
  max-width: 32ch;
  margin: .3rem auto 0;
  color: rgba(19, 40, 43, .5);
  font-size: clamp(.84rem, 1.15vw, .92rem);
  line-height: 1.35;
}

.faq-prebook-facts {
  list-style: none;
  margin: 0 0 clamp(.85rem, 1.6vw, 1.1rem);
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: .35rem .15rem;
  text-align: center;
}

.faq-prebook-facts li {
  margin: 0;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.84rem, 1.1vw, .92rem);
  font-weight: 480;
  line-height: 1.4;
}

.faq-prebook-facts li:not(:last-child)::after {
  content: "·";
  margin-left: .55rem;
  margin-right: .4rem;
  color: rgba(19, 40, 43, .28);
  font-weight: 400;
}

.faq-prebook-policies {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  align-items: stretch;
}

.faq-prebook-item {
  margin: 0;
  min-width: 0;
  min-height: 100%;
  display: flex;
  align-items: center;
  padding: .95rem 1.05rem 1rem;
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: calc(var(--radius) + 2px);
  background: rgba(255, 254, 250, .97);
  box-shadow: 0 8px 20px rgba(19, 40, 43, .03);
  color: rgba(19, 40, 43, .78);
  font-size: clamp(.88rem, 1.15vw, .96rem);
  font-weight: 520;
  line-height: 1.4;
  text-align: left;
}

@media (max-width: 640px) {
  .faq-prebook-facts {
    flex-direction: column;
    align-items: center;
    gap: .3rem;
  }

  .faq-prebook-facts li:not(:last-child)::after {
    content: none;
    margin: 0;
  }

  .faq-prebook-policies {
    grid-template-columns: 1fr;
  }
}

.faq-answers-intro {
  text-align: center;
  margin-bottom: clamp(1.35rem, 2.6vw, 1.85rem);
}

.faq-answers-intro h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2.2vw, 1.6rem);
  font-weight: 400;
  letter-spacing: -.012em;
  color: rgba(19, 40, 43, .84);
}

.faq-answers-intro p {
  max-width: 42ch;
  margin: .45rem auto 0;
  color: rgba(19, 40, 43, .52);
  font-size: .94rem;
  line-height: 1.45;
}

.faq-contact--inline {
  margin-top: clamp(1.6rem, 3vw, 2.2rem);
  padding: clamp(1.15rem, 2vw, 1.45rem) 0 0;
  border-top: 1px solid rgba(19, 40, 43, .07);
  background: transparent;
}

.faq-contact__shell,
.faq-contact--inline {
  display: grid;
  justify-items: center;
  gap: .7rem;
  text-align: center;
}

.faq-contact__copy h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 1.55vw, 1.22rem);
  font-weight: 400;
  color: rgba(19, 40, 43, .72);
}

.faq-contact__copy p {
  max-width: 34ch;
  margin: .35rem auto 0;
  color: rgba(19, 40, 43, .52);
  font-size: .9rem;
  line-height: 1.45;
}

.faq-contact-link {
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  padding: .2rem .15rem;
  color: var(--sea-dark);
  font-size: .92rem;
  font-weight: 560;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .28);
  text-underline-offset: .2em;
}

.faq-contact-link:hover,
.faq-contact-link:focus-visible {
  color: var(--sea);
  text-decoration-color: currentColor;
}

.faq-contact-link:focus-visible {
  outline: 2px solid rgba(45, 117, 128, .36);
  outline-offset: 3px;
  border-radius: 4px;
}

.faq-page .faq-category {
  scroll-margin-top: 5.5rem;
}

.faq-page .faq-category + .faq-category {
  margin-top: clamp(1.55rem, 2.8vw, 2.15rem);
  padding-top: clamp(1.15rem, 2.2vw, 1.55rem);
  border-top: 1px solid rgba(19, 40, 43, .06);
}

.faq-nav-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .75rem 1rem;
  margin-bottom: 1.65rem;
  padding: 0 0 .55rem;
  position: sticky;
  top: 4.35rem;
  z-index: 3;
  background: linear-gradient(180deg, var(--soft) 78%, rgba(246, 242, 236, 0));
}

.faq-toolbar {
  gap: .55rem .85rem;
  margin-bottom: 1.45rem;
  padding: .62rem .78rem;
  border: 1px solid rgba(45, 117, 128, .1);
  border-radius: .9rem;
  background: rgba(255, 254, 250, .62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .75) inset;
}

.faq-toolbar .faq-jump-nav {
  flex: 1 1 auto;
  justify-content: flex-start;
  gap: .35rem;
}

.faq-toolbar .faq-search__status {
  flex: 1 1 100%;
  margin: 0;
  padding-left: .15rem;
}

.faq-nav-row .faq-jump-nav {
  flex: 1 1 auto;
  margin-bottom: 0;
  padding-bottom: 0;
  position: static;
  background: none;
}

.faq-jump-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .42rem;
  margin-bottom: 1.65rem;
  padding: 0 0 .55rem;
  position: sticky;
  top: 4.35rem;
  z-index: 3;
  background: linear-gradient(180deg, var(--soft) 78%, rgba(246, 242, 236, 0));
}

.faq-jump-nav a {
  padding: .44rem .95rem;
  background: rgba(255, 254, 250, .52);
  border: 1px solid rgba(45, 117, 128, .1);
  border-bottom: 1px solid rgba(45, 117, 128, .1);
  border-radius: 999px;
  color: rgba(19, 40, 43, .58);
  font-size: .84rem;
  font-weight: 520;
  letter-spacing: .012em;
  line-height: 1.35;
  text-decoration: none;
  transition:
    color .18s ease,
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease;
}

.faq-jump-nav a:hover,
.faq-jump-nav a:focus-visible {
  border-color: rgba(45, 117, 128, .2);
  background: rgba(255, 254, 250, .82);
  color: rgba(23, 74, 82, .82);
}

.faq-jump-nav a.is-active {
  border-color: rgba(45, 117, 128, .24);
  background: rgba(255, 254, 250, .96);
  color: rgba(23, 74, 82, .92);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .85) inset;
}

.faq-search {
  position: relative;
  flex: 0 0 auto;
  margin-bottom: 0;
}

.faq-search--inline {
  display: flex;
  align-items: center;
  gap: .42rem;
  flex: 0 1 15rem;
  min-width: min(100%, 11.5rem);
  max-width: 17rem;
  margin-left: auto;
  padding: .28rem .72rem;
  border: 1px solid rgba(45, 117, 128, .1);
  border-radius: 999px;
  background: rgba(255, 254, 250, .82);
}

.faq-search--inline .faq-search__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.faq-search--inline .faq-search__icon {
  display: inline-flex;
  flex: 0 0 auto;
  width: .95rem;
  height: .95rem;
  color: rgba(19, 40, 43, .42);
}

.faq-search--inline .faq-search__icon svg {
  width: 100%;
  height: 100%;
}

.faq-search--inline .faq-search__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: .34rem 0;
  border: none;
  font-size: .86rem;
}

.faq-search--inline .faq-search__input:focus-visible {
  outline: none;
  border: none;
}

.faq-search__trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: .45rem;
  border: 1px solid rgba(45, 117, 128, .1);
  border-radius: 999px;
  background: rgba(255, 254, 250, .52);
  color: rgba(19, 40, 43, .56);
  cursor: pointer;
  transition:
    color .18s ease,
    border-color .18s ease,
    background .18s ease;
}

.faq-search__trigger:hover,
.faq-search__trigger:focus-visible {
  border-color: rgba(45, 117, 128, .2);
  background: rgba(255, 254, 250, .88);
  color: rgba(23, 74, 82, .82);
}

.faq-search__trigger[aria-expanded="true"] {
  border-color: rgba(45, 117, 128, .24);
  background: rgba(255, 254, 250, .96);
  color: rgba(23, 74, 82, .88);
}

.faq-search__trigger-icon {
  display: inline-flex;
  width: 1.05rem;
  height: 1.05rem;
}

.faq-search__trigger-icon svg {
  width: 100%;
  height: 100%;
}

.faq-search__panel {
  position: absolute;
  top: calc(100% + .45rem);
  right: 0;
  z-index: 4;
  /* Prefer dvw over vw to reduce classic scrollbar-gutter overflow */
  width: min(20rem, calc(100vw - 2.2rem));
  width: min(20rem, calc(100dvw - 2.2rem));
  max-width: 100%;
  padding: .75rem .85rem .7rem;
  border: 1px solid rgba(45, 117, 128, .12);
  border-radius: .75rem;
  background: rgba(255, 254, 250, .98);
  box-shadow: 0 10px 28px rgba(19, 40, 43, .06);
}

.faq-search__label {
  display: block;
  margin-bottom: .35rem;
  color: rgba(19, 40, 43, .52);
  font-size: .78rem;
  font-weight: 560;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.faq-search__input {
  width: 100%;
  min-height: auto;
  padding: .55rem 0 .62rem;
  border: none;
  border-bottom: 1px solid rgba(45, 117, 128, .16);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: .92rem;
  line-height: 1.35;
  box-shadow: none;
}

.faq-search__input::placeholder {
  color: rgba(19, 40, 43, .36);
}

.faq-search__input:focus-visible {
  outline: none;
  border-bottom-color: rgba(45, 117, 128, .42);
}

.faq-search__status {
  margin: .45rem 0 0;
  color: rgba(104, 115, 113, .9);
  font-size: .8rem;
  line-height: 1.45;
}

.faq-category[hidden],
.faq-proof[hidden],
.faq-search__status[hidden] {
  display: none;
}

[data-faq-search] details[hidden] {
  display: none;
}

[data-faq-search].faq-search--active .faq-category-heading {
  scroll-margin-top: 7rem;
}

[data-faq-search].faq-search--active .faq-search--inline .faq-search__input {
  border-color: rgba(45, 117, 128, .34);
  background: rgba(255, 254, 250, .92);
}
.faq-proof {
  margin: .35rem 0 .45rem;
  padding: .55rem 0 .55rem .8rem;
  background: transparent;
  border: none;
  border-left: 2px solid rgba(45, 117, 128, .18);
  border-radius: 0;
}

.faq-compact details .faq-proof {
  margin: .55rem 0 0;
}

.faq-compact details:not([open]) .faq-proof {
  display: none;
}

.faq-proof blockquote {
  margin: 0;
  padding: 0;
  border: none;
}

.faq-proof p {
  margin: 0;
  color: rgba(19, 40, 43, .68);
  font-family: inherit;
  font-size: .86rem;
  font-style: italic;
  font-weight: 400;
  line-height: 1.5;
}

.faq-proof figcaption {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .35rem;
  margin-top: .42rem;
  color: rgba(104, 115, 113, .88);
  font-size: .78rem;
  font-style: normal;
  line-height: 1.35;
}

.faq-proof cite {
  font-style: normal;
  font-weight: 560;
  color: rgba(19, 40, 43, .72);
}

.faq-proof__source {
  color: rgba(104, 115, 113, .88);
}

.faq-proof__source::before {
  content: "┬╖";
  margin-right: .35rem;
  color: rgba(104, 115, 113, .55);
}

.faq-proof footer {
  margin-top: .28rem;
  color: rgba(104, 115, 113, .72);
  font-size: .74rem;
  font-style: normal;
  line-height: 1.35;
}

.faq-proof footer a {
  color: rgba(23, 74, 82, .72);
  font-weight: 520;
}

.booking-faq {
  padding-top: clamp(1.5rem, 3vw, 2.2rem);
  padding-bottom: clamp(2rem, 3.5vw, 2.8rem);
}

.booking-faq .section-heading {
  margin-bottom: 1.25rem;
  text-align: center;
}

.booking-faq .section-heading h2 {
  margin: .35rem 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.18rem, 1.75vw, 1.38rem);
  font-weight: 400;
  letter-spacing: -.01em;
}

.booking-faq .section-heading p {
  max-width: 42ch;
  margin: .55rem auto 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.5;
}

.pricing-faq {
  padding-top: clamp(1.5rem, 2.4vw, 2rem);
  padding-bottom: clamp(1.5rem, 2.4vw, 2rem);
}

.pricing-faq .section-heading {
  margin-bottom: 1.15rem;
  text-align: center;
}

.pricing-faq .section-heading h2 {
  margin: .35rem 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.18rem, 1.75vw, 1.38rem);
  font-weight: 400;
  letter-spacing: -.01em;
}

.pricing-faq .section-heading p {
  max-width: 42ch;
  margin: .55rem auto 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.5;
}

/* FAQ hero matches other inner pages: eyebrow + h1 + highlights only */
.faq-page .page-hero--inner .hero-highlights {
  margin-top: .85rem;
}

.sub-hero {
  position: relative;
  min-height: min(420px, 52vh);
  min-height: min(420px, 52svh);
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--ink);
}

.sub-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(16, 38, 41, .08), rgba(16, 38, 41, .6)),
    linear-gradient(90deg, rgba(16, 38, 41, .54), rgba(16, 38, 41, .08) 64%, rgba(16, 38, 41, .02));
}

.sub-hero-content {
  position: relative;
  color: #fff;
  padding: 4.2rem 0 2.6rem;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.sub-hero h1 {
  margin: 0;
  max-width: min(13ch, 88%);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.1rem, 4.35vw, 3.25rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.016em;
  color: rgba(255, 254, 250, .98);
  text-shadow: 0 14px 38px rgba(0, 0, 0, .3);
  text-wrap: balance;
}

.gallery-page .section-block[data-gallery-section] {
  position: relative;
  padding-top: clamp(1.35rem, 3vw, 2.25rem);
  padding-bottom: 0;
}

.gallery-to-atmosphere {
  position: relative;
  margin-top: clamp(2rem, 4vw, 3rem);
  padding: clamp(3.5rem, 7vw, 6rem) 1.5rem clamp(2.5rem, 5vw, 4rem);
  text-align: center;
  background: linear-gradient(180deg, transparent 0%, rgba(8, 15, 16, .72) 55%, #080f10 100%);
}

.gallery-to-atmosphere-label {
  margin: 0;
  color: rgba(255, 254, 250, .52);
  font-size: .74rem;
  font-weight: 720;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.gallery-page .atmosphere-cinema {
  margin-top: 0;
  padding-top: clamp(2.5rem, 5vw, 4rem);
}

.gallery-page .tour-cta-section {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
}

.gallery-page .tour-cta-section p {
  margin-bottom: 1.25rem;
}

.gallery-page .tour-cta-section h2 {
  margin-bottom: .65rem;
}

.image-copy-grid, .location-grid, .booking-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

.image-copy-grid.reverse img,
.image-copy-grid.reverse video,
.image-copy-grid.reverse .property-tub-media,
.image-copy-grid.reverse .location-scenario-media-host {
  order: 2;
}

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}

.nav-toggle__icon,
.nav-toggle__icon::before,
.nav-toggle__icon::after {
  display: block;
  width: 20px;
  height: 1.5px;
  border-radius: 999px;
  background: currentColor;
  transition: transform var(--ui-duration-fast) var(--ui-ease), opacity var(--ui-duration-fast) var(--ui-ease);
}

.nav-toggle__icon {
  position: relative;
}

.nav-toggle__icon::before,
.nav-toggle__icon::after {
  content: "";
  position: absolute;
  left: 0;
}

.nav-toggle__icon::before { top: -6px; }
.nav-toggle__icon::after { top: 6px; }

/* Open-state X icon lives only inside the ≤700 drawer media block. */

.home-page .site-header:not(.site-header--solid) .nav-toggle {
  color: rgba(255, 254, 250, .94);
}

.image-copy-grid img,
.image-copy-grid video,
.image-copy-grid .location-scenario-media-host {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: var(--radius);
}

.image-copy-grid video {
  display: block;
  background: #0d1719;
}

.location-scenario-media-host {
  position: relative;
  display: block;
  overflow: hidden;
  background: #0d1719;
}

.location-scenario-media-host .location-scenario-media {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: inherit;
}

.location-scenario-media {
  aspect-ratio: 3 / 4;
}

.sea-video-toggle.location-scenario-video-toggle {
  position: absolute;
  right: .85rem;
  bottom: .85rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 254, 250, .88);
  color: rgba(23, 74, 82, .9);
  box-shadow: 0 8px 22px rgba(19, 40, 43, .12);
  cursor: pointer;
}

.sea-video-toggle.location-scenario-video-toggle:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .22);
  outline-offset: 2px;
}

.segmented {
  display: flex;
  gap: .4rem;
  overflow-x: auto;
  margin-bottom: 1.4rem;
  padding-bottom: .2rem;
}

.segmented button {
  border: 1px solid var(--line);
  background: rgba(255, 254, 250, .7);
  color: var(--muted);
  border-radius: 999px;
  min-height: 38px;
  padding: .5rem .78rem;
  font: inherit;
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background var(--ui-duration-fast) var(--ui-ease),
    color var(--ui-duration-fast) var(--ui-ease),
    border-color var(--ui-duration-fast) var(--ui-ease);
}

.segmented button.active {
  background: rgba(23, 74, 82, .1);
  color: var(--ink);
  border-color: rgba(23, 74, 82, .18);
}

.gallery-heading {
  max-width: 720px;
  margin-bottom: 1.5rem;
}

.gallery-page .gallery-heading {
  display: block;
  margin-bottom: 1.35rem;
}

.gallery-page .gallery-heading p:not(.eyebrow) {
  max-width: 620px;
  margin: 0;
}

.gallery-cover {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) repeat(2, minmax(0, .64fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: .72rem;
  max-height: 520px;
  margin-bottom: 1.1rem;
}

.gallery-cover-card {
  position: relative;
  display: block;
  min-height: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--radius);
  background: #dfe7e3;
  color: #fff;
  text-decoration: none;
}

.gallery-cover-main {
  grid-row: 1 / span 2;
  aspect-ratio: auto;
}

.gallery-cover-card img {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition:
    transform var(--ui-duration) var(--ui-ease),
    filter var(--ui-duration) var(--ui-ease);
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .gallery-cover-card:hover img,
  .gallery-cover-card:focus-visible img {
    filter: saturate(1.02);
  }
}

.gallery-cover-more::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, .55);
  pointer-events: none;
  transition: background .2s ease;
}

.gallery-cover-viewall {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  padding: .85rem 1rem;
  color: #fff;
  font-family: inherit;
  font-size: .9375rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
  pointer-events: none;
}

.gallery-cover-viewall__line {
  display: block;
  max-width: 100%;
  white-space: nowrap;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .gallery-cover-more:hover::after,
  .gallery-cover-more:focus-visible::after {
    background: rgba(0, 0, 0, .62);
  }
}

.gallery-cover-more:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .34);
  outline-offset: 3px;
}

.gallery-controls {
  display: flex;
  align-items: center;
  gap: .75rem 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.gallery-controls .segmented {
  margin-bottom: 0;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .86rem;
}

.gallery-tour-heading {
  grid-column: 1 / -1;
  order: 1;
  display: none;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin: .4rem 0 .1rem;
  padding-top: .35rem;
  border-top: 1px solid rgba(19, 40, 43, .1);
}

.gallery-tour-heading[data-category="house"] {
  order: 3;
  margin-top: 1rem;
}

.gallery-tour-heading[hidden] {
  display: none;
}

.gallery-tour-heading .eyebrow {
  margin-bottom: .35rem;
}

.gallery-tour-heading h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.45rem, 2.5vw, 2.2rem);
  font-weight: 500;
  line-height: 1.05;
}

.gallery-tour-heading span {
  flex: 0 0 auto;
  border: 1px solid rgba(23, 74, 82, .16);
  border-radius: 999px;
  padding: .38rem .62rem;
  color: var(--sea-dark);
  background: rgba(45, 117, 128, .07);
  font-size: .82rem;
  font-weight: 760;
  line-height: 1;
  white-space: nowrap;
}

.gallery-item {
  margin: 0;
  display: block;
  width: 100%;
  background: transparent;
  border: 0;
  border-radius: var(--radius);
  overflow: hidden;
}

.gallery-item[hidden] { display: none; }

.gallery-link {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  color: var(--paper);
  text-decoration: none;
  background: #dfe7e3;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 16px 34px rgba(19, 40, 43, .08);
  transform: translateY(0);
  transition:
    transform var(--ui-duration) var(--ui-ease),
    box-shadow var(--ui-duration) var(--ui-ease);
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .gallery-link:hover,
  .gallery-link:focus-visible {
    box-shadow: 0 20px 40px rgba(19, 40, 43, .11);
  }
}

.gallery-link::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(19, 40, 43, 0) 45%, rgba(19, 40, 43, .5));
  opacity: .18;
  transition: opacity .22s ease;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: transparent;
  border-radius: var(--radius);
  transform: scale(1.001);
  transition:
    transform var(--ui-duration) var(--ui-ease),
    filter var(--ui-duration) var(--ui-ease);
}

.gallery-item figcaption {
  position: absolute;
  right: .55rem;
  bottom: .55rem;
  left: .55rem;
  z-index: 1;
  display: flex;
  justify-content: flex-start;
  pointer-events: none;
}

.gallery-item figcaption span {
  max-width: 100%;
  border: 1px solid rgba(255, 254, 250, .38);
  border-radius: 999px;
  padding: .34rem .56rem;
  background: rgba(19, 40, 43, .42);
  color: var(--paper);
  font-size: .78rem;
  font-weight: 720;
  line-height: 1.25;
  opacity: 0;
  transform: translateY(4px);
  backdrop-filter: blur(10px);
  transition: opacity .22s ease, transform .22s ease;
}

.gallery-link:hover figcaption span,
.gallery-link:focus-visible figcaption span {
  opacity: 1;
  transform: translateY(0);
}

/* Touch / no-hover: captions must remain readable without hover (WCAG / coarse pointer).
   Must beat later .gallery-page .gallery-item figcaption span { opacity: 0 } (same specificity, later source order). */
@media (hover: none), (pointer: coarse) {
  .gallery-link figcaption span,
  .gallery-page .gallery-link figcaption span,
  .gallery-page .gallery-item figcaption span {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }

  .gallery-page .gallery-item figcaption::before,
  .gallery-page .gallery-link figcaption span::after,
  .gallery-page .gallery-item figcaption span::after {
    opacity: 1;
    transform: scaleX(1);
  }

  .tour-strip-item figcaption span,
  .tour-chapter-lead-caption p {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .gallery-link:hover img,
  .gallery-link:focus-visible img {
    filter: saturate(1.02);
  }
}

.gallery-link:hover::after,
.gallery-link:focus-visible::after {
  opacity: .52;
}

.gallery-page .gallery-link::after {
  background:
    linear-gradient(180deg, rgba(12, 28, 30, 0) 44%, rgba(12, 28, 30, .14) 68%, rgba(12, 28, 30, .48) 100%),
    linear-gradient(90deg, rgba(12, 28, 30, .24) 0%, rgba(12, 28, 30, 0) 58%);
  opacity: 0;
  transition: opacity .34s var(--ui-ease);
}

.gallery-page .gallery-link:hover::after,
.gallery-page .gallery-link:focus-visible::after {
  opacity: 1;
}

.gallery-page .gallery-item figcaption {
  right: .7rem;
  bottom: .68rem;
  left: .7rem;
}

.gallery-page .gallery-item figcaption::before {
  content: "";
  position: absolute;
  left: -.35rem;
  bottom: -.15rem;
  width: min(120%, 16rem);
  height: 3.8rem;
  background: radial-gradient(ellipse 72% 100% at 12% 100%, rgba(12, 28, 30, .34) 0%, transparent 74%);
  opacity: 0;
  pointer-events: none;
  transition: opacity .36s var(--ui-ease);
}

.gallery-page .gallery-link:hover figcaption::before,
.gallery-page .gallery-link:focus-visible figcaption::before {
  opacity: 1;
}

.gallery-page .gallery-item figcaption span {
  position: relative;
  display: inline-block;
  max-width: min(100%, 22ch);
  border: none;
  border-radius: 0;
  padding: .08rem 0 .46rem;
  background: none;
  backdrop-filter: none;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .79rem;
  font-weight: 450;
  line-height: 1.4;
  letter-spacing: .018em;
  color: rgba(255, 253, 247, .96);
  text-shadow:
    0 0 1px rgba(0, 0, 0, .32),
    0 1px 3px rgba(0, 0, 0, .26),
    0 8px 22px rgba(0, 0, 0, .2);
  opacity: 0;
  transform: translateY(7px);
  filter: blur(1.5px);
  transition:
    opacity .36s var(--ui-ease),
    transform .36s var(--ui-ease),
    filter .36s var(--ui-ease);
}

.gallery-page .gallery-item figcaption span::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: .14rem;
  width: 1.75rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 254, 250, .58), rgba(255, 254, 250, 0));
  transform: scaleX(.55);
  transform-origin: left center;
  opacity: 0;
  transition:
    opacity .4s var(--ui-ease) .05s,
    transform .4s var(--ui-ease) .05s;
}

.gallery-page .gallery-link:hover figcaption span,
.gallery-page .gallery-link:focus-visible figcaption span {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.gallery-page .gallery-link:hover figcaption span::after,
.gallery-page .gallery-link:focus-visible figcaption span::after {
  opacity: 1;
  transform: scaleX(1);
}

/* Re-assert after gallery-page hover-only caption base (source-order override). */
@media (hover: none), (pointer: coarse) {
  .gallery-page .gallery-item figcaption span {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }

  .gallery-page .gallery-item figcaption::before,
  .gallery-page .gallery-item figcaption span::after {
    opacity: 1;
    transform: scaleX(1);
  }
}

.gallery-actions {
  display: flex;
  justify-content: center;
  margin-top: 1.2rem;
}

.gallery-actions-inline {
  justify-content: flex-end;
  margin-top: 0;
  margin-left: auto;
}

.gallery-more {
  min-width: min(100%, 260px);
  background: var(--sea-dark);
  border-color: var(--sea-dark);
  color: #fff;
}

.gallery-more:hover,
.gallery-more:focus-visible {
  background: var(--sea);
  border-color: var(--sea);
  color: #fff;
}

.gallery-count-status {
  margin: -.55rem 0 1.1rem;
  color: var(--muted);
  font-size: .82rem;
  text-align: right;
}

@media (max-width: 700px) {
  .gallery-count-status { text-align: left; }
}

.gallery-dialog {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  max-width: 100%;
  max-height: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--paper);
}

.gallery-dialog::backdrop {
  background: rgba(19, 40, 43, .78);
  backdrop-filter: blur(12px);
}

.gallery-dialog-frame {
  position: relative;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  align-content: center;
  gap: .72rem;
  padding: 2.8rem 4.2rem 2rem;
}

.gallery-dialog img {
  width: auto;
  max-width: min(100%, 1040px);
  max-height: calc(100vh - 150px);
  max-height: calc(100dvh - 150px);
  margin: 0 auto;
  object-fit: contain;
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .08);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}

.gallery-dialog-caption {
  width: min(100%, 860px);
  margin: -.25rem auto 0;
  color: rgba(255, 254, 250, .9);
  font-size: .92rem;
  text-align: center;
}

.gallery-dialog-meta {
  width: min(100%, 860px);
  display: flex;
  justify-content: center;
  gap: .55rem;
  margin: 0 auto;
  color: rgba(255, 254, 250, .86);
  font-size: .86rem;
  font-weight: 720;
}

.gallery-dialog-meta span {
  border: 1px solid rgba(255, 254, 250, .28);
  border-radius: 999px;
  padding: .24rem .55rem;
  background: rgba(255, 254, 250, .1);
  backdrop-filter: blur(10px);
}

.gallery-dialog-close,
.gallery-dialog-nav {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 254, 250, .42);
  border-radius: 999px;
  background: rgba(255, 254, 250, .12);
  color: var(--paper);
  font: inherit;
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(14px);
}

.gallery-dialog-close {
  top: max(0px, env(safe-area-inset-top, 0px));
  right: max(0px, env(safe-area-inset-right, 0px));
}

.gallery-dialog-nav {
  top: 50%;
  transform: translateY(-50%);
}

.gallery-dialog-prev {
  left: max(0px, env(safe-area-inset-left, 0px));
}

.gallery-dialog-next {
  right: max(0px, env(safe-area-inset-right, 0px));
}

.gallery-dialog-close:hover,
.gallery-dialog-nav:hover,
.gallery-dialog-close:focus-visible,
.gallery-dialog-nav:focus-visible {
  background: rgba(255, 254, 250, .22);
}

.video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.atmosphere-section {
  padding-top: clamp(3rem, 7vw, 5.8rem);
}

.atmosphere-heading {
  max-width: 740px;
  margin-bottom: 1.2rem;
}

.atmosphere-grid {
  max-width: 1060px;
  margin: 0 auto;
  align-items: start;
}

.video-card {
  margin: 0;
  border-radius: var(--radius);
  background: transparent;
}

.video-grid video {
  width: 100%;
  aspect-ratio: 9 / 14;
  object-fit: cover;
  background: #0d1719;
  border-radius: var(--radius);
}

.video-card video {
  border-radius: inherit;
  box-shadow: 0 18px 44px rgba(19, 40, 43, .08);
}

.video-card figcaption {
  display: flex;
  justify-content: center;
  margin-top: .55rem;
}

.video-card figcaption span {
  display: inline-flex;
  max-width: calc(100% - .2rem);
  border: 1px solid rgba(23, 74, 82, .14);
  border-radius: 999px;
  padding: .34rem .58rem;
  background: rgba(255, 254, 250, .62);
  color: var(--sea-dark);
  font-size: .78rem;
  font-weight: 720;
  line-height: 1.25;
}

.map-panel {
  position: relative;
  min-height: 360px;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: #eef4f2;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(19, 40, 43, .08);
}

.map-panel iframe {
  width: 100%;
  min-height: 360px;
  height: 100%;
  border: 0;
  display: block;
}

.map-panel-link {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: .62rem .9rem;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 999px;
  background: rgba(255, 254, 250, .9);
  color: var(--sea-dark);
  font-size: .88rem;
  font-weight: 760;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(19, 40, 43, .14);
  backdrop-filter: blur(10px);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.map-panel-link:hover,
.map-panel-link:focus-visible {
  transform: translateY(-2px);
  background: var(--paper);
  box-shadow: 0 16px 34px rgba(19, 40, 43, .17);
}

.contact-list p { margin: .7rem 0; }

.review-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.review-top strong {
  display: block;
  margin: 0;
  color: var(--ink);
}

.review-top span {
  color: var(--sea-dark);
  background: rgba(23, 74, 82, .075);
  border: 1px solid rgba(23, 74, 82, .1);
  border-radius: 999px;
  padding: .26rem .5rem;
  font-size: .88rem;
  font-weight: 760;
  line-height: 1.15;
  white-space: nowrap;
}

.review-source {
  margin: .26rem 0 0;
  color: rgba(19, 40, 43, .56);
  font-size: .86rem;
  line-height: 1.35;
}

.review-meta {
  font-size: .92rem;
  margin-top: .2rem;
}

.review-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1.2rem, 4vw, 3rem);
  margin-top: clamp(1.3rem, 3vw, 2rem);
  padding: clamp(1.2rem, 3vw, 2rem);
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: var(--radius);
  background: linear-gradient(135deg, rgba(255, 254, 250, .92), rgba(244, 239, 228, .62));
  box-shadow: 0 18px 44px rgba(19, 40, 43, .065);
}

.review-action h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 3.3vw, 2.55rem);
  font-weight: 500;
  line-height: 1.08;
}

.review-action p {
  margin: .25rem 0 0;
  color: var(--muted);
}

.review-action .button {
  flex: 0 0 auto;
  background: var(--sea-dark);
  border-color: var(--sea-dark);
  color: #fff;
  white-space: nowrap;
}

.review-action .button:hover {
  background: var(--sea);
  border-color: var(--sea);
}

.review-action-links {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: flex-end;
  gap: .58rem;
}

.review-secondary-link {
  color: var(--sea-dark);
  font-size: .92rem;
  font-weight: 720;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .28);
  text-underline-offset: .24em;
}

.review-secondary-link:hover,
.review-secondary-link:focus-visible {
  color: var(--sea);
  text-decoration-color: currentColor;
}

.price-card strong {
  display: block;
  font-size: 1.45rem;
  color: var(--sea-dark);
}

.price-card strong small {
  display: block;
  margin-top: .25rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 620;
  letter-spacing: 0;
  text-transform: none;
}

.property-value-strip, .review-trust-strip, .booking-score-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .34rem .95rem;
  margin: .95rem auto 0;
  width: min(100%, 860px);
}

.property-value-strip span, .review-trust-strip span, .booking-score-strip span {
  display: inline-flex;
  align-items: baseline;
  gap: .28rem;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  white-space: nowrap;
}

.property-value-strip strong, .review-trust-strip strong, .booking-score-strip strong {
  color: var(--sea-dark);
  font-size: .94rem;
  font-weight: 700;
  line-height: 1.25;
}

.property-value-strip small, .review-trust-strip small, .booking-score-strip small {
  color: var(--muted);
  font-size: .84rem;
  font-weight: 560;
  text-transform: none;
  letter-spacing: 0;
}

.review-trust-strip small::before,
.booking-score-strip small::before {
  content: "┬╖";
  margin-right: .28rem;
  color: rgba(23, 74, 82, .46);
}

.pricing-details article {
  background: rgba(255, 254, 250, .76);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.2rem;
}

.sub-hero-lead {
  margin: .72rem 0 0;
  max-width: min(480px, 86%);
  color: rgba(255, 254, 250, .76);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(.98rem, 1.6vw, 1.05rem);
  font-weight: 450;
  letter-spacing: .012em;
  line-height: 1.5;
  text-shadow: 0 8px 24px rgba(0, 0, 0, .24);
}

/* SeaLine pricing page ΓÇö integrated with site design (v20260708-pricing6) */

.stay-cost-page {
  background: var(--paper);
}

.stay-cost-page .section-block {
  padding-block: clamp(3.25rem, 6.2vw, 5.15rem);
}

.stay-cost-page .stay-pricing-factors {
  padding-bottom: clamp(3.25rem, 6vw, 4.95rem);
}

.stay-cost-page .stay-pricing-included {
  padding-top: clamp(3.15rem, 5.8vw, 4.75rem);
}

.stay-cost-page .stay-config-result-actions .button {
  background: var(--cta-fill);
  border-color: var(--cta-fill);
  color: var(--cta-text);
  font-weight: 550;
}

.stay-cost-page .stay-config-result-actions .button:hover {
  background: var(--cta-fill-hover);
  border-color: var(--cta-fill-hover);
  color: var(--cta-text);
}

.stay-pricing-section-head {
  max-width: 42rem;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.stay-pricing-section-head h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4.5vw, 3.2rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.012em;
  color: var(--ink);
}

.stay-pricing-section-head p {
  margin: .85rem 0 0;
  color: var(--muted);
  font-size: clamp(.98rem, 1.8vw, 1.05rem);
  line-height: 1.62;
}

.stay-pricing-factor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.5rem);
}

.stay-pricing-factor-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .76);
  box-shadow: none;
  transition: border-color var(--ui-duration) var(--ui-ease), background var(--ui-duration) var(--ui-ease);
}

@media (prefers-reduced-motion: no-preference) {
  .stay-pricing-factor-card:hover {
    border-color: rgba(23, 74, 82, .22);
    background: rgba(255, 254, 250, .92);
  }
}

.stay-pricing-factor-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: .85rem;
  color: var(--sea);
}

.stay-pricing-factor-icon svg {
  width: 1.45rem;
  height: 1.45rem;
}

.stay-pricing-factor-card h3 {
  margin: 0;
  color: var(--sea-dark);
  font-size: clamp(1rem, 1.8vw, 1.08rem);
  font-weight: 650;
  line-height: 1.25;
}

.stay-pricing-factor-card p {
  margin: .5rem 0 0;
  color: rgba(19, 40, 43, .62);
  font-size: .94rem;
  line-height: 1.58;
}

.stay-pricing-factor-flow {
  max-width: 64rem;
}

.stay-pricing-factor-flow-note {
  width: fit-content;
  margin: 0 0 clamp(1.05rem, 2.25vw, 1.42rem);
  color: rgba(19, 40, 43, .58);
  font-size: .9rem;
  line-height: 1.45;
}

.stay-pricing-factor-track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.35rem, 3.4vw, 2.7rem);
  margin: 0;
  padding: clamp(.3rem, 1vw, .45rem) 0 0;
  list-style: none;
}

.stay-pricing-factor-track::before {
  content: "";
  position: absolute;
  left: .4rem;
  right: .4rem;
  top: 1.18rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(45, 117, 128, .08), rgba(45, 117, 128, .24), rgba(45, 117, 128, .08));
}

.stay-pricing-factor-point {
  position: relative;
  display: grid;
  gap: .42rem;
  align-content: start;
  padding-top: 2.25rem;
}

.stay-pricing-factor-mark {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border: 1px solid rgba(45, 117, 128, .15);
  border-radius: 50%;
  background: var(--paper);
  color: rgba(45, 117, 128, .72);
  font-family: Georgia, "Times New Roman", serif;
  font-size: .84rem;
  font-weight: 400;
  line-height: 1;
}

.stay-pricing-factor-point strong {
  color: var(--sea-dark);
  font-size: clamp(1.02rem, 1.9vw, 1.14rem);
  font-weight: 560;
  line-height: 1.24;
}

.stay-pricing-factor-point small {
  max-width: 17rem;
  color: rgba(19, 40, 43, .62);
  font-size: .92rem;
  line-height: 1.58;
}

.stay-pricing-factor-steps {
  display: grid;
  max-width: 52rem;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(19, 40, 43, .1);
  border-bottom: 1px solid rgba(19, 40, 43, .1);
}

.stay-pricing-factor-step {
  display: grid;
  grid-template-columns: minmax(3.4rem, .16fr) minmax(0, 1fr);
  gap: clamp(.85rem, 2vw, 1.2rem);
  align-items: start;
  padding: clamp(1rem, 2.2vw, 1.28rem) 0;
}

.stay-pricing-factor-step + .stay-pricing-factor-step {
  border-top: 1px solid rgba(19, 40, 43, .075);
}

.stay-pricing-factor-number {
  color: rgba(45, 117, 128, .78);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.05rem, 2.2vw, 1.24rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .04em;
}

.stay-pricing-factor-copy {
  display: grid;
  gap: .24rem;
}

.stay-pricing-factor-copy strong {
  color: var(--sea-dark);
  font-size: clamp(1rem, 1.8vw, 1.08rem);
  font-weight: 560;
  line-height: 1.28;
}

.stay-pricing-factor-copy small {
  max-width: 34rem;
  color: rgba(19, 40, 43, .62);
  font-size: .94rem;
  line-height: 1.58;
}

.stay-pricing-season-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.85rem, 2vw, 1.15rem);
}

.stay-pricing-season-card {
  position: relative;
  display: grid;
  gap: .42rem;
  padding: clamp(1.35rem, 2.6vw, 1.7rem);
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .96);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .85) inset,
    0 14px 34px rgba(19, 40, 43, .05);
  cursor: default;
  overflow: hidden;
  isolation: isolate;
  transition:
    border-color .48s var(--ui-ease),
    background .48s var(--ui-ease),
    box-shadow .58s var(--ui-ease),
    transform .58s var(--ui-ease);
}

.stay-pricing-season-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 1;
  pointer-events: none;
  transition: opacity .58s var(--ui-ease);
}

.stay-pricing-season-card > * {
  position: relative;
  z-index: 1;
}

.stay-pricing-season-card--summer {
  border-top: 2px solid rgba(45, 117, 128, .5);
}

.stay-pricing-season-card--summer::before {
  background: linear-gradient(165deg, rgba(45, 117, 128, .07) 0%, rgba(255, 254, 250, .92) 52%, #fff 100%);
}

.stay-pricing-season-card--reset {
  border-top: 2px solid rgba(111, 133, 111, .5);
}

.stay-pricing-season-card--reset::before {
  background: linear-gradient(165deg, rgba(111, 133, 111, .07) 0%, rgba(255, 254, 250, .94) 54%, #fff 100%);
}

.stay-pricing-season-card--velvet {
  border-top: 2px solid rgba(167, 119, 94, .54);
}

.stay-pricing-season-card--velvet::before {
  background: linear-gradient(165deg, rgba(167, 119, 94, .08) 0%, rgba(255, 254, 250, .94) 54%, #fff 100%);
}

.stay-pricing-season-card--quiet {
  border-top: 2px solid rgba(23, 74, 82, .38);
}

.stay-pricing-season-card--quiet::before {
  background: linear-gradient(165deg, rgba(23, 74, 82, .06) 0%, rgba(255, 254, 250, .95) 56%, #fff 100%);
}

@media (prefers-reduced-motion: no-preference) {
  .stay-pricing-season-card:hover {
    border-color: rgba(23, 74, 82, .22);
    background: #fff;
    box-shadow:
      0 1px 0 rgba(255, 255, 255, .9) inset,
      0 18px 40px rgba(19, 40, 43, .07);
    transform: translateY(-2px);
  }

  .stay-pricing-season-card:hover {
    transform: translateY(-2px);
  }
}

.stay-pricing-season-card .season-glyph {
  width: 1.55rem;
  height: 1.55rem;
  margin-bottom: .15rem;
}

.stay-pricing-season-card h3 {
  margin: .15rem 0 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 2vw, 1.22rem);
  font-weight: 500;
  line-height: 1.14;
}

.stay-pricing-season-months {
  margin: .1rem 0 0;
  padding: 0;
  border: none;
  background: none;
  color: rgba(19, 40, 43, .64);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1.35;
}

.stay-pricing-season-rate {
  display: grid;
  gap: .2rem;
  margin: .42rem 0 .12rem;
  padding: .62rem 0 .48rem;
  border-top: 1px solid rgba(19, 40, 43, .08);
}

.stay-pricing-season-rate-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .22rem .34rem;
  margin: 0;
}

.stay-pricing-season-rate-from {
  color: rgba(19, 40, 43, .65);
  font-size: .76rem;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.2;
}

.stay-pricing-season-rate-amount {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.3rem, 2.5vw, 1.52rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.015em;
}

.stay-pricing-season-rate-unit {
  color: rgba(19, 40, 43, .65);
  font-size: .8rem;
  font-weight: 500;
  line-height: 1.2;
}

.stay-pricing-season-rate-guests {
  margin: 0;
  color: rgba(19, 40, 43, .64);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .03em;
  line-height: 1.3;
}

.stay-pricing-season-from {
  margin: .12rem 0 0;
  color: rgba(19, 40, 43, .58);
  font-family: Georgia, "Times New Roman", serif;
  font-size: .92rem;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: .01em;
}

.stay-pricing-season-note {
  max-width: 36rem;
  margin: clamp(1.35rem, 3vw, 1.85rem) auto 0;
  text-align: center;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.55;
}

.stay-pricing-season-desc {
  margin: .28rem 0 0;
  color: rgba(19, 40, 43, .66);
  font-size: .88rem;
  line-height: 1.55;
}

.stay-config {
  max-width: 42rem;
  margin-inline: auto;
}

.stay-config-progress {
  display: flex;
  justify-content: center;
  gap: .55rem;
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

.stay-config-dot {
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: rgba(19, 40, 43, .16);
  transition: transform var(--ui-duration-fast) var(--ui-ease), background var(--ui-duration-fast) var(--ui-ease);
}

.stay-config-dot.is-active,
.stay-config-dot.is-complete {
  background: var(--sea);
}

.stay-config-dot.is-active {
  transform: scale(1.35);
}

.stay-config-panel {
  position: relative;
  min-height: 16rem;
  padding: clamp(1.75rem, 4vw, 2.35rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .76);
  box-shadow: none;
}

.stay-config-step {
  display: grid;
  gap: clamp(1.15rem, 2.5vw, 1.5rem);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity var(--ui-duration) var(--ui-ease), transform var(--ui-duration) var(--ui-ease);
}

.stay-config-step[hidden] {
  display: none !important;
}

.stay-config-step.is-active {
  opacity: 1;
  transform: translateY(0);
}

.stay-config-step.is-exiting {
  opacity: 0;
  transform: translateY(-8px);
}

.stay-config-result-eyebrow {
  margin: 0 0 .35rem;
  color: rgba(19, 40, 43, .46);
  font-size: .78rem;
  font-weight: 520;
  letter-spacing: .04em;
  line-height: 1.35;
  text-align: center;
  text-transform: none;
}

.stay-config-prompt,
.stay-config-result-label {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.24rem, 2.6vw, 1.48rem);
  font-weight: 500;
  line-height: 1.18;
  text-align: center;
  letter-spacing: .005em;
}

.stay-config-hint {
  margin: -.35rem 0 .15rem;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.5;
  text-align: center;
}

.stay-config-hint--soft {
  margin-top: .55rem;
  font-size: .84rem;
  color: rgba(19, 40, 43, .48);
}

.stay-config-seasons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

.stay-config-season-card {
  display: grid;
  gap: .28rem;
  justify-items: start;
  text-align: left;
  padding: clamp(.9rem, 2vw, 1.05rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .88);
  color: var(--ink);
  cursor: pointer;
  transition: border-color var(--ui-duration-fast) var(--ui-ease), background var(--ui-duration-fast) var(--ui-ease), transform var(--ui-duration-fast) var(--ui-ease);
}

.stay-config-season-card:hover {
  border-color: rgba(23, 74, 82, .22);
  background: rgba(23, 74, 82, .04);
}

.stay-config-season-card[aria-pressed="true"] {
  border-color: rgba(23, 74, 82, .3);
  background: rgba(23, 74, 82, .06);
  box-shadow: inset 0 0 0 1px rgba(23, 74, 82, .08);
}

.stay-config-season-card .season-glyph {
  width: 1.35rem;
  height: 1.35rem;
  margin-bottom: .1rem;
}

.stay-config-season-name {
  font-family: Georgia, "Times New Roman", serif;
  font-size: .98rem;
  line-height: 1.2;
}

.stay-config-season-months {
  margin-top: .18rem;
  color: rgba(19, 40, 43, .46);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1.35;
}

.stay-config-pills {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
}

.stay-config-pills--nights {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
}

.stay-config-pill--night {
  min-height: 2.85rem;
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: .01em;
}

.stay-config-pill--custom {
  font-weight: 500;
}

.stay-config-nights-custom {
  display: grid;
  justify-items: center;
  margin-top: .75rem;
  padding-top: .75rem;
  border-top: 1px solid rgba(19, 40, 43, .08);
}

.stay-config-stepper {
  display: grid;
  grid-template-columns: 2.75rem 1fr 2.75rem;
  align-items: center;
  gap: .45rem;
  width: min(100%, 17rem);
}

.stay-config-stepper-btn {
  min-height: 42px;
  border: 1px solid rgba(19, 40, 43, .12);
  border-radius: 12px;
  background: rgba(255, 254, 250, .92);
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}

.stay-config-stepper-btn:hover:not(:disabled) {
  border-color: rgba(23, 74, 82, .24);
  background: rgba(23, 74, 82, .06);
}

.stay-config-stepper-btn:disabled {
  opacity: .38;
  cursor: not-allowed;
}

.stay-config-stepper-value {
  margin: 0;
  text-align: center;
  color: var(--ink);
  font: inherit;
  font-size: .92rem;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: .01em;
}

.stay-config-continue {
  min-height: 44px;
  padding: .55rem 1.2rem;
  border: 1px solid rgba(23, 74, 82, .2);
  border-radius: 999px;
  background: transparent;
  color: var(--sea-dark);
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, color .18s ease;
}

.stay-config-continue:hover {
  border-color: rgba(23, 74, 82, .34);
  background: rgba(23, 74, 82, .05);
}

.stay-config-pill {
  min-height: 44px;
  padding: .62rem .5rem;
  border: 1px solid rgba(19, 40, 43, .12);
  border-radius: 12px;
  background: rgba(255, 254, 250, .92);
  color: var(--ink);
  font: inherit;
  font-size: .92rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition:
    border-color .18s ease,
    background .18s ease,
    color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

@media (prefers-reduced-motion: no-preference) {
  .stay-config-pill:hover {
    border-color: rgba(23, 74, 82, .24);
    background: rgba(23, 74, 82, .06);
    transform: translateY(-1px);
  }
}

.stay-config-pill[aria-pressed="true"] {
  border-color: rgba(23, 74, 82, .28);
  background: var(--sea-dark);
  color: #fff;
  box-shadow: 0 8px 18px rgba(19, 40, 43, .08);
}

.stay-config-pill--wide {
  font-size: .92rem;
  font-weight: 500;
}

.stay-config-result-amount {
  margin: .2rem 0 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.35rem, 6.5vw, 3rem);
  font-weight: 500;
  line-height: 1.02;
  text-align: center;
  letter-spacing: -.02em;
}

.stay-config-result-amount.is-revealed {
  animation: stay-config-price-in var(--ui-duration) var(--ui-ease);
}

@keyframes stay-config-price-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.stay-config-result-meta,
.stay-config-result-honesty,
.stay-config-result-prepay,
.stay-config-result-note {
  margin: 0;
  text-align: center;
  line-height: 1.45;
}

.stay-config-result-meta {
  margin-top: .55rem;
  color: rgba(19, 40, 43, .5);
  font-size: clamp(.8rem, 2.2vw, .88rem);
  letter-spacing: .01em;
  max-width: 28rem;
  margin-inline: auto;
  overflow-wrap: anywhere;
}

.stay-config-result-honesty {
  margin-top: .95rem;
  max-width: 32rem;
  margin-inline: auto;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.84rem, 2.1vw, .9rem);
}

.stay-config-result-prepay {
  margin-top: .55rem;
  max-width: 28rem;
  margin-inline: auto;
  color: rgba(19, 40, 43, .62);
  font-size: clamp(.84rem, 2.1vw, .9rem);
  font-weight: 520;
}

.stay-config-result-note {
  margin-top: .45rem;
  color: rgba(19, 40, 43, .42);
  font-size: .8rem;
}

.stay-config-breakdown {
  display: grid;
  gap: .28rem;
  margin: .85rem auto 0;
  max-width: min(22rem, 100%);
  padding-inline: .25rem;
}

.stay-config-breakdown-line {
  margin: 0;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.8rem, 2.1vw, .86rem);
  line-height: 1.45;
  text-align: center;
  overflow-wrap: anywhere;
}

.stay-config-result-actions {
  display: grid;
  gap: .55rem;
  justify-items: center;
  margin-top: clamp(1.2rem, 2.8vw, 1.55rem);
}

.stay-config-result-actions .button {
  min-width: min(100%, 22rem);
  max-width: 100%;
  justify-content: center;
  text-align: center;
  white-space: normal;
  line-height: 1.25;
  padding-inline: 1.1rem;
}

.stay-config-back {
  display: block;
  margin: 1rem auto 0;
  padding: .35rem .5rem;
  border: none;
  background: none;
  color: rgba(19, 40, 43, .52);
  font-size: .88rem;
  cursor: pointer;
  transition: color var(--ui-duration-fast) var(--ui-ease);
}

.stay-config-back:hover {
  color: var(--sea-dark);
}

.stay-pricing-hottub-feature {
  align-items: center;
  gap: clamp(1.5rem, 3.5vw, 2.75rem);
}

.stay-pricing-hottub-video.atmosphere-video-block {
  border-radius: var(--radius);
  box-shadow: 0 22px 48px rgba(19, 40, 43, .08);
  cursor: pointer;
  background: #d2d4d1;
  overflow: hidden;
  isolation: isolate;
}

.stay-pricing-hottub-video.atmosphere-video-block::after {
  padding-top: 133.333%;
}

.stay-pricing-hottub-video video {
  object-fit: cover;
  object-position: center 46%;
  background: #d2d4d1;
}

.stay-pricing-hottub-video-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, transparent 68%, rgba(8, 15, 16, .14) 100%);
}

.stay-pricing-hottub-video .atmosphere-video-play {
  width: 46px;
  height: 46px;
  border-color: rgba(255, 254, 250, .28);
  background: rgba(255, 254, 250, .08);
}

@media (prefers-reduced-motion: reduce) {
  .stay-pricing-hottub-video .atmosphere-video-play {
    opacity: 1;
    visibility: visible;
  }
}

.stay-pricing-hottub-copy {
  max-width: 34rem;
}

.stay-pricing-hottub-copy h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.75rem, 3.8vw, 2.55rem);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.012em;
  color: var(--ink);
}

.stay-pricing-hottub-lead {
  max-width: 28em;
  margin: .7rem 0 0;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.94rem, 1.55vw, 1.02rem);
  line-height: 1.55;
  text-align: left;
}

.stay-pricing-hottub-price-anchor {
  margin: clamp(1.15rem, 2.5vw, 1.55rem) 0 0;
}

.stay-pricing-hottub-price-line {
  display: inline;
  color: var(--sea-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.28rem, 2.6vw, 1.62rem);
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: -.01em;
}

.stay-pricing-hottub-price-amount,
.stay-pricing-hottub-price-scope {
  white-space: normal;
}

.stay-pricing-hottub-explain {
  max-width: 32em;
  margin: .7rem 0 0;
  color: rgba(19, 40, 43, .62);
  font-size: clamp(.9rem, 1.45vw, .98rem);
  line-height: 1.55;
}

.stay-pricing-hottub-proofs {
  list-style: none;
  display: grid;
  gap: .42rem;
  max-width: 28em;
  margin: clamp(1.15rem, 2.4vw, 1.4rem) 0 0;
  padding: .95rem 0 0;
  border-top: 1px solid rgba(19, 40, 43, .08);
}

.stay-pricing-hottub-proofs li {
  margin: 0;
  color: rgba(19, 40, 43, .78);
  font-size: .9rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .005em;
}

.stay-pricing-hottub-formats {
  max-width: 34rem;
  margin: clamp(1.15rem, 2.4vw, 1.45rem) 0 0;
  padding: .95rem 0 0;
  border-top: 1px solid rgba(19, 40, 43, .07);
}

.stay-pricing-hottub-formats-title {
  margin: 0;
  color: rgba(19, 40, 43, .72);
  font-size: .84rem;
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.35;
}

.stay-pricing-hottub-formats-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1.35rem;
  margin: .75rem 0 0;
  align-items: start;
}

.stay-pricing-hottub-format {
  position: relative;
  min-width: 0;
  margin: 0;
  color: rgba(19, 40, 43, .58);
  font-size: .86rem;
  line-height: 1.45;
}

.stay-pricing-hottub-format + .stay-pricing-hottub-format {
  padding-left: 1.35rem;
  border-left: 1px solid rgba(19, 40, 43, .08);
}

.stay-pricing-hottub-format-name {
  color: rgba(19, 40, 43, .82);
  font-family: Georgia, "Times New Roman", serif;
  font-size: .98rem;
  font-weight: 400;
  letter-spacing: -.005em;
}

.stay-pricing-hottub-format-text {
  color: rgba(19, 40, 43, .52);
  font-weight: 400;
}

.stay-pricing-hottub-led {
  margin: .95rem 0 0;
  color: rgba(19, 40, 43, .48);
  font-size: .8rem;
  line-height: 1.5;
  font-style: italic;
}

.stay-pricing-hottub-close {
  margin: clamp(.95rem, 2vw, 1.15rem) 0 0;
  color: var(--ink);
  font-size: clamp(.95rem, 1.55vw, 1.05rem);
  font-weight: 500;
  line-height: 1.45;
}

@media (max-width: 1020px) {
  .stay-pricing-hottub-feature.image-copy-grid {
    gap: 1.35rem;
  }

  .stay-pricing-hottub-copy {
    max-width: none;
  }

  .stay-pricing-hottub-price-line {
    font-size: clamp(1.22rem, 5.2vw, 1.48rem);
  }
}

@media (max-width: 700px) {
  .stay-pricing-hottub-formats-pair {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .stay-pricing-hottub-format + .stay-pricing-hottub-format {
    padding-left: 0;
    padding-top: 1rem;
    border-left: 0;
    border-top: 1px solid rgba(19, 40, 43, .07);
  }
}

.stay-pricing-hottub-grid {
  max-width: 52rem;
  margin-inline: auto;
}

.stay-pricing-hottub-note,
.stay-pricing-hottub-safety,
.hottub-fieldset-note {
  max-width: 38rem;
  margin: clamp(.85rem, 2vw, 1.1rem) auto 0;
  color: rgba(19, 40, 43, .48);
  font-size: .8rem;
  line-height: 1.5;
  text-align: center;
}

.stay-pricing-hottub-safety {
  margin-top: .45rem;
  font-size: .78rem;
}

.stay-pricing-hottub-link {
  margin: clamp(.85rem, 1.8vw, 1rem) 0 0;
  text-align: left;
  font-size: .88rem;
}

.stay-pricing-hottub-link a {
  color: var(--sea);
  text-decoration: underline;
  text-underline-offset: .14em;
}

.stay-pricing-answers-card {
  max-width: 38rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .76);
}

.stay-pricing-answers-card h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.28rem, 2.6vw, 1.55rem);
  font-weight: 500;
  line-height: 1.12;
  color: var(--ink);
}

.stay-pricing-answers-list {
  display: grid;
  gap: .55rem;
  margin: .85rem 0 0;
  padding: 0;
  list-style: none;
}

.stay-pricing-answers-list li {
  position: relative;
  padding-left: 1.1rem;
  color: rgba(19, 40, 43, .62);
  font-size: .94rem;
  line-height: 1.55;
}

.stay-pricing-answers-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: .35rem;
  height: .35rem;
  border-radius: 50%;
  background: var(--sea);
  opacity: .72;
}

.stay-config-hottub-grid {
  max-width: 52rem;
  margin-inline: auto;
}

.stay-config-hottub-grid--quiet {
  max-width: 34rem;
}

.stay-config-hottub-grid--quiet.hottub-options {
  grid-template-columns: 1fr;
  gap: .52rem;
}

.stay-config-hottub-grid--quiet .hottub-option {
  border-color: rgba(19, 40, 43, .1);
  background: rgba(255, 254, 250, .78);
  box-shadow: none;
}

.stay-config-hottub-grid--quiet .hottub-option-body strong {
  font-weight: 560;
}

.hottub-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.55rem, 1.5vw, .75rem);
}

.hottub-option {
  position: relative;
  display: block;
  min-height: 100%;
  padding: 0;
  border: 1px solid rgba(19, 40, 43, .14);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .82);
  cursor: pointer;
  transition:
    border-color var(--ui-duration-fast) var(--ui-ease),
    box-shadow var(--ui-duration-fast) var(--ui-ease),
    transform var(--ui-duration-fast) var(--ui-ease);
}

.hottub-option:hover {
  border-color: rgba(45, 117, 128, .28);
  transform: translateY(-1px);
}

.hottub-option.is-selected,
.hottub-option:has(input:checked) {
  border-color: rgba(45, 117, 128, .42);
  box-shadow: 0 0 0 1px rgba(45, 117, 128, .12);
  background: rgba(255, 255, 255, .94);
}

.hottub-option--featured {
  border-color: rgba(45, 117, 128, .22);
  background: linear-gradient(180deg, rgba(255, 255, 255, .96) 0%, rgba(244, 250, 251, .92) 100%);
}

.hottub-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.hottub-option-body {
  display: grid;
  gap: .35rem;
  padding: clamp(.85rem, 2vw, 1rem) clamp(.75rem, 1.8vw, .95rem);
}

.hottub-option-body strong {
  color: var(--ink);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.35;
}

.hottub-option-body small {
  display: grid;
  gap: .24rem;
  color: rgba(19, 40, 43, .54);
  font-size: .78rem;
  line-height: 1.4;
}

.hottub-option-body small b {
  color: var(--sea-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.02rem;
  font-weight: 500;
  line-height: 1.1;
}

.hottub-badge {
  justify-self: start;
  padding: .16rem .45rem;
  border-radius: 999px;
  background: rgba(45, 117, 128, .1);
  color: rgba(45, 117, 128, .92);
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.stay-config-hottub-grid--quiet .hottub-option-body {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .9rem;
  padding: .82rem .95rem;
}

.stay-config-hottub-grid--quiet .hottub-option-body small {
  justify-items: end;
  white-space: nowrap;
}

.hottub-fieldset {
  display: grid;
  gap: .75rem;
  padding: 0;
  border: none;
  background: transparent;
}

.hottub-fieldset legend {
  font-weight: 800;
}

.hottub-fieldset .fieldset-intro {
  margin: 0;
  color: rgba(19, 40, 43, .58);
  font-size: .88rem;
  line-height: 1.45;
}

.booking-tub-step .hottub-fieldset {
  background: rgba(255, 255, 255, .42);
  border-radius: var(--radius);
  padding: clamp(.85rem, 2vw, 1rem);
}

.booking-tub-step .hottub-options {
  grid-template-columns: 1fr;
}

@media (max-width: 860px) {
  .hottub-options,
  .stay-pricing-hottub-grid,
  .stay-config-hottub-grid {
    grid-template-columns: 1fr;
  }
}

.stay-pricing-included-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.75rem, 2vw, 1rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.stay-pricing-included-shell {
  display: grid;
  grid-template-columns: minmax(18rem, .72fr) minmax(0, 1fr);
  gap: clamp(1rem, 2.4vw, 1.35rem);
  align-items: stretch;
  max-width: 70rem;
}

.stay-pricing-included-hero {
  display: grid;
  align-content: center;
  min-height: 100%;
  padding: clamp(1.35rem, 3vw, 1.85rem);
  border: 1px solid rgba(45, 117, 128, .16);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .92);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .84) inset,
    0 14px 34px rgba(19, 40, 43, .045);
}

.stay-pricing-included-kicker {
  display: inline-flex;
  width: fit-content;
  margin-bottom: .85rem;
  padding: .36rem .58rem;
  border: 1px solid rgba(45, 117, 128, .16);
  border-radius: 999px;
  color: var(--sea);
  background: rgba(255, 254, 250, .68);
  font-size: .72rem;
  font-weight: 560;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0;
}

.stay-pricing-included-hero h3 {
  max-width: 22rem;
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.64rem;
  font-weight: 400;
  line-height: 1.12;
}

.stay-pricing-included-core {
  display: grid;
  gap: .54rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

.stay-pricing-included-core li {
  display: grid;
  grid-template-columns: 1.4rem minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  color: rgba(19, 40, 43, .72);
  font-size: .93rem;
  line-height: 1.35;
}

.stay-pricing-included-core span {
  display: inline-grid;
  place-items: center;
  width: 1.32rem;
  height: 1.32rem;
  color: var(--sea);
  line-height: 1;
}

.stay-pricing-included-core svg {
  width: 1.2rem;
  height: 1.2rem;
}

.stay-pricing-included-hero p {
  max-width: 24rem;
  margin: 1rem 0 0;
  color: rgba(19, 40, 43, .62);
  font-size: .95rem;
  line-height: 1.6;
}

.stay-pricing-included-shell .stay-pricing-included-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stay-pricing-included-shell .stay-pricing-included-card {
  justify-items: start;
  padding: clamp(1rem, 2vw, 1.22rem);
  background: rgba(255, 254, 250, .9);
  text-align: left;
}

.stay-pricing-included-shell .stay-pricing-included-icon {
  margin-bottom: .25rem;
}

.stay-pricing-included-card {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: .45rem;
  min-height: 100%;
  padding: clamp(1rem, 2.2vw, 1.15rem) clamp(.75rem, 1.8vw, .85rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .76);
  text-align: center;
}

.stay-pricing-included-label {
  display: block;
  color: var(--ink);
  font-size: clamp(.86rem, 1.6vw, .92rem);
  font-weight: 550;
  line-height: 1.28;
  letter-spacing: -.008em;
}

.stay-pricing-included-detail {
  display: block;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.74rem, 1.4vw, .78rem);
  line-height: 1.42;
  max-width: 16rem;
}

.stay-pricing-included-icon {
  display: inline-flex;
  margin-bottom: .15rem;
  color: var(--sea);
}

.stay-pricing-included-icon svg {
  width: 1.35rem;
  height: 1.35rem;
}

.stay-pricing-linger-card,
.stay-pricing-special-card {
  max-width: 38rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .76);
}

.stay-pricing-linger-card h2,
.stay-pricing-special-card h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.28rem, 2.6vw, 1.55rem);
  font-weight: 500;
  line-height: 1.12;
  color: var(--ink);
}

.stay-pricing-linger-card p,
.stay-pricing-special-card p {
  margin: .65rem 0 0;
  color: rgba(19, 40, 43, .62);
  font-size: .96rem;
  line-height: 1.58;
}

.stay-pricing-linger-tiers {
  display: grid;
  gap: .55rem;
  margin: 1.15rem 0 0;
  padding: 0;
  list-style: none;
}

.stay-pricing-linger-tiers li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .7rem 0;
  border-top: 1px solid rgba(19, 40, 43, .07);
  color: rgba(19, 40, 43, .68);
  font-size: .92rem;
}

.stay-pricing-linger-tiers li span:last-child {
  color: var(--sea-dark);
  font-weight: 550;
}

.stay-pricing-trust-list {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.stay-pricing-trust-list li {
  padding: .55rem 1rem;
  border: 1px solid rgba(19, 40, 43, .08);
  border-radius: 999px;
  background: #fff;
  color: rgba(19, 40, 43, .68);
  font-size: .88rem;
  line-height: 1.3;
}

@media (max-width: 980px) {
  .stay-pricing-included-shell {
    grid-template-columns: 1fr;
  }

  .stay-pricing-included-hero h3,
  .stay-pricing-included-hero p {
    max-width: none;
  }

  .stay-pricing-factor-grid {
    grid-template-columns: 1fr;
  }

  .stay-pricing-season-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stay-pricing-included-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .stay-cost-page .section-block {
    padding-block: clamp(2.5rem, 10vw, 3.5rem);
  }

  .stay-pricing-season-grid {
    grid-template-columns: 1fr;
  }

  .stay-config-seasons {
    grid-template-columns: 1fr;
  }

  .stay-config-pills {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .stay-config-pills--nights {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
  }

  .stay-pricing-included-hero h3 {
    font-size: 1.48rem;
  }

  .stay-pricing-included-shell .stay-pricing-included-grid {
    grid-template-columns: 1fr;
  }

  .stay-pricing-included-shell .stay-pricing-included-card {
    min-height: auto;
  }

  .stay-pricing-included-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .stay-pricing-factor-track {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding-top: 0;
  }

  .stay-pricing-factor-track::before {
    left: 1.1rem;
    right: auto;
    top: .15rem;
    bottom: .15rem;
    width: 1px;
    height: auto;
    background: linear-gradient(180deg, rgba(45, 117, 128, .18), rgba(45, 117, 128, .42), rgba(45, 117, 128, .18));
  }

  .stay-pricing-factor-point {
    min-height: 2.6rem;
    padding: 0 0 0 3.15rem;
  }

  .stay-pricing-factor-point small {
    max-width: none;
  }
}


.faq-list {
  display: grid;
  gap: .75rem;
}

.faq-compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: .9rem;
}

.faq-column {
  display: grid;
  gap: .85rem;
  align-content: start;
}

.faq-compact.faq-compact-solo {
  grid-template-columns: 1fr;
  max-width: 640px;
  margin-inline: auto;
}

.faq-compact details {
  min-width: 0;
  overflow: hidden;
  padding: 0;
  background: rgba(255, 254, 250, .86);
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: var(--radius);
  box-shadow: 0 14px 30px rgba(19, 40, 43, .04);
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.faq-compact details:hover,
.faq-compact details:has(summary:focus-visible),
.faq-compact details[open] {
  background: rgba(255, 254, 250, .96);
  border-color: rgba(45, 117, 128, .22);
  box-shadow: 0 18px 38px rgba(19, 40, 43, .065);
}

.faq-compact summary {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.08rem;
  color: var(--ink);
  list-style: none;
  font-size: .98rem;
  font-weight: 760;
  line-height: 1.28;
}

.faq-compact summary:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .14);
  outline-offset: -3px;
}

.faq-compact summary::-webkit-details-marker {
  display: none;
}

.faq-compact summary::after {
  content: "+";
  flex: 0 0 auto;
  color: var(--sea-dark);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1;
  transition: transform .18s ease;
}

.faq-compact details[open] summary::after {
  content: "-";
  transform: translateY(-1px);
}

.faq-compact summary:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .25);
  outline-offset: -3px;
}

.faq-compact details p {
  margin: 0;
  padding: 0 1.08rem 1.05rem;
  color: rgba(104, 115, 113, .96);
  font-size: .95rem;
  line-height: 1.58;
}

.faq-compact details[open] p {
  animation: faq-answer-in .18s ease;
}

.faq-sr-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.faq-category {
  scroll-margin-top: 6.5rem;
}

.faq-category + .faq-category {
  margin-top: 2.35rem;
  padding-top: 2.35rem;
  border-top: 1px solid rgba(45, 117, 128, .1);
}

.faq-category-heading {
  margin-bottom: 1rem;
}

.faq-category-heading h2,
.faq-category-heading h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 1.6vw, 1.22rem);
  font-weight: 400;
  letter-spacing: -.01em;
  color: rgba(23, 74, 82, .88);
}

.faq-page .section-muted {
  padding-top: clamp(2rem, 4vw, 2.8rem);
}

.faq-page .faq-compact {
  display: grid;
  grid-template-columns: 1fr;
  gap: .85rem;
}

.faq-page .faq-compact > .faq-column {
  display: contents;
}

.faq-page .faq-compact details {
  display: block;
  width: 100%;
  margin: 0;
  break-inside: avoid;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(45, 117, 128, .1);
  border-radius: 0;
  box-shadow: none;
}

.faq-page .faq-compact details:hover,
.faq-page .faq-compact details:has(summary:focus-visible),
.faq-page .faq-compact details[open] {
  background: transparent;
  border-color: rgba(45, 117, 128, .14);
  box-shadow: none;
}

.faq-page .faq-compact summary {
  min-height: auto;
  padding: .88rem 0;
  font-size: .93rem;
  font-weight: 560;
  line-height: 1.34;
}

.faq-page .faq-compact summary::after {
  color: rgba(23, 74, 82, .56);
  font-size: 1rem;
  font-weight: 400;
}

.faq-page .faq-compact details p {
  padding: 0 0 1rem;
  font-size: .9rem;
  line-height: 1.55;
}

.faq-page .faq-category + .faq-category {
  margin-top: 2rem;
  padding-top: 2rem;
}

.faq-page .faq-category-heading {
  margin-bottom: .65rem;
}

.faq-page .faq-category-heading h2,
.faq-page .faq-category-heading h3 {
  font-size: clamp(1rem, 1.45vw, 1.12rem);
  color: rgba(19, 40, 43, .68);
}

.faq-policy-foot {
  margin-top: 2.75rem;
  padding-top: 1.55rem;
  border-top: 1px solid rgba(45, 117, 128, .1);
}

.faq-policy-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .35rem .9rem;
  margin: 0;
  padding: 0;
}

.faq-policy-links a {
  color: rgba(23, 74, 82, .78);
  font-size: .84rem;
  font-weight: 620;
  line-height: 1.35;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .16);
  text-underline-offset: .16em;
  transition: color .18s ease, text-decoration-color .18s ease;
}

.faq-policy-links a:hover,
.faq-policy-links a:focus-visible {
  color: var(--ink);
  text-decoration-color: currentColor;
}

.narrow { width: min(100% - 2rem, 860px); }

details {
  background: rgba(255, 254, 250, .78);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1rem;
}

summary {
  cursor: pointer;
  font-weight: 700;
}

details p { color: var(--muted); }

@keyframes faq-answer-in {
  from {
    opacity: 0;
    transform: translateY(-3px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.booking-layout { align-items: start; }

.booking-simple {
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1fr);
  gap: clamp(1.8rem, 4vw, 3rem);
}

.booking-page-block {
  background: linear-gradient(180deg, var(--paper), var(--soft));
  padding-top: clamp(2.2rem, 4.5vw, 3.8rem);
}

.booking-shell {
  width: min(100% - 2rem, 960px);
  display: grid;
  gap: clamp(1.4rem, 3vw, 2.2rem);
}

.booking-page-heading {
  max-width: 620px;
  margin-inline: auto;
  display: grid;
  gap: .7rem;
  text-align: center;
}

.booking-page-heading h1 {
  margin: 0;
  font-size: clamp(2.35rem, 6vw, 4.4rem);
  line-height: .95;
}

.booking-page-heading p:not(.eyebrow) {
  max-width: 560px;
  margin: 0 auto;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.12rem);
  line-height: 1.5;
}

.booking-form {
  display: grid;
  gap: .95rem;
  background:
    linear-gradient(145deg, rgba(255, 254, 250, .94), rgba(248, 246, 241, .82)),
    var(--paper);
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: var(--radius);
  padding: clamp(1rem, 2.4vw, 1.45rem);
  box-shadow: 0 22px 58px rgba(19, 40, 43, .07);
}

.booking-bot-field {
  /* Visually hidden without off-canvas left offsets (WebKit expands scrollWidth). */
  position: absolute;
  inset: 0 auto auto 0;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  opacity: 0;
  pointer-events: none;
  white-space: nowrap;
}

.booking-copy-buffer {
  position: fixed;
  inset: 0 auto auto 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.booking-minimal-form {
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
}

.booking-step {
  display: grid;
  gap: .75rem;
  padding-top: .9rem;
  border-top: 1px solid var(--line);
}

.booking-step-dates {
  padding-top: .2rem;
  border-top: 0;
}

.booking-step-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .62rem;
  align-items: center;
}

.booking-step-heading > span {
  display: inline-grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 999px;
  background: var(--sea-dark);
  color: #fff;
  font-size: .9rem;
  font-weight: 820;
}

.booking-step-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 2.4vw, 1.72rem);
  font-weight: 500;
  line-height: 1.1;
}

.booking-step-heading p {
  margin: .25rem 0 0;
  color: var(--muted);
  font-size: .94rem;
}

.booking-step-heading-compact > span {
  background: rgba(23, 74, 82, .09);
  color: var(--sea-dark);
}

.booking-options-step {
  gap: 0;
}

.booking-options-step[open] {
  gap: .75rem;
}

.booking-options-summary {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .55rem;
  flex-wrap: wrap;
  width: fit-content;
  max-width: 100%;
  padding: .5rem .72rem;
  border: 1px solid rgba(23, 74, 82, .12);
  border-radius: 999px;
  background: rgba(255, 255, 255, .5);
  color: var(--sea-dark);
  cursor: pointer;
  font-weight: 780;
  list-style: none;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.booking-options-summary::-webkit-details-marker {
  display: none;
}

.booking-options-summary > span:first-child {
  display: inline-grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 999px;
  background: rgba(23, 74, 82, .09);
  color: var(--sea-dark);
  font-weight: 820;
}

.booking-options-summary > span:last-child {
  min-width: 0;
  line-height: 1.2;
}

.booking-options-summary:hover,
.booking-options-summary:focus-visible {
  border-color: rgba(23, 74, 82, .24);
  background: rgba(23, 74, 82, .06);
  transform: translateY(-1px);
}

.booking-options-summary:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .14);
}

.booking-options-step[open] .booking-options-summary {
  margin-bottom: .15rem;
}

.booking-options-step[open] .booking-options-summary > span:first-child {
  background: var(--sea-dark);
  color: #fff;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}

.booking-date-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.booking-minimal-form .form-grid,
.booking-contact-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.booking-stay-hint {
  margin: -.1rem 0 .15rem;
  color: var(--muted);
  font-size: .84rem;
  font-weight: 620;
  line-height: 1.4;
  text-align: center;
}

.booking-date-fields-sr,
.booking-guest-input-sr {
  position: absolute;
  inset: 0 auto auto 0;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  opacity: 0;
  pointer-events: none;
  white-space: nowrap;
}

.booking-guest-block {
  display: grid;
  gap: .55rem;
  margin-top: .15rem;
  padding: .78rem .85rem;
  border: 1px solid rgba(23, 74, 82, .12);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .58);
}

.booking-guest-heading {
  display: grid;
  gap: .18rem;
}

.booking-guest-heading > span {
  color: var(--ink);
  font-size: .96rem;
  font-weight: 820;
  line-height: 1.2;
}

.booking-guest-heading small {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 620;
  line-height: 1.35;
}

.booking-guest-selector {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: .38rem;
  width: 100%;
}

.booking-guest-pill {
  min-height: 46px;
  min-width: 0;
  border: 1px solid rgba(19, 40, 43, .12);
  border-radius: 12px;
  padding: .5rem .35rem;
  background: rgba(255, 254, 250, .88);
  color: var(--ink);
  font: inherit;
  font-size: .95rem;
  font-weight: 760;
  line-height: 1;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.booking-guest-pill:hover,
.booking-guest-pill:focus-visible {
  border-color: rgba(23, 74, 82, .24);
  background: rgba(23, 74, 82, .06);
  transform: translateY(-1px);
}

.booking-guest-pill.is-active {
  border-color: rgba(23, 74, 82, .28);
  background: var(--sea-dark);
  color: #fff;
  box-shadow: 0 8px 18px rgba(19, 40, 43, .08);
}

.field-optional {
  color: var(--muted);
  font-size: .84em;
  font-weight: 600;
}

.booking-send-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: .78rem .92rem;
  border: 1px solid rgba(23, 74, 82, .12);
  border-radius: var(--radius);
  background: rgba(45, 117, 128, .055);
}

.booking-send-total span {
  color: var(--muted);
  font-size: .88rem;
  font-weight: 720;
}

.booking-send-total strong {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.booking-send-total[hidden] {
  display: none;
}

.booking-mobile-bar {
  position: fixed;
  inset: auto 0 0;
  z-index: 40;
  padding: .55rem .75rem calc(.55rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid rgba(19, 40, 43, .1);
  background: rgba(255, 254, 250, .94);
  backdrop-filter: blur(10px);
  box-shadow: 0 -10px 30px rgba(19, 40, 43, .08);
}

.booking-mobile-bar[hidden] {
  display: none;
}

.booking-mobile-bar-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .65rem;
  align-items: center;
  width: min(100%, 960px);
  margin-inline: auto;
}

.booking-mobile-bar-meta {
  display: grid;
  gap: .08rem;
  min-width: 0;
}

.booking-mobile-bar-meta small {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 650;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.booking-mobile-bar-meta strong {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.booking-mobile-cta {
  min-width: 0;
  min-height: 46px;
  max-width: 100%;
  border: 1px solid var(--cta-fill);
  border-radius: 999px;
  background: var(--cta-fill);
  color: var(--cta-text);
  cursor: pointer;
  font: inherit;
  font-size: .92rem;
  font-weight: 550;
  padding: .7rem 1.15rem;
  white-space: nowrap;
  transition: background .18s ease, border-color .18s ease;
}

.booking-mobile-cta:hover,
.booking-mobile-cta:focus-visible {
  background: var(--cta-fill-hover);
  border-color: var(--cta-fill-hover);
}

body.has-booking-mobile-bar {
  padding-bottom: calc(4.6rem + env(safe-area-inset-bottom, 0px));
}

.booking-summary {
  min-height: 38px;
  display: flex;
  align-items: center;
  margin: -.1rem 0 0;
  padding: .55rem .7rem;
  border: 1px solid rgba(23, 74, 82, .1);
  border-radius: var(--radius);
  background: rgba(45, 117, 128, .055);
  color: var(--sea-dark);
  font-size: .88rem;
  font-weight: 690;
}

.booking-summary[data-state="empty"] {
  display: none;
}

.booking-summary:empty {
  display: none;
}

body.booking-page .booking-summary[data-state="ready"] {
  min-height: auto;
  justify-content: flex-start;
  margin-top: .15rem;
  padding: .72rem 0;
  border-width: 1px 0;
  border-color: rgba(19, 40, 43, .1);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.98rem, 1.5vw, 1.08rem);
  font-weight: 500;
  letter-spacing: .01em;
}

body.booking-page .booking-guest-selector {
  gap: 0;
  padding: 4px;
  border: 1px solid rgba(19, 40, 43, .11);
  border-radius: 999px;
  background: rgba(255, 254, 250, .72);
}

body.booking-page .booking-guest-pill {
  min-height: 42px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  font-weight: 500;
}

body.booking-page .booking-guest-pill:hover,
body.booking-page .booking-guest-pill:focus-visible {
  background: rgba(23, 74, 82, .055);
  transform: none;
}

body.booking-page .booking-guest-pill.is-active {
  border: 0;
  background: var(--sea-dark);
  color: #fff;
  box-shadow: 0 5px 14px rgba(19, 40, 43, .14);
}

body.booking-page .hottub-options {
  gap: .55rem;
}

body.booking-page .hottub-option {
  border-color: rgba(19, 40, 43, .1);
  background: rgba(255, 254, 250, .72);
  box-shadow: none;
}

body.booking-page .hottub-option.is-selected,
body.booking-page .hottub-option:has(input:checked) {
  border-color: rgba(23, 74, 82, .42);
  background: rgba(255, 255, 255, .96);
  box-shadow: inset 0 0 0 1px rgba(23, 74, 82, .12);
}

body.booking-page .booking-price-panel {
  margin-top: 0;
}

.booking-price-panel {
  display: grid;
  gap: .7rem;
  margin-top: .1rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(23, 74, 82, .12);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .72), rgba(247, 244, 237, .78)),
    rgba(255, 255, 255, .66);
}

.booking-price-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.booking-price-head span {
  color: var(--muted);
  font-size: .92rem;
  font-weight: 720;
  letter-spacing: 0;
  text-transform: none;
}

.booking-price-head strong {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.booking-price-lines {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.booking-price-lines span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: .35rem .55rem;
  border: 1px solid rgba(23, 74, 82, .1);
  border-radius: 999px;
  background: rgba(255, 255, 255, .62);
  color: var(--sea-dark);
  font-size: .82rem;
  font-weight: 690;
  line-height: 1.25;
}

.booking-price-panel p {
  margin: 0;
  max-width: 680px;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.45;
}

label, fieldset {
  display: grid;
  gap: .35rem;
  font-weight: 800;
}

input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .72);
  color: var(--ink);
  padding: .8rem;
  font: inherit;
  transition:
    border-color var(--ui-duration-fast) var(--ui-ease),
    background var(--ui-duration-fast) var(--ui-ease),
    outline-color var(--ui-duration-fast) var(--ui-ease);
}

input:focus,
select:focus,
textarea:focus {
  outline: 3px solid rgba(45, 117, 128, .14);
  border-color: rgba(45, 117, 128, .34);
  background: rgba(255, 255, 255, .92);
}

textarea { resize: vertical; }

fieldset {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: .9rem;
}

legend { padding: 0 .35rem; }

.checkbox-row, .messenger-row {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1rem;
}

.checkbox-row label, .messenger-row label {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-weight: 700;
}

.checkbox-row input, .messenger-row input {
  width: auto;
}

.tub-fieldset {
  display: grid;
  grid-template-columns: minmax(160px, .75fr) minmax(220px, 1.15fr) minmax(170px, .9fr);
  align-items: end;
  gap: .75rem;
  background: rgba(255, 255, 255, .42);
  border-radius: var(--radius);
}

.booking-tub-step .tub-fieldset {
  grid-template-columns: minmax(200px, .75fr) minmax(320px, 1.25fr);
}

.pet-fieldset {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(180px, .85fr);
  align-items: end;
  gap: .75rem;
  background: rgba(255, 255, 255, .36);
  border-radius: var(--radius);
}

.children-fieldset {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(180px, .85fr);
  align-items: end;
  gap: .75rem;
  background: rgba(255, 255, 255, .36);
  border-radius: var(--radius);
}

.pet-fieldset legend,
.children-fieldset legend {
  font-weight: 800;
}

.booking-options-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
}

.booking-options-grid .tub-fieldset,
.booking-options-grid .pet-fieldset,
.booking-options-grid .children-fieldset {
  min-width: 0;
  height: 100%;
}

.guest-details-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tub-fieldset legend {
  font-weight: 800;
}

.fieldset-intro {
  grid-column: 1 / -1;
  display: grid;
  gap: .18rem;
  max-width: 620px;
}

.fieldset-intro strong {
  color: var(--ink);
  font-size: .98rem;
  line-height: 1.25;
}

.fieldset-intro span,
.toggle-row small {
  color: var(--muted);
  font-size: .84rem;
  font-weight: 620;
  line-height: 1.35;
}

.toggle-row {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
}

.toggle-row input {
  width: auto;
  flex: 0 0 auto;
}

.toggle-row-stacked {
  align-items: flex-start;
  min-height: 64px;
}

.toggle-row-stacked > span,
.tub-type-options label > span {
  display: grid;
  gap: .12rem;
}

.toggle-row-stacked strong,
.tub-type-options strong {
  color: var(--ink);
  font-size: .92rem;
  line-height: 1.2;
}

.tub-type-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem;
}

.tub-type-options label {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: .45rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 254, 250, .7);
  color: var(--muted);
  cursor: pointer;
  font-weight: 760;
  padding: .7rem .8rem;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.tub-type-options label:has(input:checked) {
  border-color: rgba(23, 74, 82, .28);
  background: rgba(23, 74, 82, .08);
  color: var(--sea-dark);
}

.tub-type-options input:checked + span {
  color: var(--sea-dark);
}

.tub-type-options label:has(input:disabled) {
  cursor: not-allowed;
  opacity: .55;
}

.tub-type-options input:disabled + span {
  opacity: .75;
}

.tub-type-options input {
  width: auto;
}

.compact-info-fieldset {
  grid-template-columns: 1fr;
  align-items: start;
}

.booking-comment textarea {
  min-height: 86px;
}

.messenger-panel {
  display: grid;
  gap: .9rem;
}

.messenger-panel h2 {
  margin: 0;
}

.messenger-panel p {
  margin: 0;
  color: var(--muted);
}

.messenger-panel .booking-legal-note {
  margin: 0;
  color: rgba(19, 40, 43, .48);
  font-size: .8rem;
  line-height: 1.45;
}

.messenger-panel .booking-consent-message {
  margin: 0;
  color: rgba(128, 97, 79, .9);
  font-size: .78rem;
  line-height: 1.4;
}

.messenger-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}

.messenger-button {
  --messenger-accent: var(--sea);
  width: 100%;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--sea) 22%, var(--line));
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .72);
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  padding: .85rem 1rem;
  text-align: center;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, color .18s ease, opacity .18s ease;
}

.messenger-button span {
  min-width: 0;
  font-weight: 600;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.messenger-button:hover:not(:disabled),
.messenger-button:focus-visible {
  border-color: color-mix(in srgb, var(--sea) 46%, var(--line));
  background: color-mix(in srgb, var(--sea) 8%, white);
}

.messenger-button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--sea) 26%, transparent);
  outline-offset: 2px;
}

.messenger-button:disabled,
.messenger-button.is-disabled {
  cursor: not-allowed;
  opacity: .42;
  background: rgba(255, 255, 255, .46);
  border-color: color-mix(in srgb, var(--line) 80%, transparent);
  color: rgba(19, 40, 43, .46);
  box-shadow: none;
  transform: none;
  pointer-events: none;
}

.messenger-telegram,
.messenger-whatsapp {
  --messenger-accent: var(--sea);
}

.booking-consents {
  display: grid;
  gap: .42rem;
  margin: .15rem 0 0;
}

.booking-consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .7rem;
  align-items: start;
  min-height: 44px;
  margin: 0;
  padding: .55rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(19, 40, 43, .68);
  font-size: .86rem;
  line-height: 1.5;
  cursor: pointer;
  box-shadow: none;
}

.booking-consent input {
  width: 1.125rem;
  height: 1.125rem;
  min-width: 1.125rem;
  margin-top: .18rem;
  accent-color: var(--sea);
  cursor: pointer;
}

.booking-form .booking-consent input[type="checkbox"] {
  width: 1.125rem;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0;
}

.booking-consent span,
.booking-consent__copy {
  font-weight: 500;
  min-width: 0;
  overflow-wrap: anywhere;
}

.booking-consent__copy {
  display: grid;
  gap: .28rem;
}

.booking-consent__line {
  display: block;
}

.booking-consent input:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--sea) 28%, transparent);
  outline-offset: 3px;
}

.booking-consent a {
    color: rgba(23, 74, 82, .82);
  font-weight: 500;
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
}

.booking-consent a:hover,
.booking-consent a:focus-visible {
  color: var(--sea);
}

.booking-consent a:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--sea) 34%, transparent);
  outline-offset: 2px;
  border-radius: 2px;
}

.booking-consent.is-invalid {
  color: rgba(19, 40, 43, .82);
}

.booking-consent.is-invalid input {
  outline: 2px solid color-mix(in srgb, rgba(128, 97, 79, .9) 55%, transparent);
  outline-offset: 2px;
}

.booking-consent-message {
  margin: 0;
  padding-left: 1.9rem;
  color: rgba(128, 97, 79, .9);
  font-size: .78rem;
  line-height: 1.4;
}

.booking-consent-message[hidden] {
  display: none;
}

.booking-legal-note {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(19, 40, 43, .48);
  font-size: .8rem;
  line-height: 1.45;
}

.booking-legal-note a {
  color: var(--sea-dark);
  font-weight: 720;
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
}

.chat-status {
  font-size: .9rem;
}

.chat-status:empty { display: none; }
.chat-status[data-status="ready"] { color: var(--sea-dark); }
.chat-status[data-status="warning"] { color: #80614f; }

.booking-link-panel {
  border-top: 0;
  padding-top: 0;
}

.booking-link-panel .booking-call-link {
  width: 100%;
}

.booking-link {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: 999px;
  background: rgba(255, 255, 255, .58);
  color: var(--sea-dark);
  font-weight: 760;
  padding: .62rem .9rem;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.booking-call-link {
  background: var(--sea-dark);
  border-color: var(--sea-dark);
  color: #fff;
}

.booking-link:hover,
.booking-link:focus-visible {
  border-color: rgba(45, 117, 128, .3);
  background: rgba(45, 117, 128, .08);
  transform: translateY(-1px);
}

.booking-call-link:hover,
.booking-call-link:focus-visible {
  background: var(--sea);
  border-color: var(--sea);
}

.footer-address,
.location-address {
  max-width: 36rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.location-address-lead {
  margin: .2rem 0 .85rem;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.05rem, 5vw, 3.65rem);
  font-weight: 520;
  letter-spacing: 0;
  line-height: .98;
}

h2.location-address span {
  display: block;
}

h2.location-address span + span {
  margin-top: .35rem;
  color: var(--sea-dark);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .36em;
  font-weight: 780;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.location-value-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: .65rem;
  margin: 1.25rem 0 1.15rem;
}

.location-value-strip span {
  min-width: 0;
  padding: .82rem .9rem;
  border: 1px solid rgba(19, 40, 43, .09);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .72);
}

.location-value-strip strong,
.location-value-strip small {
  display: block;
}

.location-value-strip strong {
  color: var(--ink);
  font-size: .96rem;
  line-height: 1.2;
}

.location-value-strip small {
  margin-top: .2rem;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.35;
}

/* ΓöÇΓöÇ Location page ΓöÇΓöÇ */
.location-page .location-intro-heading {
  margin-bottom: 0;
  max-width: 28rem;
}

.location-page .location-intro-heading .eyebrow {
  margin-bottom: 1rem;
  color: rgba(45, 117, 128, .76);
  font-size: .68rem;
  font-weight: 650;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.location-page .location-intro-hook {
  display: flex;
  flex-direction: column;
  gap: clamp(.58rem, 1.15vw, .74rem);
  margin: 0;
  padding: clamp(1.05rem, 1.85vw, 1.3rem) 0 clamp(1.05rem, 1.85vw, 1.3rem) clamp(1.15rem, 2.1vw, 1.4rem);
  border-left: 1px solid rgba(45, 117, 128, .24);
  max-width: 100%;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.3;
  color: inherit;
}

.location-page .location-intro-hook__line {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.36rem, 2.15vw, 1.68rem);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -.017em;
}

.location-page .location-intro-hook__key {
  color: rgba(19, 40, 43, .93);
}

.location-page .location-intro-hook__sep {
  color: rgba(45, 117, 128, .34);
  font-weight: 300;
}

.location-page .location-intro-hook__fact {
  color: rgba(23, 74, 82, .8);
  font-style: italic;
}

.location-page .location-intro-body {
  margin: clamp(1.2rem, 2.15vw, 1.5rem) 0 0;
  max-width: 36rem;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(1rem, 1.48vw, 1.08rem);
  line-height: 1.74;
  font-weight: 400;
}

.location-page .location-intro-body__accent {
  color: rgba(19, 40, 43, .68);
  font-weight: 500;
}

@media (min-width: 768px) {
  .location-page .hero-highlights li:first-child {
    white-space: nowrap;
  }
}

.location-page .location-advantages {
  background: linear-gradient(180deg, var(--soft) 0%, rgba(255, 254, 250, .94) 100%);
}

.location-page .location-advantages-heading {
  text-align: center;
  max-width: 36rem;
  margin-inline: auto;
}

.location-page .location-advantages .location-value-strip {
  margin: clamp(1.65rem, 3.2vw, 2.25rem) 0 0;
  gap: clamp(1rem, 2vw, 1.25rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  counter-reset: location-value-card;
}

.location-page .location-advantages .location-value-strip span {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

.location-page .location-value-card {
  position: relative;
  overflow: hidden;
  padding: clamp(1.5rem, 2.8vw, 2.05rem) clamp(1.35rem, 2.4vw, 1.75rem) clamp(1.4rem, 2.5vw, 1.85rem);
  border: 1px solid rgba(45, 117, 128, .13);
  border-radius: calc(var(--radius) + 4px);
  background: linear-gradient(168deg, rgba(255, 255, 253, .99) 0%, rgba(248, 244, 236, .92) 54%, rgba(255, 254, 250, .97) 100%);
  box-shadow: 0 20px 46px rgba(19, 40, 43, .07), inset 0 1px 0 rgba(255, 255, 255, .88);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.location-page .location-value-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, rgba(45, 117, 128, .42), rgba(45, 117, 128, .1) 68%, transparent);
}

.location-page .location-value-card::after {
  content: counter(location-value-card, decimal-leading-zero);
  counter-increment: location-value-card;
  position: absolute;
  top: 1rem;
  right: 1.1rem;
  color: rgba(45, 117, 128, .22);
  font-family: Georgia, "Times New Roman", serif;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .06em;
  line-height: 1;
}

.location-page .location-value-card strong {
  display: block;
  padding-right: 2rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.28rem, 2.15vw, 1.48rem);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.12;
  color: rgba(19, 40, 43, .96);
}

.location-page .location-value-card small {
  display: block;
  margin-top: .58rem;
  color: rgba(19, 40, 43, .56);
  font-size: clamp(.9rem, 1.4vw, .98rem);
  line-height: 1.5;
}

.location-page .location-nearby-card {
  position: relative;
  overflow: hidden;
  padding: clamp(1.35rem, 2.4vw, 1.75rem) clamp(1.25rem, 2.2vw, 1.55rem);
  border: 1px solid rgba(45, 117, 128, .11);
  border-radius: calc(var(--radius) + 3px);
  background: linear-gradient(165deg, rgba(255, 255, 253, .99) 0%, rgba(252, 250, 244, .94) 100%);
  box-shadow: 0 16px 38px rgba(19, 40, 43, .05), inset 0 1px 0 rgba(255, 255, 255, .82);
  transition: transform .28s ease, box-shadow .28s ease;
}

.location-page .location-nearby-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, rgba(45, 117, 128, .34), rgba(45, 117, 128, .1));
}

.location-page .location-nearby-card h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.14rem, 1.7vw, 1.28rem);
  font-weight: 500;
  letter-spacing: -.02em;
  color: rgba(23, 74, 82, .96);
}

.location-page .location-nearby-card p {
  margin-top: .48rem;
  color: rgba(19, 40, 43, .62);
  font-size: clamp(.92rem, 1.38vw, .98rem);
  line-height: 1.58;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .location-page .location-value-card:hover,
  .location-page .location-nearby-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 24px 52px rgba(19, 40, 43, .085), inset 0 1px 0 rgba(255, 255, 255, .9);
  }

  .location-page .location-value-card:hover {
    border-color: rgba(45, 117, 128, .18);
  }
}

.location-page .location-atmosphere .section-heading {
  max-width: 34rem;
  margin-inline: auto;
  text-align: center;
}

.location-page .location-atmosphere .home-photo-main,
.location-page .location-atmosphere .home-photo-secondary {
  overflow: hidden;
}

.location-page .location-atmosphere .home-photo-caption {
  padding: clamp(2.6rem, 4.5vw, 3.2rem) 1.3rem 1.1rem;
  background: linear-gradient(to top, rgba(12, 30, 33, .76) 0%, rgba(12, 30, 33, .34) 46%, transparent 100%);
  color: rgba(255, 254, 250, .95);
  font-size: .74rem;
  font-weight: 560;
  letter-spacing: .07em;
  text-shadow: 0 1px 10px rgba(0, 0, 0, .22);
}

.location-page .location-atmosphere .home-photo-grid {
  margin-top: clamp(1.35rem, 2.6vw, 1.85rem);
}

.location-page .location-gallery-link {
  margin: 1.65rem 0 0;
}

.location-page .location-faq-heading h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.6rem);
}

.location-page .location-advantages-heading h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.6rem);
}

.location-page #atmosphere.location-atmosphere-intro,
.location-page #scenarios {
  padding-bottom: 0;
}

.location-page #atmosphere.location-atmosphere-intro + .section-block,
.location-page #scenarios + .section-block {
  padding-top: 1.5rem;
}

.location-page .location-hero-lead {
  max-width: 34rem;
  margin: 1rem 0 .55rem;
  font-size: clamp(1rem, 2vw, 1.12rem);
  line-height: 1.55;
  color: rgba(255, 254, 250, .84);
  text-shadow: 0 1px 16px rgba(0, 0, 0, .22);
}

.location-page .location-hero-mood {
  margin-top: 0;
}

/* ΓöÇΓöÇ Location chapters: rhythm and separation ΓöÇΓöÇ */
.location-page {
  --location-pad: clamp(2.85rem, 5.2vw, 4.35rem);
  --location-pad-intro: clamp(3.25rem, 6vw, 5.25rem);
  --location-pad-scenario: clamp(2.65rem, 4.8vw, 4rem);
  --location-pad-atmo-head: clamp(2.5rem, 4.8vw, 3.75rem) clamp(1.25rem, 2.4vw, 1.75rem);
  --location-seam: inset 0 1px 0 rgba(45, 117, 128, .05);
}

.location-page main > .section-block:not(.page-hero) {
  box-shadow: var(--location-seam);
}

.location-page .location-intro {
  padding-block: var(--location-pad-intro);
  background: var(--paper);
}

.location-page .location-map {
  padding-block: var(--location-pad);
  background: linear-gradient(180deg, var(--paper) 0%, rgba(241, 247, 245, .72) 100%);
}

.location-page .location-beach-walk {
  padding-block: var(--location-pad);
  background: linear-gradient(180deg, rgba(255, 254, 250, .98) 0%, var(--soft) 55%, rgba(248, 244, 236, .88) 100%);
}

.location-page .location-nearby {
  padding-block: var(--location-pad);
  background: var(--paper);
}

.location-page .location-directions {
  padding-block: var(--location-pad);
  background: linear-gradient(180deg, rgba(255, 254, 250, .96) 0%, var(--soft) 100%);
}

.location-page .location-atmosphere-intro {
  padding-block: var(--location-pad-atmo-head);
  background: var(--paper);
}

.location-page .location-faq {
  padding-block: var(--location-pad);
  padding-bottom: clamp(1.85rem, 3vw, 2.4rem);
  background: var(--paper);
}

.location-page #morning,
.location-page #evening,
.location-page #sunset,
.location-page .location-atmosphere {
  padding-block: var(--location-pad-scenario);
  background: var(--paper);
}

.location-page #yard,
.location-page #odesa {
  padding-block: var(--location-pad-scenario);
  background: linear-gradient(180deg, rgba(255, 254, 250, .98) 0%, var(--soft) 100%);
}

.location-page #location-review {
  padding-block: var(--location-pad);
  background: linear-gradient(180deg, var(--soft) 0%, rgba(255, 254, 250, .98) 100%);
}

.location-page .location-map-heading {
  max-width: 36rem;
  margin-inline: auto;
  text-align: center;
}

.location-page .location-map-title {
  margin: 0 0 .6rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.75rem, 3.4vw, 2.45rem);
  font-weight: 500;
  letter-spacing: -.022em;
  line-height: 1.18;
  color: rgba(19, 40, 43, .9);
  white-space: nowrap;
}

.location-page .location-map-lead {
  margin: 0;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.96rem, 1.45vw, 1.04rem);
  line-height: 1.55;
}

.location-page .location-map-heading .location-map-address {
  margin: .75rem 0 0;
  color: rgba(19, 40, 43, .62);
  font-size: clamp(.9rem, 1.32vw, .96rem);
  font-weight: 400;
  letter-spacing: -.01em;
  line-height: 1.45;
}

.location-page .location-map-heading h2 {
  margin-bottom: .55rem;
}

.location-page .map-panel--location {
  position: relative;
  min-height: clamp(370px, 54vh, 530px);
  margin-top: clamp(1.35rem, 2.5vw, 1.75rem);
  border-color: rgba(45, 117, 128, .1);
  box-shadow: 0 12px 32px rgba(19, 40, 43, .06);
  background:
    linear-gradient(180deg, rgba(232, 239, 236, .96), rgba(219, 229, 225, .98));
}

.location-page .map-panel--location:not(.is-map-loaded)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 46%, rgba(45, 117, 128, .18), transparent 42%),
    linear-gradient(180deg, rgba(232, 239, 236, .2), rgba(219, 229, 225, .35));
}

.location-page .map-panel--location.is-map-loaded::after {
  display: none;
}

.location-page .map-panel--location iframe {
  min-height: clamp(370px, 54vh, 530px);
}

.location-page .map-marker {
  position: absolute;
  left: 50%;
  top: 44%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .32rem;
  margin-left: 0;
  pointer-events: none;
  z-index: 2;
  transform: translate(-50%, -100%);
}

.location-page .map-marker-pin {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(23, 74, 82, .9);
  box-shadow: 0 0 0 3px rgba(255, 254, 250, .94), 0 2px 7px rgba(19, 40, 43, .18);
}

.location-page .map-marker-label {
  display: inline-block;
  padding: .3rem .56rem;
  border: 1px solid rgba(45, 117, 128, .16);
  border-radius: 6px;
  background: rgba(255, 254, 250, .96);
  color: rgba(19, 40, 43, .9);
  font-size: .8rem;
  font-weight: 560;
  letter-spacing: .015em;
  line-height: 1.4;
  white-space: nowrap;
  box-shadow: 0 2px 10px rgba(19, 40, 43, .1);
  -webkit-font-smoothing: antialiased;
}

.location-page .location-map-footer {
  display: grid;
  gap: .55rem;
  justify-items: center;
  margin-top: clamp(.95rem, 1.65vw, 1.2rem);
  text-align: center;
}

.location-page .location-map-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .35rem .15rem;
  color: rgba(23, 74, 82, .88);
  font-size: clamp(.88rem, 1.3vw, .94rem);
  font-weight: 600;
  letter-spacing: -.01em;
  text-decoration: underline;
  text-decoration-color: rgba(45, 117, 128, .28);
  text-underline-offset: .18em;
  transition: color .2s ease, text-decoration-color .2s ease;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .location-page .location-map-action:hover {
    color: rgba(23, 74, 82, 1);
    text-decoration-color: rgba(45, 117, 128, .5);
  }
}

.location-page .location-walk-route {
  max-width: 36rem;
  margin: 0 auto;
  text-align: center;
}

.location-page .location-walk-metric {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(.55rem, 1.4vw, .85rem);
  margin: clamp(1rem, 2vw, 1.35rem) 0 clamp(1.35rem, 2.4vw, 1.75rem);
}

.location-page .location-walk-metric__value {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(4.5rem, 11vw, 6.5rem);
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.05em;
  color: rgba(23, 74, 82, .92);
}

.location-page .location-walk-metric__label {
  display: grid;
  gap: .18rem;
  padding-bottom: .42rem;
  text-align: left;
}

.location-page .location-walk-metric__unit {
  color: rgba(23, 74, 82, .88);
  font-size: clamp(1.15rem, 2.4vw, 1.45rem);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.1;
}

.location-page .location-walk-metric__note {
  color: rgba(19, 40, 43, .54);
  font-size: clamp(.88rem, 1.5vw, .96rem);
  line-height: 1.35;
}

.location-page .location-walk-line {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(.75rem, 2vw, 1.1rem);
  margin: 0 0 clamp(1.25rem, 2.4vw, 1.6rem);
}

.location-page .location-walk-line__point {
  color: rgba(23, 74, 82, .82);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.location-page .location-walk-line__track {
  position: relative;
  height: 1px;
  background: rgba(45, 117, 128, .18);
  overflow: visible;
}

.location-page .location-walk-line__progress {
  position: absolute;
  inset: 0 auto 0 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(45, 117, 128, .08), rgba(45, 117, 128, .52) 72%, rgba(23, 74, 82, .72));
  transform-origin: left center;
  transform: scaleX(1);
}

.location-page .location-walk-line__track::after {
  content: "";
  position: absolute;
  right: -.18rem;
  top: 50%;
  width: .36rem;
  height: .36rem;
  border-radius: 50%;
  background: rgba(23, 74, 82, .62);
  transform: translateY(-50%);
  box-shadow: 0 0 0 4px rgba(236, 244, 243, .92);
}

.location-page .location-walk-copy {
  margin: 0;
  max-width: 34rem;
  margin-inline: auto;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.98rem, 1.5vw, 1.05rem);
  line-height: 1.65;
}

.location-page .location-beach-route {
  margin: 1rem 0 0;
}

.location-page .location-nearby-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.85rem, 1.6vw, 1.1rem);
  margin-top: clamp(1.35rem, 2.4vw, 1.75rem);
}

.location-page .location-nearby-item {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: clamp(1.2rem, 2.1vw, 1.5rem);
  border: 1px solid rgba(45, 117, 128, .11);
  border-radius: calc(var(--radius) + 2px);
  background: linear-gradient(168deg, rgba(255, 255, 253, .98) 0%, rgba(248, 244, 236, .9) 100%);
  box-shadow: 0 14px 34px rgba(19, 40, 43, .05);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.location-page .location-nearby-item h3 {
  margin: 0 0 .5rem;
  color: rgba(23, 74, 82, .92);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.02rem, 1.55vw, 1.14rem);
  font-weight: 500;
  letter-spacing: -.015em;
  line-height: 1.28;
}

.location-page .location-nearby-item > p:not(.location-nearby-item__access) {
  margin: 0;
  color: rgba(19, 40, 43, .58);
  font-size: .9rem;
  line-height: 1.55;
}

.location-page .location-nearby-item__access {
  display: flex;
  align-items: center;
  gap: .35rem;
  margin: auto 0 0;
  padding-top: .85rem;
  color: rgba(19, 40, 43, .46);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.35;
}

.location-page .location-nearby-item__access::before {
  content: "";
  flex: 0 0 auto;
  width: .34rem;
  height: .34rem;
  border-radius: 50%;
  background: rgba(45, 117, 128, .34);
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .location-page .location-nearby-item:hover {
    transform: translateY(-2px);
    border-color: rgba(45, 117, 128, .2);
    box-shadow: 0 18px 40px rgba(19, 40, 43, .08);
  }
}

@media (max-width: 640px) {
  .location-page .location-nearby-grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 900px) {
  .location-page .location-nearby-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.location-page .location-arrival-route {
  position: relative;
  display: grid;
  gap: 0;
  margin: clamp(1.5rem, 2.8vw, 2rem) auto 0;
  padding: 0 0 0 clamp(1.65rem, 3vw, 2.1rem);
  max-width: 40rem;
  list-style: none;
}

.location-page .location-arrival-route::before {
  content: "";
  position: absolute;
  left: .42rem;
  top: .5rem;
  bottom: .5rem;
  width: 1px;
  background: linear-gradient(180deg, rgba(45, 117, 128, .34), rgba(45, 117, 128, .06));
}

.location-page .location-arrival-route li {
  position: relative;
  padding: clamp(.95rem, 1.8vw, 1.2rem) 0;
}

.location-page .location-arrival-route li::before {
  content: "";
  position: absolute;
  left: calc(-1 * clamp(1.65rem, 3vw, 2.1rem) + .28rem);
  top: clamp(1.28rem, 2vw, 1.48rem);
  width: .34rem;
  height: .34rem;
  border-radius: 50%;
  background: rgba(45, 117, 128, .46);
  box-shadow: 0 0 0 3px rgba(236, 244, 243, .92);
}

.location-page .location-arrival-route__step {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.15rem, 2vw, 1.34rem);
  font-weight: 400;
  letter-spacing: -.02em;
  color: rgba(23, 74, 82, .92);
  line-height: 1.25;
}

.location-page .location-arrival-route li p {
  margin: .45rem 0 0;
  max-width: 44ch;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.92rem, 1.38vw, .98rem);
  line-height: 1.6;
}

.location-page .location-arrival-route li .location-arrival-route__address {
  margin: .65rem 0 .35rem;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.96rem, 1.42vw, 1rem);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: -.01em;
  max-width: none;
}

.location-page .location-arrival-route__action {
  margin: .15rem 0 0;
}

.location-page .location-route-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .45rem 0;
  color: rgba(23, 74, 82, .78);
  font-size: clamp(.86rem, 1.28vw, .92rem);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: rgba(45, 117, 128, .3);
  text-underline-offset: .16em;
  transition: color .2s ease, text-decoration-color .2s ease;
}

.location-page .location-route-link:hover,
.location-page .location-route-link:focus-visible {
  color: rgba(23, 74, 82, .95);
  text-decoration-color: rgba(45, 117, 128, .48);
}

.location-page .location-scenario-copy h2 {
  color: var(--ink);
  font-size: clamp(1.28rem, 1.9vw, 1.48rem);
  font-weight: 400;
  letter-spacing: -.018em;
  line-height: 1.3;
}

.location-page .location-scenario-copy p {
  color: var(--ink);
  opacity: .78;
}

.location-page #morning img,
.location-page #yard img,
.location-page #evening img,
.location-page #sunset img,
.location-page #odesa img {
  aspect-ratio: 3 / 4;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
}

.location-page .location-directions-heading {
  text-align: center;
  max-width: 36rem;
  margin-inline: auto;
}

.location-page .location-directions-body {
  max-width: 38rem;
  margin: 0 auto;
}

.location-page .location-directions-body p {
  margin: .85rem 0 0;
}

.location-page .location-directions-tags {
  justify-content: center;
}

.location-page .page-cta--location .page-cta-action {
  min-width: min(100%, 248px);
}

.location-page .location-address-compact {
  margin: .2rem 0 .75rem;
  font-size: clamp(1.85rem, 4.2vw, 3.1rem);
}

.location-page .location-gallery-link {
  margin: 1.35rem 0 0;
  text-align: center;
}

.location-page .location-faq-heading {
  text-align: center;
  max-width: 36rem;
  margin-inline: auto;
}

.location-page .location-faq-list {
  max-width: 44rem;
  margin: 1.35rem auto 0;
  grid-template-columns: 1fr;
}

.location-page .location-faq-list .faq-column {
  display: grid;
  gap: .75rem;
}

.location-page .property-house-faq-list summary {
  min-height: 58px;
  padding: .95rem 1.05rem;
  color: rgba(19, 40, 43, .82);
  font-size: .96rem;
  font-weight: 500;
  line-height: 1.34;
}

.location-page .property-house-faq-list details p {
  color: rgba(19, 40, 43, .66);
  font-size: .94rem;
  line-height: 1.62;
}

.property-page .room-tags,
.location-page .room-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1.15rem 0 0;
  padding: 0;
  list-style: none;
}

.property-page .room-tags li,
.location-page .room-tags li {
  padding: .42rem .85rem;
  border: 1px solid rgba(45, 117, 128, .14);
  border-radius: 999px;
  background: rgba(45, 117, 128, .05);
  color: rgba(23, 74, 82, .88);
  font-size: .84rem;
  font-weight: 520;
  line-height: 1.28;
  letter-spacing: .01em;
}

.property-page .property-room-copy {
  margin-bottom: 0;
}

.property-page .property-room-copy p {
  max-width: 42ch;
  color: rgba(19, 40, 43, .74);
  font-size: clamp(.98rem, 1.5vw, 1.05rem);
  line-height: 1.68;
}

.property-page .property-room-copy p + p {
  margin-top: .82rem;
}

.property-page #yard .property-room-copy h2 {
  max-width: 22ch;
  line-height: 1.18;
}

.property-page #yard .property-room-copy p {
  max-width: 40ch;
}

.property-page #yard .property-yard-gallery {
  margin-top: clamp(1.75rem, 3.2vw, 2.5rem);
  padding-top: 0;
  border-top: 0;
}

.property-page .property-space-block {
  padding-bottom: clamp(2rem, 4vw, 3rem);
}

.property-page .property-space-intro {
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.property-page .property-space-rooms {
  border-top: 1px solid rgba(23, 74, 82, .1);
}

.property-page .property-space-room {
  padding: clamp(2.25rem, 4.5vw, 3.5rem) 0;
}

.property-page .property-space-room + .property-space-room {
  border-top: 1px solid rgba(23, 74, 82, .08);
}

.property-page .property-space-room--muted {
  background: linear-gradient(180deg, #fffefa, var(--soft));
}

.property-page .property-space-room h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  font-weight: 400;
  letter-spacing: -.024em;
  line-height: 1.14;
  color: rgba(23, 74, 82, .94);
}

.property-page .property-space-gallery {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.property-page .property-space-gallery .home-photo-secondary {
  max-width: min(100%, 520px);
  margin-inline: auto;
}

.property-page .property-yard-zone {
  padding-top: clamp(1.5rem, 3vw, 2.25rem);
}

.property-page .property-yard-zone + .property-yard-zone {
  margin-top: clamp(2rem, 4vw, 3rem);
  padding-top: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid rgba(23, 74, 82, .1);
}

.property-page .property-yard-zone h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  font-weight: 400;
  letter-spacing: -.024em;
  line-height: 1.14;
  color: rgba(23, 74, 82, .94);
}

.property-page .property-faq-link {
  margin: 1.35rem 0 0;
  color: var(--muted);
  font-size: .94rem;
}

.property-page .property-faq-link a {
  color: var(--sea-dark);
  font-weight: 640;
  text-decoration: underline;
  text-underline-offset: .14em;
}

.nearby-heading {
  margin-bottom: 1.35rem;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
}

.form-actions .button {
  width: 100%;
  justify-content: center;
}

.message-preview {
  min-height: 180px;
  font-size: .92rem;
}

.form-note {
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
}

.date-display-input {
  cursor: pointer;
  background: rgba(255, 255, 255, .86);
}

.availability-panel {
  display: grid;
  gap: .85rem;
  width: min(100%, 560px);
  margin-inline: auto;
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(255, 254, 250, .94), rgba(248, 246, 241, .72));
  padding: 1rem;
}

.availability-status {
  color: var(--muted);
  font-size: .9rem;
  display: grid;
  gap: .55rem;
}

.availability-status-message {
  margin: 0;
}

.availability-retry {
  justify-self: start;
  font: inherit;
  font-size: .88rem;
  font-weight: 700;
  color: var(--sea-dark);
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .4rem .9rem;
  cursor: pointer;
}

.availability-retry:disabled {
  opacity: .55;
  cursor: wait;
}

.availability-status[data-status="ready"] { color: var(--sea-dark); }
.availability-status[data-status="warning"] { color: #80614f; }
.availability-status[data-status="error"] { color: #8b3d3d; }

.availability-toolbar {
  display: grid;
  grid-template-columns: 38px 1fr 38px;
  gap: .6rem;
  align-items: center;
}

.availability-toolbar strong {
  text-align: center;
  font-size: .95rem;
  font-weight: 800;
}

.calendar-nav,
.availability-clear,
.availability-day {
  font: inherit;
}

.calendar-nav {
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 254, 250, .78);
  color: var(--sea-dark);
  cursor: pointer;
  transition: background .18s ease, transform .18s ease, border-color .18s ease;
}

.calendar-nav:hover:not(:disabled),
.calendar-nav:focus-visible {
  background: rgba(23, 74, 82, .08);
  border-color: rgba(23, 74, 82, .25);
  transform: translateY(-1px);
}

.calendar-nav:disabled {
  cursor: not-allowed;
  opacity: .36;
}

.availability-calendars {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .85rem;
}

.availability-calendars.is-dual-month {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 720px) {
  .availability-panel {
    width: min(100%, 720px);
  }
}

.availability-month {
  display: grid;
  gap: .55rem;
}

.availability-month h3 {
  margin: 0;
  color: var(--ink);
  font-size: .95rem;
}

.availability-weekdays,
.availability-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .34rem;
}

.availability-weekdays span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  text-align: center;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.availability-day,
.availability-day-empty {
  min-height: 38px;
  border-radius: 999px;
}

.availability-day {
  position: relative;
  border: 1px solid rgba(19, 40, 43, .08);
  background: rgba(255, 254, 250, .88);
  color: var(--ink);
  cursor: pointer;
  font-size: .88rem;
  font-weight: 620;
  letter-spacing: .01em;
  transition: background .16s ease, border-color .16s ease, transform .16s ease, color .16s ease, box-shadow .16s ease;
}

.availability-day:hover:not(:disabled),
.availability-day:focus-visible {
  border-color: rgba(23, 74, 82, .26);
  background: rgba(45, 117, 128, .09);
  transform: translateY(-1px);
}

/* Open nights: bright paper chip, easy to scan as bookable. */
.availability-day.is-available {
  border-color: rgba(23, 74, 82, .16);
  background: rgba(255, 254, 250, .98);
  color: var(--ink);
  font-weight: 680;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset;
}

.availability-day.is-available:hover:not(:disabled),
.availability-day.is-available:focus-visible {
  border-color: rgba(23, 74, 82, .32);
  background: rgba(45, 117, 128, .1);
}

.availability-day.is-unavailable,
.availability-day.is-range-blocked {
  cursor: not-allowed;
  transform: none;
}

/* Booked nights: warm stone fill + soft strike — clearly closed, not “past”. */
.availability-day.is-unavailable {
  border-color: rgba(19, 40, 43, .05);
  background: #e6e2da;
  color: rgba(104, 115, 113, .62);
  font-weight: 560;
  text-decoration-line: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(104, 115, 113, .42);
  text-decoration-skip-ink: none;
  box-shadow: none;
}

/* Free but out of reach for the current stay — quiet, no strike. */
.availability-day.is-range-blocked {
  border-color: transparent;
  background: rgba(236, 234, 230, .42);
  color: rgba(104, 115, 113, .48);
  font-weight: 540;
  text-decoration: none;
  opacity: .78;
  box-shadow: none;
}

/* Past days: dissolve into the grid — no chip, no strike. */
.availability-day.is-past {
  cursor: not-allowed;
  pointer-events: none;
  border-color: transparent;
  background: transparent;
  color: rgba(104, 115, 113, .34);
  font-weight: 500;
  text-decoration: none;
  text-decoration-line: none;
  opacity: 1;
  transform: none;
  box-shadow: none;
}

.availability-day.is-past:hover,
.availability-day.is-past:focus,
.availability-day.is-past:focus-visible {
  cursor: not-allowed;
  border-color: transparent;
  background: transparent;
  color: rgba(104, 115, 113, .34);
  transform: none;
  box-shadow: none;
}

.availability-day.is-availability-pending {
  cursor: wait;
  opacity: .72;
  transform: none;
}

.availability-day.is-in-range {
  background: rgba(45, 117, 128, .12);
  border-color: rgba(45, 117, 128, .18);
  color: var(--sea-dark);
  font-weight: 680;
  text-decoration: none;
  box-shadow: none;
}

.availability-day.is-selected {
  background: var(--sea-dark);
  border-color: var(--sea-dark);
  color: #fff;
  font-weight: 720;
  text-decoration: none;
  box-shadow: 0 6px 14px rgba(23, 74, 82, .18);
}

.availability-day.is-selected.is-unavailable,
.availability-day.is-selected.is-checkout-only,
.availability-day.is-selected.is-range-blocked {
  text-decoration: none;
  text-decoration-line: none;
  background: var(--sea-dark);
  border-color: var(--sea-dark);
  color: #fff;
  opacity: 1;
}

/* Today: clay ring + soft wash + quiet marker dot. */
.availability-day.is-today:not(.is-selected) {
  border-color: rgba(167, 119, 94, .55);
  background: rgba(167, 119, 94, .1);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(167, 119, 94, .1);
}

.availability-day.is-today:not(.is-selected)::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: .32rem;
  width: .22rem;
  height: .22rem;
  border-radius: 50%;
  background: var(--clay);
  transform: translateX(-50%);
  opacity: .9;
  pointer-events: none;
}

.availability-day.is-today.is-unavailable:not(.is-selected) {
  border-color: rgba(167, 119, 94, .42);
  background: #e6e2da;
  color: rgba(104, 115, 113, .62);
}

.availability-day.is-today.is-past:not(.is-selected) {
  border-color: transparent;
  background: transparent;
  color: rgba(104, 115, 113, .34);
  box-shadow: none;
}

.availability-day.is-today.is-past:not(.is-selected)::after {
  display: none;
}

/* Next booking check-in usable as your checkout — clearly tappable, not “booked”. */
.availability-day.is-checkout-only {
  cursor: pointer;
  border-color: rgba(23, 74, 82, .34);
  background: rgba(255, 254, 250, .98);
  color: var(--sea-dark);
  font-weight: 720;
  text-decoration: none;
  box-shadow:
    0 0 0 1px rgba(167, 119, 94, .35),
    0 1px 0 rgba(255, 255, 255, .75) inset;
}

.availability-day.is-checkout-only:hover:not(:disabled),
.availability-day.is-checkout-only:focus-visible {
  border-color: rgba(23, 74, 82, .42);
  background: rgba(45, 117, 128, .1);
  transform: translateY(-1px);
}

.availability-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .9rem;
  color: var(--muted);
  font-size: .82rem;
}

.availability-legend span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.legend-dot {
  width: .62rem;
  height: .62rem;
  border-radius: 999px;
  display: inline-block;
  box-sizing: border-box;
  flex: 0 0 auto;
}

.legend-available {
  background: rgba(255, 254, 250, .98);
  border: 1px solid rgba(23, 74, 82, .22);
}

.legend-unavailable {
  background: #e6e2da;
  box-shadow: inset 0 0 0 1px rgba(19, 40, 43, .04);
}

.legend-past {
  background: transparent;
  border: 1px dashed rgba(104, 115, 113, .35);
}

.legend-today {
  background: rgba(167, 119, 94, .14);
  border: 1px solid rgba(167, 119, 94, .55);
}

.legend-selected { background: var(--sea-dark); }

.availability-clear {
  justify-self: start;
  border: 0;
  background: transparent;
  color: var(--sea-dark);
  cursor: pointer;
  font-size: .86rem;
  font-weight: 760;
  padding: 0;
}

.stay-cost-page .stay-config {
  max-width: 46rem;
}

.stay-cost-page .stay-config-panel {
  background: rgba(255, 254, 250, .86);
  box-shadow: 0 16px 42px rgba(19, 40, 43, .045);
}

.stay-cost-page .availability-panel {
  gap: .95rem;
  border-color: rgba(19, 40, 43, .08);
  background: linear-gradient(145deg, rgba(255, 254, 250, .96), rgba(248, 246, 241, .82));
  box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset;
}

.stay-cost-page .availability-status {
  text-align: center;
  font-size: .86rem;
  line-height: 1.45;
}

.stay-cost-page .availability-toolbar strong,
.stay-cost-page .availability-month h3 {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: 0;
}

.stay-cost-page .availability-toolbar strong {
  font-size: 1.05rem;
}

.stay-cost-page .availability-weekdays span {
  color: rgba(19, 40, 43, .45);
  font-weight: 560;
  letter-spacing: .03em;
}

.stay-cost-page .availability-day {
  font-weight: 560;
  background: rgba(255, 254, 250, .9);
}

.stay-cost-page .availability-legend {
  justify-content: center;
  font-size: .78rem;
}

.stay-cost-page .availability-clear {
  justify-self: center;
  font-weight: 560;
}

.stay-cost-page .stay-config-guest-block {
  width: min(100%, 31rem);
  margin: 0 auto;
  padding: .55rem;
  background: rgba(255, 254, 250, .62);
}

.stay-cost-page .stay-config-guest-selector {
  gap: .32rem;
}

.stay-cost-page .stay-config-guest-selector .booking-guest-pill {
  min-height: 42px;
  border-radius: 999px;
  background: rgba(255, 254, 250, .92);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  font-weight: 400;
}

.stay-cost-page .stay-config-guest-selector .booking-guest-pill.is-active {
  border-color: var(--sea-dark);
  background: var(--sea-dark);
  color: #fff;
}

.stay-cost-page .stay-config .booking-summary {
  justify-content: center;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(19, 40, 43, .56);
  font-size: .86rem;
  font-weight: 560;
}

.stay-cost-page [data-stay-config-step="guests"] .booking-summary {
  display: none;
}

.stay-cost-page .availability-panel {
  width: min(100%, 30rem);
  padding: .82rem;
}

.stay-cost-page .availability-calendars,
.stay-cost-page .availability-calendars.is-dual-month {
  grid-template-columns: minmax(0, 1fr);
}

.stay-cost-page .availability-weekdays,
.stay-cost-page .availability-days {
  gap: .22rem;
}

.stay-cost-page .availability-month h3 {
  display: none;
}

.stay-cost-page .availability-day,
.stay-cost-page .availability-day-empty {
  min-height: 34px;
}

.home-page .section-block:has(+ .page-cta),
.stay-cost-page .section-block:has(+ .page-cta) {
  padding-bottom: clamp(2rem, 3.5vw, 2.85rem);
}

.home-page main > .home-pricing-section:has(+ .page-cta--home) {
  padding-bottom: var(--home-before-cta, 9rem);
}

.site-footer {
  /* One static brand plane across every page */
  position: relative;
  color: var(--muted);
  background: var(--soft);
  border-top: 1px solid rgba(19, 40, 43, .06);
  padding: 0 0 clamp(1rem, 2vw, 1.15rem);
  box-shadow: none;
}

.site-footer::before {
  content: none;
}

.footer-panel {
  padding: clamp(.85rem, 1.5vw, 1.15rem) 0 clamp(1.65rem, 3.1vw, 2.15rem);
  background: transparent;
  border-top: none;
  border-bottom: 1px solid rgba(19, 40, 43, .055);
}

.footer-head {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: clamp(.45rem, .9vw, .58rem);
  padding-bottom: clamp(.42rem, .7vw, .55rem);
  margin-bottom: clamp(.62rem, 1vw, .78rem);
  border-bottom: none;
}

.footer-head::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: min(100%, 42rem);
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgba(19, 40, 43, .055) 18%, rgba(19, 40, 43, .055) 82%, transparent);
}

.footer-motto {
  margin: 0;
  max-width: 28rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.72rem, 1.02vw, .82rem);
  font-weight: 400;
  letter-spacing: .11em;
  line-height: 1.35;
  color: rgba(45, 117, 128, .52);
}

.footer-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(1.4rem, 2.8vw, 2.35rem);
}

.footer-nav,
.footer-contact,
.footer-social {
  min-width: 0;
}

.footer-tagline {
  max-width: 28ch;
  margin: 0 auto;
  color: rgba(19, 40, 43, .72);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.94rem, 1.35vw, 1.06rem);
  font-weight: 500;
  line-height: 1.34;
  letter-spacing: .008em;
}

.footer-brand {
  display: inline-flex;
  flex: 0 0 auto;
  text-decoration: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  opacity: 1;
}

.footer-logo {
  width: clamp(148px, 11vw, 182px);
  height: auto;
  mix-blend-mode: normal;
  opacity: 1;
  filter: none;
}

.site-footer h2 {
  margin: 0 0 .52rem;
  color: rgba(19, 40, 43, .78);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.94rem, 1.3vw, 1.04rem);
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1.15;
  text-transform: none;
}

.site-footer p { color: var(--muted); }

.site-footer .footer-address {
  max-width: 28ch;
  margin: 0;
  font-size: .84rem;
  line-height: 1.42;
  text-wrap: pretty;
}

.site-footer .footer-address a {
  color: rgba(23, 74, 82, .78);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .18);
  text-decoration-thickness: .07em;
  text-underline-offset: .16em;
  transition: color .18s ease, text-decoration-color .18s ease;
}

.site-footer .footer-address a:hover,
.site-footer .footer-address a:focus-visible {
  color: var(--ink);
  text-decoration-color: currentColor;
}

.footer-links {
  display: grid;
  gap: .45rem;
}

.footer-nav {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  gap: .38rem;
}

.footer-nav h2 {
  margin-bottom: .1rem;
}

.footer-nav a,
.footer-links a {
  color: var(--sea-dark);
}

.footer-nav a {
  width: fit-content;
  min-height: 1.65rem;
  display: inline-flex;
  align-items: center;
  color: rgba(23, 74, 82, .8);
  font-size: .84rem;
  font-weight: 550;
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
  transition: color .18s ease, text-decoration-color .18s ease;
}

.footer-nav a:hover,
.footer-nav a:focus-visible {
  color: var(--ink);
  text-decoration-color: rgba(23, 74, 82, .28);
}

.footer-nav .footer-nav-cta {
  margin-top: .72rem;
  min-height: 2.1rem;
  padding: .28rem .72rem;
  border: 1px solid rgba(23, 74, 82, .28);
  border-radius: 999px;
  background: rgba(255, 254, 250, .72);
  color: var(--sea-dark);
  font-size: .82rem;
  font-weight: 560;
  letter-spacing: .01em;
  line-height: 1.2;
  text-decoration: none;
  transition:
    color .18s ease,
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease;
}

.footer-nav .footer-nav-cta:hover,
.footer-nav .footer-nav-cta:focus-visible {
  color: var(--ink);
  border-color: rgba(23, 74, 82, .42);
  background: rgba(45, 117, 128, .06);
  text-decoration: none;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset;
}

.footer-nav .footer-nav-cta:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .28);
  outline-offset: 2px;
}

.footer-contact > p:not(.footer-address) {
  display: block;
  margin: .42rem 0 0;
}

.footer-contact > p:not(.footer-address) a {
  display: inline-flex;
  min-height: 1.65rem;
  align-items: center;
  gap: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(23, 74, 82, .84);
  font-size: .84rem;
  font-weight: 550;
  line-height: 1.15;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .2);
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
  transition: color .18s ease, text-decoration-color .18s ease;
}

.footer-contact > p:not(.footer-address) a::before {
  content: none;
}

.footer-contact > p:not(.footer-address) a[href*="google.com/maps"]::before {
  content: none;
}

.footer-contact > p:not(.footer-address) a:hover,
.footer-contact > p:not(.footer-address) a:focus-visible {
  color: var(--ink);
  text-decoration-color: currentColor;
}

.site-footer .footer-cta.button {
  margin-top: .85rem;
  width: fit-content;
}

.footer-social-lead {
  max-width: none;
  margin: 0 0 .82rem;
  color: rgba(19, 40, 43, .58);
  font-size: .84rem;
  font-weight: 550;
  line-height: 1.42;
}

.footer-contact > p,
.footer-contact > p a {
  font-size: .86rem;
}

.footer-legal {
  display: grid;
  grid-template-columns: minmax(190px, auto) 1fr;
  align-items: center;
  gap: .75rem 1rem;
  margin-top: clamp(1rem, 2vw, 1.35rem);
  padding-top: .88rem;
  font-size: .82rem;
}

.footer-legal p {
  margin: 0;
  color: rgba(19, 40, 43, .54);
}

.footer-legal-links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .45rem .9rem;
}

.footer-legal-links a {
  display: inline;
  min-height: 0;
  align-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(23, 74, 82, .72);
  font-size: .8rem;
  font-weight: 550;
  line-height: 1.15;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .16);
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
  transition: color .18s ease, text-decoration-color .18s ease;
}

.footer-legal-links a:hover,
.footer-legal-links a:focus-visible {
  color: var(--ink);
  text-decoration-color: currentColor;
}

.legal-hero img { object-position: center 44%; }

.legal-content {
  display: grid;
  grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(1.6rem, 3.5vw, 3rem);
  max-width: 1120px;
}

.legal-page-nav {
  position: sticky;
  top: 86px;
  z-index: 3;
  display: grid;
  gap: .16rem;
  margin: 0;
  padding: .22rem 0 0;
  border-top: 1px solid rgba(19, 40, 43, .16);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.legal-page-nav a {
  display: flex;
  min-height: 2.1rem;
  align-items: center;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0;
  padding: .38rem 0 .38rem .7rem;
  background: transparent;
  color: rgba(19, 40, 43, .56);
  font-size: .77rem;
  font-weight: 660;
  line-height: 1.25;
  text-decoration: none;
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}

.legal-page-nav a:hover,
.legal-page-nav a:focus-visible {
  border-color: var(--sea-dark);
  background: rgba(19, 40, 43, .035);
  color: var(--ink);
}

.legal-list {
  display: grid;
  counter-reset: legal-section;
  gap: 0;
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1.15rem, 3.5vw, 2.4rem);
  border: 1px solid rgba(19, 40, 43, .14);
  border-radius: 6px;
  background: rgba(255, 254, 250, .94);
}

.legal-card {
  counter-increment: legal-section;
  padding: clamp(1.05rem, 2.4vw, 1.55rem) 0;
  border: 0;
  border-top: 1px solid rgba(19, 40, 43, .12);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.legal-card:first-child {
  padding-top: 0;
  border-top: 0;
}

.legal-card h2 {
  display: flex;
  gap: .72rem;
  align-items: baseline;
  margin: 0 0 .65rem;
  color: var(--ink);
  font-size: clamp(1.04rem, 1.2vw, 1.18rem);
  font-weight: 720;
  line-height: 1.3;
  letter-spacing: 0;
}

.legal-card h2::before {
  content: counter(legal-section, decimal-leading-zero);
  flex: 0 0 auto;
  color: rgba(23, 74, 82, .58);
  font-size: .72rem;
  font-weight: 760;
  line-height: 1;
  letter-spacing: .04em;
}

.legal-card p {
  max-width: 76ch;
  margin: 0 0 .72rem;
  color: rgba(19, 40, 43, .78);
  font-size: clamp(.95rem, .98vw, 1rem);
  line-height: 1.68;
}

.legal-card p:last-child { margin-bottom: 0; }

.legal-card a {
  color: var(--sea-dark);
  font-weight: 680;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.booking-policy-trust-section {
  background:
    linear-gradient(180deg, rgba(255, 254, 250, .96), rgba(247, 244, 237, .78)),
    var(--paper);
}

.booking-policy-trust {
  display: grid;
  max-width: 1080px;
  gap: clamp(1rem, 2.6vw, 1.55rem);
}

.policy-trust-intro {
  display: grid;
  max-width: 720px;
  gap: .55rem;
  margin-bottom: clamp(.2rem, 1vw, .6rem);
}

.policy-trust-intro h2 {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4vw, 3.45rem);
  font-weight: 500;
  line-height: .98;
  letter-spacing: 0;
}

.policy-trust-intro p:last-child {
  margin: 0;
  max-width: 62ch;
  color: rgba(19, 40, 43, .72);
  font-size: clamp(1rem, 1.45vw, 1.14rem);
  line-height: 1.55;
}

.policy-trust-card,
.policy-cancellation {
  border: 1px solid rgba(19, 40, 43, .11);
  border-radius: var(--radius);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .82), rgba(247, 244, 237, .72)),
    rgba(255, 254, 250, .88);
  box-shadow: 0 24px 64px rgba(19, 40, 43, .06);
}

.policy-trust-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(.85rem, 2vw, 1.25rem);
  align-items: start;
  padding: clamp(1.1rem, 2.8vw, 1.65rem);
}

.policy-trust-card-wide {
  padding: clamp(1.2rem, 3vw, 1.9rem);
}

.policy-soft-icon {
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(23, 74, 82, .13);
  border-radius: 999px;
  background: rgba(23, 74, 82, .055);
  color: var(--sea-dark);
  font-size: .78rem;
  font-weight: 760;
  line-height: 1;
}

.policy-trust-card h2,
.policy-section-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.36rem, 2.2vw, 1.86rem);
  font-weight: 500;
  line-height: 1.12;
}

.policy-trust-card p,
.policy-section-heading p,
.policy-cancel-card p,
.policy-trust-note p {
  margin: .45rem 0 0;
  color: rgba(19, 40, 43, .72);
  line-height: 1.56;
}

.policy-cancellation {
  display: grid;
  gap: clamp(.95rem, 2.4vw, 1.35rem);
  padding: clamp(1.1rem, 2.8vw, 1.65rem);
}

.policy-section-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(.85rem, 2vw, 1.25rem);
  align-items: start;
}

.policy-cancellation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
}

.policy-cancel-card {
  min-height: 180px;
  padding: clamp(.95rem, 2.2vw, 1.25rem);
  border: 1px solid rgba(23, 74, 82, .1);
  border-radius: calc(var(--radius) - 4px);
  background: rgba(255, 255, 255, .6);
}

.policy-cancel-kicker {
  margin: 0 0 .72rem !important;
  color: var(--sea-dark) !important;
  font-size: .82rem;
  font-weight: 760;
  line-height: 1.25 !important;
}

.policy-cancel-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.02rem, 1.5vw, 1.18rem);
  font-weight: 760;
  line-height: 1.22;
  letter-spacing: 0;
}

.policy-trust-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.85rem, 2vw, 1rem);
}

.policy-trust-note {
  padding: .9rem 1rem;
  border-top: 1px solid rgba(19, 40, 43, .12);
  text-align: center;
}

.policy-trust-note p {
  margin: 0 auto;
  max-width: 66ch;
  color: rgba(19, 40, 43, .62);
  font-size: .92rem;
}

.social-section {
  margin-top: 1.4rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--line);
}

.site-footer .footer-social {
  align-self: start;
  display: block;
}

.social-eyebrow {
  margin: 0 0 .35rem;
  color: var(--clay);
  font-size: .72rem;
  font-weight: 760;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.social-title {
  margin: 0;
  max-width: 440px;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 2.6vw, 1.7rem);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.12;
  text-transform: none;
}

.social-copy {
  max-width: 460px;
  margin: .45rem 0 .95rem;
  color: var(--muted);
  font-size: .95rem;
}

.social-links {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .5rem;
  max-width: 430px;
}

.site-footer .footer-social .social-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.site-footer .footer-social .social-link {
  width: 2.5rem;
  height: 2.5rem;
  min-height: 0;
  flex: 0 0 auto;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 0;
  overflow: visible;
  border: 1px solid rgba(19, 40, 43, .1);
  border: 1px solid color-mix(in srgb, var(--social-accent) 14%, rgba(19, 40, 43, .08));
  border-radius: 999px;
  background: rgba(255, 254, 250, .94);
  background: color-mix(in srgb, var(--social-accent) 4%, var(--paper));
  box-shadow: none;
  padding: 0;
  color: rgba(23, 74, 82, .82);
  white-space: nowrap;
}

.social-link {
  --social-accent: var(--sea);
  --glow-x: 50%;
  --glow-y: 50%;
  position: relative;
  isolation: isolate;
  display: inline-flex;
  min-height: 76px;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: 14px;
  background:
    linear-gradient(145deg, rgba(255, 254, 250, .96), rgba(248, 246, 241, .86));
  color: var(--sea-dark);
  text-align: center;
  text-decoration: none;
  box-shadow: 0 12px 26px rgba(19, 40, 43, .055);
  transition:
    transform var(--ui-duration-fast) var(--ui-ease),
    border-color var(--ui-duration-fast) var(--ui-ease),
    color var(--ui-duration-fast) var(--ui-ease),
    box-shadow var(--ui-duration-fast) var(--ui-ease),
    background var(--ui-duration-fast) var(--ui-ease);
}

.social-link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at var(--glow-x) var(--glow-y), color-mix(in srgb, var(--social-accent) 16%, transparent), transparent 48%);
  opacity: 0;
  transition: opacity .22s ease;
}

.social-link[href*="instagram"] { --social-accent: var(--clay); }
.social-link[href*="tiktok"] { --social-accent: var(--ink); }
.social-link[href*="threads"] { --social-accent: var(--sea-dark); }
.social-link[href*="facebook"] { --social-accent: var(--sea); }
.social-link[href*="booking"] { --social-accent: var(--leaf); }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .social-link:hover {
    border-color: rgba(45, 117, 128, .28);
    border-color: color-mix(in srgb, var(--social-accent) 28%, var(--line));
    color: var(--ink);
    box-shadow: 0 18px 38px rgba(19, 40, 43, .1);
    box-shadow:
      0 18px 38px rgba(19, 40, 43, .1),
      0 0 28px color-mix(in srgb, var(--social-accent) 11%, transparent);
  }
}

.social-link:hover {
  border-color: rgba(45, 117, 128, .28);
  border-color: color-mix(in srgb, var(--social-accent) 28%, var(--line));
  color: var(--ink);
}

.social-link:hover::before,
.social-link:focus-visible::before {
  opacity: 1;
}

.social-link:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .28);
  outline: 3px solid color-mix(in srgb, var(--social-accent) 32%, transparent);
  outline-offset: 3px;
  border-color: rgba(45, 117, 128, .34);
  border-color: color-mix(in srgb, var(--social-accent) 34%, var(--line));
}

.social-icon {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  color: currentColor;
}

.social-icon svg {
  --social-glyph-scale: 1;
  width: 100%;
  height: 100%;
  display: block;
  transform: scale(var(--social-glyph-scale));
  transform-origin: center;
  transition: transform var(--ui-duration-fast) var(--ui-ease);
}

.social-link[href*="instagram"] .social-icon svg { --social-glyph-scale: .96; }
.social-link[href*="tiktok"] .social-icon svg { --social-glyph-scale: 1; }
.social-link[href*="threads"] .social-icon svg { --social-glyph-scale: .93; }
.social-link[href*="facebook"] .social-icon svg { --social-glyph-scale: .92; }
.social-link[href*="booking"] .social-icon svg { --social-glyph-scale: .9; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .social-link:hover .social-icon svg,
  .social-link:focus-visible .social-icon svg {
    transform: scale(calc(var(--social-glyph-scale) * 1.03));
  }
}

.social-name {
  max-width: 100%;
  color: var(--ink);
  font-size: .68rem;
  font-weight: 720;
  letter-spacing: .01em;
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.site-footer .social-link {
  color: var(--sea-dark);
}

.site-footer .social-link:hover,
.site-footer .social-link:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(23, 74, 82, .2);
  border-color: color-mix(in srgb, var(--social-accent) 26%, rgba(19, 40, 43, .08));
  background: rgba(45, 117, 128, .06);
  background: color-mix(in srgb, var(--social-accent) 10%, var(--paper));
  color: var(--ink);
  box-shadow: none;
}

.site-footer .social-link::before {
  display: none;
}

.site-footer .social-icon {
  width: 18px;
  height: 18px;
  opacity: 1;
}

.site-footer .social-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.site-footer .social-link:hover .social-icon svg,
.site-footer .social-link:focus-visible .social-icon svg {
  transform: scale(calc(var(--social-glyph-scale) * 1.05));
}

.site-footer .social-name {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-footer .social-link:hover .social-name,
.site-footer .social-link:focus-visible .social-name {
  color: var(--ink);
}

@supports not (color: color-mix(in srgb, white, black)) {
  .social-link:hover {
    border-color: rgba(45, 117, 128, .28);
    box-shadow: 0 18px 38px rgba(19, 40, 43, .1);
  }

  .social-link:focus-visible {
    outline-color: rgba(45, 117, 128, .32);
    border-color: rgba(45, 117, 128, .34);
  }
}

/* ΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉ
   HOMEPAGE ΓÇö Cinematic Visual Experience
ΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉ */

.home-page {
  --home-after-hero: 7rem;
  --home-section-y: 7rem;
  --home-before-cta: 9rem;
  --home-after-cta: 6rem;
  --home-kicker-size: .8125rem;
  --home-stack-gap: clamp(1.1rem, 2vw, 1.55rem);
}

.home-page main > .section-block {
  padding-block: var(--home-section-y);
}

.home-page .hero + .home-value-block {
  padding-top: var(--home-after-hero);
}

.home-page main > .home-pricing-section,
.home-page main > .home-pricing-section:has(+ .page-cta--home) {
  padding-bottom: var(--home-before-cta);
}

.home-page .page-cta--home {
  padding-top: 6rem;
  padding-bottom: var(--home-after-cta);
}

/* Unified quiet section labels */
.home-page .home-kicker,
.home-page .section-heading > .eyebrow.home-kicker,
.home-page .home-price-heading > .eyebrow.home-kicker {
  margin: 0 0 .85rem;
  color: rgba(45, 117, 128, .58);
  font-size: var(--home-kicker-size);
  font-weight: 540;
  letter-spacing: .1em;
  text-transform: none;
  line-height: 1.3;
}

/* ΓöÇΓöÇ Home typographic compositions (no photos) ΓöÇΓöÇ */
.home-manifest {
  max-width: 68rem;
}

.home-manifest > h2,
.home-house-block > .container > h2 {
  margin: 0;
  max-width: none;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(2.15rem, 4.2vw, 3.35rem);
  line-height: 1.08;
  letter-spacing: 0;
  color: var(--ink);
}

.home-manifest__line,
.home-house-title__line {
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
}

.home-manifest__band {
  position: relative;
  margin-top: clamp(1.75rem, 3vw, 2.4rem);
  padding-top: clamp(1.25rem, 2.2vw, 1.7rem);
}

.home-manifest__horizon {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(45, 117, 128, .12),
    rgba(45, 117, 128, .4) 35%,
    rgba(167, 119, 94, .28) 70%,
    rgba(45, 117, 128, .1)
  );
  pointer-events: none;
}

.home-manifest__notes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: flex-start;
  gap: clamp(1rem, 2.2vw, 1.75rem);
}

.home-manifest__notes > li {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .42rem;
  margin: 0;
  padding-top: clamp(.7rem, 1.4vw, 1rem);
  border-top: 1px solid rgba(45, 117, 128, .16);
}

.home-manifest__notes > li:nth-child(1) {
  grid-column: 1 / span 3;
  max-width: 12rem;
}

.home-manifest__notes > li:nth-child(2) {
  grid-column: 4 / span 3;
  max-width: 13.5rem;
  margin-top: clamp(.9rem, 2vw, 1.45rem);
}

.home-manifest__notes > li:nth-child(3) {
  grid-column: 7 / span 3;
  max-width: 12.25rem;
  margin-top: clamp(.35rem, 1.2vw, .75rem);
}

.home-manifest__notes > li:nth-child(4) {
  grid-column: 10 / span 3;
  max-width: 13rem;
  margin-top: clamp(1.15rem, 2.6vw, 1.9rem);
}

.home-manifest__index {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: .78rem;
  line-height: 1.2;
  letter-spacing: .08em;
  color: rgba(45, 117, 128, .45);
  font-variant-numeric: tabular-nums;
}

.home-manifest__notes h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(1rem, 1.35vw, 1.14rem);
  line-height: 1.31;
  letter-spacing: 0;
  color: var(--sea-dark);
  text-wrap: pretty;
}

.home-manifest__notes p {
  margin: 0;
  max-width: 18ch;
  font-size: .88rem;
  line-height: 1.5;
  color: var(--muted);
}

.home-house-block > .container {
  width: min(100% - 2rem, 1080px);
}

.home-house-block .home-kicker {
  margin-bottom: clamp(.9rem, 1.6vw, 1.15rem);
}

.home-house-block > .container > h2 {
  max-width: 11.5ch;
  line-height: 1.03;
}

.home-house-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: .46rem clamp(.9rem, 2.4vw, 1.45rem);
  margin: clamp(1.05rem, 2vw, 1.35rem) 0 0;
  padding: 0;
  color: rgba(19, 40, 43, .54);
  font-size: .8rem;
  font-weight: 540;
  letter-spacing: .02em;
  line-height: 1.35;
}

.home-house-metrics span {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
}

.home-house-metrics span + span::before {
  content: "";
  width: .24rem;
  height: .24rem;
  margin-right: clamp(.9rem, 2.4vw, 1.45rem);
  border-radius: 50%;
  background: rgba(45, 117, 128, .36);
}

.home-house-body {
  margin-top: clamp(1.45rem, 3vw, 2.15rem);
  padding-top: clamp(1.25rem, 2.4vw, 1.8rem);
  display: grid;
  grid-template-columns: 1fr;
  row-gap: clamp(1.55rem, 3vw, 2.2rem);
  align-items: start;
  border-top: 1px solid rgba(19, 40, 43, .1);
}

.home-house-col {
  min-width: 0;
}

.home-house-comfort {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-bottom: 1px solid rgba(19, 40, 43, .1);
}

.home-house-comfort > li {
  margin: 0;
  min-height: 4.4rem;
  max-width: none;
  padding: 0 clamp(.9rem, 2.2vw, 1.35rem) clamp(1rem, 2vw, 1.25rem) 0;
  font-size: .94rem;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0;
  color: rgba(23, 74, 82, .72);
}

.home-house-number {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.18rem, 1.75vw, 1.46rem);
  font-weight: 400;
  font-variant-numeric: lining-nums;
  line-height: 1;
  letter-spacing: 0;
  color: var(--ink);
}

.home-house-comfort > li + li {
  padding-left: clamp(.9rem, 2.2vw, 1.35rem);
  border-left: 1px solid rgba(19, 40, 43, .08);
}

.home-house-comfort-soft {
  margin-top: 0 !important;
  padding-top: 0;
  border-top: 0;
  color: rgba(19, 40, 43, .74) !important;
}

.home-house-zones {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 5vw, 5rem);
  min-width: 0;
}

.home-house-zone {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: .9rem;
  align-items: start;
}

.home-house-zone + .home-house-zone {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.home-house-zone__label {
  margin: 0;
  color: rgba(45, 117, 128, .62);
  font-size: .75rem;
  font-weight: 640;
  letter-spacing: .1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.home-house-zone__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(19, 40, 43, .08);
}

.home-house-zone__list > li {
  margin: 0;
  padding: .68rem 0 .72rem;
  border-bottom: 1px solid rgba(19, 40, 43, .08);
  font-weight: 450;
  font-size: clamp(.96rem, 1.15vw, 1.06rem);
  line-height: 1.45;
  letter-spacing: 0;
  color: rgba(19, 40, 43, .76);
}

.home-house-link {
  grid-column: 1 / -1;
  justify-self: end;
  margin: .35rem 0 0;
}

.home-place-orient {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(1.8rem, 4.5vw, 4rem);
  align-items: start;
}

.home-place-orient__intro h2 {
  margin: 0;
  max-width: none;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(2.05rem, 3.8vw, 3.1rem);
  line-height: 1.08;
  letter-spacing: 0;
  color: var(--ink);
}

.home-place-orient__line {
  display: block;
  /* Wrap only when the line cannot fit — keeps one-line titles on wide viewports */
  white-space: normal;
  overflow-wrap: anywhere;
}

.home-place-orient__dial {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto;
  align-items: center;
  gap: .55rem;
  margin-top: clamp(1.6rem, 3vw, 2.2rem);
  max-width: 28rem;
  padding-bottom: 1.15rem;
}

.home-place-orient__point {
  position: relative;
  display: grid;
  justify-items: center;
  gap: .45rem;
}

.home-place-orient__point i,
.home-place-orient__dot {
  display: block;
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: rgba(28, 112, 126, .58);
  box-shadow: 0 0 0 4px rgba(57, 151, 166, .09);
}

.home-place-orient__point em,
.home-place-orient__label {
  font-style: normal;
  font-size: .72rem;
  font-weight: 620;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(23, 86, 96, .74);
}

.home-place-orient__point--focus .home-place-orient__dot {
  background: rgba(32, 130, 146, .72);
  box-shadow:
    0 0 0 4px rgba(57, 151, 166, .12),
    0 0 0 8px rgba(57, 151, 166, .045);
}

.home-place-orient__point--focus .home-place-orient__label {
  color: rgba(18, 78, 88, .9);
  font-weight: 680;
  letter-spacing: .075em;
}

.home-place-orient__label--brand,
.home-place-orient__point--focus .home-place-orient__label--brand {
  padding-left: .12em;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .92rem;
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: none;
  color: var(--sea-dark);
  text-shadow:
    0 1px 0 rgba(255, 254, 250, .56),
    0 8px 18px rgba(23, 74, 82, .075);
  white-space: nowrap;
}

.home-place-orient__address {
  position: absolute;
  top: calc(100% + .32rem);
  left: 50%;
  width: max-content;
  max-width: 12.5rem;
  transform: translateX(-50%);
  color: rgba(23, 86, 96, .58);
  font-size: .66rem;
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.25;
  text-align: center;
  text-transform: none;
}

.home-place-orient__track {
  height: 1px;
  background: linear-gradient(90deg, rgba(45, 117, 128, .16), rgba(57, 151, 166, .43), rgba(45, 117, 128, .16));
}

.home-place-orient__lead {
  margin: 0;
  max-width: 34rem;
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.55;
}

.home-place-orient__lines {
  list-style: none;
  margin: 1.4rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(19, 40, 43, .1);
}

.home-place-orient__lines > li {
  margin: 0;
  padding: .9rem 0;
  border-bottom: 1px solid rgba(19, 40, 43, .1);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(1.05rem, 1.6vw, 1.22rem);
  line-height: 1.3;
  letter-spacing: 0;
  color: rgba(19, 40, 43, .86);
}

.home-place-orient__link {
  margin: 1.2rem 0 0;
}

.home-photo-caption--title-only {
  padding-top: 1.85rem;
  gap: 0;
}

@media (max-width: 1024px) {
  .home-manifest__notes {
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }

  .home-manifest__notes > li,
  .home-manifest__notes > li:nth-child(1),
  .home-manifest__notes > li:nth-child(2),
  .home-manifest__notes > li:nth-child(3),
  .home-manifest__notes > li:nth-child(4) {
    flex: none;
    grid-column: 1;
    max-width: none;
    width: 100%;
    margin-top: 0;
    padding-top: 0;
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: .75rem;
    row-gap: .28rem;
  }

  .home-manifest__index {
    grid-row: 1 / span 2;
    align-self: start;
    padding-top: .15rem;
  }

  .home-manifest__notes h3 {
    white-space: normal;
  }

  .home-manifest__notes p {
    max-width: none;
  }
}

@media (max-width: 900px) {
  .home-place-orient {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }

  .home-manifest > h2,
  .home-house-block > .container > h2,
  .home-place-orient__intro h2 {
    max-width: none;
  }

  .home-house-body {
    grid-template-columns: 1fr;
    row-gap: 1.6rem;
  }

  .home-house-title__line {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .home-house-comfort {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .72rem 1.2rem;
  }

  .home-place-orient__dial {
    max-width: none;
    min-width: 0;
  }
}

@media (max-width: 700px) {
  .home-page {
    --home-after-hero: 4.5rem;
    --home-section-y: 4.75rem;
    --home-before-cta: 6rem;
    --home-after-cta: 4.5rem;
    --home-kicker-size: .75rem;
  }

  .home-page main > .section-block {
    padding-block: var(--home-section-y);
  }

  .home-page .hero + .home-value-block {
    padding-top: var(--home-after-hero);
  }

  .home-page main > .home-pricing-section {
    padding-bottom: var(--home-before-cta);
  }

  .home-page .section-muted:has(+ .page-cta--home),
  .home-page .section-block:has(+ .page-cta--home) {
    padding-bottom: 6rem;
  }

  .home-page .page-cta--home {
    padding-top: 4.5rem;
    padding-bottom: var(--home-after-cta);
  }

  .home-manifest > h2,
  .home-house-block > .container > h2 {
    font-size: clamp(1.7rem, 7.4vw, 2.15rem);
  }

  .home-manifest__line,
  .home-house-title__line {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .home-place-orient__line {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .home-place-orient,
  .home-place-orient__intro,
  .home-place-orient__copy {
    min-width: 0;
    max-width: 100%;
  }

  .home-place-orient__intro h2 {
    font-size: clamp(1.75rem, 7.2vw, 2.2rem);
  }

  .home-house-body {
    margin-top: 1.7rem;
    padding-top: 1.25rem;
  }

  .home-house-comfort,
  .home-house-zone {
    grid-template-columns: 1fr;
  }

  .home-house-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .42rem .9rem;
  }

  .home-house-metrics span + span::before {
    display: none;
  }

  .home-house-comfort {
    border-bottom: 1px solid rgba(19, 40, 43, .1);
  }

  .home-house-comfort > li {
    min-height: 0;
    max-width: none;
    padding: .82rem 0;
  }

  .home-house-comfort > li + li {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid rgba(19, 40, 43, .075);
  }

  .home-house-zones {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .home-house-zone {
    row-gap: .58rem;
  }

  .home-house-zone + .home-house-zone {
    padding-top: 1.35rem;
    border-top: 1px solid rgba(19, 40, 43, .1);
  }

  .home-house-zone__label {
    margin: 0;
  }

  .home-house-zone__list > li {
    font-size: clamp(.98rem, 3.8vw, 1.08rem);
  }

  .home-house-link {
    justify-self: start;
  }

  /*
   * MOB-034: keep Odesa — SeaLine — sea as one continuous horizontal dial.
   * Address sits under the whole composition so it cannot open a gap in the track.
   */
  .home-page .home-place-orient__dial {
    position: relative;
    grid-template-columns: auto minmax(1.1rem, 1fr) auto minmax(1.1rem, 1fr) auto;
    align-items: center;
    justify-items: stretch;
    gap: .4rem;
    margin-top: clamp(1.55rem, 4vw, 2rem);
    padding-bottom: 2.35rem;
    max-width: min(100%, 22.5rem);
  }

  .home-page .home-place-orient__point {
    display: grid;
    grid-template-columns: none;
    justify-items: center;
    align-items: center;
    gap: .4rem;
  }

  .home-page .home-place-orient__point--focus {
    /* Let the address use the dial as containing block, not this cell. */
    position: static;
    align-items: center;
  }

  .home-page .home-place-orient__point--focus .home-place-orient__dot {
    grid-row: auto;
    margin-top: 0;
  }

  .home-page .home-place-orient__label {
    font-size: .68rem;
    letter-spacing: .05em;
  }

  .home-page .home-place-orient__label--brand,
  .home-page .home-place-orient__point--focus .home-place-orient__label--brand {
    font-size: .84rem;
    letter-spacing: .12em;
  }

  .home-page .home-place-orient__address {
    position: absolute;
    left: 50%;
    top: auto;
    bottom: 0;
    grid-column: auto;
    width: max-content;
    max-width: min(100%, 18rem);
    transform: translateX(-50%);
    text-align: center;
    font-size: .64rem;
    line-height: 1.3;
  }

  .home-page .home-place-orient__track {
    width: auto;
    height: 1px;
    margin-left: 0;
    align-self: center;
    background: linear-gradient(90deg, rgba(45, 117, 128, .16), rgba(57, 151, 166, .43), rgba(45, 117, 128, .16));
  }

  /* MOB-032: first post-hero block — a little more air between stacked notes. */
  .home-page .home-value-block .home-manifest .home-kicker {
    margin-bottom: 1rem;
  }

  .home-page .home-value-block .home-manifest > h2 {
    margin-bottom: .15rem;
  }

  .home-page .home-value-block .home-manifest__band {
    margin-top: 1.85rem;
    padding-top: 1.45rem;
  }

  .home-page .home-value-block .home-manifest__notes {
    gap: 1.4rem;
  }

  .home-page .home-value-block .home-manifest__notes > li {
    column-gap: .9rem;
    row-gap: .42rem;
  }

  .home-page .home-value-block .home-manifest__index {
    padding-top: .2rem;
  }

  /* MOB-033: quieter atmosphere captions — photo stays primary. */
  .home-page .home-atmosphere-block .home-photo-caption {
    padding: 1.25rem .8rem .58rem;
    background: linear-gradient(to top, rgba(12, 30, 33, .46) 0%, rgba(12, 30, 33, .16) 55%, transparent 100%);
  }

  .home-page .home-atmosphere-block .home-photo-caption--title-only {
    padding-top: 1.15rem;
  }

  .home-page .home-atmosphere-block .home-photo-caption__title {
    font-size: .6rem;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1.3;
    color: rgba(255, 254, 250, .86);
  }
}

.home-page .room-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  list-style: none;
  margin: 1.15rem 0 1.25rem;
  padding: 0;
}

.home-page .room-tags li {
  margin: 0;
  padding: .42rem .72rem;
  border: 1px solid rgba(19, 40, 43, .12);
  border-radius: 999px;
  background: rgba(255, 254, 250, .72);
  color: var(--ink);
  font-size: .78rem;
  font-weight: 620;
  letter-spacing: .01em;
  line-height: 1.3;
}

.home-page .reviews-trust-categories {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-page .reviews-trust-categories .reviews-trust-scale {
  color: rgba(19, 40, 43, .42);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .55em;
  font-weight: 560;
  letter-spacing: .02em;
}

.home-page .reviews-trust-panel {
  margin: 0 0 1.35rem;
  padding: .85rem 1rem 1rem;
}

.home-page .home-review-grid {
  gap: 1.15rem;
}

.home-page .home-trust-block .review-card {
  padding: 1rem .05rem 0;
}

.home-page .home-trust-block .review-top {
  margin: 0;
}

.home-page .home-trust-block .review-meta {
  margin: .55rem 0 0;
  color: rgba(19, 40, 43, .42);
  font-weight: 500;
}

.home-page .home-trust-block .review-card p:last-child {
  margin-bottom: 0;
  font-size: .95rem;
  line-height: 1.45;
}

.home-page .home-stat strong {
  white-space: nowrap;
}

.home-price-base-note {
  margin: .15rem 0 0;
  font-size: .78rem;
  color: var(--muted);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.home-page .home-price-heading .home-price-base {
  margin: .55rem 0 0;
  max-width: 28rem;
  color: rgba(19, 40, 43, .62);
  font-size: .95rem;
  font-weight: 520;
  line-height: 1.45;
}

.home-page .home-price-heading .home-price-base + p {
  margin-top: .7rem;
}

.page-cta--home__eyebrow {
  margin: 0 0 .55rem;
}

.home-page .page-cta--home__note a {
  font-weight: 620;
}

.home-page .header-phone {
  display: none;
}

.home-page .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: transparent;
  border-bottom: 1px solid transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition:
    background var(--ui-duration) var(--ui-ease),
    border-color var(--ui-duration) var(--ui-ease),
    backdrop-filter var(--ui-duration) var(--ui-ease);
}

.home-page .site-header:not(.site-header--solid)::before {
  content: none;
}

.home-page .site-header--over-hero:not(.site-header--solid) .brand {
  opacity: 0;
  visibility: hidden;
  width: 0;
  min-width: 0;
  overflow: hidden;
  pointer-events: none;
  transition:
    opacity var(--ui-duration) var(--ui-ease),
    visibility var(--ui-duration) var(--ui-ease);
}

.home-page .site-header--solid .brand {
  opacity: 1;
  visibility: visible;
  width: auto;
  transition: opacity var(--ui-duration) var(--ui-ease);
}

.home-page .site-header--solid {
  background: rgba(255, 254, 250, .94);
  border-bottom-color: var(--line);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.home-page .site-header--solid::before {
  content: none;
}

.home-page .site-header:not(.site-header--solid) .nav a,
.home-page .site-header:not(.site-header--solid) .lang-link {
  color: rgba(255, 254, 250, .9);
}

.home-page .site-header:not(.site-header--solid) .nav a:hover,
.home-page .site-header:not(.site-header--solid) .lang-link:hover {
  color: rgba(255, 254, 250, .98);
  background: transparent;
}

.home-page .site-header:not(.site-header--solid) .nav a[aria-current="page"] {
  color: rgba(255, 254, 250, .98);
  background: transparent;
  box-shadow: inset 0 -2px 0 rgba(241, 216, 188, .68);
  border-radius: 0;
}

.home-page .hero {
  position: relative;
  isolation: isolate;
  /* Progressive viewport units: vh → svh → dvh (CSS Values 4 / Safari + Chrome). */
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  display: grid;
  grid-template-areas: "hero-stack";
  place-items: center;
  align-items: stretch;
  overflow: hidden;
}

.home-page .hero-image,
.home-page .hero-overlay,
.home-page .hero-header-scrim,
.home-page .hero::after,
.home-page .hero-center {
  grid-area: hero-stack;
}

.home-page .hero::after {
  content: "";
  align-self: end;
  justify-self: stretch;
  height: clamp(5rem, 12vh, 8.5rem);
  background:
    linear-gradient(180deg, rgba(255, 254, 250, 0) 0%, rgba(255, 254, 250, .06) 42%, rgba(255, 254, 250, .26) 76%, rgba(255, 254, 250, .56) 100%);
  z-index: 1;
  pointer-events: none;
}

.home-page .hero-header-scrim {
  z-index: 0;
  align-self: start;
  justify-self: stretch;
  width: 100%;
  height: calc(clamp(5.25rem, 13vh, 7.75rem) + env(safe-area-inset-top, 0px));
  background:
    linear-gradient(180deg, rgba(16, 38, 41, .34) 0%, rgba(16, 38, 41, .15) 40%, rgba(16, 38, 41, .05) 68%, transparent 100%);
  pointer-events: none;
}

.home-page .hero-image {
  object-position: center 50%;
}

.home-page .hero-overlay {
  background:
    linear-gradient(180deg, rgba(16, 38, 41, .12) 0%, transparent 26%, rgba(16, 38, 41, .16) 100%);
}

.home-page .hero-center {
  z-index: 2;
  align-self: center;
  justify-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: min(100% - 2rem, 20rem);
  margin-top: -2.5vh;
  padding:
    calc(4.8rem + env(safe-area-inset-top, 0px))
    0
    calc(3.5rem + env(safe-area-inset-bottom, 0px));
  color: #fff;
}

.home-page .hero-brand-logo {
  display: block;
  width: min(300px, 28vw);
  max-width: 100%;
  height: auto;
  margin: 0;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.home-page .hero-tagline {
  margin: 1.15rem 0 0;
  max-width: 18rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 2.15vw, 1.36rem);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -.004em;
  color: rgba(241, 216, 188, .94);
  text-shadow: 0 6px 22px rgba(16, 38, 41, .24);
}

.home-page .hero-definition {
  margin: .62rem 0 0;
  max-width: 16.5rem;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(.92rem, 1.48vw, 1.02rem);
  font-weight: 450;
  line-height: 1.5;
  letter-spacing: 0;
  color: rgba(255, 254, 250, .84);
  text-shadow: 0 5px 18px rgba(16, 38, 41, .22);
}

.home-page .hero-actions {
  margin-top: 1.75rem;
}

.home-page .hero-actions .button {
  min-height: 48px;
  padding: .72rem 1.35rem;
}

.home-page .hero + .section-block {
  position: relative;
  z-index: 2;
  margin-top: 0;
  padding-top: clamp(2.4rem, 4.8vw, 3.6rem);
  background: var(--paper);
  box-shadow: none;
}

@media (max-width: 700px) {
  .home-page .hero-image {
    object-position: center 56%;
  }

  .home-page .hero-header-scrim {
    height: calc(clamp(4.75rem, 11vh, 6.5rem) + env(safe-area-inset-top, 0px));
    background:
      linear-gradient(180deg, rgba(16, 38, 41, .36) 0%, rgba(16, 38, 41, .16) 44%, rgba(16, 38, 41, .05) 70%, transparent 100%);
  }

  /* Soft local veil behind brand stack — not a card/bar, just readable type on bright sky. */
  .home-page .hero-overlay {
    background:
      radial-gradient(ellipse 88% 58% at 50% 46%, rgba(12, 28, 30, .34) 0%, rgba(12, 28, 30, .14) 42%, rgba(12, 28, 30, .04) 68%, transparent 82%),
      linear-gradient(180deg, rgba(16, 38, 41, .16) 0%, transparent 30%, rgba(16, 38, 41, .2) 100%);
  }

  .home-page .hero::after {
    height: clamp(4.5rem, 11vh, 6.5rem);
    background:
      linear-gradient(180deg, rgba(255, 254, 250, 0) 0%, rgba(255, 254, 250, .08) 42%, rgba(255, 254, 250, .28) 76%, rgba(255, 254, 250, .58) 100%);
  }

  .home-page .hero-center {
    width: min(100% - 1.35rem, 20rem);
    margin-top: 0;
    padding:
      calc(4.35rem + env(safe-area-inset-top, 0px))
      0
      calc(2.85rem + env(safe-area-inset-bottom, 0px));
    gap: 0;
  }

  .home-page .hero-brand-logo {
    width: min(196px, 52vw);
    filter: drop-shadow(0 10px 28px rgba(8, 20, 22, .28));
  }

  .home-page .hero + .section-block {
    margin-top: 0;
    padding-top: clamp(2.4rem, 7vw, 3.6rem);
  }

  .home-page .hero-tagline {
    margin-top: 1.15rem;
    max-width: 16.5rem;
    font-size: clamp(1.12rem, 5.4vw, 1.28rem);
    line-height: 1.28;
    letter-spacing: -.006em;
    color: rgba(247, 228, 204, .98);
    text-shadow:
      0 1px 0 rgba(12, 28, 30, .18),
      0 10px 28px rgba(8, 20, 22, .38);
  }

  .home-page .hero-definition {
    margin-top: .72rem;
    max-width: 17rem;
    font-size: clamp(.96rem, 4.2vw, 1.05rem);
    font-weight: 500;
    line-height: 1.45;
    color: rgba(255, 254, 250, .94);
    text-shadow:
      0 1px 0 rgba(12, 28, 30, .16),
      0 8px 22px rgba(8, 20, 22, .34);
  }

  .home-page .hero-actions {
    margin-top: 1.55rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .site-header {
    animation: none;
    opacity: 1;
  }

  .page-hero--home .hero-image,
  .page-hero--inner .page-hero__media,
  .page-hero--inner .sub-hero-img,
  .sub-hero.legal-hero > img {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .home-page .hero-center {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ── Hero brand lockup (legacy EN homepage) ── */
.hero-brand {
  margin: 0 0 1.2rem;
}

.hero-brand-lockup {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .38rem;
}

.hero-brand-sea {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 1.72vw, 1.28rem);
  font-weight: 400;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(236, 247, 248, .99);
  text-shadow:
    0 1px 0 rgba(255, 254, 250, .2),
    0 -1px 0 rgba(45, 117, 128, .22),
    0 12px 34px rgba(16, 38, 41, .4),
    0 0 36px rgba(45, 117, 128, .14);
}

.hero-brand-place {
  display: inline-flex;
  align-items: center;
  gap: .54rem;
  padding-left: .06em;
}

.hero-brand-city {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.64rem, .94vw, .72rem);
  font-weight: 400;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(176, 210, 213, .9);
  text-shadow:
    0 1px 0 rgba(255, 254, 250, .1),
    0 -1px 0 rgba(45, 117, 128, .14),
    0 8px 22px rgba(16, 38, 41, .34);
}

.hero-brand-rule {
  flex: 0 0 auto;
  width: clamp(.88rem, 2.4vw, 1.12rem);
  height: 1px;
  background: linear-gradient(90deg, rgba(45, 117, 128, 0), rgba(140, 192, 196, .4));
}

.hero-brand-place .hero-brand-rule:last-child {
  background: linear-gradient(90deg, rgba(140, 192, 196, .4), rgba(45, 117, 128, 0));
}

.hero-brand-mark {
  display: inline-flex;
  align-items: baseline;
  gap: .46em;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(.76rem, 1.05vw, .8rem);
  font-weight: 540;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: rgba(255, 254, 250, .62);
  text-shadow: 0 2px 22px rgba(0, 0, 0, .28);
}

.hero-brand-accent {
  font-weight: 640;
  letter-spacing: .26em;
  color: rgba(241, 216, 188, .94);
  position: relative;
}

.hero-brand-accent::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.14em;
  height: 1px;
  background: linear-gradient(90deg, rgba(241, 216, 188, .5), rgba(241, 216, 188, .08));
}

/* ── Hero scroll hint — static, no infinite motion ── */
.hero-scroll-hint {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-top: 2.6rem;
  color: rgba(255, 254, 250, .42);
  font-size: .68rem;
  font-weight: 640;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color var(--ui-duration-fast) var(--ui-ease);
}
.hero-scroll-hint:hover { color: rgba(255, 254, 250, .72); }
.hero-scroll-hint svg {
  transition: transform var(--ui-duration-fast) var(--ui-ease);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .hero-scroll-hint:hover svg { transform: translateY(2px); }
}

/* ── Home intro layout ── */
.home-intro-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: center;
}

/* ── Stat bar ── */
.home-stat-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  align-self: center;
}
.home-stat {
  padding: 1.35rem .85rem;
  text-align: center;
  border-right: 1px solid var(--line);
}
.home-stat:last-child { border-right: none; }
.home-stat strong {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  font-weight: 400;
  color: var(--sea-dark);
  line-height: 1.1;
  margin-bottom: .3rem;
}
.home-stat p {
  margin: 0;
  font-size: .7rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .07em;
  line-height: 1.3;
}

/* ── Story cards — editorial, no card shell on homepage ── */
.home-page .story-card {
  background: transparent;
  border: none;
  box-shadow: none;
}
.home-page .story-card img {
  height: clamp(260px, 34vw, 500px);
  transition: transform var(--ui-duration) var(--ui-ease);
}
.home-page .story-card div { padding: 1rem .1rem .1rem; }
.home-page .story-card h3 { font-size: 1.02rem; font-weight: 660; }

/* ── Asymmetric editorial photo grid ── */
.home-photo-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: .65rem;
  margin-top: 2rem;
}
.home-photo-pair {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: .65rem;
  height: clamp(360px, 52vw, 660px);
}
.home-photo-main,
.home-photo-secondary {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  margin: 0;
}
.home-photo-main { height: clamp(360px, 52vw, 660px); }
.home-photo-main img,
.home-photo-main video,
.home-photo-secondary img,
.home-photo-secondary video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--ui-duration) var(--ui-ease);
}
.home-photo-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 2.35rem 1.1rem .95rem;
  background: linear-gradient(to top, rgba(12, 30, 33, .68) 0%, transparent 100%);
  color: rgba(255, 254, 250, .92);
  pointer-events: none;
  display: grid;
  gap: .28rem;
}

.home-photo-caption__title {
  font-size: .7rem;
  font-weight: 640;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.home-photo-caption__text {
  font-size: .78rem;
  font-weight: 450;
  letter-spacing: .01em;
  text-transform: none;
  color: rgba(255, 254, 250, .78);
  line-height: 1.35;
  max-width: 18rem;
}

/* ── Season brand pictograms ── */
.season-glyph {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.12rem;
  height: 1.12rem;
  color: rgba(45, 117, 128, .68);
}

.season-glyph__svg {
  display: block;
  width: 100%;
  height: 100%;
}

.stay-pricing-season-card .season-glyph {
  width: 1.55rem;
  height: 1.55rem;
  color: rgba(45, 117, 128, .66);
}

.stay-config-season-btn .season-glyph {
  width: 1.22rem;
  height: 1.22rem;
  color: rgba(45, 117, 128, .66);
}

.season-glyph--velvet { color: rgba(167, 119, 94, .62); }

.season-glyph--summer { color: rgba(45, 117, 128, .72); }

.season-glyph--reset { color: rgba(58, 122, 112, .64); }

.season-glyph--quiet { color: rgba(19, 40, 43, .46); }

/* ── Homepage pricing rows (elegant minimal) ── */
.home-price-list {
  border-top: 1px solid var(--line);
  margin: 2rem 0 1.5rem;
}
.home-price-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--line);
}
.home-price-label {
  display: flex;
  align-items: flex-start;
  gap: .52rem;
  flex: 1 1 auto;
  padding-top: .22rem;
}

.home-price-label-text {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--muted);
  line-height: 1.32;
}

.home-price-label .season-glyph {
  width: 1.05rem;
  height: 1.05rem;
  margin-top: .06rem;
}
.home-price-right { text-align: right; flex: 0 0 auto; }
.home-price-amount {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2.4vw, 1.95rem);
  font-weight: 400;
  color: var(--ink);
  line-height: 1.1;
}
.home-price-note {
  display: block;
  font-size: .74rem;
  color: var(--muted);
  margin-top: .28rem;
}

/* ── Homepage pricing block — align lead statement with price list ── */
.home-page .home-pricing-block { align-items: start; }

.home-page .home-price-heading {
  border-top: 1px solid var(--line);
  padding-top: 1.6rem;
}

.home-page .home-price-heading h2 {
  font-size: clamp(2.1rem, 3.4vw, 3rem);
}

.home-page .home-price-heading h2 .unit {
  font-size: .48em;
  color: var(--muted);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 500;
}

.home-page .home-pricing-block .home-price-list {
  margin-top: 0;
}

/* ── Homepage — unify facts & reviews with the editorial price/photo language ── */
.home-page .fact-grid {
  gap: 0 1.5rem;
  border-top: 1px solid var(--line);
}
.home-page .split-feature {
  align-items: center;
}
.home-page .split-feature .fact-grid {
  grid-template-columns: 1fr;
}
.home-page .split-feature .fact-card {
  padding: 1.5rem .05rem;
}
.home-page .fact-card {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  padding: 1.15rem .05rem;
  box-shadow: none;
}
.home-page .fact-card h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(1.05rem, 1.6vw, 1.28rem);
  color: var(--ink);
}
.home-page .fact-card p {
  margin: .35rem 0 0;
  font-size: .92rem;
}

.home-page .review-grid { gap: 1.7rem; }
.home-page .review-card {
  background: transparent;
  border: none;
  border-top: 1px solid var(--line);
  border-radius: 0;
  padding: 1.3rem .05rem 0;
  box-shadow: none;
}
.home-page .review-top strong {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: 1.1rem;
}
.home-page .review-top span {
  display: none;
}
.home-page .review-meta {
  margin-top: .55rem;
  font-size: .78rem;
  color: rgba(19, 40, 43, .42);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.home-trust-note {
  margin: 1.1rem 0 0;
  font-size: .84rem;
  color: var(--muted);
}

.home-trust-note a {
  color: var(--sea-dark);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .28);
  text-underline-offset: .22em;
}

.home-trust-note a:hover,
.home-trust-note a:focus-visible {
  color: var(--sea);
  text-decoration-color: currentColor;
}

.home-page .home-stat-bar {
  margin-top: 1.6rem;
}

.home-house-detail {
  margin: 1.35rem 0 0;
  text-align: center;
  font-size: .92rem;
  color: var(--muted);
  line-height: 1.55;
}

.home-page .reviews-trust-panel {
  margin: 0 0 2rem;
}

.home-page .reviews-preview .section-heading {
  margin-bottom: 1.4rem;
}

/* ── Pull quote ── */
.home-quote {
  padding: clamp(3.8rem, 8vw, 7rem) 0;
  background: var(--soft);
  text-align: center;
}
.home-quote blockquote {
  margin: 0 auto;
  max-width: 680px;
  padding: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.3rem, 3vw, 2.2rem);
  font-weight: 400;
  font-style: italic;
  line-height: 1.46;
  color: var(--ink);
  border: none;
}
.home-quote blockquote p { margin: 0; }
.home-quote cite {
  display: block;
  margin-top: 1.4rem;
  font-size: .76rem;
  font-style: normal;
  color: var(--muted);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.home-quote .booking-proof { margin-top: 1.8rem; }
.home-quote .quote-links {
  margin-top: 1rem;
}

/* ═══════════════════════════════════════════════════════════
   PROPERTY PAGE — quick navigation, room chips, comparison
═══════════════════════════════════════════════════════════ */

.property-page section[id] { scroll-margin-top: 96px; }

.property-page .property-value-block {
  padding: clamp(3rem, 5.5vw, 4.25rem) 0;
  background: linear-gradient(180deg, rgba(255, 254, 250, 0) 0%, rgba(236, 244, 243, .18) 52%, rgba(255, 254, 250, 0) 100%);
  border-bottom: 0;
}

.property-page .property-value-editorial {
  max-width: 38rem;
  margin-inline: auto;
  text-align: center;
  position: relative;
}

.property-page .property-value-editorial::before {
  content: "";
  display: block;
  width: 2.75rem;
  height: 1px;
  margin: 0 auto 1.35rem;
  background: linear-gradient(90deg, transparent, rgba(45, 117, 128, .42), transparent);
}

.property-page .property-value-editorial .eyebrow {
  color: rgba(45, 117, 128, .78);
  letter-spacing: .08em;
}

.property-page .property-value-editorial h2 {
  margin-top: .35rem;
  max-width: 20ch;
  margin-inline: auto;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.65rem, 3.2vw, 2.28rem);
  font-weight: 400;
  letter-spacing: -.024em;
  line-height: 1.26;
  color: rgba(23, 74, 82, .92);
}

.property-page .property-value-lead {
  margin: clamp(1.35rem, 2.4vw, 1.8rem) auto 0;
  max-width: 40ch;
  color: rgba(19, 40, 43, .7);
  font-size: clamp(1.03rem, 1.58vw, 1.12rem);
  line-height: 1.74;
}

.property-page .property-value-close {
  margin: clamp(1.45rem, 2.5vw, 1.9rem) auto 0;
  max-width: 31ch;
  padding-top: .15rem;
  color: rgba(19, 40, 43, .54);
  font-size: .95rem;
  line-height: 1.64;
  font-style: italic;
}

.property-page .property-value-theses {
  display: grid;
  gap: .78rem;
  margin: clamp(1.65rem, 3vw, 2.15rem) auto 0;
  padding: clamp(1.45rem, 2.6vw, 1.85rem) 0 0;
  border-top: 1px solid rgba(23, 74, 82, .1);
  max-width: 34rem;
  list-style: none;
}

.property-page .property-value-theses li {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.04rem, 1.75vw, 1.18rem);
  font-weight: 400;
  letter-spacing: -.018em;
  line-height: 1.42;
  color: rgba(23, 74, 82, .9);
}

.property-page .home-stat--guests strong,
.property-page .home-stat--area strong {
  white-space: nowrap;
}

.property-page .property-space-row {
  align-items: center;
  gap: clamp(1.75rem, 4vw, 3.25rem);
}

.property-page .property-space-photo {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: var(--radius);
  box-shadow: 0 18px 44px rgba(19, 40, 43, .08);
}

.property-page .property-space-media-stack {
  display: grid;
  gap: .65rem;
}

.property-page .property-space-media-stack .property-space-photo--secondary {
  aspect-ratio: 4 / 3;
  max-height: 220px;
  object-position: center 42%;
}

.property-page .property-yard-rooms {
  border-top: 1px solid rgba(23, 74, 82, .1);
}

.property-page .property-yard-zone {
  padding: clamp(2.25rem, 4.5vw, 3.5rem) 0;
}

.property-page .property-yard-zone + .property-yard-zone {
  border-top: 1px solid rgba(23, 74, 82, .08);
}

.property-page .location-faq-heading {
  text-align: center;
  max-width: 36rem;
  margin-inline: auto;
}

.property-page .location-faq-heading h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.6rem);
}

.property-page .location-faq-list {
  max-width: 44rem;
  margin: 1.35rem auto 0;
  grid-template-columns: 1fr;
}

.property-page .property-house-faq-list .faq-column {
  display: grid;
  gap: .75rem;
}

.property-page .property-house-faq-list summary {
  min-height: 58px;
  padding: .95rem 1.05rem;
  color: rgba(19, 40, 43, .82);
  font-size: .96rem;
  font-weight: 500;
  line-height: 1.34;
}

.property-page .property-house-faq-list details p {
  color: rgba(19, 40, 43, .66);
  font-size: .94rem;
  line-height: 1.62;
}

.stay-cost-page .location-faq-heading {
  text-align: center;
  max-width: 36rem;
  margin-inline: auto;
}

.stay-cost-page .location-faq-heading h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.6rem);
}

.stay-cost-page .location-faq-list {
  max-width: 44rem;
  margin: 1.35rem auto 0;
  grid-template-columns: 1fr;
}

.stay-cost-page .property-house-faq-list .faq-column {
  display: grid;
  gap: .75rem;
}

.stay-cost-page .property-house-faq-list summary {
  min-height: 58px;
  padding: .95rem 1.05rem;
  color: rgba(19, 40, 43, .82);
  font-size: .96rem;
  font-weight: 500;
  line-height: 1.34;
}

.stay-cost-page .property-house-faq-list details p {
  color: rgba(19, 40, 43, .66);
  font-size: .94rem;
  line-height: 1.62;
}

.property-page .property-review-spotlight,
.location-page .property-review-spotlight {
  text-align: center;
}

.property-page .property-review-heading h2,
.location-page .property-review-heading h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.6rem);
  font-weight: 500;
}

.property-page .property-review-spotlight .section-heading,
.location-page .property-review-spotlight .section-heading {
  margin-bottom: clamp(1rem, 2vw, 1.35rem);
}

.property-page .property-review-quote,
.location-page .property-review-quote {
  margin: 0;
  padding: clamp(1.75rem, 3.2vw, 2.35rem) 0 0;
  border-top: 1px solid rgba(23, 74, 82, .12);
}

.property-page .property-review-quote blockquote,
.location-page .property-review-quote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

.property-page .property-review-quote blockquote p,
.location-page .property-review-quote blockquote p {
  margin: 0 auto;
  max-width: 24ch;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.32rem, 2.35vw, 1.72rem);
  font-weight: 400;
  font-style: normal;
  letter-spacing: -.02em;
  line-height: 1.52;
  color: rgba(23, 74, 82, .92);
}

.property-page .property-review-byline,
.location-page .property-review-byline {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  margin-top: 1.15rem;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.5;
}

.property-page .property-review-byline p,
.location-page .property-review-byline p {
  margin: 0;
}

.property-page .property-review-author,
.location-page .property-review-author {
  color: rgba(19, 40, 43, .62);
  font-size: .86rem;
}

.property-page .property-review-author strong,
.location-page .property-review-author strong {
  font-weight: 600;
  color: rgba(23, 74, 82, .82);
}

.property-page .property-review-proof,
.location-page .property-review-proof {
  color: rgba(19, 40, 43, .52);
  font-size: .78rem;
  letter-spacing: .02em;
}

.property-page .property-review-score {
  color: var(--clay);
  font-weight: 720;
}

.property-page .property-review-spotlight .home-trust-note,
.location-page .property-review-spotlight .home-trust-note {
  margin-top: 1.35rem;
}

.property-page .audience-card {
  cursor: default;
}

@media (min-width: 760px) {
  .property-page .location-faq-list {
    grid-template-columns: 1fr;
  }
}

.property-page .property-value-grid {
  margin-top: 1.55rem;
}

.property-page .property-value-card {
  position: relative;
  overflow: hidden;
  min-height: 132px;
  padding: clamp(1.3rem, 2.3vw, 1.55rem) clamp(1.2rem, 2.1vw, 1.4rem);
  border: 1px solid rgba(23, 74, 82, .13);
  border-radius: calc(var(--radius) + 4px);
  background: linear-gradient(180deg, rgba(255, 255, 254, 1) 0%, rgba(255, 254, 250, .99) 100%);
  box-shadow:
    0 24px 52px rgba(19, 40, 43, .065),
    0 1px 0 rgba(255, 255, 255, 1) inset,
    0 -1px 0 rgba(23, 74, 82, .035) inset;
  transition: transform .28s var(--ui-ease), box-shadow .28s ease, border-color .28s ease;
}

.property-page .property-value-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: linear-gradient(90deg, rgba(45, 117, 128, .46), rgba(45, 117, 128, .1) 72%, transparent);
}

.property-page .property-value-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(45, 117, 128, .1), transparent);
  opacity: .85;
}

.property-page .property-value-card h3 {
  position: relative;
  z-index: 1;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.1rem, 1.7vw, 1.24rem);
  font-weight: 500;
  letter-spacing: -.022em;
  color: rgba(23, 74, 82, .94);
}

.property-page .property-value-card p {
  position: relative;
  z-index: 1;
  color: rgba(19, 40, 43, .64);
  font-size: .94rem;
  line-height: 1.58;
}

.property-page .property-layout-overview {
  display: grid;
  gap: 0;
  margin: 1.55rem 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(23, 74, 82, .1);
}

.property-page .property-living-route {
  position: relative;
  display: grid;
  gap: 0;
  margin: clamp(1.75rem, 3.2vw, 2.4rem) 0 0;
  padding: 0 0 0 clamp(1.75rem, 3.2vw, 2.25rem);
  list-style: none;
}

.property-page .property-living-route::before {
  content: "";
  position: absolute;
  left: .45rem;
  top: .55rem;
  bottom: .55rem;
  width: 1px;
  background: linear-gradient(180deg, rgba(45, 117, 128, .34), rgba(45, 117, 128, .06));
}

.property-page .property-living-route li {
  position: relative;
  padding: clamp(1rem, 2vw, 1.3rem) 0;
}

.property-page .property-living-route li::before {
  content: "";
  position: absolute;
  left: calc(-1 * clamp(1.75rem, 3.2vw, 2.25rem) + .31rem);
  top: clamp(1.38rem, 2.1vw, 1.62rem);
  width: .34rem;
  height: .34rem;
  border-radius: 50%;
  background: rgba(45, 117, 128, .46);
  box-shadow: 0 0 0 3px rgba(236, 244, 243, .92);
}

.property-page .property-living-route__zone {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.2rem, 2.1vw, 1.42rem);
  font-weight: 400;
  letter-spacing: -.022em;
  color: rgba(23, 74, 82, .92);
  line-height: 1.22;
}

.property-page .property-living-route li p {
  margin: .48rem 0 0;
  max-width: 46ch;
  color: rgba(19, 40, 43, .58);
  font-size: clamp(.92rem, 1.38vw, .98rem);
  line-height: 1.6;
}

.property-page .property-layout-overview li {
  display: grid;
  gap: .22rem;
  padding: .95rem 0;
  border-bottom: 1px solid rgba(23, 74, 82, .08);
}

.property-page .property-layout-overview strong {
  color: rgba(23, 74, 82, .9);
  font-size: .94rem;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.35;
}

.property-page .property-layout-overview span {
  color: rgba(19, 40, 43, .58);
  font-size: .9rem;
  line-height: 1.52;
  max-width: 52ch;
}

@media (min-width: 720px) {
  .property-page .property-layout-overview li {
    grid-template-columns: minmax(11rem, 34%) minmax(0, 1fr);
    align-items: baseline;
    gap: 1.25rem;
  }
}

.property-page .home-stat-bar {
  margin-top: 1.4rem;
}

.property-page .property-plan-tags {
  justify-content: center;
  margin-top: 1.25rem;
}

.property-page .property-essentials-wrap {
  margin-top: 1.65rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.property-page .property-essentials {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.9rem, 1.7vw, 1.2rem);
  margin-top: 0;
}

.property-page .essential-card {
  position: relative;
  overflow: hidden;
  min-height: 162px;
  padding: clamp(1.35rem, 2.2vw, 1.6rem) clamp(1.25rem, 2vw, 1.45rem);
  border: 1px solid rgba(23, 74, 82, .09);
  border-radius: calc(var(--radius) + 2px);
  background:
    radial-gradient(130% 90% at 100% 0%, rgba(236, 244, 243, .34) 0%, transparent 58%),
    linear-gradient(165deg, rgba(255, 255, 254, .99) 0%, rgba(252, 251, 248, .97) 100%);
  box-shadow:
    0 14px 36px rgba(19, 40, 43, .044),
    0 1px 0 rgba(255, 255, 255, .92) inset;
  transition:
    transform .34s var(--ui-ease),
    box-shadow .34s ease,
    border-color .28s ease,
    background .28s ease;
}

.property-page .property-essentials .essential-card:nth-child(2) {
  transition-delay: .04s;
}

.property-page .property-essentials .essential-card:nth-child(3) {
  transition-delay: .08s;
}

.property-page .property-essentials .essential-card:nth-child(4) {
  transition-delay: .02s;
}

.property-page .property-essentials .essential-card:nth-child(5) {
  transition-delay: .06s;
}

.property-page .property-essentials .essential-card:nth-child(6) {
  transition-delay: .1s;
}

.property-page .essential-card::after {
  content: "";
  position: absolute;
  inset: auto -18% -35% auto;
  width: 58%;
  height: 52%;
  background: radial-gradient(circle, rgba(236, 244, 243, .28) 0%, transparent 72%);
  pointer-events: none;
}

.property-page .essential-card::before {
  content: "";
  position: absolute;
  inset: 1.15rem auto auto 0;
  width: 2px;
  height: 1.35rem;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(45, 117, 128, .42), rgba(45, 117, 128, .06));
}

.property-page .essential-card:nth-child(3n + 2)::before {
  background: linear-gradient(180deg, rgba(167, 119, 94, .38), rgba(167, 119, 94, .06));
}

.property-page .essential-card:nth-child(3n)::before {
  background: linear-gradient(180deg, rgba(111, 133, 111, .36), rgba(111, 133, 111, .06));
}

.property-page .essential-card h3 {
  margin: 0 0 .72rem;
  padding: 0;
  border: 0;
  background: none;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.02rem, 1.5vw, 1.14rem);
  font-weight: 400;
  letter-spacing: -.018em;
  text-transform: none;
  color: rgba(23, 74, 82, .88);
}

.property-page .essential-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  margin-bottom: .85rem;
  border-radius: 999px;
  background: rgba(45, 117, 128, .08);
  color: rgba(23, 74, 82, .78);
  transition: background .28s ease, color .28s ease, transform .28s var(--ui-ease);
}

.property-page .essential-card__icon svg {
  width: 1.15rem;
  height: 1.15rem;
}

.property-page .essential-card__benefit {
  margin: 0;
  padding: 0 0 0 .1rem;
  color: rgba(19, 40, 43, .64);
  font-size: .9rem;
  line-height: 1.58;
  letter-spacing: .004em;
}

.property-page .essential-card__benefit + .essential-card__benefit {
  margin-top: .42rem;
}

.property-page .essential-card ul {
  margin: 0;
  padding: 0 0 0 .55rem;
  list-style: none;
}

.property-page .essential-card li {
  position: relative;
  padding-left: 0;
  color: rgba(19, 40, 43, .64);
  font-size: .9rem;
  line-height: 1.58;
  letter-spacing: .004em;
}

.property-page .essential-card li + li {
  margin-top: .42rem;
}

.property-page .essential-card li::before {
  content: none;
}

.property-page .property-tub-media {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  aspect-ratio: 3 / 4;
  background: linear-gradient(180deg, rgba(236, 244, 243, .42) 0%, rgba(255, 254, 250, .92) 100%);
}

.property-page .property-tub-media__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  background: transparent;
}

.property-page .property-tub-media__toggle {
  position: absolute;
  right: .85rem;
  bottom: .85rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 254, 250, .88);
  color: rgba(23, 74, 82, .9);
  box-shadow: 0 8px 22px rgba(19, 40, 43, .12);
  cursor: pointer;
}

.property-page .property-tub-media__toggle:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .22);
  outline-offset: 2px;
}

.property-page .property-tub-copy .property-tub-lead {
  margin-top: .75rem;
  max-width: 38ch;
  color: rgba(19, 40, 43, .72);
  font-size: clamp(.98rem, 1.5vw, 1.05rem);
  line-height: 1.62;
}

.property-page .property-tub-formats {
  margin: .85rem 0 0;
  max-width: 40ch;
  color: rgba(19, 40, 43, .55);
  font-size: .88rem;
  line-height: 1.5;
  letter-spacing: .005em;
}

.property-page .property-tub-price {
  margin: 1.05rem 0 0;
  max-width: 36ch;
  color: var(--sea-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.05rem, 1.8vw, 1.22rem);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -.005em;
}

.property-page .property-tub-price strong {
  font-weight: 500;
}

.property-page .property-tub-next {
  margin-top: .85rem;
  max-width: 40ch;
  color: rgba(19, 40, 43, .58);
  font-size: .88rem;
  line-height: 1.58;
}

.property-page .sub-hero-content .hero-actions {
  margin-top: 1.25rem;
}

.property-page .property-mid-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .9rem;
  margin-top: clamp(2rem, 3.5vw, 2.75rem);
  padding: clamp(1.25rem, 2.2vw, 1.65rem) 0 0;
  border: 0;
  border-top: 1px solid rgba(23, 74, 82, .08);
  border-radius: 0;
  background: none;
  box-shadow: none;
  text-align: center;
}

.property-page .property-mid-cta__lead {
  margin: 0;
  max-width: 30ch;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.04rem, 1.6vw, 1.18rem);
  font-weight: 400;
  letter-spacing: -.014em;
  color: rgba(23, 74, 82, .78);
  line-height: 1.36;
}

.property-page .property-mid-cta__copy {
  display: none;
}

.property-page .property-mid-cta__text {
  display: none;
}

.property-page .property-mid-cta p {
  margin: 0;
  max-width: 38ch;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.5;
}

.property-page .page-cta--property {
  /* After house-reviews (section-muted → soft): soft in, sea mist, soft out */
  margin-top: 0;
  padding: clamp(2.75rem, 4.4vw, 3.55rem) 0 clamp(2.95rem, 4.6vw, 3.65rem);
  background: linear-gradient(
    180deg,
    var(--soft) 0%,
    rgba(236, 244, 243, .55) 36%,
    rgba(236, 244, 243, .22) 68%,
    var(--soft) 100%
  );
  border-top: none;
}

.property-page .page-cta--property + .section-block {
  padding-top: clamp(2rem, 3.5vw, 2.75rem);
}

.property-page .quick-nav {
  display: flex;
  flex-wrap: nowrap;
  gap: .5rem;
  overflow-x: auto;
  margin: 1.7rem 0 0;
  padding: .15rem .15rem .35rem;
  list-style: none;
  scrollbar-width: none;
}

.property-page .quick-nav::-webkit-scrollbar { display: none; }

.property-page .quick-nav a {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 2.15rem;
  padding: .42rem .9rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 254, 250, .7);
  color: var(--muted);
  font-size: .84rem;
  font-weight: 640;
  white-space: nowrap;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.property-page .quick-nav a:hover,
.property-page .quick-nav a:focus-visible {
  color: var(--ink);
  border-color: rgba(23, 74, 82, .3);
  background: rgba(23, 74, 82, .07);
}

.property-page .compare-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.6rem;
}

.property-page .compare-card {
  padding: clamp(1.15rem, 2.4vw, 1.6rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .68);
}

.property-page .compare-card h3 {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 1.02rem;
  font-weight: 700;
}

.property-page .compare-badge {
  padding: .22rem .6rem;
  border-radius: 999px;
  background: var(--sea-dark);
  color: #fffefa;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  white-space: nowrap;
}

.property-page .compare-card ul {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.property-page .compare-card li {
  position: relative;
  padding-left: 1.5rem;
  color: var(--muted);
  font-size: .93rem;
  line-height: 1.5;
}

.property-page .compare-card li::before {
  content: "–";
  position: absolute;
  left: 0;
  top: 0;
  color: rgba(104, 115, 113, .75);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

.property-page .compare-card-highlight {
  border-color: rgba(45, 117, 128, .2);
  background: linear-gradient(180deg, rgba(255, 254, 250, .96), rgba(236, 244, 243, .62));
  box-shadow: 0 18px 40px rgba(19, 40, 43, .055);
}

.property-page .compare-card-highlight h3 { color: var(--sea-dark); }
.property-page .compare-card-highlight li { color: var(--ink); }
.property-page .compare-card-highlight li::before {
  content: "✓";
  color: var(--sea-dark);
  font-size: .95rem;
  font-weight: 800;
}

.property-page .audience-note {
  display: none;
}

.property-page .audience-grid {
  margin-top: clamp(1.65rem, 2.8vw, 2.15rem);
  gap: clamp(1rem, 1.9vw, 1.4rem);
}

.property-page #audience .section-heading {
  margin-bottom: clamp(.35rem, 1vw, .55rem);
}

.property-page .audience-card {
  position: relative;
  overflow: hidden;
  min-height: 172px;
  padding: clamp(1.55rem, 2.7vw, 2rem) clamp(1.35rem, 2.4vw, 1.65rem) clamp(1.5rem, 2.5vw, 1.85rem);
  border: 1px solid rgba(23, 74, 82, .11);
  border-radius: calc(var(--radius) + 4px);
  background: linear-gradient(180deg, rgba(255, 255, 254, 1) 0%, rgba(252, 251, 248, .97) 100%);
  box-shadow: 0 16px 40px rgba(19, 40, 43, .05);
  transition:
    transform .34s var(--ui-ease),
    box-shadow .34s ease,
    border-color .28s ease;
}

.property-page .audience-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, rgba(45, 117, 128, .5), rgba(45, 117, 128, .14) 78%, transparent);
}

.property-page .audience-grid .audience-card:nth-child(2)::before {
  background: linear-gradient(90deg, rgba(167, 119, 94, .48), rgba(167, 119, 94, .12) 78%, transparent);
}

.property-page .audience-grid .audience-card:nth-child(3)::before {
  background: linear-gradient(90deg, rgba(111, 133, 111, .46), rgba(111, 133, 111, .12) 78%, transparent);
}

.property-page .audience-card h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 .62rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.14rem, 1.85vw, 1.3rem);
  font-weight: 400;
  letter-spacing: -.016em;
  text-transform: none;
  color: rgba(23, 74, 82, .88);
}

.property-page .audience-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: rgba(19, 40, 43, .62);
  font-size: clamp(.96rem, 1.42vw, 1.02rem);
  line-height: 1.62;
  font-weight: 400;
  max-width: 38ch;
}

.property-page .audience-footnote {
  margin: .95rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: rgba(19, 40, 43, .46);
  font-size: .82rem;
  line-height: 1.55;
  text-align: center;
}

.property-page .audience-footnote a {
  color: rgba(23, 74, 82, .62);
  font-weight: 520;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .22);
  text-underline-offset: .16em;
}

.property-page .audience-footnote a:hover,
.property-page .audience-footnote a:focus-visible {
  color: var(--sea-dark);
  text-decoration-color: currentColor;
}

.property-page .audience-card p strong {
  font-weight: inherit;
  color: inherit;
}

.property-page .property-faq-heading {
  text-align: center;
  max-width: 36rem;
  margin-inline: auto;
}

.property-page .property-faq-heading h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.6rem);
}

.property-page .property-faq-list {
  max-width: 44rem;
  margin: 0 auto;
  grid-template-columns: 1fr;
}

.property-page .property-faq-list .faq-column {
  display: grid;
  gap: .75rem;
}

.property-page .property-faq-list--inline {
  display: grid;
  gap: .65rem;
}

.property-page .property-faq-list--inline details {
  border: 1px solid rgba(23, 74, 82, .1);
  border-radius: calc(var(--radius) + 1px);
  background: rgba(255, 254, 250, .78);
}

.property-page .property-faq-list--inline details[open] {
  background: rgba(255, 254, 250, .96);
}

.property-page .property-faq-list--inline summary {
  padding: .95rem 1rem;
  font-size: .96rem;
}

.property-page .property-faq-list--inline details > p {
  margin: 0;
  padding: 0 1rem 1rem;
  color: rgba(19, 40, 43, .68);
  font-size: .92rem;
  line-height: 1.58;
}

.property-page .property-faq-list--inline details > p a {
  color: var(--sea-dark);
  font-weight: 640;
  text-decoration: underline;
  text-underline-offset: .14em;
}

@media (max-width: 900px) {
  .property-page .property-essentials {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .property-page .property-essentials {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 760px) {
  .property-page .property-faq-list:not(.property-faq-list--inline) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .property-page .property-value-card:hover {
    transform: translateY(-2px);
    box-shadow:
      0 28px 58px rgba(19, 40, 43, .075),
      0 1px 0 rgba(255, 255, 255, 1) inset,
      0 -1px 0 rgba(23, 74, 82, .045) inset;
    border-color: rgba(23, 74, 82, .16);
  }

  .property-page .essential-card:hover {
    transform: translateY(-3px);
    border-color: rgba(23, 74, 82, .16);
    background:
      radial-gradient(130% 90% at 100% 0%, rgba(236, 244, 243, .48) 0%, transparent 58%),
      linear-gradient(165deg, rgba(255, 255, 254, 1) 0%, rgba(252, 251, 248, .99) 100%);
    box-shadow:
      0 20px 46px rgba(19, 40, 43, .06),
      0 1px 0 rgba(255, 255, 255, .96) inset;
  }

  .property-page .essential-card:hover .essential-card__icon {
    background: rgba(45, 117, 128, .14);
    color: var(--sea-dark);
    transform: translateY(-1px);
  }

  .property-page .audience-card:hover {
    transform: translateY(-5px);
    border-color: rgba(45, 117, 128, .22);
    box-shadow: 0 26px 58px rgba(19, 40, 43, .09);
  }

  .property-page .audience-card:hover h3 {
    color: var(--sea-dark);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .property-page .audience-card:active {
    transform: translateY(-2px) scale(.992);
    border-color: rgba(45, 117, 128, .18);
    box-shadow: 0 14px 32px rgba(19, 40, 43, .06);
    transition-duration: .12s;
  }

  .property-page .essential-card:active {
    transform: translateY(-1px) scale(.995);
    transition-duration: .12s;
  }
}

.property-page .know-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.4rem;
  margin-top: 1.3rem;
}

.property-page .pricing-faq-link {
  margin: 1.1rem 0 0;
  color: var(--muted);
  font-size: .92rem;
  text-align: center;
}

.property-page .pricing-faq-link a {
  color: var(--sea-dark);
  font-weight: 640;
  text-decoration: underline;
  text-underline-offset: .14em;
}

/* ═══════════════════════════════════════════════════════════
   MOTION SYSTEM — Cinematic Luxury Language
   Static visual base. Decorative motion is progressive enhancement
   in /assets/motion.css + /assets/motion.js. Legal/booking stay utilitarian.
═══════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════
   LUXURY TOUR GALLERY — Visual Journey System
   Private property tour, not a photo gallery.
═══════════════════════════════════════════════════════════ */

/* ── Tour Hero (fullscreen gallery entry) ── */
.tour-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  min-height: 560px;
  max-height: 1000px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--ink);
}

.tour-hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  top: 0;
  object-fit: cover;
}

.tour-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgba(12, 30, 33, .82) 0%, rgba(12, 30, 33, .3) 40%, rgba(12, 30, 33, .08) 70%),
    linear-gradient(90deg, rgba(12, 30, 33, .45) 0%, transparent 55%);
}

.tour-hero-content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0 0 clamp(2.8rem, 6vw, 5rem);
  color: #fff;
}

.tour-hero-content .container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.tour-hero-content .eyebrow {
  color: rgba(255,254,250,.7);
  letter-spacing: .14em;
  font-size: .82rem;
  margin-bottom: .6rem;
}

.tour-hero-content h1 {
  max-width: 760px;
  font-size: clamp(2.6rem, 5.5vw, 5rem);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.06;
  margin: 0 0 1rem;
  text-shadow: 0 8px 32px rgba(0,0,0,.28);
}

.tour-hero-content p:not(.eyebrow) {
  max-width: 560px;
  font-size: clamp(1rem, 1.6vw, 1.18rem);
  color: rgba(255,254,250,.82);
  margin: 0 0 2rem;
  line-height: 1.6;
}

.tour-hero-scroll {
  display: flex;
  align-items: center;
  gap: .55rem;
  color: rgba(255,254,250,.65);
  font-size: .8rem;
  font-weight: 640;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
}

.tour-hero-scroll svg {
  flex: 0 0 auto;
  transition: transform var(--ui-duration-fast) var(--ui-ease);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .tour-hero-scroll:hover svg { transform: translateY(2px); }
}

/* ── Tour Section Wrapper ── */
.tour-section {
  padding: 0;
  overflow: hidden;
}

/* ── Chapter divider / label ── */
.tour-chapter {
  padding: clamp(3.5rem, 7vw, 7rem) 0 0;
}

.tour-chapter + .tour-chapter {
  padding-top: clamp(5rem, 9vw, 10rem);
}

.tour-chapter-label {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-bottom: clamp(1.8rem, 3.5vw, 3rem);
  padding: 0 0 .1rem;
}

.tour-chapter-num {
  flex: 0 0 auto;
  font-size: .72rem;
  font-weight: 760;
  letter-spacing: .14em;
  color: rgba(23,74,82,.44);
  text-transform: uppercase;
}

.tour-chapter-title {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 3vw, 2.6rem);
  font-weight: 400;
  color: var(--sea-dark);
  line-height: 1.08;
}

.tour-chapter-subtitle {
  margin: .55rem 0 0;
  color: var(--muted);
  font-size: clamp(.9rem, 1.2vw, 1.02rem);
  line-height: 1.55;
  max-width: 640px;
  font-style: italic;
}

.tour-chapter-rule {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(23,74,82,.14), transparent);
  border: 0;
}

/* ── Lead Image (fullscreen edge-to-edge) ── */
.tour-chapter-lead {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #0f2326;
  margin-bottom: clamp(1rem, 2vw, 1.6rem);
  cursor: pointer;
}

.tour-chapter-lead-wide {
  aspect-ratio: 21 / 9;
}

.tour-chapter-lead-portrait {
  max-width: min(100%, 860px);
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: 3 / 4;
}

.tour-chapter-lead img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.008);
  transition: transform var(--ui-duration) var(--ui-ease);
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .tour-chapter-lead:hover img {
    transform: scale(1);
  }
}

.tour-chapter-lead-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(10,26,29,.6));
  pointer-events: none;
}

.tour-chapter-lead-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: clamp(1.8rem, 4vw, 3rem) clamp(1.2rem, 3vw, 3rem) clamp(1.4rem, 2.5vw, 2.2rem);
  color: #fff;
  z-index: 1;
  pointer-events: none;
}

.tour-chapter-lead-caption p {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.2rem, 2.2vw, 1.9rem);
  font-weight: 400;
  line-height: 1.3;
  text-shadow: 0 4px 20px rgba(0,0,0,.4);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .55s ease .1s, transform .55s ease .1s;
}

.tour-chapter-lead:hover .tour-chapter-lead-caption p,
.tour-chapter-lead:focus-within .tour-chapter-lead-caption p {
  opacity: 1;
  transform: translateY(0);
}

.tour-chapter-lead-caption small {
  display: block;
  margin-top: .4rem;
  font-size: .82rem;
  color: rgba(255,254,250,.7);
  font-family: inherit;
  letter-spacing: .04em;
}

.tour-chapter-lead-link {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

/* ── Supporting Strip (2–3 photos per chapter) ── */
.tour-chapter-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.5rem, 1.2vw, 1rem);
  margin-bottom: 0;
}

.tour-chapter-strip.strip-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: min(100%, 820px);
}

.tour-chapter-strip.strip-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tour-strip-item {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #dfe7e3;
  cursor: pointer;
}

.tour-strip-item::after {
  content: "";
  display: block;
  padding-top: 125%;
}

.tour-strip-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.005);
  transition:
    transform var(--ui-duration) var(--ui-ease),
    filter var(--ui-duration) var(--ui-ease);
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .tour-strip-item:hover img {
    transform: scale(1);
    filter: saturate(1.02);
  }
}

.tour-strip-link {
  display: block;
  position: absolute;
  inset: 0;
  text-decoration: none;
}

.tour-strip-item figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: .55rem .65rem .52rem;
  background: linear-gradient(0deg, rgba(10,26,29,.55), transparent);
  z-index: 1;
  pointer-events: none;
}

.tour-strip-item figcaption span {
  display: inline-block;
  color: rgba(255,254,250,.9);
  font-size: .75rem;
  font-weight: 640;
  line-height: 1.25;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .22s ease, transform .22s ease;
}

.tour-strip-item:hover figcaption span,
.tour-strip-item:focus-visible figcaption span,
.tour-strip-item:focus-within figcaption span {
  opacity: 1;
  transform: translateY(0);
}

/* ── Atmosphere Cinema Section ── */
.atmosphere-cinema {
  position: relative;
  background: #080f10;
  padding: clamp(4rem, 8vw, 8rem) 0 clamp(4rem, 8vw, 8rem);
  overflow: hidden;
  margin-top: 0;
}

.atmosphere-cinema-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, rgba(23,74,82,.22), transparent);
  pointer-events: none;
}

.atmosphere-cinema-heading {
  text-align: center;
  margin-bottom: clamp(2.5rem, 5vw, 5rem);
}

.atmosphere-cinema-heading .eyebrow {
  color: rgba(255,254,250,.45);
  letter-spacing: .16em;
  font-size: .78rem;
  margin-bottom: .7rem;
}

.atmosphere-cinema-heading h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 3.5vw, 3.2rem);
  font-weight: 400;
  color: rgba(255,254,250,.92);
  line-height: 1.12;
  max-width: 700px;
  margin-inline: auto;
}

.atmosphere-cinema-heading p {
  margin: .9rem auto 0;
  max-width: 560px;
  color: rgba(255,254,250,.5);
  font-size: clamp(.9rem, 1.2vw, 1.02rem);
  line-height: 1.6;
  font-style: italic;
}

.atmosphere-video-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.6rem, 1.5vw, 1.2rem);
}

.atmosphere-video-block {
  position: relative;
  overflow: hidden;
  background: #0d191b;
  cursor: pointer;
}

.atmosphere-video-block::after {
  content: "";
  display: block;
  padding-top: 177.78%;
}

.atmosphere-video-block video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--ui-duration) var(--ui-ease);
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .atmosphere-video-block:hover video {
    transform: scale(1);
  }
}

.atmosphere-video-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgba(8,15,16,.82) 0%, rgba(8,15,16,.18) 50%, transparent 100%);
  z-index: 1;
  pointer-events: none;
}

.atmosphere-video-text {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: clamp(1.2rem, 3vw, 2.5rem) clamp(.9rem, 2.5vw, 1.8rem) clamp(1.4rem, 2.5vw, 2.2rem);
  pointer-events: none;
}

.atmosphere-video-text p {
  margin: 0 0 .35rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 1.8vw, 1.5rem);
  font-weight: 400;
  color: rgba(255,254,250,.9);
  line-height: 1.35;
  text-shadow: 0 4px 16px rgba(0,0,0,.5);
}

.atmosphere-video-text small {
  display: block;
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,254,250,.45);
}

.atmosphere-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 2;
  width: 52px;
  height: 52px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255,254,250,.35);
  border-radius: 50%;
  background: rgba(255,254,250,.12);
  backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: opacity var(--ui-duration-fast) var(--ui-ease), background var(--ui-duration-fast) var(--ui-ease);
  pointer-events: auto;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.atmosphere-video-play:focus-visible {
  opacity: 1;
  outline: 2px solid rgba(255, 254, 250, .7);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {
  .atmosphere-video-block[data-playing] .atmosphere-video-play {
    opacity: 0;
    transform: translate(-50%, -50%);
  }
}

@media (hover: none), (pointer: coarse) {
  .atmosphere-video-block[data-playing] .atmosphere-video-play {
    opacity: .72;
  }
}

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
  .atmosphere-video-block:hover .atmosphere-video-play {
    opacity: 0;
    transform: translate(-50%, -50%);
  }
}

/* ── Enhanced Lightbox (progress bar + crossfade) ── */
.gallery-dialog-progress {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(255,254,250,.12);
  z-index: 3;
  pointer-events: none;
}

.gallery-dialog-progress-bar {
  height: 100%;
  width: 100%;
  background: rgba(255,254,250,.7);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform .32s cubic-bezier(.22, 1, .36, 1);
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .gallery-dialog-progress-bar {
    transition: none;
  }
}

.gallery-dialog img {
  transition: opacity .28s ease;
}

.gallery-dialog img.is-fading {
  opacity: 0;
}

.gallery-dialog-count-styled {
  font-variant-numeric: tabular-nums;
  letter-spacing: .04em;
}

/* ── Tour section padding override (no redundant section-block padding) ── */
.gallery-page .tour-section {
  padding: 0;
}

/* ── CTA after tour ── */
.tour-cta-section {
  padding: clamp(4rem, 8vw, 8rem) 0;
  background: linear-gradient(180deg, var(--paper), #f4efe8);
  border-top: 1px solid var(--line);
  text-align: center;
}

.tour-cta-section h2 {
  margin: .5rem 0 1rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 3.5vw, 3.2rem);
  font-weight: 400;
  line-height: 1.1;
}

.tour-cta-section p {
  max-width: 500px;
  margin: 0 auto 2rem;
  color: var(--muted);
  line-height: 1.6;
}

/* ── Tour Chapter Navigation (chapter pill nav) ── */
.tour-chapter-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  padding: clamp(1.4rem, 2.8vw, 2.2rem) 0 clamp(1.1rem, 1.8vw, 1.6rem);
  border-bottom: 1px solid var(--line);
}

.tour-nav-pill {
  display: inline-flex;
  align-items: center;
  padding: .42rem .92rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 640;
  color: var(--muted);
  text-decoration: none;
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: color .22s ease, border-color .22s ease, background .22s ease;
  white-space: nowrap;
}

.tour-nav-pill:hover,
.tour-nav-pill.is-active {
  color: var(--sea-dark);
  border-color: rgba(23, 74, 82, .38);
  background: rgba(23, 74, 82, .05);
}

.tour-nav-pill:focus-visible {
  outline: 2px solid var(--sea);
  outline-offset: 2px;
}

/* ── Tour Interstitial Quote ── */
.tour-interstitial {
  padding: clamp(2.2rem, 4.5vw, 4rem) 0;
  text-align: center;
}

.tour-interstitial-rule {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  margin-bottom: 1.4rem;
}

.tour-interstitial-rule::before,
.tour-interstitial-rule::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(23, 74, 82, .11), transparent);
}

.tour-interstitial-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(23, 74, 82, .2);
  flex: 0 0 auto;
}

.tour-interstitial-quote {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.15rem, 2.4vw, 1.9rem);
  font-weight: 400;
  font-style: italic;
  color: var(--sea-dark);
  line-height: 1.45;
  max-width: 620px;
  margin: 0 auto;
  opacity: .7;
}

/* ── Tour hero photo count ── */
.tour-hero-content .tour-hero-count {
  font-size: .7rem;
  font-weight: 640;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255, 254, 250, .38);
  margin: 0 0 2.2rem;
  line-height: 1;
  max-width: none;
}

/* ── Responsive: Tablet ── */
@media (max-width: 900px) {
  .tour-chapter-strip.strip-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .atmosphere-video-row {
    grid-template-columns: 1fr 1fr;
    gap: .65rem;
  }
  .atmosphere-video-row .atmosphere-video-block:last-child {
    grid-column: 1 / -1;
    max-width: 420px;
    margin-inline: auto;
  }
  .atmosphere-video-row .atmosphere-video-block:last-child::after {
    padding-top: 56.25%;
  }
  .atmosphere-video-row .atmosphere-video-block:last-child video {
    aspect-ratio: 16 / 9;
  }
}

/* ── Responsive: Mobile ── */
@media (max-width: 700px) {
  .tour-hero {
    height: 88vh;
    height: 88svh;
    height: 88dvh;
    min-height: 480px;
    max-height: none;
  }
  .tour-hero-content h1 {
    font-size: clamp(2.2rem, 9.5vw, 3.2rem);
  }
  .tour-chapter {
    padding-top: clamp(2.8rem, 7vw, 5rem);
  }
  .tour-chapter + .tour-chapter {
    padding-top: clamp(3.5rem, 8vw, 6rem);
  }
  .tour-chapter-label {
    margin-bottom: 1.2rem;
  }
  .tour-chapter-lead {
    aspect-ratio: 4 / 3;
    width: calc(100% + 1.1rem);
    margin-inline: -.55rem;
  }
  .tour-chapter-lead-wide {
    aspect-ratio: 4 / 3;
  }
  .tour-chapter-lead-portrait {
    max-width: calc(100% + 1.1rem);
    margin-inline: -.55rem;
    aspect-ratio: 3 / 4;
  }
  .tour-chapter-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
  }
  .tour-chapter-strip.strip-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 100%;
  }
  .tour-chapter-strip.strip-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tour-chapter-lead-caption p {
    font-size: clamp(1rem, 4.5vw, 1.4rem);
    opacity: 1;
    transform: translateY(0);
  }
  .tour-chapter-nav {
    gap: .32rem;
    padding-top: 1rem;
    padding-bottom: .9rem;
  }
  .tour-nav-pill {
    font-size: .68rem;
    padding: .36rem .68rem;
  }
  .tour-interstitial {
    padding: 1.6rem 0;
  }
  .tour-interstitial-quote {
    font-size: clamp(1rem, 4.5vw, 1.3rem);
  }
  .tour-hero-content .tour-hero-count {
    margin-bottom: 1.6rem;
  }
  .gallery-to-atmosphere {
    padding: clamp(2.5rem, 6vw, 4rem) 1rem clamp(2rem, 4vw, 3rem);
  }
  .gallery-page .atmosphere-cinema {
    padding-top: clamp(2rem, 4vw, 3rem);
  }
  .gallery-page .tour-cta-section {
    padding: clamp(2rem, 4vw, 3rem) 0;
  }
  .atmosphere-video-row {
    grid-template-columns: 1fr;
    gap: .65rem;
  }
  /* MOB-028: do not use max-width:100% here — % max-width + % padding-top
     collapses the last block to 0×0 on single-column mobile grids. */
  .atmosphere-video-row .atmosphere-video-block:last-child {
    max-width: none;
    width: auto;
    margin-inline: 0;
    justify-self: stretch;
    grid-column: auto;
  }
  .atmosphere-video-row .atmosphere-video-block:last-child::after {
    padding-top: 177.78%;
  }
  .atmosphere-video-row .atmosphere-video-block:last-child video {
    aspect-ratio: auto;
  }
  .atmosphere-video-block .atmosphere-video-play {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  .social-link,
  .social-link::before,
  .social-link .social-icon svg,
  .gallery-link,
  .gallery-link::after,
  .gallery-link img,
  .gallery-cover-card img,
  .gallery-item figcaption span,
  .gallery-page .gallery-item figcaption::before,
  .gallery-page .gallery-item figcaption span::after,
  .footer-cta,
  .button,
  .nav a,
  .lang-link,
  .messenger-button,
  .calendar-nav,
  .availability-day,
  .segmented button,
  .faq-compact details,
  .faq-compact summary::after,
  .map-panel-link,
  .home-page .story-card img,
  .home-photo-main img,
  .home-photo-main video,
  .home-photo-secondary img,
  .home-photo-secondary video,
  .tour-chapter-lead img,
  .tour-strip-item img,
  .atmosphere-video-block video,
  .atmosphere-video-play,
  .property-tub-media__video,
  .property-tub-media__toggle,
  .hero-scroll-hint svg,
  .tour-hero-scroll svg,
  .gallery-dialog img,
  .gallery-dialog-progress-bar,
  input,
  select,
  textarea {
    transition: none !important;
  }


  .faq-compact details[open] p {
    animation: none !important;
  }

  .social-link:hover,
  .social-link:focus-visible,
  .gallery-link:hover,
  .gallery-link:focus-visible,
  .gallery-link:hover img,
  .gallery-link:focus-visible img,
  .gallery-cover-card:hover img,
  .gallery-cover-card:focus-visible img,
  .footer-cta:hover,
  .footer-cta:focus-visible,
  .map-panel-link:hover,
  .map-panel-link:focus-visible,
  .button:hover,
  .button:active,
  .home-page .story-card:hover img,
  .home-photo-main:hover img,
  .home-photo-main:hover video,
  .home-photo-secondary:hover img,
  .home-photo-secondary:hover video,
  .tour-chapter-lead:hover img,
  .tour-strip-item:hover img,
  .atmosphere-video-block:hover video,
  .calendar-nav:hover,
  .availability-day:hover,
  .messenger-button:hover {
    transform: none !important;
  }

}

@media (max-width: 1020px) {
  .header-inner { flex-wrap: wrap; padding: .6rem 0; }
  .nav { order: 3; flex-basis: 100%; }
  .two-column, .split-feature, .image-copy-grid, .location-grid, .booking-layout { grid-template-columns: 1fr; }
  .image-copy-grid.reverse img,
  .image-copy-grid.reverse .property-tub-media { order: 0; }
  .amenity-grid, .note-grid, .pricing-grid, .pricing-details, .review-grid, .video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .policy-cancellation-grid, .policy-trust-grid { grid-template-columns: 1fr; }
  .property-page .compare-grid { grid-template-columns: 1fr; }
  .footer-head {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.2rem, 2.4vw, 1.75rem);
  }
  .footer-social { grid-column: 1 / -1; }
  .story-grid, .rate-strip { grid-template-columns: 1fr; }
  .review-action { align-items: flex-start; flex-direction: column; }
  .review-action-links { align-items: flex-start; }
  .reviews-quotes-grid { grid-template-columns: 1fr; }
  .reviews-trust-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1200px) {
  .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  html,
  body {
    max-width: 100%;
  }
  .container { width: min(100% - 1.1rem, var(--container)); }
  .header-inner {
    min-height: auto;
    padding: .45rem 0;
    gap: .38rem .5rem;
  }
  .brand { min-width: 0; }
  .header-actions {
    width: auto;
    margin-left: auto;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: .35rem;
  }
  .header-actions .button {
    width: auto;
    min-height: 44px;
    padding: .5rem .72rem;
    font-size: .84rem;
  }
  .header-phone {
    padding: .5rem;
  }
  .header-phone-text {
    display: none;
  }
  .lang-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: .45rem .5rem;
    font-size: .88rem;
  }
  .button-label-full { display: none; }
  .button-label-short { display: inline; }
  .hero {
    min-height: 82vh;
    min-height: 82svh;
    min-height: 82dvh;
  }
  .hero-content { padding-bottom: 2rem; }
  .hero h1 { font-size: clamp(1.9rem, 8vw, 2.65rem); }
  .hero-brand-mark { font-size: .72rem; letter-spacing: .3em; }
  .hero-brand-accent { letter-spacing: .22em; }
  .hero-brand-sea {
    font-size: .94rem;
    letter-spacing: .24em;
  }
  .hero-brand-city {
    font-size: .6rem;
    letter-spacing: .24em;
  }
  .hero-brand-rule { width: .76rem; }
  .footer-eyebrow-brand { letter-spacing: .1em; }
  .hero-promise {
    max-width: 100%;
  }
  .hero-promise-text {
    font-size: .8rem;
    line-height: 1.45;
  }
  .hero-highlights {
    flex-direction: column;
    align-items: flex-start;
    gap: .42rem;
    margin-top: .95rem;
  }
  .faq-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .faq-toolbar .faq-jump-nav {
    justify-content: center;
  }
  .faq-search--inline {
    max-width: none;
    margin-left: 0;
  }
  .hero-search-fields {
    grid-template-columns: 1fr;
  }
  .hero-search-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .hero-search-actions .button {
    width: 100%;
    justify-content: center;
  }
  .nav-toggle {
    display: inline-flex;
  }
  /* Mobile-only: X icon + light toggle on over-hero headers (desktop cascade unchanged). */
  body.nav-open .nav-toggle__icon { background: transparent; }
  body.nav-open .nav-toggle__icon::before { transform: translateY(6px) rotate(45deg); }
  body.nav-open .nav-toggle__icon::after { transform: translateY(-6px) rotate(-45deg); }
  body.hero-page .site-header:not(.site-header--solid) .nav-toggle {
    color: rgba(255, 254, 250, .94);
  }
  /* MOB-P0-001: one stable header row — logo + actions + hamburger. */
  .site-header .header-inner {
    position: relative;
    flex-wrap: nowrap;
    align-items: center;
  }
  .site-header .brand {
    order: 1;
    flex: 0 1 auto;
    min-width: 0;
  }
  .site-header .header-actions {
    order: 2;
    margin-left: auto;
    flex: 0 0 auto;
  }
  .site-header .nav-toggle {
    order: 3;
    margin-left: .15rem;
    flex: 0 0 44px;
  }
  /* Keep brand slot reserved so solid/over-hero scroll does not move the toggle. */
  body.hero-page .site-header--over-hero:not(.site-header--solid) .brand {
    width: auto;
    min-width: 2.5rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .site-header .nav-toggle {
    position: relative;
    z-index: 2;
  }
  .nav-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 65;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(19, 40, 43, .4);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  body.nav-open .nav-backdrop {
    display: block;
    animation: sealine-nav-backdrop-in .22s var(--ui-ease) both;
  }
  .site-header .nav {
    display: none;
    order: 4;
    flex: 0 0 auto;
    flex-basis: auto;
    width: auto;
    position: absolute;
    top: calc(100% + .45rem);
    left: .65rem;
    right: .65rem;
    z-index: 2;
    flex-direction: column;
    align-items: stretch;
    gap: .08rem;
    padding: 1rem .85rem 1.05rem;
    border: 1px solid rgba(19, 40, 43, .09);
    border-radius: 12px;
    background:
      linear-gradient(180deg, rgba(255, 254, 250, .99) 0%, rgba(248, 246, 241, .97) 100%);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, .75) inset,
      0 22px 52px rgba(19, 40, 43, .14);
    overflow-x: hidden;
    max-height: min(78vh, 36rem);
    max-height: min(78dvh, 36rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    mask-image: none !important;
    -webkit-mask-image: none !important;
  }
  /* Page links only — CTA is a separate footer block inside the drawer. */
  .site-header .nav > a {
    color: var(--ink);
    padding: .88rem .95rem;
    min-height: 48px;
    display: flex;
    align-items: center;
    white-space: normal;
    font-size: 1.05rem;
    font-weight: 520;
    letter-spacing: -.012em;
    line-height: 1.25;
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
    transition:
      color .18s var(--ui-ease),
      background .18s var(--ui-ease),
      box-shadow .18s var(--ui-ease);
  }
  .site-header .nav > a:hover {
    color: var(--sea-dark);
    background: rgba(23, 74, 82, .05);
  }
  .site-header .nav > a[aria-current="page"] {
    color: var(--sea-dark);
    background: rgba(45, 117, 128, .07);
    box-shadow: inset 2px 0 0 var(--sea);
    font-weight: 620;
  }
  .site-header .nav > a:focus-visible {
    color: var(--sea-dark);
    background: var(--soft);
    outline: 2px solid rgba(45, 117, 128, .35);
    outline-offset: 1px;
  }
  .nav-drawer-cta {
    display: block;
    margin-top: .55rem;
    padding-top: .95rem;
    border-top: 1px solid rgba(19, 40, 43, .1);
    position: relative;
  }
  /* Quiet horizon accent on the divider — abstract sea line, not decoration noise. */
  .nav-drawer-cta::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 50%;
    width: 2.75rem;
    height: 1px;
    transform: translateX(-50%);
    background: rgba(45, 117, 128, .42);
  }
  .nav-drawer-cta__link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    width: 100%;
    padding: .85rem 1rem;
    border-radius: 999px;
    background: var(--cta-fill);
    color: var(--cta-text);
    text-decoration: none;
    text-align: center;
    font-size: .95rem;
    font-weight: 620;
    letter-spacing: -.01em;
    box-shadow: none;
    transition: background .18s var(--ui-ease), color .18s var(--ui-ease);
  }
  .nav-drawer-cta__link:hover,
  .nav-drawer-cta__link:focus-visible {
    background: var(--cta-fill-hover);
    color: var(--cta-text);
  }
  .nav-drawer-cta__link:focus-visible {
    outline: 2px solid rgba(45, 117, 128, .4);
    outline-offset: 2px;
  }
  body.nav-open .site-header .nav {
    display: flex;
    animation: sealine-nav-drawer-in .22s cubic-bezier(.22, 1, .36, 1) both;
  }
  @keyframes sealine-nav-backdrop-in {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  @keyframes sealine-nav-drawer-in {
    from {
      opacity: 0;
      transform: translateY(-8px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    body.nav-open .nav-backdrop,
    body.nav-open .site-header .nav {
      animation: none;
    }
  }
  @media (max-height: 430px) and (orientation: landscape) {
    .site-header .nav {
      top: calc(100% + .3rem);
      left: .5rem;
      right: .5rem;
      padding: .7rem .65rem .8rem;
      max-height: min(82vh, 22rem);
      max-height: min(82dvh, 22rem);
      gap: 0;
    }
    .site-header .nav > a {
      min-height: 44px;
      padding: .62rem .8rem;
      font-size: .98rem;
    }
    .nav-drawer-cta {
      margin-top: .35rem;
      padding-top: .7rem;
    }
    .nav-drawer-cta__link {
      min-height: 44px;
      padding: .7rem .9rem;
    }
  }
  body.nav-open {
    overflow: hidden;
  }
  .hero-highlights li {
    padding: 0;
    font-size: .86rem;
    line-height: 1.35;
  }
  .hero-highlights li + li::before { display: none; }
  .hero-stats {
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
  }
  .hero-stats span {
    padding-left: 0;
    line-height: 1.3;
  }
  .hero-stats span::before { display: none; }
  .home-intro-layout { grid-template-columns: 1fr; }
  .home-stat-bar { grid-template-columns: repeat(2, 1fr); }
  .home-stat { border-right: none; border-bottom: 1px solid var(--line); }
  .home-stat:nth-child(odd) { border-right: 1px solid var(--line); }
  .home-stat:last-child { border-right: none; border-bottom: none; }
  .home-stat:nth-last-child(2):nth-child(odd) { border-bottom: none; }
  .home-page .story-card img { height: clamp(220px, 58vw, 330px); }
  .hero-scroll-hint { margin-top: 1.8rem; }
  .home-photo-grid { grid-template-columns: 1fr; }
  .home-photo-pair { height: auto; grid-template-rows: auto; grid-template-columns: 1fr 1fr; }
  .home-photo-main { height: clamp(260px, 68vw, 400px); }
  .home-photo-secondary { height: clamp(150px, 38vw, 220px); }
  .home-price-row { flex-direction: column; gap: .3rem; }
  .home-price-right { text-align: left; }
  .section-block { padding: 3rem 0; }
  .fact-grid, .amenity-grid, .note-grid, .pricing-grid, .pricing-details, .review-grid, .video-grid, .footer-grid, .form-grid, .faq-compact { grid-template-columns: 1fr; }
  .reviews-page .review-card { min-height: 0; }
  .reviews-trust-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reviews-page .reviews-trust-categories { grid-template-columns: minmax(0, 1fr); }
  .reviews-page .reviews-trust-categories-row--top { max-width: 100%; }
  .reviews-page .reviews-trust-categories-row--bottom { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .reviews-soft-cta-inner .button { width: 100%; justify-content: center; }
  .reviews-guest-photos,
  .reviews-guest-photos--row {
    grid-template-columns: 1fr;
    max-width: 24rem;
    margin-inline: auto;
  }
  .reviews-guest-photo--lead { min-height: clamp(260px, 68vw, 420px); }
  .booking-proof {
    width: 100%;
    border-radius: 18px;
    justify-content: flex-start;
  }
  .legal-content {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .legal-page-nav {
    position: static;
    display: flex;
    flex-wrap: nowrap;
    gap: .38rem;
    margin-bottom: 1rem;
    padding: .58rem 0;
    overflow-x: auto;
    border-top: 0;
    border-bottom: 1px solid rgba(19, 40, 43, .12);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .legal-page-nav::-webkit-scrollbar { display: none; }
  .legal-page-nav a {
    flex: 0 0 auto;
    min-height: 2.35rem;
    border: 1px solid rgba(19, 40, 43, .12);
    border-radius: 999px;
    padding: .42rem .68rem;
    white-space: nowrap;
  }
  .legal-list {
    padding: 1rem;
    border-radius: 6px;
  }
  .legal-card h2 {
    gap: .5rem;
    align-items: flex-start;
  }
  .legal-card h2::before {
    margin-top: .28rem;
  }
  .policy-trust-card,
  .policy-section-heading {
    grid-template-columns: 1fr;
  }
  .policy-trust-card,
  .policy-cancellation {
    padding: 1rem;
  }
  .policy-soft-icon {
    width: 38px;
    height: 38px;
  }
  .policy-cancel-card {
    min-height: 0;
  }
  .policy-trust-note {
    padding-inline: 0;
    text-align: left;
  }
  .footer-panel { padding-top: .62rem; }
  .footer-head {
    gap: .5rem;
    padding-bottom: .36rem;
    margin-bottom: .52rem;
  }
  .footer-motto { letter-spacing: .1em; }
  .footer-grid { gap: 1.35rem; }
  .footer-tagline,
  .footer-social-lead,
  .site-footer .footer-address {
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .footer-nav { grid-template-columns: 1fr; }
  .site-footer .footer-social .social-links {
    gap: .46rem;
  }
  .site-footer .footer-social .social-link {
    width: 2.65rem;
    height: 2.65rem;
    min-width: 0;
  }
  .footer-contact .footer-cta {
    display: flex;
    width: fit-content;
  }
  .atmosphere-grid video { aspect-ratio: 4 / 5; }
  .gallery-page .section-block[data-gallery-section] {
    padding-top: 1.15rem;
    overflow: hidden;
  }
  .gallery-page .gallery-heading {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-bottom: .9rem;
  }
  .gallery-page .gallery-heading h2 {
    max-width: 11.5em;
    font-size: 1.78rem;
    line-height: 1.08;
  }
  .gallery-page .gallery-heading p:not(.eyebrow) {
    max-width: 100%;
    margin-top: .55rem;
    overflow-wrap: break-word;
  }
  .gallery-cover {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    max-height: none;
    gap: .65rem;
  }
  .gallery-cover-main {
    grid-row: auto;
    aspect-ratio: 4 / 3;
  }
  .gallery-cover-card:not(.gallery-cover-main):not(.gallery-cover-more) {
    display: none;
  }
  .gallery-cover-more {
    aspect-ratio: 4 / 3;
    min-height: 0;
  }
  .gallery-cover-viewall {
    padding: .75rem .85rem;
  }

  .gallery-cover-viewall__line {
    white-space: normal;
    max-width: 11.5rem;
    line-height: 1.35;
  }
  .gallery-controls {
    align-items: flex-start;
    flex-direction: column;
    gap: .7rem;
    max-width: 100%;
  }
  .gallery-controls .segmented { max-width: 100%; }
  .gallery-actions-inline {
    width: 100%;
    justify-content: flex-start;
    margin-left: 0;
  }
  .gallery-actions-inline .gallery-more {
    width: 100%;
  }
  .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
  }
  .gallery-tour-heading {
    align-items: flex-start;
    margin-top: .25rem;
  }
  .gallery-tour-heading h3 {
    font-size: 1.35rem;
  }
  .gallery-tour-heading span {
    padding: .34rem .52rem;
    font-size: .74rem;
  }
  /*
   * Gallery captions: off the photo surface on mobile.
   * Photo first, compact caption in normal flow below — no pills/overlays.
   */
  .gallery-link {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .gallery-link::after,
  .gallery-page .gallery-link::after,
  .gallery-link:hover::after,
  .gallery-link:focus-visible::after,
  .gallery-page .gallery-link:hover::after,
  .gallery-page .gallery-link:focus-visible::after {
    content: none;
    display: none;
    opacity: 0;
  }
  .gallery-item figcaption,
  .gallery-page .gallery-item figcaption {
    position: static;
    inset: auto;
    display: block;
    z-index: auto;
    margin: .48rem .05rem 0;
    padding: 0;
    pointer-events: none;
  }
  .gallery-item figcaption::before,
  .gallery-page .gallery-item figcaption::before,
  .gallery-item figcaption span::after,
  .gallery-page .gallery-item figcaption span::after,
  .gallery-page .gallery-link figcaption span::after {
    content: none;
    display: none;
    opacity: 0;
  }
  .gallery-item figcaption span,
  .gallery-page .gallery-item figcaption span,
  .gallery-link figcaption span,
  .gallery-page .gallery-link figcaption span {
    display: block;
    max-width: none;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
    color: var(--muted);
    font-size: .8rem;
    font-weight: 520;
    letter-spacing: .01em;
    line-height: 1.4;
    opacity: 1;
    transform: none;
    filter: none;
  }
  .gallery-dialog { width: calc(100% - 1rem); max-width: 100%; }
  .gallery-dialog-frame {
    min-height: 100vh;
    min-height: 100dvh;
    padding: 3.4rem .55rem 1.2rem;
  }
  .gallery-dialog img {
    max-width: 100%;
    max-height: calc(100vh - 170px);
    max-height: calc(100dvh - 170px);
  }
  .gallery-dialog-close {
    top: max(.35rem, env(safe-area-inset-top, 0px));
    right: max(.35rem, env(safe-area-inset-right, 0px));
  }
  .gallery-dialog-prev { left: max(.35rem, env(safe-area-inset-left, 0px)); }
  .gallery-dialog-next { right: max(.35rem, env(safe-area-inset-right, 0px)); }
  .booking-shell { width: min(100% - 1.1rem, 960px); }
  .booking-page-heading { text-align: left; }
  .booking-step-heading {
    gap: .6rem;
  }
  .booking-step-heading > span {
    width: 30px;
    height: 30px;
    font-size: .82rem;
  }
  .booking-date-grid,
  .booking-minimal-form .form-grid,
  .booking-contact-grid,
  .guest-details-grid,
  .booking-tub-step .tub-fieldset,
  .tub-fieldset,
  .pet-fieldset,
  .children-fieldset,
  .messenger-actions { grid-template-columns: 1fr; }
  .tub-type-options { grid-template-columns: 1fr; }
  .page-cta--property__shell,
  .page-cta--location__shell,
  .page-cta--pricing__shell,
  .page-cta--reviews__shell {
    gap: 1rem;
  }

  .location-page .location-intro-hook__line {
    font-size: clamp(1.28rem, 5.8vw, 1.52rem);
    line-height: 1.34;
  }

  .location-page .location-nearby-grid {
    grid-template-columns: 1fr;
  }

  .location-page .location-map-title {
    white-space: normal;
    font-size: clamp(1.62rem, 7.2vw, 1.95rem);
    line-height: 1.22;
  }

  .location-page .location-walk-metric {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .location-page .location-walk-metric__label {
    text-align: center;
  }

  .page-cta h2 { max-width: none; }

  .page-cta-action { width: 100%; justify-content: center; }
  .brand-logo { width: 110px; }
  .nav {
    padding: .2rem 0;
    gap: .1rem;
    min-width: 0;
    max-width: 100%;
  }
  .nav a { font-size: .86rem; padding: .42rem .52rem; }
  .button { width: 100%; }
  .hero-actions .button { width: auto; }
  .availability-panel { padding: .85rem; }
  .availability-calendars { grid-template-columns: 1fr; }
  .availability-toolbar { grid-template-columns: 36px 1fr 36px; }
  .availability-day,
  .availability-day-empty { min-height: 42px; }
  .social-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: none;
    gap: .65rem;
  }
  .site-footer .footer-social .social-links {
    display: flex;
    flex-wrap: wrap;
    gap: .46rem;
  }
  .site-footer .footer-social .social-link:last-child {
    grid-column: auto;
    flex-direction: row;
  }
  .social-link {
    min-height: 58px;
    flex-direction: row;
    justify-content: flex-start;
    padding: .75rem .85rem;
  }
  .social-name {
    font-size: .85rem;
  }
  .section-heading h2 {
    font-size: clamp(1.95rem, 9.4vw, 2.75rem);
    overflow-wrap: break-word;
  }
  .section-heading p {
    overflow-wrap: anywhere;
  }
  .property-value-strip,
  .booking-score-strip {
    justify-content: flex-start;
    gap: .34rem .82rem;
  }
  .property-value-strip span,
  .booking-score-strip span {
    white-space: normal;
  }
  .booking-guest-selector {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .booking-stay-hint { text-align: left; }
  .sub-hero-lead {
    max-width: none;
  }
  .sub-hero { min-height: 360px; }
  .sub-hero-content { padding: 2.8rem 0 1.8rem; }
  .sub-hero h1 {
    max-width: 100%;
    font-size: clamp(2rem, 9.6vw, 2.72rem);
    line-height: 1.12;
    letter-spacing: -.014em;
    overflow-wrap: break-word;
  }
  .footer-legal {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .footer-legal-links {
    display: grid;
    grid-template-columns: 1fr;
    justify-content: flex-start;
    justify-items: start;
    gap: .2rem;
  }
  .footer-legal-links a {
    min-height: 2rem;
    display: inline-flex;
    align-items: center;
  }
}

/* Hide sticky mobile bars only when both width and height leave room for
   desktop chrome. Phone landscape is often ≥701px wide but ~360–430px tall. */
@media (min-width: 701px) and (min-height: 540px) {
  .booking-mobile-bar {
    display: none !important;
  }
  body.has-booking-mobile-bar {
    padding-bottom: 0;
  }
  .home-mobile-bar {
    display: none !important;
  }
  body.has-home-mobile-bar {
    padding-bottom: 0;
  }
}

@media (max-width: 400px) {
  .booking-form { padding-inline: .72rem; }
  .availability-panel {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: .45rem;
    border-inline: 0;
    border-radius: 0;
  }
  .availability-weekdays,
  .availability-days {
    gap: .2rem;
  }
  .availability-day,
  .availability-day-empty {
    min-height: 44px;
  }
  .booking-guest-selector {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 340px) {
  .gallery-grid { grid-template-columns: 1fr; }
  .social-links { grid-template-columns: 1fr; }
  .site-footer .footer-social .social-links { display: flex; }
  .site-footer .footer-social .social-link:last-child { grid-column: auto; }
}

/* ═══════════════════════════════════════════════════════════
   HERO SHELL — Unified home + inner page system
═══════════════════════════════════════════════════════════ */

.page-hero {
  position: relative;
  display: grid;
  overflow: hidden;
  background: var(--ink);
}

/* ── Hero photo load-in (home + inner + legal) ── */
.page-hero--home .hero-image,
.page-hero--inner .page-hero__media,
.page-hero--inner .sub-hero-img,
.sub-hero.legal-hero > img {
  transform-origin: center center;
  opacity: 1;
}

.page-hero__media,
.page-hero .hero-image,
.page-hero .sub-hero-img,
.page-hero img.sub-hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-hero__overlay,
.page-hero .hero-overlay,
.page-hero .sub-hero-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.page-hero__container,
.page-hero .hero-center,
.page-hero .sub-hero-content {
  position: relative;
  z-index: 1;
}

.page-hero--home {
  min-height: min(780px, 88vh);
  min-height: min(780px, 88svh);
}

.page-hero--inner,
body.hero-page .sub-hero.page-hero--inner,
body.hero-page .sub-hero {
  min-height: clamp(440px, 58vh, 640px);
  min-height: clamp(440px, 58svh, 640px);
  grid-template-areas: "hero-stack";
  align-items: stretch;
}

.page-hero--inner .page-hero__media-picture,
.page-hero--inner .page-hero__media,
.page-hero--inner .sub-hero-img,
.page-hero--inner .sub-hero-overlay,
.page-hero--inner .hero-header-scrim,
.page-hero--inner .page-hero__overlay,
.page-hero--inner .inner-hero__brand-zone,
.page-hero--inner .sub-hero-content,
.page-hero--inner .page-hero__container {
  grid-area: hero-stack;
}

.page-hero--inner .sub-hero-content,
.page-hero--inner .page-hero__container {
  align-self: end;
  justify-self: stretch;
}

.page-hero--inner .page-hero__content {
  max-width: min(100%, 1240px);
}

.page-hero__overlay,
.page-hero--inner .sub-hero-overlay,
body.hero-page .sub-hero-overlay {
  background:
    linear-gradient(
      180deg,
      rgba(8, 24, 31, .28) 0%,
      rgba(8, 24, 31, .08) 42%,
      rgba(8, 24, 31, .42) 100%
    );
}

body.hero-page .hero-header-scrim {
  z-index: 0;
  align-self: start;
  justify-self: stretch;
  width: 100%;
  height: calc(clamp(5.25rem, 13vh, 7.75rem) + env(safe-area-inset-top, 0px));
  background:
    linear-gradient(180deg, rgba(16, 38, 41, .34) 0%, rgba(16, 38, 41, .15) 40%, rgba(16, 38, 41, .05) 68%, transparent 100%);
  pointer-events: none;
}

body.hero-page .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: transparent;
  border-bottom: 1px solid transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition:
    background var(--ui-duration) var(--ui-ease),
    border-color var(--ui-duration) var(--ui-ease),
    backdrop-filter var(--ui-duration) var(--ui-ease);
}

/* MOB-P0-001: must win over body.hero-page .site-header { z-index:50 }.
   Backdrop is on body (z-index 65); header+drawer stay above it. */
@media (max-width: 700px) {
  .site-header,
  body.hero-page .site-header,
  body.home-page .site-header {
    z-index: 70;
  }
  body.nav-open .site-header,
  body.nav-open.hero-page .site-header,
  body.nav-open.home-page .site-header {
    z-index: 70;
  }
}

body.hero-page .site-header:not(.site-header--solid)::before {
  content: none;
}

body.hero-page .site-header--solid {
  background: rgba(255, 254, 250, .94);
  border-bottom-color: var(--line);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

body.hero-page .site-header:not(.site-header--solid) .nav a,
body.hero-page .site-header:not(.site-header--solid) .lang-link,
body.hero-page .site-header:not(.site-header--solid) .header-phone {
  color: rgba(255, 254, 250, .9);
}

body.hero-page .site-header:not(.site-header--solid) .nav a:hover,
body.hero-page .site-header:not(.site-header--solid) .lang-link:hover,
body.hero-page .site-header:not(.site-header--solid) .header-phone:hover {
  color: rgba(255, 254, 250, .98);
  background: transparent;
}

body.hero-page .site-header:not(.site-header--solid) .nav a[aria-current="page"] {
  color: rgba(255, 254, 250, .98);
  background: transparent;
  box-shadow: inset 0 -2px 0 rgba(241, 216, 188, .68);
  border-radius: 0;
}

body.hero-page .site-header--solid .nav a,
body.hero-page .site-header--solid .lang-link,
body.hero-page .site-header--solid .header-phone {
  color: var(--muted);
}

body.hero-page .site-header--solid .nav a:hover,
body.hero-page .site-header--solid .nav a[aria-current="page"],
body.hero-page .site-header--solid .lang-link:hover,
body.hero-page .site-header--solid .header-phone:hover {
  color: var(--ink);
  background: rgba(23, 74, 82, .07);
}

body.hero-page .site-header--solid .nav a[aria-current="page"] {
  box-shadow: none;
}

/*
 * MOB-P0-001: over-hero nav links are intentionally light on the transparent
 * header. The mobile drawer has a cream panel — without this override the
 * open menu is a white square with invisible (white-on-white) labels.
 */
@media (max-width: 700px) {
  body.nav-open .site-header .nav > a,
  body.nav-open.home-page .site-header:not(.site-header--solid) .nav > a,
  body.nav-open.hero-page .site-header:not(.site-header--solid) .nav > a,
  body.nav-open.home-page .site-header:not(.site-header--solid) .nav > a:hover,
  body.nav-open.hero-page .site-header:not(.site-header--solid) .nav > a:hover {
    color: var(--ink);
    background: transparent;
    box-shadow: none;
    border-radius: 8px;
    opacity: 1;
    visibility: visible;
  }

  body.nav-open .site-header .nav > a[aria-current="page"],
  body.nav-open.home-page .site-header:not(.site-header--solid) .nav > a[aria-current="page"],
  body.nav-open.hero-page .site-header:not(.site-header--solid) .nav > a[aria-current="page"] {
    color: var(--sea-dark);
    background: rgba(45, 117, 128, .07);
    box-shadow: inset 2px 0 0 var(--sea);
    font-weight: 620;
  }

  body.nav-open .site-header .nav > a:hover,
  body.nav-open .site-header .nav > a:focus-visible {
    color: var(--sea-dark);
    background: rgba(23, 74, 82, .05);
  }
}

body.hero-page .sub-hero-content {
  padding:
    calc(4.8rem + env(safe-area-inset-top, 0px))
    0
    clamp(2.4rem, 4.5vw, 3.2rem);
}

body.hero-page .sub-hero h1 {
  max-width: min(18ch, 92%);
  font-size: clamp(2rem, 4vw, 3.75rem);
  line-height: 1.08;
  letter-spacing: -.018em;
}

body.hero-page .sub-hero-content .eyebrow {
  margin-bottom: .85rem;
}

body.hero-page .sub-hero + .section-block {
  margin-top: 0;
  padding-top: clamp(2.5rem, 5vw, 4rem);
  box-shadow: inset 0 1px 0 rgba(19, 40, 43, .05);
}

body.hero-page.booking-page .page-hero--inner .booking-page-heading {
  max-width: min(620px, 100%);
  margin-inline: 0;
  text-align: left;
}

body.hero-page.booking-page .page-hero--inner .booking-page-heading h1 {
  color: rgba(255, 254, 250, .98);
  font-size: clamp(2rem, 4vw, 3.75rem);
  line-height: 1.08;
  text-shadow: 0 14px 38px rgba(0, 0, 0, .3);
}

body.hero-page.booking-page .page-hero--inner .booking-page-heading p:not(.eyebrow) {
  color: rgba(255, 254, 250, .84);
  margin-inline: 0;
  text-shadow: 0 8px 24px rgba(0, 0, 0, .22);
}

.page-hero__media--living { object-position: center 42%; }
.page-hero__media--gallery,
.sub-hero-img--sea { object-position: center 48%; }
.page-hero__media--location { object-position: center 48%; }
.page-hero__media--reviews { object-position: center 40%; }
.page-hero__media--pricing,
.sub-hero-img--upper { object-position: center 38%; }
.page-hero__media--faq { object-position: center 45%; }
.page-hero__media--booking { object-position: center 48%; }

@media (max-width: 1024px) {
  .page-hero--inner,
  body.hero-page .sub-hero {
    min-height: clamp(430px, 58vh, 600px);
    min-height: clamp(430px, 58svh, 600px);
  }

  .page-hero__media--living { object-position: center 44%; }
  .page-hero__media--gallery,
  .sub-hero-img--sea { object-position: center 50%; }
  .page-hero__media--location { object-position: center 50%; }
  .page-hero__media--reviews { object-position: center 42%; }
  .page-hero__media--pricing,
  .sub-hero-img--upper { object-position: center 40%; }
  .page-hero__media--faq { object-position: center 47%; }
  .page-hero__media--booking { object-position: center 52%; }
}

@media (max-width: 700px) {
  body.hero-page .hero-header-scrim {
    height: calc(clamp(4.75rem, 11vh, 6.5rem) + env(safe-area-inset-top, 0px));
    background:
      linear-gradient(180deg, rgba(16, 38, 41, .36) 0%, rgba(16, 38, 41, .16) 44%, rgba(16, 38, 41, .05) 70%, transparent 100%);
  }

  .page-hero--inner,
  body.hero-page .sub-hero {
    min-height: clamp(420px, 62vh, 560px);
    min-height: clamp(420px, 62svh, 560px);
  }

  body.hero-page .sub-hero-content {
    padding:
      calc(4.2rem + env(safe-area-inset-top, 0px))
      0
      clamp(2rem, 5vw, 2.6rem);
  }

  body.hero-page .sub-hero h1 {
    max-width: 100%;
    font-size: clamp(2rem, 9.2vw, 2.85rem);
    line-height: 1.1;
  }

  .page-hero__media--living { object-position: center 48%; }
  .page-hero__media--gallery,
  .sub-hero-img--sea { object-position: center 52%; }
  .page-hero__media--location { object-position: center 52%; }
  .page-hero__media--reviews { object-position: center 46%; }
  .page-hero__media--pricing,
  .sub-hero-img--upper { object-position: center 44%; }
  .page-hero__media--faq { object-position: center 50%; }
  .page-hero__media--booking { object-position: center 56%; }
}

/* ═══════════════════════════════════════════════════════════
   INNER HERO — Logo visibility + responsive media quality
═══════════════════════════════════════════════════════════ */

.page-hero__media-picture {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  grid-area: hero-stack;
  z-index: 0;
}

.page-hero__media-picture .page-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--hero-focus-x, 50%) var(--hero-focus-y, 50%);
  filter: none;
}

body.hero-page .site-header--over-hero:not(.site-header--solid) .brand {
  opacity: 0;
  visibility: hidden;
  width: 0;
  min-width: 0;
  overflow: hidden;
  pointer-events: none; /* MOB-P0-001: width:0 overridden ≤700px so toggle does not jump */
  transition:
    opacity var(--ui-duration) var(--ui-ease),
    visibility var(--ui-duration) var(--ui-ease);
}

body.hero-page .site-header--solid .brand {
  opacity: 1;
  visibility: visible;
  width: auto;
}

.brand-logo-picture,
.brand-logo-picture .brand-logo {
  display: block;
  width: clamp(108px, 10vw, 132px);
  height: auto;
  transform: none;
  filter: none;
}

.page-hero--inner .inner-hero__brand-zone,
.page-hero--inner .page-hero__container {
  grid-area: hero-stack;
  position: relative;
  z-index: 3;
}

.page-hero--inner .inner-hero__brand-zone {
  align-self: start;
  justify-self: stretch;
  padding:
    calc(4.9rem + env(safe-area-inset-top, 0px))
    max(1rem, calc((100% - min(100% - 2rem, 1240px)) / 2 + 1rem))
    0;
  pointer-events: none;
}

.inner-hero__logo-wrap {
  position: relative;
  z-index: 3;
  display: block;
  line-height: 0;
  flex-shrink: 0;
  background: transparent;
  width: clamp(240px, 22vw, 360px);
  max-width: min(360px, 80vw);
  pointer-events: none;
}

.page-hero--inner[data-logo-position="top-left"] .inner-hero__logo-wrap {
  margin-left: 0;
  margin-right: auto;
}

.page-hero--inner[data-logo-position="top-center"] .inner-hero__logo-wrap {
  margin-inline: auto;
}

.page-hero--inner[data-logo-position="top-right"] .inner-hero__logo-wrap {
  margin-inline: 0 0 0 auto;
}

.inner-hero__logo-picture,
.inner-hero__logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  opacity: 1;
  visibility: visible;
  filter: none;
  mix-blend-mode: normal;
  background: transparent;
  transform: none;
}

body.hero-page .hero-header-scrim {
  z-index: 2;
  background:
    linear-gradient(
      180deg,
      rgba(5, 19, 27, .42) 0%,
      rgba(5, 19, 27, .18) 28%,
      rgba(5, 19, 27, .05) 55%,
      transparent 100%
    );
}

.page-hero--inner .page-hero__overlay,
.page-hero--inner .sub-hero-overlay {
  z-index: 1;
}

.page-hero--inner[data-overlay-strength="light"] .page-hero__overlay,
.page-hero--inner[data-overlay-strength="light"] .sub-hero-overlay {
  background:
    linear-gradient(
      180deg,
      rgba(8, 24, 31, .22) 0%,
      rgba(8, 24, 31, .06) 42%,
      rgba(8, 24, 31, .34) 100%
    );
}

.page-hero--inner[data-overlay-strength="medium"] .page-hero__overlay,
.page-hero--inner[data-overlay-strength="medium"] .sub-hero-overlay {
  background:
    linear-gradient(
      180deg,
      rgba(5, 19, 27, .4) 0%,
      rgba(5, 19, 27, .12) 40%,
      rgba(5, 19, 27, .42) 100%
    );
}

.page-hero--inner[data-overlay-strength="strong"] .page-hero__overlay,
.page-hero--inner[data-overlay-strength="strong"] .sub-hero-overlay {
  background:
    linear-gradient(
      180deg,
      rgba(5, 19, 27, .48) 0%,
      rgba(5, 19, 27, .14) 38%,
      rgba(5, 19, 27, .44) 100%
    );
}

@media (max-width: 700px) {
  .inner-hero__logo-wrap {
    width: clamp(220px, 70vw, 310px);
    max-width: min(310px, 100%);
  }

  .page-hero--inner .inner-hero__brand-zone {
    padding:
      calc(4.4rem + env(safe-area-inset-top, 0px))
      max(.85rem, calc((100% - min(100% - 1.1rem, 1240px)) / 2 + .85rem))
      0;
  }
}

/* Booking checkout v2 */

.booking-checkout-page {
  min-height: 100vh;
  background:
    linear-gradient(180deg, rgba(248, 246, 241, .86), var(--paper) 34%, rgba(248, 246, 241, .72));
}

.booking-checkout-header {
  position: sticky;
  top: 0;
  z-index: 45;
  padding-top: env(safe-area-inset-top, 0px);
  border-bottom: 1px solid rgba(19, 40, 43, .09);
  background: rgba(255, 254, 250, .92);
  backdrop-filter: blur(16px);
}

.booking-checkout-header__inner {
  width: min(100% - 2rem, 1220px);
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-inline: auto;
}

.booking-checkout-brand {
  display: inline-flex;
  align-items: center;
  width: 96px;
  text-decoration: none;
}

.booking-checkout-brand img {
  width: 100%;
  height: auto;
}

.booking-checkout-links {
  display: inline-flex;
  align-items: center;
  gap: .85rem;
  color: rgba(19, 40, 43, .68);
  font-size: .9rem;
  font-weight: 650;
}

.booking-checkout-links a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .45rem .7rem;
  text-decoration: none;
}

.booking-checkout-links a:hover,
.booking-checkout-links a:focus-visible {
  background: rgba(23, 74, 82, .06);
  color: var(--sea-dark);
  outline: 0;
}

.booking-checkout-main {
  width: min(100% - 2rem, 1220px);
  display: grid;
  gap: 1.15rem;
  margin-inline: auto;
  padding: 2.1rem 0 2.8rem;
}

.booking-checkout-intro {
  max-width: 720px;
  display: grid;
  gap: .55rem;
}

.booking-checkout-intro h1 {
  margin: 0;
  max-width: 660px;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.05;
}

.booking-checkout-intro p:not(.eyebrow) {
  margin: 0;
  max-width: 620px;
  color: rgba(19, 40, 43, .62);
  font-size: 1rem;
  line-height: 1.55;
}

.booking-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
  padding: .35rem;
  border: 1px solid rgba(19, 40, 43, .09);
  border-radius: 999px;
  background: rgba(255, 255, 255, .58);
}

.booking-progress button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(19, 40, 43, .52);
  cursor: pointer;
  font: inherit;
  font-size: .9rem;
  font-weight: 720;
}

.booking-progress button:disabled {
  cursor: not-allowed;
  opacity: .48;
}

.booking-progress button span {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(23, 74, 82, .08);
  color: var(--sea-dark);
  font-size: .78rem;
}

.booking-progress button.is-active {
  background: var(--sea-dark);
  color: #fff;
}

.booking-progress button.is-active span {
  background: rgba(255, 255, 255, .18);
  color: #fff;
}

.booking-checkout-form {
  max-width: none;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.booking-checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.78fr) minmax(320px, .92fr);
  gap: 1.2rem;
  align-items: start;
}

.booking-flow {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.booking-mobile-step-label {
  display: none;
  margin: 0;
  color: var(--sea-dark);
  font-size: .86rem;
  font-weight: 760;
}

.booking-checkout-page .booking-step {
  gap: 1rem;
  padding: 1.2rem;
  border: 1px solid rgba(19, 40, 43, .09);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .8);
  box-shadow: 0 18px 38px rgba(19, 40, 43, .045);
}

.booking-checkout-page .booking-step[hidden] {
  display: none;
}

.booking-checkout-page .booking-step-heading {
  align-items: start;
}

.booking-checkout-page .booking-step-heading h2 {
  font-size: 1.75rem;
}

.booking-date-display-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.booking-date-display-row > div {
  display: grid;
  gap: .18rem;
  min-height: 66px;
  align-content: center;
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .6);
  padding: .75rem .85rem;
}

.booking-date-display-row span,
.booking-summary-items span,
.booking-payment-lines span {
  color: rgba(19, 40, 43, .52);
  font-size: .78rem;
  font-weight: 720;
}

.booking-date-display-row strong {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 720;
}

.booking-checkout-page .availability-panel {
  width: 100%;
  margin: 0;
  border-color: rgba(19, 40, 43, .09);
  background: rgba(255, 255, 255, .48);
  box-shadow: none;
}

.booking-checkout-page .availability-day {
  min-height: 44px;
}

.booking-checkout-page .availability-calendars:not(.is-dual-month) .availability-month h3 {
  display: none;
}

/* Booked look only — bare :disabled includes past/pending and painted “all closed”. */
.booking-checkout-page .availability-day.is-unavailable {
  text-decoration-line: line-through;
}

.booking-checkout-page .availability-day.is-range-blocked,
.booking-checkout-page .availability-day.is-past {
  text-decoration: none;
  text-decoration-line: none;
}

.booking-checkout-page .booking-stay-hint {
  margin: 0;
  text-align: left;
}

.booking-checkout-page .booking-summary {
  min-height: auto;
  margin: 0;
}

.booking-checkout-page .booking-guest-block {
  gap: .85rem;
  margin: 0;
  padding: 1rem;
  background: rgba(255, 255, 255, .5);
}

.booking-counter-grid {
  display: grid;
  gap: .55rem;
}

.booking-counter {
  min-height: 66px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  border: 1px solid rgba(19, 40, 43, .09);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .76);
  padding: .7rem .82rem;
}

.booking-counter strong {
  display: block;
  color: var(--ink);
  font-size: .96rem;
  font-weight: 760;
  line-height: 1.2;
}

.booking-counter span {
  display: block;
  color: rgba(19, 40, 43, .5);
  font-size: .82rem;
  line-height: 1.3;
}

.booking-counter-controls {
  display: inline-grid;
  grid-template-columns: 42px 34px 42px;
  align-items: center;
  gap: .28rem;
}

.booking-counter-controls button {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(19, 40, 43, .11);
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  color: var(--sea-dark);
  cursor: pointer;
  font: inherit;
  font-size: 1.12rem;
  font-weight: 760;
}

.booking-counter-controls button:disabled {
  cursor: not-allowed;
  opacity: .38;
}

.booking-counter-controls output {
  color: var(--ink);
  text-align: center;
  font-weight: 760;
}

.booking-guest-limit {
  min-height: 1.25rem;
  margin: -.25rem 0 0;
  color: #80614f;
  font-size: .84rem;
}

.booking-pet-toggle {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .55rem;
  margin-top: .1rem;
  font-weight: 500;
}

.booking-pet-toggle input {
  width: 1rem;
  height: 1rem;
  margin-top: .18rem;
  accent-color: var(--sea);
}

.booking-pet-toggle strong {
  display: block;
  color: var(--ink);
  font-size: .92rem;
  font-weight: 740;
}

.booking-pet-toggle small {
  display: block;
  color: rgba(19, 40, 43, .55);
  font-size: .82rem;
  font-weight: 520;
}

.booking-extra-card {
  display: grid;
  grid-template-columns: minmax(220px, .75fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: stretch;
}

.booking-extra-media {
  overflow: hidden;
  border-radius: var(--radius);
  background: rgba(23, 74, 82, .08);
}

.booking-extra-media video {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
}

.booking-extra-copy {
  display: grid;
  gap: .8rem;
  align-content: start;
}

.booking-extra-copy h3,
.booking-policy-summary h3,
.booking-result h2,
.booking-sticky-summary h2 {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  line-height: 1.12;
}

.booking-extra-copy h3 {
  font-size: 1.65rem;
}

.booking-extra-copy p {
  margin: 0;
  color: rgba(19, 40, 43, .62);
}

.booking-checkout-page .hottub-fieldset {
  display: grid;
  gap: .55rem;
  padding: 0;
  border: 0;
  background: transparent;
}

.booking-checkout-page .hottub-fieldset legend {
  padding: 0;
  color: var(--ink);
  font-size: .9rem;
  font-weight: 760;
}

.booking-checkout-page .hottub-options {
  grid-template-columns: 1fr;
  gap: .5rem;
}

.booking-checkout-page .hottub-option {
  min-height: 62px;
  padding: .72rem .82rem;
  background: rgba(255, 255, 255, .6);
}

.booking-extra-details {
  border-top: 1px solid rgba(19, 40, 43, .09);
  padding-top: .65rem;
}

.booking-extra-details summary {
  width: fit-content;
  color: var(--sea-dark);
  cursor: pointer;
  font-weight: 760;
}

.booking-step-actions {
  display: grid;
  gap: .45rem;
  justify-items: start;
  padding-top: .2rem;
}

.booking-step-actions p {
  margin: 0;
  color: rgba(19, 40, 43, .52);
  font-size: .84rem;
}

.booking-primary-action {
  min-width: min(190px, 100%);
  justify-content: center;
}

.booking-step-actions--split {
  grid-template-columns: auto auto 1fr;
  align-items: center;
}

.booking-secondary-action,
.booking-back-action {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--sea-dark);
  cursor: pointer;
  font: inherit;
  font-size: .92rem;
  font-weight: 720;
  padding: .6rem .8rem;
  text-decoration: none;
}

.booking-back-action {
  justify-self: end;
  color: rgba(19, 40, 43, .56);
}

.booking-step-actions--back-only {
  padding-top: 0;
}

.booking-checkout-page label,
.booking-checkout-page fieldset {
  font-weight: 720;
}

.booking-optional-label {
  color: rgba(19, 40, 43, .46);
  font-size: .82rem;
  font-weight: 540;
}

.booking-field-error {
  min-height: 1.05rem;
  color: #8b3d3d;
  font-size: .78rem;
  font-weight: 560;
  line-height: 1.35;
}

.booking-field-error:empty {
  display: none;
}

.booking-contact-method,
.booking-policy-summary {
  display: grid;
  gap: .55rem;
  border: 1px solid rgba(19, 40, 43, .09);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .48);
  padding: .9rem;
}

.booking-contact-method {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.booking-contact-method legend {
  grid-column: 1 / -1;
  padding: 0;
  color: var(--ink);
  font-weight: 760;
}

.booking-contact-method label {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  border: 1px solid rgba(19, 40, 43, .09);
  border-radius: var(--radius);
  background: rgba(255, 254, 250, .72);
  padding: .64rem .72rem;
  font-weight: 680;
}

.booking-contact-method input {
  width: auto;
  accent-color: var(--sea);
}

.booking-policy-summary h3 {
  font-size: 1.08rem;
}

.booking-policy-summary p {
  margin: 0;
  color: rgba(19, 40, 43, .62);
}

.booking-policy-summary a {
  width: fit-content;
  color: var(--sea-dark);
  font-weight: 720;
  text-underline-offset: .18em;
}

.booking-final-action {
  min-height: 54px;
  background: var(--sea-dark);
  color: #fff;
}

.booking-result {
  display: grid;
  gap: .7rem;
  border: 1px solid rgba(23, 74, 82, .16);
  border-radius: var(--radius);
  background: rgba(45, 117, 128, .07);
  padding: 1.1rem;
}

.booking-result p {
  margin: 0;
  color: rgba(19, 40, 43, .62);
}

.booking-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}

.booking-sidebar {
  min-width: 0;
  position: sticky;
  top: 92px;
}

.booking-sticky-summary {
  gap: .9rem;
  margin: 0;
  padding: 1rem;
  background: rgba(255, 254, 250, .86);
  box-shadow: 0 18px 42px rgba(19, 40, 43, .055);
}

.booking-summary-header {
  display: grid;
  gap: .28rem;
}

.booking-sticky-summary h2 {
  font-size: 1.35rem;
}

.booking-summary-items,
.booking-payment-lines {
  display: grid;
  gap: .55rem;
}

.booking-summary-items > div,
.booking-payment-lines > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .25rem .6rem;
  align-items: baseline;
  border-top: 1px solid rgba(19, 40, 43, .08);
  padding-top: .55rem;
}

.booking-summary-items span,
.booking-payment-lines span {
  grid-column: 1 / -1;
}

.booking-summary-items strong,
.booking-payment-lines strong {
  min-width: 0;
  color: var(--ink);
  font-size: .96rem;
  font-weight: 720;
  line-height: 1.25;
}

.booking-summary-items button {
  border: 0;
  background: transparent;
  color: var(--sea-dark);
  cursor: pointer;
  font: inherit;
  font-size: .78rem;
  font-weight: 760;
  padding: 0;
}

.booking-sticky-summary .booking-price-head {
  border-top: 1px solid rgba(19, 40, 43, .1);
  padding-top: .8rem;
}

.booking-sticky-summary .booking-price-lines {
  display: grid;
  gap: .38rem;
}

.booking-sticky-summary .booking-price-lines span,
.booking-bottom-sheet .booking-price-lines span {
  justify-content: space-between;
  width: 100%;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .52);
}

.booking-checkout-legal {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  justify-content: center;
  color: rgba(19, 40, 43, .5);
  font-size: .84rem;
}

.booking-checkout-legal a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.booking-checkout-page .booking-mobile-bar-meta {
  grid-template-columns: 1fr;
}

.booking-checkout-page .booking-mobile-bar-meta button {
  width: fit-content;
  border: 0;
  background: transparent;
  color: var(--sea-dark);
  cursor: pointer;
  font: inherit;
  font-size: .78rem;
  font-weight: 760;
  padding: 0;
}

.booking-bottom-sheet {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  align-items: end;
}

.booking-bottom-sheet[hidden] {
  display: none !important;
}

.booking-bottom-sheet__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(19, 40, 43, .28);
  opacity: 0;
  transition: opacity .18s ease;
}

.booking-bottom-sheet__panel {
  position: relative;
  max-height: min(78vh, 620px);
  max-height: min(78dvh, 620px);
  overflow: auto;
  display: grid;
  gap: .8rem;
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: 18px 18px 0 0;
  background: var(--paper);
  padding: .8rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -18px 44px rgba(19, 40, 43, .12);
  transform: translateY(16px);
  opacity: 0;
  transition: transform .18s ease, opacity .18s ease;
}

.booking-bottom-sheet.is-open .booking-bottom-sheet__backdrop,
.booking-bottom-sheet.is-open .booking-bottom-sheet__panel {
  opacity: 1;
}

.booking-bottom-sheet.is-open .booking-bottom-sheet__panel {
  transform: translateY(0);
}

.booking-bottom-sheet__handle {
  width: 42px;
  height: 4px;
  justify-self: center;
  border-radius: 999px;
  background: rgba(19, 40, 43, .18);
}

.booking-bottom-sheet__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
}

.booking-bottom-sheet__head h2 {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.28rem;
  font-weight: 500;
}

.booking-bottom-sheet__head button {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(19, 40, 43, .1);
  border-radius: 999px;
  background: rgba(255, 255, 255, .72);
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-size: 1.25rem;
}

.booking-sheet-summary {
  display: grid;
  gap: .35rem;
  color: rgba(19, 40, 43, .64);
  font-size: .9rem;
}

.booking-sheet-summary p {
  margin: 0;
}

body.has-booking-sheet {
  overflow: hidden;
}

/* Messenger booking flow — evidence-led linear checkout */
.booking-checkout-page {
  background: var(--paper);
}

.booking-checkout-page .booking-checkout-main {
  width: min(100% - 2rem, 1080px);
  padding-block: clamp(2rem, 5vw, 4.5rem);
}

.booking-checkout-page .booking-checkout-intro {
  max-width: 760px;
  margin: 0 0 clamp(2rem, 5vw, 3.75rem);
  text-align: left;
}

.booking-checkout-page .booking-checkout-intro h1 {
  max-width: 13ch;
  margin: .35rem 0 .8rem;
  font-size: clamp(2.65rem, 6.6vw, 5.35rem);
  line-height: .94;
  letter-spacing: -.045em;
}

.booking-checkout-page .booking-checkout-intro > p:last-of-type {
  max-width: 620px;
  margin: 0;
  font-size: clamp(1rem, 1.5vw, 1.12rem);
  line-height: 1.58;
}

.booking-intro-facts {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1.4rem;
  margin-top: 1.35rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--line);
  color: var(--sea-dark);
  font-size: .86rem;
  font-weight: 720;
}

.booking-intro-facts span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}

.booking-intro-facts span::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--clay);
}

.booking-checkout-page .booking-checkout-form {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.booking-checkout-page .booking-checkout-layout {
  grid-template-columns: minmax(0, 760px);
  justify-content: start;
  gap: 0;
  align-items: start;
}

.booking-checkout-page .booking-flow {
  display: grid;
  gap: 0;
}

.booking-checkout-page .booking-flow-step {
  display: grid !important;
  gap: 1.15rem;
  padding: clamp(2rem, 4vw, 3rem) 0;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
  box-shadow: none;
  scroll-margin-top: 1rem;
}

.booking-checkout-page .booking-flow-step:first-child {
  padding-top: 0;
  border-top: 0;
}

.booking-checkout-page .booking-step-heading {
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: .8rem;
  align-items: start;
}

.booking-checkout-page .booking-step-heading > span {
  width: 2rem;
  height: 2rem;
  margin-top: .12rem;
  background: transparent;
  border: 1px solid rgba(23, 74, 82, .28);
  color: var(--sea-dark);
  font-size: .78rem;
}

.booking-checkout-page .booking-step-heading h2 {
  font-size: clamp(1.65rem, 3vw, 2.3rem);
  line-height: 1.05;
  letter-spacing: -.025em;
}

.booking-checkout-page .booking-step-heading p {
  max-width: 560px;
  margin-top: .4rem;
  font-size: .92rem;
  line-height: 1.5;
}

.booking-checkout-page .booking-date-display-row {
  gap: .7rem;
}

.booking-checkout-page .booking-date-display-row > div {
  min-height: 76px;
  padding: .85rem 1rem;
  background: transparent;
  border-color: rgba(19, 40, 43, .14);
}

.booking-checkout-page .availability-panel {
  padding: 1rem 0 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
}

.booking-checkout-page .availability-calendars {
  gap: 1.5rem;
}

.booking-checkout-page .availability-day {
  border-radius: 50%;
}

.booking-checkout-page .booking-guest-block {
  padding: 1rem 0 0;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.booking-checkout-page .booking-counter {
  padding: .85rem 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.booking-checkout-page .booking-pet-toggle {
  padding: .85rem 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.booking-checkout-page .booking-extra-card {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.booking-checkout-page .booking-extra-copy {
  padding: 0;
}

.booking-checkout-page .hottub-fieldset {
  padding: 0;
  border: 0;
}

.booking-checkout-page .hottub-options {
  gap: .6rem;
}

.booking-checkout-page .hottub-option {
  min-height: 68px;
  border-radius: var(--radius);
  box-shadow: none;
}

.booking-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.booking-checkout-page .booking-contact-grid {
  gap: 1rem;
}

.booking-checkout-page .booking-contact-grid label {
  font-size: .86rem;
  font-weight: 720;
}

.booking-checkout-page .booking-contact-grid input,
.booking-checkout-page .booking-contact-grid textarea {
  min-height: 52px;
  border-color: rgba(19, 40, 43, .17);
  background: transparent;
}

.booking-checkout-page .booking-contact-method {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  padding: 0;
  border: 0;
}

.booking-checkout-page .booking-contact-method legend {
  grid-column: 1 / -1;
  margin-bottom: .15rem;
  padding: 0;
  font-size: .86rem;
  font-weight: 760;
}

.booking-messenger-choice {
  display: flex;
  min-height: 76px;
  align-items: center;
  gap: .75rem;
  padding: .85rem;
  border: 1px solid rgba(19, 40, 43, .16);
  border-radius: var(--radius);
  background: transparent;
  cursor: pointer;
}

.booking-messenger-choice:has(input:checked) {
  border-color: var(--sea-dark);
  background: rgba(45, 117, 128, .055);
  box-shadow: inset 0 0 0 1px var(--sea-dark);
}

.booking-messenger-choice input {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  accent-color: var(--sea-dark);
}

.booking-messenger-choice span {
  display: grid;
  gap: .12rem;
}

.booking-messenger-choice strong {
  font-size: .96rem;
}

.booking-messenger-choice small {
  color: var(--muted);
  font-size: .77rem;
  font-weight: 560;
  line-height: 1.35;
}

.booking-checkout-page .booking-policy-summary {
  padding: 1rem 0;
  border-width: 1px 0;
  border-radius: 0;
  background: transparent;
}

.booking-handoff-steps {
  display: grid;
  gap: .5rem;
  margin: .75rem 0 1rem;
  padding-left: 1.35rem;
  color: var(--ink);
  font-size: .88rem;
  line-height: 1.45;
}

.booking-checkout-page .booking-send-total {
  padding: .9rem 0;
  border-width: 1px 0 0;
  border-radius: 0;
  background: transparent;
}

.booking-checkout-page .booking-final-action {
  width: 100%;
  min-height: 56px;
  border-radius: var(--radius);
  font-size: .98rem;
}

.booking-checkout-page .booking-inline-review {
  position: static;
  gap: .9rem;
  margin: 0;
  padding: 1.2rem;
  border: 1px solid rgba(19, 40, 43, .13);
  border-radius: var(--radius);
  background: var(--soft);
  box-shadow: none;
}

.booking-checkout-page .booking-price-lines {
  display: grid;
  gap: .4rem;
}

.booking-checkout-page .booking-price-lines span {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-weight: 560;
}

.booking-checkout-page .booking-result {
  margin-top: 2rem;
  padding: 1.4rem;
  border: 1px solid rgba(45, 117, 128, .22);
  border-radius: var(--radius);
  background: rgba(45, 117, 128, .055);
}

.booking-checkout-page .booking-result-actions button {
  font: inherit;
  cursor: pointer;
}

@media (max-width: 820px) {
  .booking-checkout-page .booking-checkout-main {
    width: min(100% - 1.25rem, 680px);
    padding-top: 1.4rem;
  }

  .booking-checkout-page .booking-checkout-intro {
    margin-bottom: 2.25rem;
  }

  .booking-checkout-page .booking-checkout-intro h1 {
    max-width: 12ch;
    font-size: clamp(2.5rem, 12vw, 4rem);
  }

  .booking-checkout-page .booking-checkout-layout {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .booking-checkout-page .booking-inline-review {
    padding: 1rem;
  }

  .booking-checkout-page .availability-calendars {
    grid-template-columns: 1fr;
  }

  .booking-checkout-page .availability-month + .availability-month {
    display: none;
  }
}

@media (max-width: 560px) {
  .booking-checkout-page .booking-checkout-intro h1 {
    font-size: clamp(2.35rem, 13vw, 3.35rem);
  }

  .booking-intro-facts {
    display: grid;
    gap: .55rem;
  }

  .booking-checkout-page .booking-flow-step {
    padding-block: 2.25rem;
  }

  .booking-checkout-page .booking-date-display-row,
  .booking-checkout-page .booking-contact-grid,
  .booking-checkout-page .booking-contact-method {
    grid-template-columns: 1fr;
  }

  .booking-checkout-page .booking-date-display-row > div {
    min-height: 66px;
  }

  .booking-checkout-page .booking-counter-grid {
    grid-template-columns: 1fr;
  }

  .booking-checkout-page .hottub-options {
    grid-template-columns: 1fr;
  }

  .booking-checkout-page .booking-summary-items > div {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

@media (max-width: 1024px) {
  .booking-checkout-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .booking-sidebar {
    position: static;
    order: -1;
  }
}

@media (max-width: 700px) {
  .booking-checkout-header__inner,
  .booking-checkout-main {
    width: min(100% - 1rem, 1220px);
  }

  .booking-checkout-header__inner {
    min-height: 64px;
  }

  .booking-checkout-brand {
    width: 82px;
  }

  .booking-checkout-links {
    gap: .2rem;
    font-size: .82rem;
  }

  .booking-checkout-links a[href^="tel:"] {
    display: none;
  }

  .booking-checkout-main {
    gap: .85rem;
    padding-top: 1rem;
    padding-bottom: 5.2rem;
  }

  .booking-checkout-intro {
    gap: .45rem;
  }

  .booking-checkout-intro h1 {
    font-size: 2rem;
    line-height: 1.1;
  }

  .booking-progress {
    display: none;
  }

  .booking-mobile-step-label {
    display: block;
  }

  .booking-sidebar {
    display: none;
  }

  .booking-checkout-page .booking-step {
    padding: .92rem;
  }

  .booking-checkout-page .booking-step-heading h2 {
    font-size: 1.45rem;
  }

  .booking-date-display-row,
  .booking-extra-card,
  .booking-contact-grid,
  .booking-contact-method,
  .booking-step-actions--split {
    grid-template-columns: 1fr;
  }

  .booking-extra-media video {
    min-height: 240px;
    max-height: 310px;
  }

  .booking-counter {
    gap: .75rem;
  }

  .booking-counter-controls {
    grid-template-columns: 40px 30px 40px;
  }

  .booking-counter-controls button {
    width: 40px;
    height: 40px;
  }

  .booking-back-action {
    justify-self: start;
  }

  .booking-step-actions .booking-primary-action,
  .booking-step-actions p,
  .booking-checkout-page .messenger-actions {
    display: none;
  }

  .booking-final-action,
  .messenger-actions {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .booking-bottom-sheet__backdrop,
  .booking-bottom-sheet__panel,
  .booking-progress button,
  .booking-counter-controls button {
    transition: none;
  }
}

body.booking-page .header-actions > .button[aria-current="page"] {
  display: none;
}

body.booking-page .booking-tub-step {
  border: 1px solid rgba(23, 74, 82, .16);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
  box-shadow: none;
  overflow: hidden;
}

body.booking-page .booking-tub-step.is-selected {
  border-color: rgba(45, 117, 128, .38);
  background: rgba(45, 117, 128, .08);
  box-shadow: inset 0 0 0 1px rgba(45, 117, 128, .12);
}

.booking-spa-offer {
  display: grid;
  gap: .72rem;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 1.05rem 1.1rem 1.1rem;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  font: inherit;
  cursor: pointer;
}

body.booking-page .booking-tub-step.is-selected .booking-spa-offer {
  cursor: default;
}

.booking-spa-offer:focus-visible {
  outline: 2px solid rgba(45, 117, 128, .55);
  outline-offset: -2px;
}

.booking-spa-offer__eyebrow {
  color: var(--sea);
  font-size: .68rem;
  font-weight: 780;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.booking-spa-offer__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: .55rem 1.1rem;
}

.booking-spa-offer__identity {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
  max-width: 100%;
}

.booking-spa-offer__title {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 760;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.booking-spa-offer__check {
  display: none;
  width: 1.35rem;
  height: 1.35rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(45, 117, 128, .16);
  color: var(--sea-dark);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1;
}

body.booking-page .booking-tub-step.is-selected .booking-spa-offer__check {
  display: inline-flex;
}

.booking-spa-offer__pricing {
  display: grid;
  gap: .12rem;
  min-width: 0;
  max-width: 100%;
  text-align: right;
}

.booking-spa-offer__amount {
  color: var(--sea-dark);
  font-size: 1.05rem;
  font-weight: 780;
  letter-spacing: -.01em;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

body.booking-page .booking-tub-step.is-selected .booking-spa-offer__amount {
  font-size: .98rem;
}

.booking-spa-offer__period {
  color: rgba(19, 40, 43, .62);
  font-size: .78rem;
  font-weight: 560;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.booking-spa-offer__benefit {
  max-width: 42ch;
  margin: 0;
  color: rgba(19, 40, 43, .72);
  font-size: .9rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.booking-spa-offer__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem .9rem;
  margin-top: .12rem;
}

.booking-spa-offer__selected {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .55rem;
  min-height: 44px;
  max-width: 100%;
}

.booking-spa-offer__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  width: fit-content;
  max-width: 100%;
  margin: 0;
  padding: .65rem 1rem;
  border: 1px solid rgba(45, 117, 128, .28);
  border-radius: 999px;
  background: rgba(45, 117, 128, .08);
  color: var(--sea-dark);
  font-size: .88rem;
  font-weight: 740;
  line-height: 1.2;
  pointer-events: none;
  overflow-wrap: anywhere;
}

.booking-spa-offer__status {
  margin: 0;
  color: rgba(19, 40, 43, .72);
  font-size: .9rem;
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.booking-spa-offer__sep {
  color: rgba(19, 40, 43, .38);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1;
}

.booking-spa-offer__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 0;
  padding: .35rem 0;
  border: 0;
  border-bottom: 1px solid rgba(23, 74, 82, .22);
  border-radius: 0;
  background: transparent;
  color: rgba(23, 74, 82, .78);
  font: inherit;
  font-size: .88rem;
  font-weight: 620;
  line-height: 1.2;
  cursor: pointer;
  text-decoration: none;
}

.booking-spa-offer__remove:hover {
  color: var(--sea-dark);
  border-bottom-color: rgba(23, 74, 82, .4);
}

.booking-spa-offer__remove:focus-visible {
  outline: 2px solid rgba(45, 117, 128, .55);
  outline-offset: 2px;
}

@media (max-width: 640px) {
  .booking-spa-offer {
    padding: .95rem .9rem 1rem;
    gap: .66rem;
  }

  .booking-spa-offer__header {
    flex-direction: column;
    align-items: stretch;
  }

  .booking-spa-offer__pricing {
    text-align: left;
  }

  .booking-spa-offer__actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .booking-spa-offer__cta {
    width: 100%;
  }
}

/* Keep legacy booking-tub-summary tokens for text-scale contracts; unused in markup. */
body.booking-page .booking-tub-summary {
  min-height: 68px;
  height: auto;
  padding: .82rem .95rem;
}

.site-footer .footer-contact-actions {
  margin-top: .85rem;
  gap: .72rem;
}

.site-footer .footer-map-link {
  margin-top: .65rem;
}

/* Legal pages are documents, not campaign pages. */
.legal-document-page .sub-hero.legal-hero {
  min-height: 0;
  padding: clamp(3.4rem, 7vw, 5.8rem) 0 clamp(2.2rem, 5vw, 3.6rem);
  border-bottom: 1px solid rgba(23, 74, 82, .12);
  background: var(--paper);
  color: var(--ink);
}

.legal-document-page .sub-hero.legal-hero > img,
.legal-document-page .sub-hero.legal-hero > .sub-hero-overlay {
  display: none;
}

.legal-document-page .legal-hero .sub-hero-content {
  position: static;
  max-width: 760px;
  padding-top: 0;
  padding-bottom: 0;
  text-align: left;
  color: var(--ink);
}

.legal-document-page .legal-hero .eyebrow {
  width: fit-content;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none !important;
  box-shadow: none !important;
  color: var(--sea);
}

.legal-document-page .sub-hero-content > .eyebrow {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.legal-document-page .legal-hero h1 {
  max-width: 18ch;
  margin-top: .5rem;
  color: var(--sea-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.15rem, 5vw, 3.55rem);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.08;
  text-shadow: none;
}

.legal-document-page .legal-hero .sub-hero-lead {
  max-width: 58ch;
  margin-top: 1rem;
  color: rgba(19, 40, 43, .66);
  font-size: clamp(.98rem, 1.5vw, 1.06rem);
  line-height: 1.65;
}

.legal-document-page main > .section-block,
.legal-document-page .booking-policy-trust-section {
  padding: clamp(2.4rem, 5vw, 4.5rem) 0 clamp(4rem, 8vw, 7rem);
  background: var(--paper);
}

.legal-document-page .legal-content,
.legal-document-page .booking-policy-trust {
  display: grid;
  grid-template-columns: minmax(12rem, 220px) minmax(0, 680px);
  align-items: start;
  justify-content: center;
  gap: clamp(2rem, 5vw, 5rem);
  max-width: 1060px;
}

.legal-document-page .legal-page-nav {
  position: sticky;
  top: 92px;
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

.legal-document-page .legal-page-nav a {
  min-height: 0;
  padding: .72rem 0;
  border: 0;
  border-bottom: 1px solid rgba(23, 74, 82, .09);
  border-radius: 0;
  background: none;
  color: rgba(19, 40, 43, .62);
  font-size: .85rem;
  line-height: 1.4;
}

.legal-document-page .legal-list {
  display: block;
  max-width: 680px;
}

.legal-document-page .legal-card {
  margin: 0;
  padding: clamp(1.55rem, 3vw, 2.25rem) 0;
  border: 0;
  border-bottom: 1px solid rgba(23, 74, 82, .11);
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.legal-document-page .legal-card:first-child {
  padding-top: 0;
}

.legal-document-page .legal-card h2 {
  margin: 0 0 .8rem;
  padding: 0;
  color: var(--sea-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2.5vw, 1.72rem);
  font-weight: 400;
  letter-spacing: -.02em;
  line-height: 1.25;
}

.legal-document-page .legal-card h2::before {
  display: none;
}

.legal-document-page .legal-card p,
.legal-document-page .legal-card li {
  max-width: 66ch;
  color: rgba(19, 40, 43, .72);
  font-size: .97rem;
  line-height: 1.72;
}

.legal-document-page .legal-section-label { margin: 0 0 .55rem; color: rgba(45, 117, 128, .68); font-size: .68rem; font-weight: 750; letter-spacing: .14em; line-height: 1; }
.legal-document-page .legal-terms-list { margin: .35rem 0 0; }
.legal-document-page .legal-terms-list > div { display: grid; grid-template-columns: minmax(11rem, .8fr) minmax(0, 1.2fr); gap: clamp(1rem, 3vw, 2.2rem); padding: 1.15rem 0; border-top: 1px solid rgba(23, 74, 82, .09); }
.legal-document-page .legal-terms-list dt { color: var(--sea-dark); font-size: .88rem; font-weight: 700; line-height: 1.55; }
.legal-document-page .legal-terms-list dd { margin: 0; color: rgba(19, 40, 43, .72); font-size: .94rem; line-height: 1.65; }

.legal-document-page .booking-policy-trust {
  grid-template-columns: minmax(0, 680px);
}

.legal-document-page .policy-trust-intro,
.legal-document-page .policy-trust-card,
.legal-document-page .policy-cancellation,
.legal-document-page .policy-trust-note {
  max-width: 680px;
  margin: 0;
  padding: clamp(1.6rem, 3vw, 2.3rem) 0;
  border: 0;
  border-bottom: 1px solid rgba(23, 74, 82, .11);
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.legal-document-page .policy-trust-intro {
  padding-top: 0;
  text-align: left;
}

.legal-document-page .policy-trust-intro .eyebrow,
.legal-document-page .policy-soft-icon {
  display: none;
}

.legal-document-page .policy-trust-intro h2,
.legal-document-page .policy-trust-card h2,
.legal-document-page .policy-section-heading h2 {
  color: var(--sea-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -.02em;
}

.legal-document-page .policy-trust-card,
.legal-document-page .policy-section-heading {
  display: block;
}

.legal-document-page .policy-cancellation-grid,
.legal-document-page .policy-trust-grid {
  display: block;
}

.legal-document-page .policy-cancel-card {
  display: grid;
  grid-template-columns: minmax(10rem, .7fr) minmax(10rem, .65fr) minmax(0, 1fr);
  gap: 1.25rem;
  margin: 0;
  padding: 1.05rem 0;
  border: 0;
  border-top: 1px solid rgba(23, 74, 82, .08);
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.legal-document-page .policy-cancel-card > * {
  margin: 0;
}

.legal-document-page .policy-cancel-card h3 {
  font-size: .96rem;
  line-height: 1.5;
}

.legal-document-page .policy-cancel-card p {
  font-size: .9rem;
  line-height: 1.55;
}

@media (max-width: 760px) {
  .legal-document-page .legal-content {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .legal-document-page .legal-page-nav {
    position: static;
    display: flex;
    overflow-x: auto;
    gap: .55rem;
    padding-bottom: .35rem;
  }

  .legal-document-page .legal-page-nav a {
    flex: 0 0 auto;
    max-width: 14rem;
    padding: .58rem .75rem;
    border: 1px solid rgba(23, 74, 82, .11);
    border-radius: 999px;
  }

  .legal-document-page .policy-cancel-card {
    grid-template-columns: 1fr;
    gap: .35rem;
  }

  .legal-document-page .legal-terms-list > div { grid-template-columns: 1fr; gap: .35rem; }
}

/* Final cascade guarantees for the linear messenger handoff. */
.booking-checkout-page [data-booking-linear] .booking-flow-step,
.booking-checkout-page [data-booking-linear] .messenger-actions {
  display: grid !important;
}

.booking-checkout-page [data-booking-linear] .messenger-actions {
  grid-template-columns: 1fr;
  width: 100%;
}

.booking-checkout-page [data-booking-linear] .booking-final-action {
  display: inline-flex !important;
  width: 100%;
}

/* Booking polish: quiet hierarchy, clear states, no decorative noise. */
.availability-day.is-unavailable {
  text-decoration-line: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(104, 115, 113, .42);
  text-decoration-skip-ink: none;
}

.availability-day.is-range-blocked,
.availability-day.is-past {
  text-decoration: none;
  text-decoration-line: none;
}

.stay-cost-page .availability-day.is-unavailable {
  background: #e6e2da;
  color: rgba(104, 115, 113, .62);
  opacity: 1;
}

.stay-cost-page .availability-day.is-range-blocked {
  background: rgba(236, 234, 230, .42);
  color: rgba(104, 115, 113, .48);
  opacity: .78;
}

.stay-cost-page .availability-day.is-past {
  background: transparent;
  color: rgba(104, 115, 113, .34);
  text-decoration: none;
}

.stay-cost-page .availability-day.is-available {
  background: rgba(255, 254, 250, .98);
}

body.booking-page .availability-calendars:not(.is-dual-month) .availability-month h3 {
  display: none;
}

body.booking-page .footer-nav { order: 1; }
body.booking-page .footer-contact { order: 2; }
body.booking-page .footer-social {
  order: 3;
}

.footer-contact-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.15rem;
}

.site-footer .footer-contact-app {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: rgba(23, 74, 82, .74);
  box-shadow: none;
  transition: transform .2s var(--ui-ease), color .2s ease, background-color .2s ease;
}

.site-footer .footer-contact-app span,
.site-footer .footer-contact-app svg {
  display: block;
  width: 23px;
  height: 23px;
}

.site-footer .footer-contact-app:hover,
.site-footer .footer-contact-app:focus-visible {
  transform: translateY(-1px);
  color: var(--sea-dark);
  background: rgba(45, 117, 128, .07);
}

.site-footer .footer-contact-app:focus-visible {
  outline: 3px solid rgba(45, 117, 128, .2);
  outline-offset: 3px;
}

.site-footer .footer-map-link {
  display: block;
  width: fit-content;
  margin-top: .9rem;
  color: rgba(23, 74, 82, .72);
  font-size: .82rem;
  font-weight: 620;
  letter-spacing: .01em;
  text-decoration: underline;
  text-decoration-color: rgba(23, 74, 82, .26);
  text-underline-offset: .28em;
  transition: color .2s ease, text-decoration-color .2s ease;
}

.site-footer .footer-map-link:hover,
.site-footer .footer-map-link:focus-visible {
  color: var(--sea-dark);
  text-decoration-color: currentColor;
}

body.booking-page .booking-page-heading .eyebrow {
  color: var(--sea);
  font-size: .72rem;
  letter-spacing: .12em;
}

body.booking-page .availability-clear {
  width: fit-content;
  padding: .34rem .1rem;
  border-bottom: 1px solid rgba(23, 74, 82, .22);
  color: rgba(23, 74, 82, .78);
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
}

body.booking-page .availability-clear:hover,
body.booking-page .availability-clear:focus-visible {
  border-bottom-color: currentColor;
  color: var(--sea-dark);
}

body.booking-page .booking-summary[data-state="ready"] {
  padding: .58rem 0;
  color: rgba(19, 40, 43, .78);
  font-family: inherit;
  font-size: .86rem;
  font-weight: 720;
  letter-spacing: .015em;
}

body.booking-page .booking-tub-step {
  display: block;
  padding: 0;
  border: 1px solid rgba(23, 74, 82, .16);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
  overflow: hidden;
}

body.booking-page .booking-tub-step.is-selected {
  border-color: rgba(45, 117, 128, .38);
  background: rgba(45, 117, 128, .08);
  box-shadow: inset 0 0 0 1px rgba(45, 117, 128, .12);
}

body.booking-page .booking-tub-step .booking-options-grid {
  padding: .9rem 1rem 1rem;
}

body.booking-page .booking-stay-details {
  display: block;
  margin: .35rem 0 .15rem;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
}

body.booking-page .booking-stay-details__summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .85rem;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: .72rem .85rem;
  list-style: none;
  border: 1px solid rgba(23, 74, 82, .12);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .58);
  cursor: pointer;
  transition:
    border-color var(--ui-duration-fast) var(--ui-ease),
    background-color var(--ui-duration-fast) var(--ui-ease);
}

body.booking-page .booking-stay-details__summary::-webkit-details-marker {
  display: none;
}

body.booking-page .booking-stay-details__summary:hover {
  border-color: rgba(23, 74, 82, .18);
  background: rgba(255, 255, 255, .72);
}

body.booking-page .booking-stay-details__summary:focus-visible {
  outline: 2px solid rgba(45, 117, 128, .45);
  outline-offset: 2px;
}

body.booking-page .booking-stay-details[open] .booking-stay-details__summary {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-color: transparent;
}

body.booking-page .booking-stay-details__summary-copy {
  display: grid;
  gap: .28rem;
  min-width: 0;
}

body.booking-page .booking-stay-details__title {
  margin: 0;
  color: var(--ink);
  font-family: inherit;
  font-size: .96rem;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.25;
}

body.booking-page .booking-stay-details__lead {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 400;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

body.booking-page .booking-stay-details__chevron {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  margin-top: .2rem;
  border-right: 1.5px solid rgba(19, 40, 43, .42);
  border-bottom: 1.5px solid rgba(19, 40, 43, .42);
  transform: rotate(45deg);
  transition: transform .18s ease;
}

body.booking-page .booking-stay-details[open] .booking-stay-details__chevron {
  margin-top: .45rem;
  transform: rotate(225deg);
}

body.booking-page .booking-stay-details__surface {
  display: grid;
  gap: .95rem;
  padding: .15rem .9rem 1rem;
  border: 1px solid rgba(23, 74, 82, .12);
  border-top: 0;
  border-radius: 0 0 var(--radius) var(--radius);
  background: rgba(255, 255, 255, .58);
  animation: booking-stay-details-open .18s ease;
}

@keyframes booking-stay-details-open {
  from {
    opacity: .35;
    transform: translateY(-.2rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.booking-page .booking-stay-details__surface {
    animation: none;
  }

  body.booking-page .booking-stay-details__chevron {
    transition: none;
  }
}

body.booking-page .booking-stay-details__choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
}

body.booking-page .booking-stay-choice {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

body.booking-page .booking-stay-choice + .booking-stay-choice {
  border-left: 1px solid rgba(23, 74, 82, .1);
  padding-left: .85rem;
  margin-left: .85rem;
}

body.booking-page .booking-stay-choice__legend {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body.booking-page .booking-stay-choice__row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .7rem;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: .55rem .55rem .55rem .45rem;
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: pointer;
  transition:
    background-color var(--ui-duration-fast) var(--ui-ease),
    border-color var(--ui-duration-fast) var(--ui-ease);
}

body.booking-page .booking-stay-choice__row:hover {
  background: rgba(45, 117, 128, .035);
}

body.booking-page .booking-stay-choice__row:has(input:checked) {
  border-color: rgba(45, 117, 128, .18);
  background: rgba(45, 117, 128, .06);
}

body.booking-page .booking-stay-choice__row:has(input:focus-visible) {
  outline: 2px solid rgba(45, 117, 128, .4);
  outline-offset: 1px;
}

body.booking-page .booking-stay-choice__copy {
  display: grid;
  gap: .2rem;
  min-width: 0;
  padding-top: .05rem;
}

body.booking-page .booking-stay-choice__label {
  color: var(--ink);
  font-size: .94rem;
  font-weight: 500;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

body.booking-page .booking-stay-choice__hint {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 400;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

body.booking-page .booking-stay-choice__row input[type="checkbox"] {
  width: 1.15rem;
  height: 1.15rem;
  margin: .18rem 0 0;
  flex: 0 0 auto;
  appearance: none;
  -webkit-appearance: none;
  border: 1.5px solid rgba(23, 74, 82, .28);
  border-radius: .28rem;
  background-color: rgba(255, 255, 255, .8);
  accent-color: var(--sea);
  cursor: pointer;
  transition:
    border-color var(--ui-duration-fast) var(--ui-ease),
    background-color var(--ui-duration-fast) var(--ui-ease);
}

body.booking-page .booking-stay-choice__row input[type="checkbox"]:hover {
  border-color: rgba(45, 117, 128, .45);
}

body.booking-page .booking-stay-choice__row input[type="checkbox"]:checked {
  border-color: rgba(45, 117, 128, .55);
  background-color: rgba(45, 117, 128, .12);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.2 6.4 11l6-6.5' stroke='%232d7580' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: .78rem .78rem;
}

body.booking-page .booking-stay-choice__row input[type="checkbox"]:focus-visible {
  outline: 2px solid rgba(45, 117, 128, .45);
  outline-offset: 2px;
}

body.booking-page .booking-stay-details__note {
  display: grid;
  gap: .42rem;
  color: rgba(19, 40, 43, .68);
  font-size: .88rem;
  font-weight: 500;
  line-height: 1.35;
}

body.booking-page .booking-stay-details__note textarea {
  width: 100%;
  min-height: calc(1.45em * 2 + 1.44rem);
  height: auto;
  max-height: 12rem;
  padding: .72rem .85rem;
  border: 1px solid rgba(23, 74, 82, .14);
  border-radius: 10px;
  background: rgba(255, 252, 248, .72);
  color: var(--ink);
  font: inherit;
  font-size: .94rem;
  font-weight: 400;
  line-height: 1.45;
  resize: none;
  overflow-y: hidden;
  box-shadow: none;
  transition:
    border-color var(--ui-duration-fast) var(--ui-ease),
    background-color var(--ui-duration-fast) var(--ui-ease),
    box-shadow var(--ui-duration-fast) var(--ui-ease);
}

body.booking-page .booking-stay-details__note textarea::placeholder {
  color: rgba(19, 40, 43, .42);
  font-weight: 400;
  opacity: 1;
}

body.booking-page .booking-stay-details__note textarea:hover {
  border-color: rgba(23, 74, 82, .22);
}

body.booking-page .booking-stay-details__note textarea:focus {
  border-color: rgba(45, 117, 128, .42);
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 0 0 3px rgba(45, 117, 128, .1);
  outline: none;
}

@media (max-width: 720px) {
  body.booking-page .booking-stay-details__choices {
    grid-template-columns: 1fr;
  }

  body.booking-page .booking-stay-choice + .booking-stay-choice {
    border-left: 0;
    border-top: 1px solid rgba(23, 74, 82, .1);
    margin-left: 0;
    margin-top: .15rem;
    padding-left: 0;
    padding-top: .15rem;
  }

  body.booking-page .booking-stay-details__surface {
    padding: .8rem .8rem .95rem;
  }
}


body.booking-page .booking-price-panel {
  gap: .7rem;
  margin-top: 1rem;
  padding: .95rem 1rem;
  border: 1px solid rgba(23, 74, 82, .12);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .58);
  overflow: hidden;
}

body.booking-page .booking-price-panel__main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem 1.25rem;
  align-items: start;
  min-width: 0;
}

body.booking-page .booking-price-panel__details {
  min-width: 0;
}

body.booking-page .booking-price-head {
  display: grid;
  gap: .28rem;
  justify-items: end;
  text-align: right;
  min-width: 0;
  max-width: 100%;
}

body.booking-page .booking-price-head > span {
  color: rgba(19, 40, 43, .58);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.booking-page .booking-price-head strong {
  max-width: 100%;
  color: var(--ink);
  font-family: inherit;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.02em;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.booking-page .booking-price-lines {
  display: grid;
  gap: .38rem;
}

body.booking-page .booking-price-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: baseline;
  min-width: 0;
  color: rgba(19, 40, 43, .68);
  font-size: .88rem;
  line-height: 1.4;
}

body.booking-page .booking-price-line strong {
  color: var(--ink);
  font-weight: 650;
  overflow-wrap: anywhere;
}

body.booking-page .booking-price-line--meta {
  display: block;
  margin-bottom: .15rem;
  color: rgba(19, 40, 43, .55);
  font-size: .84rem;
  font-weight: 500;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

body.booking-page .booking-price-panel p {
  margin: 0;
  max-width: none;
  color: rgba(19, 40, 43, .55);
  font-size: .8rem;
  line-height: 1.45;
}

body.booking-page .booking-contact-step {
  margin-top: .55rem;
}

body.booking-page .booking-contact-step .booking-step-heading {
  margin-bottom: .75rem;
}

body.booking-page .booking-contact-grid {
  gap: .85rem;
}

body.booking-page .booking-contact-grid label {
  gap: .4rem;
  color: rgba(19, 40, 43, .72);
  font-size: .9rem;
  font-weight: 550;
  line-height: 1.3;
}

body.booking-page .booking-contact-grid input {
  min-height: 48px;
  padding: .75rem .9rem;
  border: 1px solid rgba(23, 74, 82, .14);
  border-radius: 10px;
  background: rgba(255, 252, 248, .72);
  color: var(--ink);
  font: inherit;
  font-size: .96rem;
  font-weight: 400;
  box-shadow: none;
  transition:
    border-color var(--ui-duration-fast) var(--ui-ease),
    background-color var(--ui-duration-fast) var(--ui-ease),
    box-shadow var(--ui-duration-fast) var(--ui-ease);
}

body.booking-page .booking-contact-grid input::placeholder {
  color: rgba(19, 40, 43, .4);
  font-weight: 400;
  opacity: 1;
}

body.booking-page .booking-contact-grid input:hover {
  border-color: rgba(23, 74, 82, .22);
}

body.booking-page .booking-contact-grid input:focus {
  border-color: rgba(45, 117, 128, .42);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 0 0 3px rgba(45, 117, 128, .1);
  outline: none;
}

@media (max-width: 720px) {
  body.booking-page .booking-contact-grid {
    grid-template-columns: 1fr;
  }

  body.booking-page .booking-price-panel__main {
    grid-template-columns: 1fr;
  }

  body.booking-page .booking-price-head {
    justify-items: start;
    text-align: left;
    order: 2;
    padding-top: .15rem;
    border-top: 1px solid rgba(23, 74, 82, .08);
  }

  body.booking-page .booking-price-panel__details {
    order: 1;
  }
}

body.booking-page .messenger-button {
  min-height: 52px;
  border-color: color-mix(in srgb, var(--sea) 22%, var(--line));
  background: rgba(255, 255, 255, .74);
  box-shadow: none;
}

body.booking-page .messenger-button span {
  font-weight: 600;
}

body.booking-page .messenger-button:hover:not(:disabled),
body.booking-page .messenger-button:focus-visible {
  border-color: color-mix(in srgb, var(--sea) 48%, var(--line));
  background: color-mix(in srgb, var(--sea) 8%, white);
  box-shadow: none;
  transform: none;
}

body.booking-page .messenger-button:disabled,
body.booking-page .messenger-button.is-disabled {
  opacity: .4;
  background: rgba(255, 255, 255, .42);
  border-color: rgba(19, 40, 43, .1);
  color: rgba(19, 40, 43, .42);
}

body.booking-page .messenger-panel {
  gap: 1rem;
}

body.booking-page .messenger-panel .booking-step-heading {
  margin-bottom: .15rem;
}

body.booking-page .booking-consents {
  margin-top: .2rem;
}

body.booking-page .booking-legal-note {
  margin-top: -.15rem;
  margin-bottom: .15rem;
}

@media (max-width: 900px) {
  body.booking-page .messenger-actions {
    grid-template-columns: 1fr;
  }
}

/* Booking funnel — one shared visual language across all steps. */
body.booking-page {
  --booking-radius: 12px;
  --booking-line: rgba(23, 74, 82, .13);
  --booking-line-soft: rgba(23, 74, 82, .09);
  --booking-surface: rgba(255, 255, 255, .64);
  --booking-surface-strong: rgba(255, 255, 255, .78);
  --booking-field-bg: rgba(255, 252, 248, .78);
  --booking-pad-y: .95rem;
  --booking-pad-x: 1.05rem;
  --booking-label: .9rem;
  --booking-muted: .84rem;
  --booking-body: .94rem;
  --booking-weight-label: 500;
  --booking-weight-title: 600;
}

body.booking-page .booking-step {
  gap: .85rem;
  padding-top: 1.1rem;
  border-top-color: var(--booking-line-soft);
}

body.booking-page .booking-step-dates {
  padding-top: .25rem;
}

body.booking-page .booking-step-heading {
  gap: .7rem;
  margin-bottom: .1rem;
}

body.booking-page .booking-step-heading > span {
  width: 32px;
  height: 32px;
  font-size: .86rem;
  font-weight: 700;
}

body.booking-page .booking-step-heading h2 {
  font-size: clamp(1.22rem, 2.3vw, 1.58rem);
  font-weight: 500;
  letter-spacing: -.01em;
}

body.booking-page .booking-step-heading p {
  margin-top: .22rem;
  color: var(--muted);
  font-size: var(--booking-muted);
  line-height: 1.45;
}

body.booking-page .booking-stay-hint {
  margin: 0 0 .1rem;
  color: var(--muted);
  font-size: var(--booking-muted);
  font-weight: var(--booking-weight-label);
  text-align: left;
}

body.booking-page .booking-summary[data-state="ready"] {
  margin-top: .1rem;
  padding: .62rem 0;
  border-width: 1px 0;
  border-color: var(--booking-line-soft);
  border-radius: 0;
  background: transparent;
  color: rgba(19, 40, 43, .78);
  font-family: inherit;
  font-size: var(--booking-body);
  font-weight: var(--booking-weight-title);
  letter-spacing: 0;
}

body.booking-page .booking-guest-block,
body.booking-page .booking-tub-step,
body.booking-page .booking-stay-details__summary,
body.booking-page .booking-stay-details__surface,
body.booking-page .booking-price-panel {
  border: 1px solid var(--booking-line);
  border-radius: var(--booking-radius);
  background: var(--booking-surface);
  box-shadow: none;
}

body.booking-page .booking-guest-block {
  margin-top: .2rem;
  padding: .85rem var(--booking-pad-x);
}

body.booking-page .booking-guest-heading {
  gap: .16rem;
}

body.booking-page .booking-guest-heading > span {
  color: var(--ink);
  font-size: var(--booking-label);
  font-weight: var(--booking-weight-title);
  line-height: 1.3;
}

body.booking-page .booking-guest-heading small {
  color: var(--muted);
  font-size: var(--booking-muted);
  font-weight: 400;
  line-height: 1.4;
}

body.booking-page .booking-guest-selector {
  gap: 0;
  padding: 4px;
  border: 1px solid var(--booking-line);
  border-radius: 999px;
  background: var(--booking-field-bg);
}

body.booking-page .booking-guest-pill {
  min-height: 44px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  color: rgba(19, 40, 43, .72);
  font-family: inherit;
  font-size: var(--booking-body);
  font-weight: var(--booking-weight-label);
}

body.booking-page .booking-guest-pill:hover,
body.booking-page .booking-guest-pill:focus-visible {
  background: rgba(45, 117, 128, .06);
  color: var(--ink);
  transform: none;
}

body.booking-page .booking-guest-pill.is-active {
  background: var(--sea-dark);
  color: #fff;
  box-shadow: none;
}

body.booking-page .booking-tub-step {
  display: block;
  margin: .15rem 0;
  padding: 0;
  overflow: hidden;
}

body.booking-page .booking-tub-step.is-selected {
  border-color: rgba(45, 117, 128, .3);
  background: rgba(45, 117, 128, .06);
  box-shadow: none;
}

body.booking-page .booking-spa-offer {
  gap: .68rem;
  padding: var(--booking-pad-y) var(--booking-pad-x);
}

body.booking-page .booking-spa-offer__eyebrow {
  color: var(--sea);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .11em;
}

body.booking-page .booking-spa-offer__title {
  color: var(--ink);
  font-size: 1.04rem;
  font-weight: var(--booking-weight-title);
  line-height: 1.3;
}

body.booking-page .booking-spa-offer__amount {
  color: var(--sea-dark);
  font-size: 1.04rem;
  font-weight: 650;
  letter-spacing: -.01em;
}

body.booking-page .booking-tub-step.is-selected .booking-spa-offer__amount {
  font-size: 1.04rem;
}

body.booking-page .booking-spa-offer__period {
  color: rgba(19, 40, 43, .68);
  font-size: .88rem;
  font-weight: 500;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

body.booking-page .booking-spa-offer__pricing {
  gap: .22rem;
  max-width: min(100%, 18rem);
}

body.booking-page .booking-spa-offer__benefit {
  max-width: 44ch;
  color: rgba(19, 40, 43, .7);
  font-size: var(--booking-body);
  font-weight: 400;
  line-height: 1.45;
}

body.booking-page .booking-spa-offer__cta {
  min-height: 44px;
  padding: .62rem .95rem;
  border: 1px solid rgba(45, 117, 128, .26);
  border-radius: 999px;
  background: rgba(45, 117, 128, .07);
  color: var(--sea-dark);
  font-size: .88rem;
  font-weight: var(--booking-weight-title);
}

body.booking-page .booking-spa-offer__status {
  color: rgba(19, 40, 43, .7);
  font-size: var(--booking-body);
  font-weight: var(--booking-weight-label);
}

body.booking-page .booking-spa-offer__remove {
  border-bottom-color: rgba(23, 74, 82, .2);
  color: rgba(23, 74, 82, .76);
  font-size: .88rem;
  font-weight: var(--booking-weight-label);
}

body.booking-page .booking-stay-details {
  margin: .2rem 0 .1rem;
  padding: 0;
  border: 0;
  background: transparent;
}

body.booking-page .booking-stay-details__summary {
  gap: .85rem;
  padding: .85rem var(--booking-pad-x);
}

body.booking-page .booking-stay-details__summary:hover {
  border-color: rgba(23, 74, 82, .2);
  background: var(--booking-surface-strong);
}

body.booking-page .booking-stay-details[open] .booking-stay-details__summary {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-color: transparent;
  background: var(--booking-surface);
}

body.booking-page .booking-stay-details__title {
  color: var(--ink);
  font-family: inherit;
  font-size: 1.02rem;
  font-weight: var(--booking-weight-title);
  letter-spacing: -.01em;
  line-height: 1.3;
}

body.booking-page .booking-stay-details__lead {
  color: var(--muted);
  font-size: var(--booking-muted);
  font-weight: 400;
  line-height: 1.45;
}

body.booking-page .booking-stay-details__surface {
  gap: .9rem;
  padding: .15rem var(--booking-pad-x) var(--booking-pad-y);
  border-top: 0;
  border-radius: 0 0 var(--booking-radius) var(--booking-radius);
}

body.booking-page .booking-stay-choice__row {
  border-radius: calc(var(--booking-radius) - 2px);
}

body.booking-page .booking-stay-choice__label {
  font-size: var(--booking-label);
  font-weight: var(--booking-weight-label);
}

body.booking-page .booking-stay-choice__hint {
  color: var(--muted);
  font-size: var(--booking-muted);
  font-weight: 400;
}

body.booking-page .booking-stay-details__note {
  gap: .4rem;
  color: rgba(19, 40, 43, .72);
  font-size: var(--booking-label);
  font-weight: var(--booking-weight-label);
  line-height: 1.3;
}

body.booking-page .booking-contact-grid label {
  gap: .4rem;
  color: rgba(19, 40, 43, .72);
  font-size: var(--booking-label);
  font-weight: var(--booking-weight-label);
  line-height: 1.3;
}

body.booking-page .booking-contact-grid input,
body.booking-page .booking-stay-details__note textarea {
  min-height: 48px;
  padding: .74rem .9rem;
  border: 1px solid var(--booking-line);
  border-radius: var(--booking-radius);
  background: var(--booking-field-bg);
  color: var(--ink);
  font: inherit;
  font-size: var(--booking-body);
  font-weight: 400;
  box-shadow: none;
}

body.booking-page .booking-contact-grid input:hover,
body.booking-page .booking-stay-details__note textarea:hover {
  border-color: rgba(23, 74, 82, .22);
}

body.booking-page .booking-contact-grid input:focus,
body.booking-page .booking-stay-details__note textarea:focus {
  border-color: rgba(45, 117, 128, .42);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 0 0 3px rgba(45, 117, 128, .1);
  outline: none;
}

body.booking-page .booking-contact-step {
  margin-top: .35rem;
}

body.booking-page .booking-contact-step .booking-step-heading,
body.booking-page .messenger-panel .booking-step-heading {
  margin-bottom: .35rem;
}

body.booking-page .booking-price-panel {
  gap: .7rem;
  margin-top: 1rem;
  padding: var(--booking-pad-y) var(--booking-pad-x);
  overflow: hidden;
}

body.booking-page .booking-price-head > span {
  color: rgba(19, 40, 43, .55);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
}

body.booking-page .booking-price-head strong {
  color: var(--ink);
  font-family: inherit;
  font-size: clamp(1.28rem, 2.8vw, 1.68rem);
  font-weight: 650;
  letter-spacing: -.02em;
}

body.booking-page .booking-price-line {
  color: rgba(19, 40, 43, .68);
  font-size: var(--booking-body);
  line-height: 1.4;
}

body.booking-page .booking-price-line strong {
  font-weight: var(--booking-weight-title);
}

body.booking-page .booking-price-line--meta {
  color: rgba(19, 40, 43, .55);
  font-size: var(--booking-muted);
  font-weight: var(--booking-weight-label);
}

body.booking-page .booking-price-panel p,
body.booking-page .booking-legal-note {
  color: rgba(19, 40, 43, .52);
  font-size: var(--booking-muted);
  line-height: 1.45;
}

body.booking-page .booking-consent {
  color: rgba(19, 40, 43, .68);
  font-size: var(--booking-muted);
  line-height: 1.5;
}

body.booking-page .booking-consent__copy {
  font-weight: var(--booking-weight-label);
}

body.booking-page .messenger-panel {
  gap: .9rem;
}

body.booking-page .messenger-button {
  min-height: 50px;
  border: 1px solid var(--booking-line);
  border-radius: var(--booking-radius);
  background: var(--booking-surface-strong);
  box-shadow: none;
}

body.booking-page .messenger-button span {
  font-size: var(--booking-body);
  font-weight: var(--booking-weight-title);
}

body.booking-page .messenger-button:hover:not(:disabled),
body.booking-page .messenger-button:focus-visible {
  border-color: rgba(45, 117, 128, .42);
  background: rgba(45, 117, 128, .07);
  box-shadow: none;
  transform: none;
}

body.booking-page .messenger-button:disabled,
body.booking-page .messenger-button.is-disabled {
  opacity: .45;
  background: var(--booking-surface);
  border-color: var(--booking-line-soft);
  color: rgba(19, 40, 43, .45);
}

@media (max-width: 720px) {
  body.booking-page .booking-stay-details__surface,
  body.booking-page .booking-guest-block,
  body.booking-page .booking-price-panel,
  body.booking-page .booking-spa-offer,
  body.booking-page .booking-stay-details__summary {
    padding-left: .9rem;
    padding-right: .9rem;
  }
}

/* Property editorial polish — local, compositor-only motion. */
.property-page .page-hero + .property-value-block .property-value-editorial {
  transition-duration: .62s;
  transition-delay: .12s;
}

.property-page .property-value-editorial {
  max-width: 46rem;
}

.property-page .property-value-editorial h2 {
  max-width: 22ch;
}

.property-page .property-value-lead {
  max-width: 52ch;
}

.property-page .property-value-theses {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 46rem;
  gap: 0;
  text-align: left;
}

.property-page .property-value-theses li {
  padding: 0 clamp(.85rem, 2vw, 1.35rem);
  font-family: inherit;
  font-size: .9rem;
  line-height: 1.55;
  color: rgba(19, 40, 43, .68);
}

.property-page .property-value-theses li + li {
  border-left: 1px solid rgba(23, 74, 82, .1);
}

.property-page .property-overview-panel {
  max-width: 1040px;
  padding: clamp(2rem, 4vw, 3rem);
  border: 1px solid rgba(23, 74, 82, .09);
  border-radius: calc(var(--radius) + 4px);
  background: rgba(255, 254, 250, .72);
  box-shadow: 0 22px 54px rgba(19, 40, 43, .045);
}

.property-page .property-overview-heading {
  max-width: 42rem;
}

.property-page .property-overview-panel .home-stat-bar {
  margin-top: clamp(1.6rem, 3vw, 2.2rem);
}

.property-page .property-overview-notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.6rem);
  margin-top: clamp(1.55rem, 3vw, 2.2rem);
  padding-top: clamp(1.35rem, 2.5vw, 1.8rem);
  border-top: 1px solid rgba(23, 74, 82, .1);
}

.property-page .property-overview-notes p {
  margin: 0;
}

.property-page .property-overview-notes strong,
.property-page .property-overview-notes span {
  display: block;
}

.property-page .property-overview-notes strong {
  margin-bottom: .38rem;
  color: rgba(23, 74, 82, .9);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  font-weight: 400;
}

.property-page .property-overview-notes span {
  color: rgba(19, 40, 43, .6);
  font-size: .87rem;
  line-height: 1.55;
}

.property-page .property-sleep-suite {
  padding: clamp(3rem, 6vw, 5.25rem) 0;
}

.property-page .property-sleep-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(17rem, .65fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4.5rem);
}

.property-page .property-sleep-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: clamp(.65rem, 1.4vw, 1rem);
  min-height: clamp(480px, 54vw, 680px);
}

.property-page .property-sleep-photo {
  position: relative;
  overflow: hidden;
  min-height: 0;
  margin: 0;
  border-radius: var(--radius);
  background: #e9ece8;
}

.property-page .property-sleep-photo--main {
  grid-row: 1 / 3;
}

.property-page .property-sleep-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
}

.property-page .property-sleep-photo--main img {
  object-position: center 62%;
}

.property-page .property-sleep-photo figcaption {
  position: absolute;
  inset: auto .65rem .65rem;
  width: fit-content;
  max-width: calc(100% - 1.3rem);
  padding: .38rem .58rem;
  border: 1px solid rgba(255, 255, 255, .36);
  border-radius: 999px;
  background: rgba(19, 40, 43, .58);
  color: rgba(255, 255, 255, .95);
  font-size: .72rem;
  line-height: 1.25;
  backdrop-filter: blur(8px);
}

.property-page .property-sleep-copy {
  max-width: 25rem;
}

.property-page .property-essentials .essential-card {
  border-color: rgba(23, 74, 82, .115);
}

.property-page .essential-card__icon {
  width: 2.35rem;
  height: 2.35rem;
  border: 1px solid rgba(45, 117, 128, .1);
}

.property-page .essential-card:nth-child(2) .essential-card__icon {
  background: rgba(167, 119, 94, .07);
  color: rgba(126, 82, 60, .78);
}

.property-page .essential-card:nth-child(3) .essential-card__icon {
  background: rgba(111, 133, 111, .08);
  color: rgba(76, 104, 76, .8);
}

.property-page .property-tub-media {
  width: min(100%, 430px);
  aspect-ratio: 9 / 16;
  justify-self: center;
  background: #e9efed;
}

.property-page .property-tub-media__video {
  object-fit: cover;
  object-position: center;
}

@media (max-width: 760px) {
  .property-page .property-value-theses,
  .property-page .property-overview-notes {
    grid-template-columns: 1fr;
  }

  .property-page .property-value-theses {
    text-align: center;
  }

  .property-page .property-value-theses li {
    padding: .72rem 0;
  }

  .property-page .property-value-theses li + li {
    border-top: 1px solid rgba(23, 74, 82, .08);
    border-left: 0;
  }

  .property-page .property-overview-notes {
    gap: 1rem;
  }

  .property-page .property-sleep-layout {
    grid-template-columns: 1fr;
  }

  .property-page .property-sleep-gallery {
    min-height: 470px;
  }

  .property-page .property-sleep-copy {
    max-width: none;
  }
}

@media (max-width: 480px) {
  .property-page .property-overview-panel {
    padding: 1.45rem 1.1rem;
  }

  .property-page .property-sleep-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: 1.35fr .8fr;
    min-height: 430px;
  }

  .property-page .property-sleep-photo--main {
    grid-column: 1 / 3;
    grid-row: auto;
  }

  .property-page .property-tub-media {
    width: 100%;
    aspect-ratio: 9 / 16;
  }
}

@media (prefers-reduced-motion: reduce) {
  .property-page .page-hero + .property-value-block .property-value-editorial {
    transition-delay: 0s;
  }
}

/* Interaction floors only — not phone layout.
   Cover narrow widths OR short coarse-pointer landscape (wide phones).
   Tall tablets with pointer:coarse keep desktop/tablet layout. */
@media (max-width: 700px),
       (orientation: landscape) and (max-height: 540px) and (pointer: coarse) {
  .nav a,
  .legal-document-page .legal-page-nav a,
  .footer-legal-links a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .calendar-nav {
    width: 44px;
    height: 44px;
    min-width: 44px;
  }

  .availability-toolbar {
    grid-template-columns: 44px minmax(0, 1fr) 44px;
  }

  .availability-day,
  .availability-day-empty,
  .stay-cost-page .availability-day,
  .stay-cost-page .availability-day-empty {
    min-height: 44px;
  }

  .booking-counter-controls {
    grid-template-columns: 44px 30px 44px;
  }

  .booking-counter-controls button,
  .site-footer .footer-contact-app {
    width: 44px;
    height: 44px;
  }

  /* WCAG 2.2 AA target size ≈44 CSS px for remaining dense controls. */
  .gallery-dialog-close,
  .gallery-dialog-nav {
    width: 44px;
    height: 44px;
  }

  .segmented button {
    min-height: 44px;
  }

  .reviews-filter-btn,
  .reviews-share-pill,
  .faq-jump-nav a,
  .availability-clear,
  .map-panel-link,
  .lang-link,
  .booking-checkout-links a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  /* MOB-017 / MOB-018: block-level footer/reviews actions below 24px height. */
  .site-footer .footer-map-link,
  .reviews-leave-link,
  .reviews-leave-link--primary {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    padding-block: .55rem;
  }

  /* MOB-019: tub / location play control was 2.35rem (~38px). */
  .property-page .property-tub-media__toggle,
  .sea-video-toggle.location-scenario-video-toggle {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  /* Match/exceed page-specific 42px pill rules (booking + pricing selectors). */
  body.booking-page .booking-guest-pill,
  .stay-cost-page .stay-config-guest-selector .booking-guest-pill,
  .stay-config-stepper-btn {
    min-height: 44px;
  }

  .booking-mobile-bar-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  }

  .booking-mobile-cta {
    justify-self: end;
    padding-inline: clamp(.7rem, 2.8vw, 1.15rem);
    white-space: normal;
    text-align: center;
    line-height: 1.2;
  }

  .booking-summary-items > div,
  .booking-price-line,
  .legal-card,
  .policy-cancel-card,
  .footer-grid {
    min-width: 0;
  }

  .booking-summary-items dt,
  .booking-summary-items dd,
  .booking-price-line span,
  .booking-price-line strong,
  .legal-card p,
  .legal-card li,
  .footer-address {
    overflow-wrap: anywhere;
  }
}

/* MOB-021: tablet-class coarse pointers lose the ≤700 floor while still being touch.
   Size-only — does not switch phone layout. Fine-pointer desktop ≥701px unchanged. */
@media (pointer: coarse) and (min-width: 701px) and (max-width: 1024px) {
  .calendar-nav {
    width: 44px;
    height: 44px;
    min-width: 44px;
  }

  .availability-toolbar {
    grid-template-columns: 44px minmax(0, 1fr) 44px;
  }

  .availability-day,
  .availability-day-empty,
  .stay-cost-page .availability-day,
  .stay-cost-page .availability-day-empty {
    min-height: 44px;
  }

  .site-footer .footer-map-link,
  .reviews-leave-link,
  .reviews-leave-link--primary {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    padding-block: .55rem;
  }

  .property-page .property-tub-media__toggle {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
}

/* Ultra-narrow booking sticky CTA: allow label wrap without changing CTA meaning. */
@media (max-width: 360px) {
  .booking-mobile-cta {
    white-space: normal;
    text-align: center;
    line-height: 1.2;
    padding-block: .55rem;
  }

  /* MOB-020: reclaim horizontal chrome so day cells stay nearer comfort width. */
  body.booking-page .booking-form {
    padding-inline: .5rem;
  }

  .availability-panel {
    padding-inline: .2rem;
  }

  .availability-weekdays,
  .availability-days {
    gap: 1px;
  }

  .availability-day,
  .availability-day-empty {
    width: 100%;
    min-height: 44px;
  }
}

/* Short phone landscape: keep heroes usable without clipping primary CTA. */
@media (max-height: 500px) and (orientation: landscape) {
  .home-page .hero {
    height: auto;
    min-height: 100svh;
    max-height: none;
    overflow: visible;
  }

  .tour-hero {
    height: 100dvh;
    min-height: 0;
    max-height: 100dvh;
  }

  .tour-hero-content h1 {
    font-size: clamp(1.6rem, 6vh, 2.4rem);
  }
}

/* Branded 404 recovery surface — compact, no LCP hero payload. */
.not-found-page .not-found {
  padding-block: clamp(4.5rem, 12vh, 7.5rem) clamp(3rem, 8vh, 5rem);
}

.not-found-page .not-found__code {
  margin: 0 0 .55rem;
  color: var(--sea);
  font-size: .82rem;
  font-weight: 720;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.not-found-page .not-found h1 {
  margin: 0 0 .75rem;
  max-width: min(22ch, 100%);
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 500;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.not-found-page .not-found p {
  margin: 0 0 1.5rem;
  max-width: 36rem;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.55;
}

.not-found-page .not-found__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

/* Keep form controls ≥16px through tablet landscape to avoid iOS focus zoom
   (Apple Safari Web Content Guide / WKWebView viewport behavior). */
@media (max-width: 900px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  select,
  textarea {
    font-size: 16px;
  }
}

/* Booking refinement belongs after all legacy page rules. */
body.booking-page .booking-tub-step {
  padding: 0;
  border: 1px solid rgba(23, 74, 82, .16);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
  box-shadow: none;
}

body.booking-page .booking-tub-step.is-selected {
  border-color: rgba(45, 117, 128, .38);
  background: rgba(45, 117, 128, .08);
  box-shadow: inset 0 0 0 1px rgba(45, 117, 128, .12);
}

/* MOB-013: min-height only — system text scale must be able to grow the row. */
body.booking-page .booking-tub-summary { min-height: 68px; height: auto; padding: .82rem .95rem; }
body.booking-page .booking-spa-offer { height: auto; }
.site-footer .footer-contact-actions { margin-top: .85rem; gap: .72rem; }
.site-footer .footer-map-link { margin-top: .65rem; }

/* ═══ Emergency mobile QA 2026-07-20 (MQ-scoped; desktop frozen) ═══ */

/* Ultra-narrow (<320): keep hamburger in-viewport without changing ≥320 packing. */
@media (max-width: 300px) {
  .site-header .header-inner {
    padding-inline: .4rem;
    gap: .2rem;
  }
  .site-header .header-actions {
    min-width: 0;
    flex: 1 1 auto;
    max-width: calc(100% - 3.1rem);
  }
  .site-header .header-actions .button {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }
  .site-header .header-actions .button-label-short {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (max-width: 700px) {
  /* MOB-P0-001: brand slot reserved — defeats later width:0 over-hero rule. */
  body.hero-page .site-header--over-hero:not(.site-header--solid) .brand {
    width: auto;
    min-width: 2.75rem;
    max-width: 7.5rem;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    pointer-events: none;
  }

  /*
   * MOB-024 / MOB-031: stable home hero on touch scroll.
   * Root cause of “riding” copy: layout used live vh/dvh offsets while the
   * browser chrome resized during scroll. Lock shell to svh and drop vh-tied
   * margins/scrim heights so the info layer scrolls with the page, not the toolbar.
   */
  .home-page .hero {
    min-height: 100svh;
    height: 100svh;
    max-height: 100svh;
  }

  .home-page .hero-center {
    margin-top: 0;
    padding-top: calc(4.35rem + env(safe-area-inset-top, 0px));
    padding-bottom: calc(2.85rem + env(safe-area-inset-bottom, 0px));
  }

  .home-page .hero-header-scrim {
    height: calc(5.25rem + env(safe-area-inset-top, 0px));
  }

  .home-page .hero::after {
    height: 5.25rem;
  }

  /* Preserve short-landscape allowance after the svh lock above. */
  @media (max-height: 500px) and (orientation: landscape) {
    .home-page .hero {
      height: auto;
      min-height: 100svh;
      max-height: none;
      overflow: visible;
    }
  }

  .page-hero__media,
  .page-hero__media-picture .page-hero__media,
  .home-page .hero-image,
  .home-page .hero-media img {
    touch-action: pan-y;
  }

  /* MOB-026: location intro rule — short consistent accent, no tall mis-draw. */
  .location-page .location-intro-hook {
    border-left-width: 2px;
    border-left-color: rgba(45, 117, 128, .34);
    padding-left: 1rem;
    align-self: start;
  }

  .location-page .location-intro-hook__line {
    max-width: 22ch;
  }

  /* Location: always visual → caption below (fix reverse+video stacking above media). */
  .location-page .image-copy-grid.reverse img,
  .location-page .image-copy-grid.reverse video,
  .location-page .image-copy-grid.reverse .property-tub-media,
  .location-page .image-copy-grid.reverse .location-scenario-media,
  .location-page .image-copy-grid.reverse .location-scenario-media-host {
    order: 0;
  }

  /* Map: keep fixed box; soft placeholder until iframe warms (earlier IO rootMargin in JS). */
  .location-page .map-panel--location {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 22.5rem;
    /* Do not pair min-height with aspect-ratio — browsers expand width past the container. */
    aspect-ratio: auto;
  }

  .location-page .map-panel--location iframe {
    width: 100%;
    max-width: 100%;
    min-height: 22.5rem;
    height: 100%;
  }

  .location-page .map-panel--location:not(.is-map-loaded)::after {
    background:
      radial-gradient(circle at 50% 46%, rgba(45, 117, 128, .14), transparent 46%),
      linear-gradient(165deg, rgba(232, 239, 236, .55), rgba(219, 229, 225, .7));
  }

  /* MOB-027: lightbox caption must not dominate the photo. */
  .gallery-dialog-caption {
    max-width: min(100%, 34ch);
    margin-top: .35rem;
    font-size: .78rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  .gallery-dialog-meta {
    font-size: .72rem;
    gap: .35rem;
  }

  .gallery-dialog-meta span {
    padding: .16rem .42rem;
  }

  .gallery-dialog-frame {
    padding: 3.1rem .55rem .75rem;
  }

  .gallery-dialog img {
    max-height: min(72dvh, calc(100dvh - 7.5rem));
  }

  /* MOB-025: quieter scenic settle on coarse/narrow viewports. */
  html.sealine-motion [data-motion="rise"],
  html.sealine-motion [data-motion="media"] {
    transition-duration: .42s;
  }

  /* MOB-028 / MOB-030: atmosphere shells stay visible with poster. */
  .atmosphere-video-block {
    opacity: 1;
    background: #102226;
  }

  .atmosphere-video-block video {
    background: #102226;
  }
}

@media (max-width: 700px) and (prefers-reduced-motion: reduce) {
  html.sealine-motion [data-motion="rise"],
  html.sealine-motion [data-motion="media"],
  html.sealine-motion-reduce [data-motion="rise"],
  html.sealine-motion-reduce [data-motion="media"] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ═══ MOB-036 cross-device touch QA (2026-07-21) — desktop fine ≥701 frozen ═══ */

/* FAQ search panel: avoid 100vw/dvw bleed on narrow phones. */
@media (max-width: 700px) {
  .faq-search__panel {
    width: min(20rem, 100%);
    max-width: 100%;
    right: 0;
    left: auto;
  }

  .booking-send-total strong {
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* Ultra-narrow header packing (301–360 still tight after ≤300 carve-outs). */
@media (max-width: 360px) {
  .site-header .brand-logo,
  .brand-logo-picture .brand-logo {
    width: min(96px, 30vw);
  }

  .header-actions .button {
    max-width: 9.5rem;
    padding-inline: .55rem;
    font-size: .78rem;
  }

  .header-actions .button-label-full,
  .header-actions .button-label-short {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Calendar: reclaim chrome so 7 day columns stay finger-usable. */
  body.booking-page .booking-form,
  body.booking-page .container {
    padding-inline: .35rem;
  }

  .availability-weekdays span {
    font-size: .58rem;
    letter-spacing: 0;
  }

  .location-page .location-nearby-item {
    min-width: 0;
    max-width: 100%;
    padding: 1rem .85rem;
  }

  .location-page .location-nearby-item h3,
  .location-page .location-nearby-item > p,
  .location-page .location-nearby-item__access {
    overflow-wrap: anywhere;
  }

  .home-house-metrics {
    min-width: 0;
    max-width: 100%;
  }

  .home-house-metrics span {
    white-space: normal;
    overflow-wrap: anywhere;
    min-width: 0;
  }

  .home-manifest,
  .home-manifest__band,
  .home-manifest__notes,
  .home-manifest__notes > li {
    min-width: 0;
    max-width: 100%;
  }

  .home-manifest__notes h3,
  .home-manifest__notes p {
    overflow-wrap: anywhere;
  }

  .booking-page-heading,
  .booking-page-heading h1,
  .booking-page-heading .eyebrow,
  body.hero-page.booking-page .page-hero--inner .booking-page-heading,
  body.hero-page.booking-page .page-hero--inner .booking-page-heading h1 {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .property-review-spotlight,
  .property-review-quote,
  .property-review-quote blockquote,
  .property-review-quote blockquote p,
  .location-page .property-review-quote blockquote p {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .booking-shell,
  .booking-form,
  .availability-panel {
    min-width: 0;
    max-width: 100%;
  }
}

@media (max-width: 320px) {
  .site-header .brand-logo,
  .brand-logo-picture .brand-logo {
    width: min(88px, 28vw);
  }

  .availability-panel {
    padding-inline: 0;
  }

  .availability-weekdays,
  .availability-days {
    gap: 0;
  }
}

/* Short landscape phones (≥701 wide, short height): heroes + lightbox captions. */
@media (max-height: 500px) and (orientation: landscape) {
  .page-hero--inner,
  body.hero-page .sub-hero.page-hero--inner,
  body.hero-page .sub-hero {
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .home-page .hero-center {
    margin-top: 0;
  }

  .gallery-dialog-caption {
    max-width: min(100%, 34ch);
    margin-top: .25rem;
    font-size: .72rem;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  .gallery-dialog-frame {
    padding: 2.4rem .55rem .55rem;
  }

  .gallery-dialog img {
    max-height: min(62dvh, calc(100dvh - 5.5rem));
  }
}

/* Tablet / foldable coarse: extend MOB-021 floors without phone layout. */
@media (pointer: coarse) and (min-width: 701px) and (max-width: 1024px) {
  .gallery-dialog-close,
  .gallery-dialog-nav {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  .segmented button,
  .booking-guest-pill,
  body.booking-page .booking-guest-pill,
  .stay-cost-page .stay-config-guest-selector .booking-guest-pill,
  .reviews-filters button,
  .faq-jump a,
  .site-header .lang-link,
  .property-page .quick-nav a {
    min-height: 44px;
    box-sizing: border-box;
  }

  .booking-counter-controls {
    grid-template-columns: 44px minmax(2rem, 1fr) 44px;
  }

  .booking-counter-controls button {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  /* Reserve brand slot while translucent so actions do not jump on solid. */
  body.hero-page .site-header--over-hero:not(.site-header--solid) .brand,
  body.home-page .site-header--over-hero:not(.site-header--solid) .brand {
    width: auto;
    min-width: 2.75rem;
    max-width: 7.5rem;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    pointer-events: none;
  }

  .gallery-dialog-caption {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    max-width: min(100%, 40ch);
  }

  .gallery-dialog-frame {
    padding-inline: 2.4rem;
  }
}


/* -- Video watch pages (SEO indexable players) -- */
.video-watch-page .video-watch {
  padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(2.5rem, 6vw, 4.5rem);
  background:
    linear-gradient(180deg, rgba(245, 241, 234, .92), rgba(255, 254, 250, .98)),
    radial-gradient(120% 80% at 10% 0%, rgba(45, 117, 128, .08), transparent 55%);
}

.video-watch__layout {
  display: grid;
  gap: clamp(1.25rem, 3vw, 2.25rem);
  align-items: start;
}

@media (min-width: 901px) {
  .video-watch__layout {
    grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr);
    gap: clamp(1.75rem, 3.5vw, 3rem);
  }
}

.video-watch__player-wrap {
  margin: 0;
  border-radius: calc(var(--radius) + .15rem);
  overflow: hidden;
  background: #0f1c1e;
  aspect-ratio: 9 / 16;
  max-height: min(78vh, 920px);
  box-shadow: 0 18px 48px rgba(15, 28, 30, .18);
}

.video-watch__player {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #0f1c1e;
}

.video-watch__copy .eyebrow {
  margin-bottom: .55rem;
}

.video-watch__copy h1 {
  margin: 0 0 .85rem;
  font-family: var(--font-display, Georgia, "Times New Roman", serif);
  font-size: clamp(1.85rem, 4.2vw, 2.75rem);
  line-height: 1.12;
  letter-spacing: -.02em;
}

.video-watch__lead {
  margin: 0 0 1.25rem;
  max-width: 36rem;
  color: var(--muted);
  line-height: 1.55;
}

.video-watch__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem 1.1rem;
  align-items: center;
  margin-bottom: 1.75rem;
}

.video-watch__related h2 {
  margin: 0 0 .65rem;
  font-size: 1rem;
}

.video-watch__related ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .45rem;
}

.video-watch__related a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .16em;
}

.video-hub {
  padding-top: clamp(2rem, 5vw, 3.5rem);
}

.video-hub-grid {
  display: grid;
  gap: 1.15rem;
  margin-top: 1.5rem;
}

@media (min-width: 701px) {
  .video-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.video-hub-card {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: rgba(255, 254, 250, .72);
  border: 1px solid rgba(23, 74, 82, .1);
}

.video-hub-card__link {
  display: grid;
  gap: .7rem;
  padding: .85rem .85rem 1.05rem;
  color: inherit;
  text-decoration: none;
}

.video-hub-card__link img {
  width: 100%;
  aspect-ratio: 9 / 16;
  max-height: 22rem;
  object-fit: cover;
  border-radius: calc(var(--radius) - .15rem);
  background: #dfe7e8;
}

.video-hub-card__link h2 {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.25;
}

.video-hub-card__link p {
  margin: 0;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.45;
}

.video-hub-cta {
  margin: 2rem 0 0;
}

.atmosphere-video-watch-link {
  display: inline-block;
  margin-top: .55rem;
  font-size: .92rem;
  text-decoration: underline;
  text-underline-offset: .16em;
}

.atmosphere-video-watch-links {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1.15rem;
  margin: 1.1rem 0 0;
  justify-content: center;
  font-size: .92rem;
}

.atmosphere-video-watch-links a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .16em;
}
