:root {
  --cream-50: #fffdf8;
  --cream-100: #fbf4e8;
  --cream-200: #f3e6d2;
  --green-700: #354f43;
  --green-800: #294036;
  --green-900: #1d3028;
  --gold-300: #f1d985;
  --gold-400: #e5c35b;
  --gold-700: #806516;
  --ink: #222824;
  --muted: #5d675f;
  --line: #e5d9c7;
  --white: #ffffff;
  --shadow-sm: 0 8px 24px rgba(36, 43, 38, 0.08);
  --shadow-lg: 0 24px 70px rgba(31, 43, 36, 0.16);
  --radius-sm: 14px;
  --radius-md: 22px;
  --radius-lg: 32px;
  --content: 1180px;
  --header-height: 84px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 20px);
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--cream-50);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

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

img {
  height: auto;
}

a {
  color: inherit;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.2em;
}

button,
input,
textarea,
select {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid var(--gold-400);
  outline-offset: 4px;
}

h1,
h2,
h3,
p {
  overflow-wrap: break-word;
}

h1,
h2,
.display-font {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}

.wrap {
  width: min(var(--content), calc(100% - 40px));
  margin-inline: auto;
}

.narrow {
  width: min(860px, calc(100% - 40px));
  margin-inline: auto;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  z-index: 999;
  top: 10px;
  left: 10px;
  transform: translateY(-160%);
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--green-900);
  color: var(--white);
  font-weight: 800;
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header {
  position: sticky;
  z-index: 70;
  top: 0;
  min-height: var(--header-height);
  border-bottom: 1px solid rgba(53, 79, 67, 0.14);
  background: rgba(255, 253, 248, 0.97);
  backdrop-filter: blur(16px);
}

.header-inner {
  display: flex;
  min-height: var(--header-height);
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 44px;
}

.brand img {
  width: 216px;
  height: auto;
}

.desktop-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 15px;
  font-size: 0.875rem;
  font-weight: 780;
}

.desktop-nav > a:not(.button) {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border-bottom: 2px solid transparent;
  text-decoration: none;
  white-space: nowrap;
}

.desktop-nav > a:not(.button):hover,
.desktop-nav > a[aria-current="page"] {
  border-bottom-color: var(--gold-400);
  color: var(--green-800);
}

.language-switch {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding-left: 4px;
}

.language-switch a {
  display: inline-flex;
  min-width: 42px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 850;
  text-decoration: none;
}

.language-switch a[aria-current="true"] {
  border-color: var(--green-800);
  background: var(--green-800);
  color: var(--white);
}

.menu-toggle {
  display: none;
  min-width: 48px;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--green-800);
  border-radius: 999px;
  background: var(--green-800);
  color: var(--white);
  cursor: pointer;
  font-weight: 850;
  touch-action: manipulation;
}

.menu-toggle svg,
.menu-close svg {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
}

.mobile-menu[hidden] {
  display: none;
}

.mobile-menu {
  position: fixed;
  z-index: 1000;
  inset: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(460px, 92vw);
  isolation: isolate;
}

.mobile-menu__backdrop {
  position: relative;
  z-index: 1;
  border: 0;
  background: rgba(15, 25, 20, 0.7);
  cursor: pointer;
}

.mobile-menu__panel {
  position: relative;
  z-index: 2;
  display: flex;
  height: 100%;
  min-width: 0;
  flex-direction: column;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: max(22px, env(safe-area-inset-top)) 24px max(28px, env(safe-area-inset-bottom));
  background: linear-gradient(155deg, var(--green-800), var(--green-900));
  color: var(--white);
  box-shadow: -20px 0 70px rgba(12, 22, 17, 0.3);
}

.mobile-menu__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.mobile-menu__home {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  gap: 9px;
  padding: 7px 12px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 999px;
  color: var(--white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.12rem;
  font-weight: 700;
  text-decoration: none;
  touch-action: manipulation;
}

.mobile-menu__home svg {
  width: 22px;
  height: 22px;
}

.menu-close {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px 13px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 999px;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  font-weight: 850;
  touch-action: manipulation;
}

.mobile-nav {
  display: grid;
  margin-top: 12px;
}

.mobile-nav > a {
  display: flex;
  min-height: 58px;
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  color: var(--white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.22rem;
  font-weight: 700;
  text-decoration: none;
}

.mobile-nav > a::after {
  content: "→";
  margin-left: auto;
  color: var(--gold-300);
  font-family: Inter, ui-sans-serif, sans-serif;
  font-size: 1rem;
}

.mobile-nav > a[aria-current="page"] {
  color: var(--gold-300);
}

.mobile-menu__footer {
  display: grid;
  gap: 14px;
  margin-top: auto;
  padding-top: 24px;
}

.mobile-menu .language-switch {
  padding: 0;
}

.mobile-menu .language-switch a {
  min-width: 52px;
  min-height: 46px;
  border-color: rgba(255, 255, 255, 0.42);
  background: transparent;
  color: var(--white);
}

.mobile-menu .language-switch a[aria-current="true"] {
  background: var(--white);
  color: var(--green-900);
}

.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border: 1px solid var(--green-800);
  border-radius: 999px;
  background: var(--green-800);
  color: var(--white);
  cursor: pointer;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(33, 45, 38, 0.18);
}

.button.gold {
  border-color: var(--gold-400);
  background: var(--gold-400);
  color: #28261e;
}

.button.light {
  border-color: rgba(255, 255, 255, 0.66);
  background: rgba(255, 255, 255, 0.96);
  color: var(--green-900);
}

.button.outline {
  border-color: var(--green-800);
  background: transparent;
  color: var(--green-800);
}

.button.full {
  width: 100%;
}

.hero {
  position: relative;
  display: grid;
  min-height: 680px;
  align-items: end;
  overflow: hidden;
  background: var(--green-900);
}

.hero__media,
.hero__media picture,
.hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero__media img {
  object-fit: cover;
  object-position: center 48%;
}

.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(21, 31, 26, 0.91) 0%, rgba(30, 40, 34, 0.75) 48%, rgba(30, 40, 34, 0.16) 82%),
    linear-gradient(0deg, rgba(21, 29, 25, 0.44), transparent 52%);
}

.hero__content {
  position: relative;
  z-index: 2;
  max-width: 800px;
  padding: 88px 0 76px;
  color: var(--white);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--gold-700);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.hero .eyebrow,
.page-hero .eyebrow,
.section.green .eyebrow,
.contact-card .eyebrow {
  color: var(--gold-300);
}

.eyebrow::before {
  width: 28px;
  height: 2px;
  background: currentColor;
  content: "";
}

.hero h1,
.page-hero h1,
.room-hero h1 {
  margin: 18px 0 20px;
  font-size: clamp(3rem, 6vw, 5.4rem);
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.hero__lead {
  max-width: 720px;
  margin: 0;
  color: #fff9ef;
  font-size: clamp(1.08rem, 1.8vw, 1.28rem);
}

.hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 24px;
}

.hero__facts span {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  padding: 7px 13px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.13);
  color: var(--white);
  font-size: 0.86rem;
  font-weight: 800;
  backdrop-filter: blur(8px);
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  margin-top: 30px;
}

.trust-strip {
  background: var(--cream-100);
  border-bottom: 1px solid var(--line);
}

.trust-strip__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  padding-block: 18px;
}

.trust-item {
  position: relative;
  min-height: 70px;
  padding: 16px 16px 16px 49px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--white);
  box-shadow: var(--shadow-sm);
  color: var(--green-900);
  font-size: 0.92rem;
  font-weight: 800;
}

.trust-item::before {
  position: absolute;
  top: 18px;
  left: 17px;
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 50%;
  background: var(--gold-300);
  color: var(--green-900);
  content: "✓";
  font-size: 0.78rem;
}

.section {
  padding: 88px 0;
}

.section.cream {
  background: var(--cream-100);
}

.section.green {
  background: linear-gradient(145deg, var(--green-800), var(--green-900));
  color: var(--white);
}

.section.compact {
  padding: 58px 0;
}

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.8fr);
  align-items: end;
  gap: 44px;
  margin-bottom: 38px;
}

.section-heading h2,
.content h2,
.contact-card h2,
.legal-card h2 {
  margin: 10px 0 0;
  color: var(--green-900);
  font-size: clamp(2.15rem, 4vw, 3.6rem);
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.section-heading > p,
.content > p {
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
}

.section.green .section-heading h2,
.section.green .section-heading > p {
  color: var(--white);
}

.section.green .section-heading > p {
  opacity: 0.82;
}

.room-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.room-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: var(--shadow-sm);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.room-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.room-card picture,
.room-card img {
  width: 100%;
}

.room-card img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.room-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 20px;
}

.room-card h2,
.room-card h3 {
  margin: 0 0 4px;
  color: var(--green-900);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1.2;
}

.room-meta {
  color: var(--gold-700);
  font-size: 0.88rem;
  font-weight: 850;
}

.room-card p {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.94rem;
}

.room-card .text-link {
  margin-top: auto;
  padding-top: 14px;
}

.text-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #71590f;
  font-weight: 850;
}

.text-link:hover {
  color: var(--green-800);
}

.split {
  display: grid;
  grid-template-columns: 1.04fr 0.96fr;
  align-items: center;
  gap: 60px;
}

.photo-pair {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 12px;
}

.photo-pair picture,
.photo-pair img {
  width: 100%;
  height: 100%;
}

.photo-pair img {
  min-height: 430px;
  border-radius: var(--radius-md);
  object-fit: cover;
}

.photo-pair picture + picture img {
  min-height: 360px;
}

.content h3 {
  margin: 26px 0 7px;
  color: var(--green-900);
  font-size: 1.15rem;
}

.content ul,
.content ol {
  padding-left: 1.25rem;
}

.content li + li {
  margin-top: 8px;
}

.check-list {
  display: grid;
  gap: 0;
  margin: 24px 0;
}

.check-row {
  display: grid;
  grid-template-columns: 42px 1fr;
  align-items: start;
  gap: 11px;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}

.check-row b {
  color: var(--gold-700);
}

.audience-grid,
.info-grid,
.steps-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.audience-card,
.step-card {
  padding: 25px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.08);
}

.audience-card h3,
.step-card h3 {
  margin: 15px 0 6px;
  color: var(--white);
  font-size: 1.08rem;
}

.audience-card p,
.step-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.93rem;
}

.round-icon,
.step-number {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: var(--gold-300);
  color: var(--green-900);
  font-weight: 900;
}

.info-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.info-card {
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}

.info-card h2,
.info-card h3 {
  margin: 0 0 7px;
  color: var(--green-900);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
}

.info-card p {
  margin: 0;
  color: var(--muted);
}

.page-hero {
  padding: 80px 0 72px;
  background: linear-gradient(145deg, var(--green-800), var(--green-900));
  color: var(--white);
}

.page-hero h1 {
  max-width: 920px;
  font-size: clamp(2.8rem, 5vw, 4.9rem);
}

.page-hero p {
  max-width: 760px;
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font-size: 1.1rem;
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 19px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.86rem;
}

.breadcrumbs a {
  color: var(--gold-300);
}

.room-hero {
  padding: 42px 0 70px;
  background: var(--cream-100);
}

.room-hero .breadcrumbs {
  color: var(--muted);
}

.room-hero .breadcrumbs a {
  color: var(--gold-700);
}

.room-hero__grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: center;
  gap: 50px;
}

.room-hero h1 {
  color: var(--green-900);
  font-size: clamp(3rem, 5vw, 5rem);
}

.room-hero p {
  color: var(--muted);
  font-size: 1.08rem;
}

.room-hero__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-lg);
  object-fit: cover;
  box-shadow: var(--shadow-lg);
}

.pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0 0;
}

.pill {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--green-800);
  font-size: 0.87rem;
  font-weight: 800;
}

.detail-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.detail-gallery img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-md);
  object-fit: cover;
}

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

.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--cream-200);
  box-shadow: var(--shadow-sm);
}

.gallery-item picture,
.gallery-item img {
  width: 100%;
  height: 100%;
}

.gallery-item img {
  min-height: 270px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.gallery-item figcaption {
  position: absolute;
  right: 10px;
  bottom: 10px;
  left: 10px;
  padding: 9px 12px;
  border-radius: 12px;
  background: rgba(29, 48, 40, 0.88);
  color: var(--white);
  font-size: 0.86rem;
  font-weight: 750;
  backdrop-filter: blur(8px);
}

.gallery-item.tall {
  grid-row: span 2;
}

.gallery-item.tall img {
  aspect-ratio: 3 / 4;
}

.faq-list {
  max-width: 900px;
}

.faq-list details {
  border-top: 1px solid var(--line);
}

.faq-list details:last-child {
  border-bottom: 1px solid var(--line);
}

.faq-list summary {
  position: relative;
  min-height: 60px;
  padding: 18px 48px 18px 0;
  color: var(--green-900);
  cursor: pointer;
  font-weight: 850;
  list-style: none;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  position: absolute;
  top: 17px;
  right: 6px;
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: var(--cream-200);
  content: "+";
  font-size: 1.2rem;
}

.faq-list details[open] summary::after {
  content: "−";
}

.faq-list details p {
  max-width: 760px;
  margin: 0;
  padding: 0 48px 20px 0;
  color: var(--muted);
}

.contact-grid {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 22px;
}

.contact-card,
.map-card,
.legal-card,
.booking-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}

.contact-card {
  padding: 34px;
  background: var(--green-900);
  color: var(--white);
}

.contact-card h2 {
  color: var(--white);
  font-size: 2rem;
}

.contact-card a:not(.button) {
  color: var(--gold-300);
  font-weight: 800;
}

.contact-list {
  display: grid;
  gap: 20px;
  margin: 26px 0;
}

.contact-list p {
  margin: 3px 0 0;
}

.map-card {
  display: grid;
  min-height: 470px;
  align-content: end;
  overflow: hidden;
  background:
    linear-gradient(0deg, rgba(29, 48, 40, 0.86), rgba(29, 48, 40, 0.08) 68%),
    image-set(url("/assets/photos/shared-03-1024.avif") type("image/avif"), url("/assets/photos/shared-03-1024.webp") type("image/webp"), url("/assets/photos/shared-03.jpg") type("image/jpeg")) center / cover;
}

.map-card__content {
  padding: 34px;
  color: var(--white);
}

.map-card__content h2 {
  margin: 0 0 10px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.25rem;
  line-height: 1.1;
}

.home-location {
  background: var(--cream-100);
}

.home-location__grid {
  display: grid;
  grid-template-columns: minmax(300px, 0.78fr) minmax(0, 1.22fr);
  gap: 22px;
  align-items: stretch;
}

.home-location__card,
.home-map {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.home-location__card {
  padding: clamp(28px, 4vw, 44px);
  background: var(--white);
}

.home-location__card h3,
.home-map__placeholder h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  line-height: 1.08;
}

.home-location__address {
  margin: 14px 0 26px;
  color: var(--green-800);
  font-size: 1.08rem;
  font-weight: 750;
}

.home-location__facts {
  display: grid;
  gap: 0;
  margin: 0 0 30px;
}

.home-location__facts > div {
  display: grid;
  grid-template-columns: 98px 1fr;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
}

.home-location__facts dt {
  color: var(--green-800);
  font-weight: 850;
}

.home-location__facts dd {
  margin: 0;
  color: var(--muted);
}

.home-map {
  position: relative;
  min-height: 500px;
  background: var(--green-900);
}

.home-map iframe {
  width: 100%;
  height: 100%;
  min-height: 500px;
  border: 0;
  background: var(--cream-100);
}

.home-map iframe[hidden],
.home-map__placeholder[hidden] {
  display: none;
}

.home-map__placeholder {
  display: flex;
  min-height: 500px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(30px, 6vw, 68px);
  background: linear-gradient(145deg, var(--green-800), var(--green-900));
  color: var(--white);
}

.home-map__placeholder .eyebrow {
  color: var(--gold-300);
}

.home-map__placeholder h3 {
  color: var(--white);
}

.home-map__placeholder p {
  max-width: 560px;
  margin: 18px 0 24px;
  color: rgba(255, 255, 255, 0.84);
}

.home-map__link {
  margin-top: 18px;
  color: var(--gold-300);
  font-weight: 800;
  text-underline-offset: 4px;
}

.booking-card {
  padding: 24px;
}

.booking-status {
  display: grid;
  min-height: 240px;
  place-items: center;
  padding: 28px;
  color: var(--muted);
  text-align: center;
}

#previo-booking-engine iframe {
  display: block;
  width: 100%;
  min-height: 1520px;
  border: 0;
}

.booking-fallback {
  display: grid;
  max-width: 680px;
  min-height: 260px;
  place-items: center;
  margin: auto;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--cream-100);
  text-align: center;
}

.booking-fallback[hidden] {
  display: none;
}

.notice {
  padding: 17px 19px;
  border-left: 4px solid var(--gold-400);
  border-radius: 0 12px 12px 0;
  background: #fff7d9;
  color: #554817;
}

.prose {
  color: var(--muted);
}

.prose h2 {
  margin: 42px 0 12px;
  color: var(--green-900);
  font-size: clamp(1.7rem, 3vw, 2.4rem);
}

.prose h3 {
  margin: 28px 0 8px;
  color: var(--green-900);
  font-size: 1.2rem;
}

.prose p,
.prose li {
  max-width: 78ch;
}

.prose a {
  color: var(--gold-700);
  font-weight: 750;
}

.table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}

table {
  width: 100%;
  border-collapse: collapse;
  background: var(--white);
}

th,
td {
  padding: 13px 15px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

th {
  background: var(--cream-100);
  color: var(--green-900);
}

.cta {
  padding: 66px 0;
  background: var(--gold-300);
  color: #2a2d27;
}

.cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.cta h2 {
  margin: 0 0 8px;
  font-size: clamp(2.2rem, 4vw, 3.55rem);
  line-height: 1.05;
}

.cta p {
  margin: 0;
}

.site-footer {
  padding: 56px 0 96px;
  background: #242b27;
  color: #e7ebe8;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr 1fr;
  gap: 36px;
}

.site-footer .brand {
  display: inline-flex;
  padding: 9px 12px;
  border-radius: 10px;
  background: var(--white);
}

.site-footer .brand img {
  width: 190px;
}

.site-footer h2,
.site-footer h3 {
  margin: 0 0 10px;
  color: var(--gold-300);
  font-family: Inter, ui-sans-serif, sans-serif;
  font-size: 0.82rem;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.site-footer p,
.site-footer a {
  color: #cbd2cd;
  font-size: 0.92rem;
}

.site-footer a:hover {
  color: var(--white);
}

.footer-links {
  display: grid;
  gap: 6px;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 38px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  color: #aeb7b1;
  font-size: 0.82rem;
}

.mobile-booking {
  display: none;
}

.cookie-consent[hidden] {
  display: none;
}

.cookie-consent {
  position: fixed;
  z-index: 150;
  right: 20px;
  bottom: 20px;
  width: min(460px, calc(100% - 40px));
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: var(--shadow-lg);
}

.cookie-consent h2 {
  margin: 0 0 6px;
  color: var(--green-900);
  font-size: 1.15rem;
}

.cookie-consent p {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}

.cookie-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 16px;
}

.cookie-actions .button {
  width: 100%;
  min-height: 48px;
  padding-inline: 12px;
  font-size: 0.87rem;
}

.cookie-settings-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-top: 5px;
  color: var(--green-800);
  font-size: 0.84rem;
  font-weight: 750;
}

.error-page {
  display: grid;
  min-height: calc(100vh - var(--header-height));
  place-items: center;
  padding: 70px 0;
  background: var(--cream-100);
}

.error-card {
  max-width: 760px;
  padding: 50px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-lg);
  text-align: center;
}

.error-code {
  display: block;
  color: var(--gold-700);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(4rem, 12vw, 8rem);
  font-weight: 700;
  line-height: 0.9;
}

.error-card h1 {
  margin: 18px 0 10px;
  color: var(--green-900);
  font-size: clamp(2rem, 4vw, 3.2rem);
}

@media (max-width: 1160px) {
  .desktop-nav {
    gap: 10px;
    font-size: 0.82rem;
  }

  .brand img {
    width: 190px;
  }
}

@media (max-width: 1099px) {
  :root {
    --header-height: 76px;
  }

  .desktop-nav {
    display: none;
  }

  .menu-toggle {
    display: inline-flex;
  }

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

  .audience-grid,
  .steps-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

@media (max-width: 820px) {
  .section-heading,
  .split,
  .room-hero__grid,
  .contact-grid,
  .home-location__grid {
    grid-template-columns: 1fr;
  }

  .split,
  .room-hero__grid {
    gap: 38px;
  }

  .section-heading {
    gap: 14px;
  }

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

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

  .home-map,
  .home-map iframe,
  .home-map__placeholder {
    min-height: 430px;
  }

  .gallery-item.tall {
    grid-row: auto;
  }

  .gallery-item.tall img {
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 700px) {
  :root {
    --header-height: 70px;
  }

  .wrap,
  .narrow {
    width: min(var(--content), calc(100% - 28px));
  }

  .brand img {
    width: 150px;
  }

  .header-inner {
    gap: 12px;
  }

  .menu-toggle {
    min-width: 0;
    padding: 7px 12px;
  }

  .mobile-menu {
    display: grid;
    grid-template-columns: 1fr;
  }

  .mobile-menu__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
  }

  .mobile-menu__panel {
    position: absolute;
    inset: 0;
    width: 100%;
    z-index: 2;
  }

  .hero {
    min-height: 700px;
  }

  .hero__media img {
    object-position: 62% center;
  }

  .hero__media::after {
    background: rgba(24, 35, 29, 0.73);
  }

  .hero__content {
    padding: 62px 0 50px;
  }

  .hero h1,
  .page-hero h1,
  .room-hero h1 {
    font-size: clamp(2.55rem, 12.8vw, 3.8rem);
    line-height: 1;
  }

  .actions {
    flex-direction: column;
    align-items: stretch;
  }

  .actions .button {
    width: 100%;
  }

  .hero__facts {
    gap: 6px;
  }

  .hero__facts span {
    padding-inline: 10px;
    font-size: 0.78rem;
  }

  .trust-strip__grid,
  .room-grid,
  .audience-grid,
  .steps-grid,
  .info-grid,
  .gallery-grid,
  .detail-gallery,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .trust-item {
    min-height: 58px;
  }

  .section {
    padding: 62px 0;
  }

  .page-hero {
    padding: 56px 0 52px;
  }

  .room-hero {
    padding: 28px 0 56px;
  }

  .photo-pair {
    grid-template-columns: 1fr 1fr;
  }

  .photo-pair img,
  .photo-pair picture + picture img {
    min-height: 250px;
  }

  .cta__inner,
  .footer-bottom {
    align-items: stretch;
    flex-direction: column;
  }

  .cta .button {
    width: 100%;
  }

  .site-footer {
    padding-bottom: 118px;
  }

  .mobile-booking {
    position: fixed;
    z-index: 60;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    padding: 9px 14px max(9px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: rgba(255, 253, 248, 0.97);
    box-shadow: 0 -10px 30px rgba(31, 43, 36, 0.12);
    backdrop-filter: blur(12px);
  }

  .mobile-booking .button {
    width: 100%;
  }

  .cookie-consent {
    right: 14px;
    bottom: 78px;
    left: 14px;
    width: auto;
    padding: 18px;
  }

  .menu-open .mobile-booking,
  .menu-open .cookie-consent {
    display: none !important;
  }

  .booking-card {
    padding: 8px;
  }

  .error-card {
    padding: 34px 22px;
  }
}

@media (max-width: 420px) {
  .cookie-actions {
    grid-template-columns: 1fr;
  }

  .photo-pair {
    grid-template-columns: 1fr;
  }

  .photo-pair img,
  .photo-pair picture + picture img {
    min-height: 260px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media print {
  .site-header,
  .mobile-booking,
  .cookie-consent,
  .cta {
    display: none !important;
  }

  body {
    background: var(--white);
    color: #000;
  }

  .page-hero {
    padding: 20px 0;
    background: transparent;
    color: #000;
  }

  .page-hero p,
  .breadcrumbs {
    color: #333;
  }
}

/* One additive design layer, compatible with the existing static website. */
button.pv-link{background:none;border:0;border-bottom:1px solid #789284;color:inherit;cursor:pointer} .pv-checkin .pv-link{color:#e1ce99}.pv-photo-controls button{min-width:44px;min-height:44px}
:root{--cream-50:#fdfcf9;--cream-100:#f5f2e9;--cream-200:#e9e5d8;--green-700:#345044;--green-800:#264238;--green-900:#203a30;--gold-400:#e6c775;--gold-300:#f1d895;--ink:#233c32;--muted:#667168;--line:#e2e5dc;--content:1240px;--header-height:82px}
body{color:var(--ink);background:var(--cream-50);font-size:16px;line-height:1.6}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}h1,h2{font-weight:400}p{color:var(--muted)}.wrap{width:min(var(--content),calc(100% - 72px))}.site-header{border-bottom:1px solid var(--line);background:var(--cream-50)}.header-inner{min-height:82px}.brand{width:190px}.desktop-nav{gap:19px}.desktop-nav>a:not(.button){font-size:13px;font-weight:500}.language-switch{gap:2px}.language-switch a{width:35px;height:38px;min-height:38px;border:0;border-radius:6px;font-size:12px}.language-switch a[aria-current=true]{background:var(--green-900);color:white}.button{border-radius:9px;font-size:14px;font-weight:600;min-height:48px;transition:transform .18s,background .18s;gap:20px}.button:hover{transform:translateY(-2px)}.button.gold{background:var(--gold-400);color:#253c32}.button.outline{border:1px solid var(--green-800);background:transparent;color:var(--green-800)}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.18em;color:#8c6b28;margin-bottom:16px;display:block}.pv-link{text-decoration:none;font-size:13px;font-weight:600;border-bottom:1px solid #789284;padding:8px 0;min-height:44px;display:inline-flex;align-items:center;gap:14px}.pv-topline{padding:9px 36px;background:var(--green-900);color:#ecf1e5;font-size:11px;letter-spacing:.035em;display:flex;justify-content:space-between;gap:15px}.pv-topline span{opacity:.8}.pv-hero{display:grid;grid-template-columns:.82fr 1.18fr;gap:50px;align-items:center;padding:44px 0 40px}.pv-hero h1{font-size:clamp(42px,4.8vw,67px);line-height:1.045;margin:0 0 23px;max-width:550px}.pv-hero h1 em{font-style:italic;color:#607560}.pv-hero-copy>p{font-size:16px;max-width:430px;margin-bottom:24px}.pv-actions{display:flex;gap:15px;flex-wrap:wrap;align-items:center}.pv-guests{font-size:11px;color:#617063;margin-top:23px}.pv-hero-photos{display:grid;grid-template-columns:1fr .65fr;grid-template-rows:345px 142px;gap:10px;position:relative}.pv-photo{border:0;padding:0;border-radius:12px;overflow:hidden;background:#e3e4db;position:relative;display:block;width:100%;cursor:pointer}.pv-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.pv-photo:hover img{transform:scale(1.025)}.pv-hero-photos .pv-photo:first-child{grid-column:1/-1}.pv-hero-photos .pv-caption{position:absolute;bottom:14px;left:14px;background:#fffffff0;padding:7px 10px;border-radius:6px;font-size:10px;color:#203b31}.pv-photo-label{position:absolute;left:16px;bottom:13px;color:white;text-shadow:0 1px 6px #000;font-size:12px;font-weight:600}.pv-proofline{border:1px solid var(--line);border-radius:10px;background:#f4f5ef;display:flex;align-items:flex-start;gap:14px;padding:17px 22px;margin-bottom:30px;font-size:12px;line-height:1.6}.pv-proofline b{color:var(--ink);font-weight:600}.pv-proofline span{color:var(--muted)}.pv-proofline svg{flex:none;width:22px;height:22px;color:var(--green-800)}.pv-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:20px 0 50px}.pv-benefit{padding:0 20px;display:flex;align-items:center;gap:13px;border-right:1px solid var(--line)}.pv-benefit:first-child{padding-left:0}.pv-benefit:last-child{border:0}.pv-benefit svg{width:27px;height:27px;flex:none;color:#60765f}.pv-benefit b{font-size:12px;display:block;font-weight:600}.pv-benefit small{font-size:10px;color:var(--muted);display:block}.pv-section{padding:72px 0}.pv-section.soft{background:var(--cream-100)}.pv-section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.pv-section h2{font-size:clamp(33px,3.3vw,46px);line-height:1.13;margin-bottom:15px}.pv-section-head p{font-size:14px;max-width:510px;margin:0}.pv-controls{display:flex;gap:8px;flex:none}.pv-round{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfd5cb;border-radius:50%;color:var(--ink);background:transparent;font-size:22px;cursor:pointer}.pv-round:hover{background:white}.pv-room-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/3);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 18px;scrollbar-width:thin;scrollbar-color:#bcc6b7 transparent}.pv-room{scroll-snap-align:start;background:#fff;border:1px solid #e2e5dc;border-radius:15px;overflow:hidden;box-shadow:0 4px 16px #2d3b3010}.pv-room-photo{position:relative;height:230px;overflow:hidden}.pv-room-photo>button:first-child{height:100%;border-radius:0}.pv-room-image{width:100%;height:100%;object-fit:cover}.pv-photo-controls{position:absolute;right:11px;bottom:11px;display:flex;align-items:center;gap:3px;background:white;border-radius:6px;padding:2px}.pv-photo-controls button{border:0;background:white;color:var(--ink);font-size:19px;width:36px;height:40px;cursor:pointer;border-radius:5px}.pv-photo-controls span{font-size:10px;min-width:28px;text-align:center}.pv-tag{position:absolute;top:14px;left:14px;border-radius:5px;background:#fffcf7ed;padding:5px 9px;font-size:10px;color:#294034;pointer-events:none}.pv-room-body{padding:22px}.pv-room-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.pv-room h3{font:400 28px Georgia,serif;margin:0}.pv-room-heading a{font-size:11px;color:var(--muted);min-height:44px;display:flex;align-items:center;text-decoration:none}.pv-meta{color:var(--muted);font-size:12px;margin:6px 0 16px;min-height:19px}.pv-room-perks{font-size:11px;color:#65705f;padding-top:13px;border-top:1px solid var(--line);margin-bottom:16px}.pv-room .button{width:100%;justify-content:space-between;background:#f0f3eb;color:var(--green-900);border:0;min-height:45px;font-size:12px}.pv-room .button:hover{background:#dce5d7}.pv-room-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.pv-room-bottom p{font-size:11px;margin:0}.pv-editorial{display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}.pv-editorial-photos{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;align-items:center}.pv-editorial-photos .pv-photo:first-child{height:435px}.pv-editorial-photos .pv-photo:last-child{height:310px}.pv-editorial h2{margin-bottom:24px}.pv-reasons{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px;margin:30px 0}.pv-reasons svg{width:25px;height:25px;color:#738263;margin-bottom:10px}.pv-reasons h3{font:600 13px Arial,sans-serif;letter-spacing:0;margin:0 0 5px}.pv-reasons p{font-size:12px;line-height:1.65;margin:0}.pv-checkin{background:var(--green-900);color:#fbfaf2}.pv-checkin .eyebrow{color:#ddc58a}.pv-checkin p{color:#cbd6ca}.pv-checkin .pv-section-head p{max-width:430px}.pv-checkin h2{max-width:500px}.pv-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin:37px 0}.pv-step{position:relative}.pv-step-num{font:400 28px Georgia,serif;color:#dcc785;border:1px solid #7f958357;width:57px;height:57px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:19px}.pv-step:not(:last-child):after{content:'→';position:absolute;right:0;top:13px;color:#829887}.pv-step h3{font:500 15px Arial,sans-serif;letter-spacing:0;color:white;margin:0 0 8px}.pv-step p{font-size:12px;max-width:180px}.pv-checkin-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #6b877450;padding-top:25px}.pv-checkin-bottom p{font-size:12px;margin:0}.pv-gallery{display:grid;grid-template-columns:1.4fr 1fr .8fr;grid-template-rows:190px 190px;gap:13px}.pv-gallery .pv-photo:first-child{grid-row:1/3}.pv-gallery .pv-photo:last-child{grid-column:3;grid-row:1/3}.pv-gallery .pv-photo:nth-child(2){grid-column:2;grid-row:1}.pv-gallery .pv-photo:nth-child(3){grid-column:2;grid-row:2}.pv-location{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.pv-location h2{max-width:370px}.pv-location p{font-size:14px}.pv-address{color:var(--ink);font-size:15px;margin:25px 0}.pv-location-points{display:grid;gap:10px;margin:22px 0;font-size:12px}.pv-location-points span{display:flex;gap:10px;align-items:center}.pv-location-points svg{width:17px;height:17px;color:#748464}.pv-map{position:relative;min-height:350px;display:grid;place-items:center;background:#e6eadf;border-radius:14px;overflow:hidden;text-align:center;padding:35px}.pv-map-icon{width:44px;height:44px;color:#6e805e;margin:0 auto 17px}.pv-map h3{font:400 26px Georgia,serif;margin:0 0 8px}.pv-map p{font-size:12px;max-width:300px;margin:0 auto 20px}.pv-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.pv-map a{display:block;font-size:11px;margin-top:12px}.pv-faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px}.pv-faq details{border-bottom:1px solid var(--line);padding:18px 0}.pv-faq summary{cursor:pointer;font-size:14px;min-height:30px;list-style:none;display:flex;justify-content:space-between;gap:15px}.pv-faq summary:after{content:'+';font-size:19px;color:#7a8a70}.pv-faq details[open] summary:after{content:'−'}.pv-faq details p{font-size:13px;line-height:1.8;margin:10px 0 0}.pv-final{padding:66px 30px;text-align:center;background:#e8eade;border-radius:18px;margin-bottom:66px}.pv-final h2{font-size:45px;line-height:1.1;margin-bottom:16px}.pv-final p{font-size:14px}.pv-final .button{margin-top:8px}.pv-final small{display:block;font-size:11px;margin-top:17px;color:var(--muted)}.site-footer{background:var(--green-900);color:white}.site-footer p,.site-footer a{color:#dae1d4}.site-footer .brand{background:#fffdf9;padding:12px;border-radius:5px;width:210px}.site-footer h2{font-size:10px;letter-spacing:.12em}.site-footer p,.footer-links a{font-size:12px}.footer-grid{grid-template-columns:1.1fr 1fr 1fr .8fr;gap:35px}.footer-bottom{font-size:10px;border-top-color:#ffffff26}.pv-sticky{display:none}.cookie-consent{bottom:20px;left:auto;right:20px;width:min(380px,calc(100% - 40px));border-radius:12px;box-shadow:0 6px 45px #243d3229;padding:20px;border-color:#d3d9ce}.cookie-consent h2{font:500 18px Georgia,serif}.cookie-consent p{font-size:11px}.cookie-actions .button{font-size:12px;min-height:44px;flex:1;background:white;border:1px solid #56725f;color:#264238}.cookie-settings-link{font-size:11px}.pv-dialog{border:0;border-radius:16px;background:var(--cream-50);padding:0;width:min(880px,calc(100vw - 32px));max-height:90dvh;box-shadow:0 30px 100px #0006;color:var(--ink);overflow:auto}.pv-dialog::backdrop{background:#10261ed4}.pv-dialog-top{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;position:sticky;top:0;background:var(--cream-50);z-index:3;border-bottom:1px solid var(--line)}.pv-dialog-top span{font-size:11px;letter-spacing:.08em}.pv-dialog-top button{font-size:13px;border:1px solid #bbc8b9;border-radius:6px;background:transparent;min-height:44px;padding:5px 14px;color:var(--ink);cursor:pointer}.pv-dialog-content{padding:28px}.pv-dialog-content h2{font-size:40px;margin-bottom:10px}.pv-detail-photos{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;margin:25px 0}.pv-detail-photos img{width:100%;height:275px;object-fit:cover;border-radius:10px}.pv-detail-note{padding:16px;background:#eef0e7;border-radius:9px;font-size:13px}.pv-detail-extras{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.pv-detail-extras img{width:100%;height:180px;object-fit:cover;border-radius:8px}.pv-detail-extras p{font-size:11px;margin-top:7px}.pv-lightbox-image{width:100%;max-height:67dvh;object-fit:contain;background:#e9eae1}.pv-lightbox-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 25px;font-size:12px}.pv-detail-book{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:26px}.pv-detail-book p{margin:0;font-size:13px}.pv-dialog-open{overflow:hidden}.pv-dialog-open .pv-sticky{display:none}.pv-small-note{font-size:11px;color:var(--muted);text-align:center;margin-top:20px}.mobile-menu__panel{background:var(--green-900)}.mobile-menu__home{font-size:25px}.mobile-nav a{font:400 27px Georgia,serif;letter-spacing:-.02em}.menu-close{font-size:14px}.mobile-menu__footer .language-switch a{width:48px;height:44px}
@media(min-width:1500px){.pv-hero-photos{grid-template-rows:370px 150px}}
@media(max-width:1099px){.wrap{width:calc(100% - 48px)}.pv-hero{gap:30px;grid-template-columns:.9fr 1.1fr}.pv-hero h1{font-size:49px}.pv-hero-photos{grid-template-rows:300px 130px}.pv-editorial,.pv-location,.pv-faq{gap:36px}.pv-room-track{grid-auto-columns:calc((100% - 24px)/2)}.pv-editorial-photos .pv-photo:first-child{height:370px}.pv-editorial-photos .pv-photo:last-child{height:250px}.pv-topline{padding-inline:24px}.pv-benefit{padding:0 12px}.pv-benefit b{font-size:11px}.pv-benefit small{font-size:10px}.pv-benefit svg{width:22px;height:22px}.pv-sticky{position:fixed;bottom:0;left:0;right:0;padding:10px 20px calc(10px + env(safe-area-inset-bottom));background:#fffdf9f5;backdrop-filter:blur(10px);border-top:1px solid #d9dfd4;display:flex;align-items:center;gap:20px;justify-content:space-between;z-index:80}.pv-sticky small{font-size:10px;color:var(--muted)}.pv-sticky b{font-size:12px;display:block;color:var(--green-900)}.pv-sticky .button{min-height:45px;font-size:12px;flex:none}.site-footer{padding-bottom:105px}body.menu-open .pv-sticky,body.menu-open .cookie-consent{display:none}.cookie-consent{bottom:84px}.footer-grid{grid-template-columns:1fr 1fr}.pv-steps{gap:18px}}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.header-inner{min-height:65px}.site-header{--header-height:65px}.brand{width:160px}.menu-toggle{min-height:44px;padding:6px 10px;font-size:12px;border-radius:7px}.pv-topline{padding:7px 18px;font-size:9px}.pv-topline span{display:none}.pv-hero{display:flex;flex-direction:column;gap:24px;padding:28px 0 24px}.pv-hero-copy{width:100%}.pv-hero h1{font-size:43px;max-width:500px;line-height:1.045;margin-bottom:18px}.pv-hero-copy>p{font-size:13px;line-height:1.7;margin-bottom:18px;max-width:390px}.eyebrow{font-size:9px;margin-bottom:15px}.pv-hero .pv-actions{gap:18px}.pv-hero .button{font-size:12px;padding:12px 17px}.pv-link{font-size:12px}.pv-guests{font-size:10px;margin-top:17px}.pv-hero-photos{width:100%;grid-template-rows:235px 105px;gap:8px;grid-template-columns:1.1fr .9fr}.pv-proofline{padding:14px;margin-bottom:0;font-size:11px;gap:10px}.pv-proofline svg{width:18px;height:18px}.pv-benefits{grid-template-columns:1fr 1fr;padding:26px 0 32px;gap:22px 12px}.pv-benefit{border:0;padding:0;gap:10px}.pv-benefit b{font-size:11px}.pv-benefit small{font-size:9px}.pv-section{padding:44px 0}.pv-section h2{font-size:34px;margin-bottom:14px}.pv-section-head{gap:12px;margin-bottom:24px;align-items:center}.pv-section-head p{font-size:12px}.pv-room-track{grid-auto-columns:88%;gap:14px;padding-bottom:15px}.pv-round{width:40px;height:44px;font-size:20px}.pv-controls{gap:4px}.pv-room-photo{height:220px}.pv-room-body{padding:20px}.pv-room h3{font-size:29px}.pv-meta{font-size:12px}.pv-room-bottom{align-items:start;flex-direction:column;gap:10px;margin-top:10px}.pv-room-bottom p{font-size:10px}.pv-editorial{display:flex;flex-direction:column-reverse;gap:28px}.pv-editorial-photos{width:100%;gap:10px}.pv-editorial-photos .pv-photo:first-child{height:300px}.pv-editorial-photos .pv-photo:last-child{height:220px}.pv-reasons{gap:23px 18px;margin:25px 0}.pv-editorial p{font-size:13px}.pv-reasons p{font-size:12px}.pv-checkin .pv-section-head{display:block}.pv-steps{grid-template-columns:1fr;gap:0;margin:24px 0}.pv-step{display:grid;grid-template-columns:45px 1fr;column-gap:16px;padding-bottom:23px}.pv-step-num{grid-row:1/3;width:42px;height:42px;font-size:21px;margin:0}.pv-step h3{font-size:14px;margin:0 0 5px}.pv-step p{max-width:none;font-size:12px;margin:0}.pv-step:not(:last-child):after{content:'';width:1px;left:21px;right:auto;top:46px;height:calc(100% - 49px);background:#82988760}.pv-checkin-bottom{flex-direction:column;align-items:start}.pv-checkin-bottom p{font-size:11px}.pv-gallery{grid-template-columns:1fr 1fr;grid-template-rows:215px 175px;gap:9px}.pv-gallery .pv-photo:first-child{grid-column:1/-1;grid-row:1}.pv-gallery .pv-photo:nth-child(2){grid-column:1;grid-row:2}.pv-gallery .pv-photo:nth-child(3){display:none}.pv-gallery .pv-photo:last-child{grid-column:2;grid-row:2}.pv-photo-label{font-size:11px}.pv-location,.pv-faq{grid-template-columns:1fr;gap:26px}.pv-location h2{max-width:none}.pv-map{min-height:305px;padding:25px}.pv-faq details{padding:16px 0}.pv-faq summary{font-size:13px}.pv-final{border-radius:12px;padding:37px 20px;margin-bottom:38px}.pv-final h2{font-size:35px}.pv-final p{font-size:12px}.pv-final small{font-size:10px}.site-footer .brand{width:175px}.footer-grid{gap:24px}.footer-grid>div:first-child{grid-column:1/-1}.site-footer p,.footer-links a{font-size:11px;overflow-wrap:anywhere}.footer-bottom{font-size:9px}.pv-sticky{padding-inline:14px;gap:9px}.pv-sticky .button{padding:10px 14px}.pv-sticky small{font-size:9px}.pv-sticky b{font-size:10px}.pv-detail-photos{gap:8px;margin:20px 0;grid-template-columns:1fr}.pv-detail-photos img{height:220px}.pv-detail-photos img:last-child{height:165px}.pv-dialog-content{padding:20px}.pv-dialog-content h2{font-size:34px}.pv-detail-book{align-items:stretch;flex-direction:column}.pv-detail-extras img{height:130px}.pv-dialog-top{padding:10px 14px}.pv-dialog-top span{font-size:9px}.pv-dialog-top button{font-size:11px}.pv-small-note{font-size:10px}.pv-lightbox-controls{padding:12px;font-size:11px}.cookie-consent{right:12px;width:calc(100% - 24px);padding:16px}.cookie-consent p{margin-bottom:13px}}
@media(max-width:350px){.pv-hero h1{font-size:38px}.pv-hero .pv-actions{gap:10px}.pv-actions .pv-link{font-size:11px}.pv-hero .button{font-size:11px;padding:10px 13px}.pv-hero-photos{grid-template-rows:210px 95px}.pv-section h2{font-size:30px}.pv-controls{display:none}.pv-room-track{grid-auto-columns:92%}.pv-sticky small{display:none}.pv-sticky .button{width:100%;justify-content:center}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Refinement of the existing preview; no new framework or production overrides. */
.pv-hero-copy>.eyebrow{font-size:11px;letter-spacing:.14em}.pv-hero-copy>p{max-width:390px}.pv-proofline{max-width:100%;padding:15px 20px}.pv-benefits{padding-bottom:36px}.pv-section{padding-block:62px}.pv-room-photo{height:248px}.pv-room-body{padding:20px}.pv-room-heading a{min-height:44px;padding-left:8px}.pv-room-perks{font-size:11px;line-height:1.6}.pv-room .button{background:var(--green-900);color:#fffdf7;min-height:48px}.pv-room .button:hover{background:var(--green-700)}.pv-room .button span{color:var(--gold-400)}.pv-photo-controls{box-shadow:0 2px 12px #14271c24}.pv-photo-controls button{min-width:44px;min-height:44px}.pv-booking{background:#edf0e5;border-top:1px solid #dae0d1}.pv-booking h2{margin-bottom:12px}.pv-booking-proof{display:flex;gap:10px;align-items:center;font-size:11px;color:#516149}.pv-booking-proof svg{width:24px;height:24px}.pv-booking-box{padding:30px;background:#fffdf9;border:1px solid #dce2d3;border-radius:14px;box-shadow:0 9px 28px #2642380a}.pv-booking-box>[data-booking-intro]{text-align:center;padding:16px 0 25px}.pv-booking-box>[data-booking-intro] p{font-size:13px}.pv-booking-widget:empty{display:none}.pv-booking-widget iframe{border:0;width:100%;max-width:100%;min-height:0}.pv-booking-status{font-size:13px;color:var(--ink);margin:12px 0;padding:15px;background:#f0f3eb;border-radius:8px}.pv-booking-fallback{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:24px;margin-top:15px;border-top:1px solid var(--line)}.pv-booking-fallback p{font-size:12px;max-width:420px;margin:0}.pv-booking-fallback .button{font-size:12px}.pv-cookie-reset{background:none;color:#e3e9df;border:0;border-bottom:1px solid #91a08f;padding:8px 0;min-height:44px;font-size:11px;cursor:pointer}.pv-cookie-reset:hover{color:white}.pv-booking [tabindex="-1"]:focus{outline:none}.pv-room-track{scrollbar-width:auto}.pv-room-bottom .pv-link{flex-shrink:0}
@media(max-width:1099px){.pv-booking-fallback{align-items:start;flex-direction:column}.pv-booking .pv-section-head{align-items:start}.pv-booking-proof{max-width:180px}.pv-sticky[hidden]{display:none!important}}
@media(max-width:700px){.pv-section{padding-block:40px}.pv-hero-copy>.eyebrow{font-size:10px}.pv-hero{padding-top:24px}.pv-hero-photos{grid-template-rows:250px 108px}.pv-room-photo{height:230px}.pv-proofline{font-size:10px}.pv-proofline b{display:block;margin-bottom:4px}.pv-booking .pv-section-head{display:block}.pv-booking-proof{max-width:none;margin-top:20px}.pv-booking-box{padding:14px 10px;border-radius:10px}.pv-booking-fallback{gap:14px;padding:18px 8px 5px}.pv-booking-fallback .button{width:100%;font-size:11px;justify-content:center}.pv-booking-widget iframe{min-height:0}.pv-booking-status{font-size:12px}.pv-booking-box>[data-booking-intro]{padding:15px 8px}.pv-booking-box>[data-booking-intro] p{font-size:12px}.pv-photo-controls button{min-width:44px;min-height:44px}.pv-gallery .pv-photo:nth-child(3){display:block;grid-column:1;grid-row:3}.pv-gallery .pv-photo:last-child{grid-column:2;grid-row:3}.pv-gallery{grid-template-rows:215px 155px 155px}.pv-gallery .pv-photo:nth-child(2){grid-column:1/-1;grid-row:2}}
/* Expanded authentic galleries; scoped to this preview. */
.pv-gallery-group{margin:34px 0 40px}.pv-gallery-group-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:17px}.pv-gallery-group h3{font:400 29px Georgia,serif;margin:0}.pv-gallery-group .pv-link{border:0;cursor:pointer;background:transparent;min-height:44px}.pv-shared-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pv-shared-grid .pv-photo{aspect-ratio:1.25}.pv-shared-grid img{width:100%;height:100%;object-fit:cover}.pv-shared-grid .pv-photo-label{font-size:12px}.pv-detail-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.pv-detail-photos .pv-photo{aspect-ratio:1.5}.pv-detail-photos .pv-photo img{width:100%;height:100%;object-fit:cover}
@media(max-width:700px){.pv-gallery-group{margin:27px 0 32px}.pv-gallery-group h3{font-size:24px;max-width:65%}.pv-gallery-group-head .pv-link{font-size:11px;white-space:nowrap}.pv-shared-grid{grid-template-columns:1fr 1fr;gap:9px}.pv-shared-grid .pv-photo:first-child{grid-column:1/-1;aspect-ratio:1.6}.pv-shared-grid .pv-photo{aspect-ratio:1.05}.pv-shared-grid .pv-photo-label{font-size:10px}.pv-detail-photos{grid-template-columns:1fr 1fr}.pv-detail-photos .pv-photo:first-child{grid-column:1/-1}.pv-detail-photos .pv-photo{aspect-ratio:1.1}}

/* Compact direct booking; the vendor controls the optional form height. */
.pv-booking-compact{display:flex;justify-content:space-between;align-items:center;gap:32px}.pv-booking-compact p{font-size:14px;margin:0 0 12px;max-width:540px}.pv-booking-compact small{font-size:11px;color:var(--muted)}.pv-booking-action{flex:none;text-align:center}.pv-booking-action small{display:block;margin-top:12px}.pv-embed-toggle{margin-top:24px;border-top:1px solid #d5ddcf;padding-top:14px}.pv-embed-toggle>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:12px;font-size:12px;color:var(--green-900);list-style:none}.pv-embed-toggle>summary:before{content:'+';font-size:22px}.pv-embed-toggle[open]>summary:before{content:'−'}.pv-booking-box{padding:16px;margin-top:12px}.pv-booking-widget iframe{display:block;min-height:0}.pv-booking-widget[hidden]{display:none!important}.pv-booking-fallback{margin-top:0;padding-top:16px}.pv-booking-widget:empty+.pv-booking-fallback,.pv-booking-widget[hidden]+.pv-booking-fallback{border-top:0}.pv-final{margin-top:0;margin-bottom:44px;padding:40px 28px}.pv-final h2{font-size:clamp(30px,3vw,42px)}
@media(max-width:700px){.pv-booking-compact{display:block}.pv-booking-action{text-align:left;margin-top:22px}.pv-booking-action .button{width:100%;justify-content:space-between}.pv-booking-action small{font-size:10px}.pv-booking-box{padding:10px}.pv-embed-toggle>summary{font-size:11px;line-height:1.5}.pv-section{padding-block:34px}.pv-final{padding:30px 20px;margin-bottom:30px}}
