@charset "UTF-8";
@layer reset, tokens, base, layout, components, pages, states;
/* assets/scss/base/_tokens.scss */
@layer tokens {
  :root {
    --brand-bg: #281e15;
    --brand-bg-deep: #20170f;
    --brand-paper: #f1e4d3;
    --brand-paper-soft: #ead8c1;
    --brand-paper-bright: #fbf3e8;
    --brand-gold: #d3ad80;
    --brand-ink: #241a12;
    --brand-muted: #6b5b4d;
    --brand-line: rgb(239 223 204 / .19);
    --brand-line-strong: rgb(239 223 204 / .34);
    --surface-dark: linear-gradient(180deg, #281e15 0%, #2a2017 48%, #281e15 100%);
    --surface-dark-deep: linear-gradient(180deg, #281e15 0%, #20170f 100%);
    --surface-dark-deep-return: linear-gradient(180deg, #20170f 0%, #281e15 100%);
    --interaction-primary: #765f48;
    --interaction-primary-hover: #927556;
    --interaction-light-hover: #dfc29f;
    --interaction-outline-hover: rgb(241 228 211 / .12);
    --focus-ring: #c49362;
    --paper: var(--brand-paper);
    --paper-soft: var(--brand-paper-soft);
    --paper-bright: var(--brand-paper-bright);
    --ink: var(--brand-ink);
    --ink-soft: var(--brand-bg);
    --muted: var(--brand-muted);
    --line: color-mix(in srgb, var(--brand-ink) 18%, transparent);
    --line-light: var(--brand-line);
    --moss: #909779;
    --water: #87aeb5;
    --stone: #c8b498;
    --bronze: #a37a57;
    --sand: #d9bb94;
    --white: #fff;
    --font-sans: "Manrope", Arial, sans-serif;
    --font-display: "Noto Serif Display", Georgia, serif;
    --text-body: 16px;
    --text-support: 15px;
    --text-hero-support: 18px;
    --text-caption: 13px;
    --text-label: 12px;
    --text-action: 14px;
    --text-meta: 12px;
    --content-gutter: clamp(20px, 3vw, 64px);
    --media-gutter: var(--content-gutter);
    --site-shell: min(calc(100% - (var(--content-gutter) * 2)), 1840px);
    --site-media-shell: min(calc(100% - (var(--media-gutter) * 2)), 1840px);
    --site-grid-gap: clamp(14px, 1.2vw, 24px);
    --page-gutter: var(--content-gutter);
    --layout-wide: var(--site-shell);
    --layout-product: var(--site-shell);
    --layout-balanced: var(--site-shell);
    --layout-booking: var(--site-shell);
    --layout-reading: var(--site-shell);
    --container: var(--site-shell);
    --container-pad: max(var(--content-gutter), calc((100vw - 1840px) / 2));
    --header-h: 64px;
    --radius-sm: 2px;
    --radius-md: 8px;
    --radius-media: 8px;
    --radius-card: 14px;
    --radius-pill: 999px;
    --section-y: clamp(76px, 7.4vw, 126px);
    --chapter-space: clamp(92px, 7vw, 128px);
    --section-space: clamp(72px, 5.6vw, 96px);
    --content-gap: clamp(46px, 4.2vw, 70px);
    --component-gap: clamp(14px, 1.2vw, 22px);
    --ease-out: cubic-bezier(.22, 1, .36, 1);
    --ease: var(--ease-out);
    --route-exit-duration: 120ms;
    --route-enter-duration: 250ms;
    --route-enter-delay: 90ms;
    --route-header-duration: 280ms;
    --route-shared-duration: 500ms;
    --route-history-exit-duration: 55ms;
    --route-history-enter-duration: 115ms;
    --route-history-enter-delay: 38ms;
    --route-ease-exit: cubic-bezier(.42, 0, .72, .18);
    --route-ease-enter: cubic-bezier(.16, .8, .18, 1);
    --route-ease-shared: cubic-bezier(.18, .78, .16, 1);
    --route-transition-canvas: radial-gradient(circle at 68% 18%, rgb(211 173 128 / .12) 0%, transparent 34%), linear-gradient(132deg, #21170f 0%, #2b2016 48%, #241a12 100%);
    --image-hotel-filter: saturate(.94) contrast(1.025) brightness(.96) sepia(.02);
    --image-nature-filter: saturate(1.01) contrast(1.015) brightness(.98) sepia(.01);
    --room-media-readability: linear-gradient(0deg, rgb(13 8 5 / .66), rgb(13 8 5 / .23) 22%, transparent 56%);
    --shadow: 0 30px 90px rgb(0 0 0 / .16);
    --scrollbar-track-fallback: #20170f;
    --scrollbar-thumb-fallback: #c69a70;
  }

  @media (max-width: 720px) {
    :root {
      --content-gutter: 20px;
      --media-gutter: var(--content-gutter);
      --header-h: 54px;
      --chapter-space: clamp(52px, 15vw, 64px);
      --section-space: clamp(48px, 13vw, 58px);
      --content-gap: clamp(32px, 9vw, 40px);
      --component-gap: clamp(11px, 3vw, 16px);
    }
  }
}

/* assets/scss/base/_reset.scss */
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: auto; }
  body, h1, h2, h3, p, figure, blockquote, dl, dd { margin: 0; }
  ul, ol { margin: 0; padding: 0; list-style: none; }
  img, picture, video, canvas, svg { display: block; max-width: 100%; }
  button, input, select, textarea { font: inherit; }
  button { border: 0; padding: 0; background: none; color: inherit; }
  a { color: inherit; text-decoration: none; }
  table { border-collapse: collapse; border-spacing: 0; }
}

/* assets/scss/base/_base.scss */
@layer base {
  html { background: var(--ink); color-scheme: light; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 30px); }
  body { min-width: 320px; background: var(--paper); color: var(--ink); font-family: var(--font-sans); font-size: var(--text-body); line-height: 1.55; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
  body.is-locked { overflow: hidden; overscroll-behavior: none; }
  h1, h2, h3 { font-weight: 400; line-height: .98; text-wrap: balance; hyphens: none; }
  h1, h2 { letter-spacing: -.045em; }
  h3 { letter-spacing: -.03em; }
  em { font-family: var(--font-display); font-style: italic; font-weight: 400; }
  p { text-wrap: pretty; }
  ::selection { background: var(--sand); color: var(--ink); }
  :focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 4px; }
  input:focus-visible, select:focus-visible { outline-offset: 1px; }
  .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .skip-link { position: fixed; z-index: 200; top: 12px; left: 12px; padding: 12px 16px; background: var(--paper-bright); color: var(--ink); transform: translateY(-160%); transition: transform .2s ease; }
  .skip-link:focus { transform: translateY(0); }
  .site-shell,
  .container,
  .v51-container { width: var(--site-shell); margin-inline: auto; }
  .site-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--site-grid-gap); }
  .section { padding-block: var(--section-y); background: var(--paper); }
  .section--dark { background: var(--surface-dark-deep); color: var(--paper); }
  .section--ink { background: var(--surface-dark); color: var(--paper); }
  .section--soft { background: var(--paper-soft); }
  .kicker { display: inline-flex; align-items: center; font-size: var(--text-label); font-weight: 500; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
  .media-caption { position: absolute; right: 16px; bottom: 14px; z-index: 2; font-size: var(--text-caption); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
  .media-caption--light { color: var(--paper-bright); text-shadow: 0 1px 10px rgb(0 0 0 / .5); }
  .scroll-progress { position: fixed; z-index: 150; inset: 0 0 auto; height: 2px; pointer-events: none; }
  .scroll-progress span { display: block; width: 100%; height: 100%; background: var(--sand); transform: scaleX(var(--scroll-progress, 0)); transform-origin: left; }
}

/* assets/scss/base/_scrollbar.scss */
@layer base {
  /* Native scrollbar only: no JS scroll hijacking, so wheel/touch/keyboard semantics stay intact. */
  html {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb-fallback) var(--scrollbar-track-fallback);
  }

  @supports selector(::-webkit-scrollbar) {
    html::-webkit-scrollbar { width: 10px; }
    html::-webkit-scrollbar-track {
      background: linear-gradient(180deg, rgb(28 20 14) 0%, rgb(42 32 23) 46%, rgb(32 23 15) 100%);
    }
    html::-webkit-scrollbar-thumb {
      min-height: 72px;
      border: 2px solid transparent;
      border-radius: var(--radius-pill);
      background:
        linear-gradient(180deg, rgb(236 210 175) 0%, rgb(198 154 112) 38%, rgb(159 117 84) 66%, rgb(217 187 148) 100%) padding-box;
      box-shadow: inset 0 0 0 1px rgb(255 255 255 / .10);
    }
    html::-webkit-scrollbar-thumb:hover {
      background:
        linear-gradient(180deg, rgb(244 222 192) 0%, rgb(211 173 128) 42%, rgb(163 122 87) 70%, rgb(226 196 159) 100%) padding-box;
    }
  }
}

/* assets/scss/base/_accessibility.scss */
@layer base {
  :is(a, button, input, select, textarea) { touch-action: manipulation; }

  /* Broken assets should degrade to the authored media surface instead of a browser broken-image glyph. */
  img.media-load-error { opacity: 0; }

  @media (forced-colors: active) {
    :focus-visible { outline: 2px solid Highlight; }
    .site-nav__cta,
    .button,
    .room-category-card__actions a,
    .room-compare-launch,
    .room-compare-card__actions a,
    .room-media-gallery__controls button,
    .smart-booking-trigger,
    .smart-booking-dialog a,
    .smart-booking-dialog__share,
    .room-detail-masthead__share,
    .booking-page__share,
    .gallery-video-tile__control,
    .lightbox__nav,
    .icon-button { border: 1px solid ButtonText; }
  }

  @media (prefers-reduced-transparency: reduce) {
    .site-nav,
    .smart-booking-dialog,
    .room-media-gallery__controls button,
    .gallery-tile > span,
    .gallery-video-tile__control { backdrop-filter: none; }
  }
}

/* assets/scss/base/_view-transitions.scss */
@view-transition {
  navigation: auto;
}

@layer states {
  .site-header {
    view-transition-name: chugush-header;
  }

  .site-header.is-transition-canonical .site-nav {
    background: color-mix(in srgb, var(--brand-paper-bright) 97%, transparent);
    box-shadow: 0 10px 32px rgb(10 6 3 / .13);
    transition: none;
  }

  .is-view-transition-room-media {
    view-transition-name: chugush-room-media;
  }

  ::view-transition {
    background: var(--route-transition-canvas);
  }

  ::view-transition-group(root) {
    animation-duration: calc(var(--route-enter-delay) + var(--route-enter-duration));
    animation-timing-function: var(--route-ease-enter);
  }

  ::view-transition-old(root) {
    animation: chugush-page-out var(--route-exit-duration) var(--route-ease-exit) both;
    mix-blend-mode: normal;
  }

  ::view-transition-new(root) {
    animation: chugush-page-in var(--route-enter-duration) var(--route-enter-delay) var(--route-ease-enter) both;
    mix-blend-mode: normal;
  }

  ::view-transition-group(chugush-header) {
    z-index: 40;
    animation-duration: var(--route-header-duration);
    animation-timing-function: var(--route-ease-enter);
  }

  ::view-transition-old(chugush-header),
  ::view-transition-new(chugush-header) {
    animation: none;
    mix-blend-mode: normal;
  }

  ::view-transition-group(chugush-room-media) {
    z-index: 24;
    overflow: clip;
    border-radius: var(--radius-media);
    animation-duration: var(--route-shared-duration);
    animation-timing-function: var(--route-ease-shared);
  }

  ::view-transition-image-pair(chugush-room-media) {
    isolation: auto;
  }

  ::view-transition-old(chugush-room-media) {
    animation: chugush-room-media-old var(--route-shared-duration) var(--route-ease-shared) both;
  }

  ::view-transition-new(chugush-room-media) {
    animation: chugush-room-media-new var(--route-shared-duration) var(--route-ease-shared) both;
  }

  html:active-view-transition-type(room-forward)::view-transition-old(root),
  html:active-view-transition-type(room-back)::view-transition-old(root) {
    animation: chugush-page-out var(--route-exit-duration) var(--route-ease-exit) both;
  }

  html:active-view-transition-type(room-forward)::view-transition-new(root),
  html:active-view-transition-type(room-back)::view-transition-new(root) {
    animation: chugush-page-in var(--route-enter-duration) var(--route-enter-delay) var(--route-ease-enter) both;
  }

  html:active-view-transition-type(history)::view-transition-old(root) {
    animation: chugush-page-out var(--route-history-exit-duration) var(--route-ease-exit) both;
  }

  html:active-view-transition-type(history)::view-transition-new(root) {
    animation: chugush-page-in var(--route-history-enter-duration) var(--route-history-enter-delay) var(--route-ease-enter) both;
  }

  @keyframes chugush-page-out {
    from { opacity: 1; }
    to { opacity: 0; }
  }

  @keyframes chugush-page-in {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  @keyframes chugush-room-media-old {
    from { opacity: 1; }
    72% { opacity: .9; }
    to { opacity: 0; }
  }

  @keyframes chugush-room-media-new {
    from { opacity: .2; }
    42% { opacity: .84; }
    to { opacity: 1; }
  }

  @media (prefers-reduced-motion: reduce) {
    ::view-transition-group(*),
    ::view-transition-old(*),
    ::view-transition-new(*) {
      animation: none;
    }
  }
}

/* assets/scss/layout/_header.scss */
@layer layout {
  .site-header {
    position: sticky;
    z-index: 120;
    top: 0;
    padding-top: clamp(10px, 1vw, 16px);
    background: transparent;
  }

  .site-nav {
    min-height: var(--header-h);
    padding: 8px clamp(16px, 1.45vw, 28px);
    display: grid;
    grid-template-columns: minmax(150px, 1fr) auto minmax(150px, 1fr);
    align-items: center;
    gap: clamp(16px, 1.8vw, 32px);
    border-radius: var(--radius-media);
    background: color-mix(in srgb, var(--brand-paper-bright) 97%, transparent);
    color: var(--brand-ink);
    box-shadow: 0 8px 30px rgb(10 6 3 / .1);
    transition: box-shadow .25s ease, background .25s ease;
  }

  .site-header.is-stuck .site-nav {
    background: color-mix(in srgb, var(--brand-paper-bright) 99%, transparent);
    box-shadow: 0 12px 34px rgb(10 6 3 / .16);
  }

  .site-nav__brand {
    width: max-content;
    min-height: 44px;
    display: inline-grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    align-items: center;
    align-content: center;
    column-gap: 7px;
    line-height: 1;
  }

  .site-nav__mark { width:48px; height:22px; object-fit:contain; transform:translateY(1px); }

  .site-nav__brand strong {
    color: #705841;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: -.045em;
    line-height: 1;
  }

  .site-nav__brand span {
    color: #8e7d6e;
    font-size: var(--text-label);
    font-weight: 500;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
  }

  .site-nav__links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(17px, 1.8vw, 32px);
  }

  .site-nav__links a {
    position: relative;
    padding-block: 12px;
    font-size: var(--text-label);
    font-weight: 500;
    letter-spacing: .055em;
    white-space: nowrap;
    text-transform: uppercase;
  }

  .site-nav__links a::after {
    content: "";
    position: absolute;
    inset: auto 0 6px;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .25s var(--ease-out);
  }

  .site-nav__links a:hover::after,
  .site-nav__links a[aria-current="page"]::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  .site-nav__actions {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .site-nav__cta {
    min-height: 44px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-pill);
    background: linear-gradient(var(--interaction-primary-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--interaction-primary);
    color: #fff;
    font-size: var(--text-action);
    font-weight: 500;
    letter-spacing: .06em;
    white-space: nowrap;
    text-transform: uppercase;
    transition: background-size .5s var(--ease-out), color .32s var(--ease-out), transform .62s var(--ease-out);
  }

  .site-nav__cta:hover { background-size: 100% 100%; transform: translateY(-1px); }

  .site-nav__menu {
    width: 44px;
    height: 44px;
    display: none;
    place-items: center;
    border-radius: 3px;
    color: var(--brand-ink);
    cursor: pointer;
  }

  .site-nav__menu span {
    grid-column: 1;
    grid-row: 1;
    width: 23px;
    height: 2px;
    clip-path: polygon(2px 0, 100% 0, calc(100% - 2px) 100%, 0 100%);
    transition: transform 190ms ease, width 190ms ease;
    background: currentColor;
    transform: translateY(-3px);
  }

  .site-nav__menu span + span { width:17px; transform:translate(3px, 4px); }
  .site-nav__menu[aria-expanded="true"] span { transform:rotate(45deg); }
  .site-nav__menu[aria-expanded="true"] span + span { width:23px; transform:rotate(-45deg); }
  .site-nav__menu:focus-visible, .site-nav__cta:focus-visible, .site-nav__brand:focus-visible { outline:2px solid #705841; outline-offset:3px; }

  .brand {
    min-height: 44px;
    width: max-content;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1;
  }

  .brand strong { font-size: 18px; font-weight: 500; letter-spacing: -.045em; }
  .brand span { margin-top: 6px; font-size: var(--text-label); font-weight: 500; letter-spacing: .13em; text-transform: uppercase; opacity: .62; }

  .drawer {
    position: fixed;
    z-index: 180;
    inset: 0;
    overflow: hidden;
    visibility: hidden;
    background: rgb(0 0 0 / .58);
    opacity: 0;
    transition: opacity .35s ease, visibility .35s step-end;
  }

  .drawer.is-open { visibility: visible; opacity: 1; transition: opacity .35s ease, visibility 0s; }
  .drawer__panel { position: absolute; inset: 0 0 0 auto; width: min(880px, 100%); background: var(--surface-dark-deep); color: var(--brand-paper); clip-path: inset(0 0 0 100%); transition: clip-path .55s var(--ease-out); }
  .drawer.is-open .drawer__panel { clip-path: inset(0); }
  .drawer__head { height: var(--header-h); padding-inline: clamp(24px, 4vw, 54px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--brand-line); }
  .brand--drawer { position:relative; padding-left:44px; color:var(--brand-paper); }
  .brand__mark { position:absolute; left:0; top:50%; transform:translateY(-50%); width:34px; height:auto; }
  .drawer__head .drawer__close { border:0; border-radius:3px; }
  .icon-button { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--brand-line); border-radius: 50%; color: var(--brand-paper); cursor: pointer; }
  .icon-button .icon { width: 21px; }
  .drawer__body { min-height: calc(100dvh - var(--header-h)); display: grid; grid-template-columns: 1.2fr .8fr; }
  .drawer-nav { padding: clamp(34px, 5.5vw, 72px); display: flex; flex-direction: column; justify-content: center; }
  .drawer-nav a { display: grid; grid-template-columns: 38px 1fr; align-items: baseline; padding-block: 8px; color: color-mix(in srgb, var(--brand-paper) 45%, transparent); font-size: clamp(30px, 4vw, 56px); font-weight: 500; letter-spacing: -.055em; line-height: .96; transition: color .25s ease, transform .35s var(--ease-out); }
  .drawer-nav a span { font-size: 10px; font-weight: 500; letter-spacing: .12em; }
  .drawer-nav a:hover,
  .drawer-nav a[aria-current="page"] { color: var(--brand-paper); transform: translateX(8px); }
  .drawer__aside { padding: clamp(28px, 4vw, 54px); display: flex; flex-direction: column; justify-content: flex-end; gap: 26px; border-left: 1px solid var(--brand-line); }
  .drawer__image { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--radius-media); }
  .drawer__image img { width: 100%; height: 100%; object-fit: cover; }
  .drawer__contacts { display: flex; flex-direction: column; gap: 9px; font-size: 12px; }
  .drawer__contacts span { margin-bottom: 7px; color: color-mix(in srgb, var(--brand-paper) 58%, transparent); }
  .drawer__contacts .drawer__phone { color: var(--brand-paper); font-size: 16px; letter-spacing: -.02em; }

  @media (max-width: 1120px) {
    .site-nav { grid-template-columns: 1fr auto; }
    .site-nav__links { display: none; }
    .site-nav__menu { display: grid; }
  }

  @media (max-width: 720px) {
    .site-header { padding-top: max(10px, env(safe-area-inset-top)); }
    .site-nav { width: var(--site-media-shell); min-height: var(--header-h); padding: 5px 10px 5px 14px; border-radius: var(--radius-media); }
    .site-nav { gap:8px; padding-inline:10px 6px; }
    .site-nav__brand { column-gap:6px; }
    .site-nav__mark { width:34px; height:22px; }
    .site-nav__brand strong { font-size:15px; }
    .site-nav__brand span { display:none; }
    .site-nav__actions { gap:3px; }
    .site-nav__cta { flex-shrink:0; padding-inline:13px; font-size:11px; letter-spacing:.015em; text-transform:none; background:#705841; }
    .site-nav__cta:hover { background:#5d4632; transform:none; }
    .drawer__head { height: calc(var(--header-h) + env(safe-area-inset-top)); padding: env(safe-area-inset-top) 20px 0; }
    .drawer__body { min-height: calc(100dvh - var(--header-h) - env(safe-area-inset-top)); grid-template-columns: 1fr; }
    .drawer__aside { display: none; }
    .drawer-nav { padding: 24px 20px; }
    .drawer-nav a { min-height: 52px; padding-block: 7px; font-size: clamp(30px, 10.5vw, 44px); }
  }
  @media (max-width:350px) {
    .site-nav { padding-inline:8px 4px; gap:4px; }
    .site-nav__mark { width:29px; }
    .site-nav__brand { column-gap:5px; }
    .site-nav__brand strong { font-size:14px; }
    .site-nav__cta { padding-inline:10px; }
  }
  @media (prefers-reduced-motion:reduce) {
    .site-nav__menu span, .site-nav__cta { transition:none; }
    .drawer, .drawer__panel { transition:none; }
  }
}

/* assets/scss/layout/_footer.scss */
@layer layout {
  .site-footer {
    background: var(--surface-dark-deep);
    color: var(--brand-paper);
  }

  .site-footer__top {
    padding: 44px 0 30px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    border-bottom: 1px solid var(--brand-line);
  }

  .site-footer__brand { display: flex; flex-direction: column; }
  .site-footer__brand strong { color: var(--brand-gold); font-size: 38px; font-weight: 500; letter-spacing: -.055em; line-height: 1; }
  .site-footer__brand span { margin-top: 7px; color: color-mix(in srgb, var(--brand-paper) 55%, transparent); font-size: 10px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
  .site-footer__top p { max-width: 390px; color: color-mix(in srgb, var(--brand-paper) 72%, transparent); font-size: var(--text-support); line-height: 1.6; }

  .site-footer__grid {
    padding: 38px 0;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--site-grid-gap);
  }

  .site-footer__nav { grid-column: 1 / span 5; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 22px; }
  .site-footer__nav > span { grid-column: 1 / -1; }
  .site-footer__place { grid-column: 7 / span 2; display: flex; flex-direction: column; align-items: flex-start; }
  .site-footer__actions { grid-column: 10 / -1; display: flex; flex-direction: column; align-items: flex-start; }
  .site-footer__grid > * > span { margin-bottom: 9px; color: color-mix(in srgb, var(--brand-paper) 55%, transparent); font-size: 10px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
  .site-footer__grid a { width: max-content; color: color-mix(in srgb, var(--brand-paper) 82%, transparent); font-size: var(--text-support); }
  .site-footer__grid a[aria-current="page"] { color: var(--brand-paper); text-decoration: underline; text-underline-offset: 4px; }
  .site-footer__place strong { color: var(--brand-paper); font-size: 18px; font-weight: 500; }
  .site-footer__place p { margin-top: 5px; max-width: 22ch; color: color-mix(in srgb, var(--brand-paper) 70%, transparent); font-size: var(--text-support); line-height: 1.45; }
  .site-footer__place .site-footer__phone { margin-top: 12px; color: var(--brand-paper); font-size: var(--text-support); }
  .site-footer__socials { margin-top: 16px; }
  .site-footer__socials a { width: auto; min-width: 42px; color: color-mix(in srgb, var(--brand-paper) 76%, transparent); border-color: color-mix(in srgb, var(--brand-paper) 20%, transparent); }
  .site-footer__socials a:hover { border-color: color-mix(in srgb, var(--brand-paper) 36%, transparent); background: color-mix(in srgb, var(--brand-paper) 7%, transparent); transform: translateY(-1px); }
  .site-footer__actions .site-footer__booking { min-height: 44px; padding: 0 18px; display: inline-flex; align-items: center; gap: 8px; border-radius: var(--radius-pill); background: linear-gradient(var(--interaction-light-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--brand-paper-soft); color: var(--brand-ink); font-size: var(--text-action); font-weight: 500; text-transform: uppercase; transition: background-size .5s var(--ease-out), color .32s var(--ease-out), transform .62s var(--ease-out); }
  .site-footer__actions .site-footer__booking:hover { background-size: 100% 100%; transform: translateY(-1px); }
  .site-footer__actions .site-footer__booking .icon { transition: transform .52s var(--ease-out); }
  .site-footer__actions .site-footer__booking:hover .icon { transform: translateX(4px); }
  .site-footer__actions > a:last-child { margin-top: 12px; }
  .site-footer__actions .lead-trigger { min-height: 44px; margin-top: 8px; }
  .site-footer__legal { padding: 20px 0; display: flex; flex-wrap: wrap; gap: 8px 28px; border-top: 1px solid var(--brand-line); }
  .site-footer__legal a,
  .site-footer__legal button { min-height: 40px; display: inline-flex; align-items: center; color: color-mix(in srgb, var(--brand-paper) 72%, transparent); font-size: var(--text-meta); }
  .site-footer__legal button { width: auto; }

  .site-footer__bottom {
    padding: 18px 0;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid var(--brand-line);
    color: color-mix(in srgb, var(--brand-paper) 55%, transparent);
    font-size: var(--text-meta);
    text-transform: uppercase;
  }

  @media (max-width: 800px) {
    .site-footer__nav { grid-column: 1 / span 6; }
    .site-footer__place { grid-column: 7 / span 3; }
    .site-footer__actions { grid-column: 10 / -1; }
  }

  @media (max-width: 720px) {
    .site-footer { padding-bottom: env(safe-area-inset-bottom); }
    .site-footer__top { align-items: flex-start; flex-direction: column; gap: 18px; }
    .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 20px; }
    .site-footer__nav,
    .site-footer__place,
    .site-footer__actions { grid-column: auto; }
    .site-footer__nav { grid-column: 1 / -1; }
    .site-footer__actions { grid-column:2; min-width:0; }
    .site-footer__actions .site-footer__booking { max-width:100%; padding-inline:12px; font-size:11px; }
    .site-footer__actions .site-footer__booking .icon { width:16px; flex-shrink:0; }
    .site-footer__place { grid-column: 1; }
    .site-footer__legal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 18px; }
    .site-footer__legal a,
    .site-footer__legal button { width: auto; min-height: 44px; }
    .site-footer__bottom { flex-wrap: wrap; }

  }

  @media (max-width: 360px) {
    .site-footer__grid { grid-template-columns: 1fr; }
    .site-footer__place,
    .site-footer__actions { grid-column: 1; }
  }
}

/* assets/scss/components/_buttons.scss */
@layer components {
  .icon { width: 24px; height: 24px; }
  .icon--arrow { width: 19px; flex: 0 0 auto; transition: transform .52s var(--ease-out); }
  .icon--back { width: 17px; transform: rotate(180deg); }
  .button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 12px 20px; border: 0; border-radius: var(--radius-pill); background: linear-gradient(var(--interaction-primary-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--interaction-primary); color: var(--paper-bright); font-size: var(--text-action); font-weight: 500; letter-spacing: .105em; line-height: 1.2; text-transform: uppercase; cursor: pointer; transition: background-size .5s var(--ease-out), color .32s var(--ease-out), transform .62s var(--ease-out); }
  .button:hover { background-size: 100% 100%; color: var(--paper-bright); transform: translateY(-1px); }
  .button:hover .icon--arrow, .text-link:hover .icon--arrow { transform: translateX(5px); }
  .button--light { background: linear-gradient(var(--interaction-light-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--paper-bright); color: var(--ink); }
  .button--light:hover { color: var(--ink); }
  .button--header { min-height: 44px; padding: 9px 14px; font-size: var(--text-action); }
  .button--header .icon { width: 15px; }
  .button--glass,
  .button--outline-light { border: 1px solid color-mix(in srgb, var(--paper) 42%, transparent); background: transparent; color: var(--paper); backdrop-filter: none; }
  .button--glass:hover,
  .button--outline-light:hover { background: var(--interaction-outline-hover); color: var(--paper); }
  .text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; font-size: var(--text-action); font-weight: 500; letter-spacing: .105em; text-transform: uppercase; }
  .text-link--light { color: var(--paper); }
  .back-link { display: inline-flex; min-height: 44px; align-items: center; gap: 9px; font-size: var(--text-action); text-transform: uppercase; letter-spacing: .12em; }
}

/* assets/scss/components/_home-preloader.scss */
@layer components {
  .home-preloader {
    --preloader-exit-duration: 280ms;
    position: fixed;
    z-index: 900;
    inset: 0;
    display: grid;
    place-items: center;
    padding: max(28px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));
    overflow: hidden;
    background:
      radial-gradient(ellipse at 50% 45%, rgb(211 173 128 / .12) 0%, rgb(211 173 128 / .045) 24%, rgb(211 173 128 / 0) 55%),
      radial-gradient(circle at 16% 10%, rgb(241 228 211 / .035) 0%, rgb(241 228 211 / 0) 32%),
      linear-gradient(132deg, #1c140d 0%, #281e15 44%, #22180f 72%, #1c140d 100%);
    color: var(--brand-paper-bright);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    touch-action: none;
    transition:
      opacity var(--preloader-exit-duration) var(--ease-out),
      visibility 0s linear var(--preloader-exit-duration);
  }

  .home-preloader::before {
    content: "";
    position: absolute;
    width: min(74vw, 980px);
    aspect-ratio: 1.5;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgb(211 173 128 / .09) 0%, rgb(211 173 128 / .025) 34%, rgb(211 173 128 / 0) 70%);
    opacity: .8;
    pointer-events: none;
  }

  .home-preloader::after {
    content: "";
    position: absolute;
    inset: -28%;
    background: linear-gradient(112deg, transparent 34%, rgb(255 244 228 / .026) 48%, transparent 61%);
    opacity: .42;
    pointer-events: none;
  }

  .home-preload-pending .home-preloader {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }

  .home-preload-pending .home-preloader.is-leaving {
    opacity: 0;
    pointer-events: none;
  }

  .home-preload-skip .home-preloader {
    display: none;
  }

  .home-preloader.is-exit-fast { --preloader-exit-duration: 140ms; }
  .home-preloader.is-exit-medium { --preloader-exit-duration: 220ms; }

  .home-preloader__frame {
    position: absolute;
    z-index: 1;
    inset: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
    pointer-events: none;
  }

  .home-preloader__frame::before,
  .home-preloader__frame::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .62;
  }

  .home-preloader__frame::before {
    background:
      linear-gradient(90deg, rgb(224 194 158 / .42), rgb(224 194 158 / 0)) 0 0 / 72px 1px no-repeat,
      linear-gradient(180deg, rgb(224 194 158 / .42), rgb(224 194 158 / 0)) 0 0 / 1px 72px no-repeat,
      linear-gradient(270deg, rgb(224 194 158 / .42), rgb(224 194 158 / 0)) 100% 0 / 72px 1px no-repeat,
      linear-gradient(180deg, rgb(224 194 158 / .42), rgb(224 194 158 / 0)) 100% 0 / 1px 72px no-repeat;
  }

  .home-preloader__frame::after {
    background:
      linear-gradient(90deg, rgb(224 194 158 / .42), rgb(224 194 158 / 0)) 0 100% / 72px 1px no-repeat,
      linear-gradient(0deg, rgb(224 194 158 / .42), rgb(224 194 158 / 0)) 0 100% / 1px 72px no-repeat,
      linear-gradient(270deg, rgb(224 194 158 / .42), rgb(224 194 158 / 0)) 100% 100% / 72px 1px no-repeat,
      linear-gradient(0deg, rgb(224 194 158 / .42), rgb(224 194 158 / 0)) 100% 100% / 1px 72px no-repeat;
  }

  .home-preloader__brand {
    position: relative;
    z-index: 2;
    display: grid;
    justify-items: center;
    width: min(82vw, 640px);
    text-align: center;
  }

  .home-preloader__place {
    margin-bottom: clamp(18px, 2vw, 28px);
    color: rgb(241 228 211 / .55);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .28em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .home-preloader__wordmark {
    display: grid;
    justify-items: center;
    line-height: .86;
  }

  .home-preloader__wordmark > span {
    color: var(--brand-paper-bright);
    font-family: var(--font-sans);
    font-size: clamp(46px, 5.8vw, 88px);
    font-weight: 400;
    letter-spacing: -.065em;
  }

  .home-preloader__wordmark > strong {
    margin-top: .08em;
    color: color-mix(in srgb, var(--brand-paper-bright) 96%, var(--brand-gold));
    font-family: var(--font-display);
    font-size: clamp(50px, 6.2vw, 96px);
    font-style: italic;
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: .88;
  }

  .home-preloader__line {
    position: relative;
    width: clamp(150px, 14vw, 220px);
    height: 1px;
    margin-top: clamp(28px, 3vw, 42px);
    overflow: hidden;
    background: linear-gradient(90deg, rgb(241 228 211 / 0), rgb(241 228 211 / .18) 18%, rgb(241 228 211 / .18) 82%, rgb(241 228 211 / 0));
  }

  .home-preloader__line i {
    position: absolute;
    inset: 0;
    display: block;
    background: linear-gradient(90deg, rgb(211 173 128 / 0) 0%, rgb(239 214 184 / .98) 44%, rgb(211 173 128 / .82) 56%, rgb(163 122 87 / 0) 100%);
    opacity: .52;
  }

  .home-preloader__motto {
    margin-top: 18px;
    color: rgb(241 228 211 / .42);
    font-family: var(--font-display);
    font-size: clamp(12px, 1vw, 15px);
    font-style: italic;
    font-weight: 400;
    letter-spacing: .015em;
  }

  .home-preloader__index {
    position: absolute;
    z-index: 2;
    right: max(30px, calc(env(safe-area-inset-right) + 18px));
    bottom: max(28px, calc(env(safe-area-inset-bottom) + 18px));
    color: rgb(241 228 211 / .28);
    font-size: 8px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
  }

  @media (prefers-reduced-motion: no-preference) {
    .home-preload-pending .home-preloader__brand { animation: home-preloader-brand 520ms var(--ease-out) both; }
    .home-preload-pending .home-preloader__frame { animation: home-preloader-frame 620ms var(--ease-out) both; }
    .home-preloader__line i { animation: home-preloader-line 1.4s ease-in-out infinite; }
  }

  @media (max-width: 720px) {
    .home-preloader {
      padding: max(22px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
    }
    .home-preloader::before { width: min(125vw, 620px); }
    .home-preloader__frame { inset: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
    .home-preloader__frame::before,
    .home-preloader__frame::after { opacity: .48; }
    .home-preloader__place { margin-bottom: 17px; font-size: 7px; letter-spacing: .24em; }
    .home-preloader__wordmark > span { font-size: clamp(42px, 13vw, 58px); }
    .home-preloader__wordmark > strong { font-size: clamp(46px, 14vw, 64px); }
    .home-preloader__line { margin-top: 27px; }
    .home-preloader__motto { margin-top: 15px; font-size: 12px; }
    .home-preloader__index { right: max(21px, calc(env(safe-area-inset-right) + 12px)); bottom: max(20px, calc(env(safe-area-inset-bottom) + 12px)); font-size: 7px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .home-preloader { --preloader-exit-duration: 0ms; transition: none; }
    .home-preloader__brand,
    .home-preloader__frame,
    .home-preloader::before,
    .home-preloader::after,
    .home-preloader__line i { animation: none; }
    .home-preloader__line i { opacity: .72; }
  }

  @keyframes home-preloader-brand {
    from { opacity: .72; }
    to { opacity: 1; }
  }

  @keyframes home-preloader-frame {
    from { opacity: .32; }
    to { opacity: 1; }
  }

  @keyframes home-preloader-line {
    0%, 100% { opacity: .34; }
    50% { opacity: .92; }
  }
}

/* assets/scss/components/_room-category-card.scss */
@layer components {
  .room-category-card {
    height: clamp(470px, 34vw, 520px);
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: clamp(16px, 1.3vw, 24px);
    overflow: hidden;
    border: 1px solid rgb(255 255 255 / .12);
    border-radius: var(--radius-card);
    background: var(--brand-paper-bright);
    color: var(--brand-ink);
  }

  .room-category-card__copy {
    min-width: 0;
    padding: clamp(36px, 3vw, 52px) 22px clamp(32px, 2.7vw, 46px) clamp(38px, 3.2vw, 58px);
    display: flex;
    flex-direction: column;
  }

  .room-category-card__meta {
    color: #7d6c5c;
    font-size: var(--text-label);
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .room-category-card__title {
    margin: 12px 0 0;
    color: var(--brand-ink);
    font-size: clamp(46px, 4vw, 62px);
    font-weight: 500;
    letter-spacing: -.055em;
    line-height: 1;
  }

  .room-category-card__description {
    max-width: 430px;
    margin-top: 12px;
    color: #71665b;
    font-size: var(--text-support);
    line-height: 1.55;
  }

  .room-category-card__features {
    margin-top: 18px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 14px;
    color: #5c5147;
    font-size: var(--text-support);
    line-height: 1.45;
  }

  .room-category-card__features li {
    padding: 8px 0;
    border-top: 1px solid rgb(36 26 18 / .12);
  }

  .room-category-card__actions {
    margin-top: auto;
    padding-top: 24px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
  }

  .room-category-card__actions a {
    min-height: 46px;
    padding: 0 19px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: var(--radius-pill);
    color: var(--brand-ink);
    font-size: var(--text-action);
    font-weight: 500;
    letter-spacing: .045em;
    text-transform: uppercase;
    transition: background-size .5s var(--ease-out), color .32s var(--ease-out), transform .62s var(--ease-out), border-color .32s var(--ease-out);
  }

  .room-category-card__primary {
    border: 0;
    background: linear-gradient(var(--interaction-light-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--brand-paper-soft);
  }

  .room-category-card__secondary {
    border: 1px solid rgb(36 26 18 / .20);
    background: linear-gradient(color-mix(in srgb, var(--interaction-primary) 9%, transparent) 0 0) 0 100% / 100% 0 no-repeat, transparent;
  }

  .room-category-card__actions a:hover {
    background-size: 100% 100%;
    transform: translateY(-1px);
  }

  .room-category-card__secondary:hover { border-color: rgb(36 26 18 / .35); }
  .room-category-card__actions .icon { width: 17px; transition: transform .52s var(--ease-out); }
  .room-category-card__actions a:hover .icon { transform: translateX(4px); }

  .room-category-card__media {
    position: relative;
    min-width: 0;
    margin: 16px 16px 16px 0;
    overflow: hidden;
    border-radius: 10px;
    background: #d8ccb9;
  }

  .room-category-card__media::after { content: ""; position: absolute; z-index: 2; inset: 0; background: var(--room-media-readability); pointer-events: none; }

  .room-category-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: var(--image-hotel-filter);
    transition: transform .82s var(--ease-out);
  }

  .room-media-gallery__viewport {
    width: 100%;
    height: 100%;
    overflow: hidden;
    outline: 0;
    touch-action: pan-y;
    cursor: grab;
  }

  .room-media-gallery__viewport:active { cursor: grabbing; }
  .room-media-gallery__viewport:focus-visible { box-shadow: inset 0 0 0 2px var(--focus-ring); }
  .room-media-gallery__track { width: 100%; height: 100%; display: flex; transform: translate3d(var(--room-gallery-offset, 0%),0,0); transition: transform .62s var(--ease-out); will-change: transform; }
  .room-media-gallery__slide { flex: 0 0 100%; min-width: 0; height: 100%; }
  .room-media-gallery__slide > .responsive-media-picture { width: 100%; height: 100%; display: block; }
  .room-media-gallery__slide img,
  .room-media-gallery__slide > .responsive-media-picture > img { width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }

  .room-media-gallery__caption {
    position: absolute;
    z-index: 4;
    right: 13px;
    bottom: 12px;
    left: 13px;
    max-width: calc(100% - 180px);
    padding-right: 8px;
    color: #fff;
    font-size: var(--text-caption);
    letter-spacing: .1em;
    text-transform: uppercase;
    text-shadow: 0 1px 14px rgb(14 9 5 / .62);
    pointer-events: none;
  }

  .room-media-gallery__counter {
    position: absolute;
    z-index: 4;
    right: 124px;
    bottom: 18px;
    opacity: 0;
    color: rgb(255 255 255 / .92);
    font-size: var(--text-caption);
    font-weight: 500;
    letter-spacing: .08em;
    text-shadow: 0 1px 14px rgb(14 9 5 / .62);
  }

  .room-media-gallery__controls {
    position: absolute;
    z-index: 5;
    right: 14px;
    bottom: 12px;
    display: flex;
    gap: 8px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .28s var(--ease-out);
  }

  .room-media-gallery.is-ready .room-media-gallery__controls { opacity: 1; pointer-events: auto; }
  .room-media-gallery.is-ready .room-media-gallery__counter { opacity: 1; }
  .room-media-gallery.is-single .room-media-gallery__controls,
  .room-media-gallery.is-single .room-media-gallery__counter { display: none; }

  .room-media-gallery__controls button {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: var(--radius-pill);
    background: linear-gradient(var(--interaction-light-hover) 0 0) 0 100% / 100% 0 no-repeat, rgb(251 243 232 / .94);
    color: var(--brand-ink);
    cursor: pointer;
    box-shadow: 0 8px 22px rgb(13 8 4 / .18);
    backdrop-filter: blur(8px);
    transition: background-size .5s var(--ease-out), transform .52s var(--ease-out);
  }

  .room-media-gallery__controls button:hover { background-size: 100% 100%; transform: translateY(-1px); }
  .room-media-gallery__controls .icon { width: 18px; }
  .room-category-card:hover .room-media-gallery__slide.is-active img { transform: scale(1.018); }

  @media (max-width: 860px) {
    .room-category-card { height: auto; display: flex; flex-direction: column-reverse; gap: 0; }
    .room-category-card__media { aspect-ratio: 16 / 10; margin: 10px 10px 0; }
    .room-category-card__copy { min-height: 360px; padding: 30px 28px 28px; }
  }

  @media (max-width: 720px) {
    .room-category-card { min-height: 0; border-radius: 12px; }
    .room-category-card__media { aspect-ratio: 4 / 3.2; margin: 8px 8px 0; border-radius: 9px; }
    .room-category-card__copy { min-height: 350px; padding: 26px 21px 23px; }
    .room-category-card__meta { font-size: var(--text-label); }
    .room-category-card__title { font-size: 38px; }
    .room-category-card__description { max-width: 34ch; font-size: var(--text-support); }
    .room-category-card__features { margin-top: 18px; grid-template-columns: 1fr; font-size: var(--text-support); }
    .room-category-card__actions { padding-top: 24px; }
    .room-category-card__actions a { min-height: 44px; font-size: var(--text-action); }
    .room-media-gallery__caption { max-width: calc(100% - 142px); right: 10px; bottom: 10px; left: 10px; font-size: var(--text-caption); }
    .room-media-gallery__counter { right: 104px; bottom: 14px; font-size: var(--text-caption); }
    .room-media-gallery__controls { right: 10px; bottom: 8px; gap: 6px; }
    .room-media-gallery__controls button { width: 44px; height: 44px; }
  }

  @media (max-width: 420px) {
    .room-category-card__actions { align-items: flex-start; }
  }
}

/* assets/scss/components/_room-compare.scss */
@layer components {
  .room-compare-launch {
    min-height: 44px;
    padding: 0 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid rgb(241 228 211 / .24);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--brand-paper-bright);
    font: inherit;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color .28s ease, background-color .28s ease, color .28s ease;
  }

  .room-compare-launch:hover {
    border-color: rgb(241 228 211 / .48);
    background: rgb(241 228 211 / .07);
  }

  .room-compare-launch .icon--compare { width: 17px; height: 17px; }
  .room-compare-launch--intro { margin-top: -12px; }

  .room-compare-toolbar {
    min-height: 50px;
    padding: 0 4px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    border-bottom: 1px solid rgb(251 243 232 / .14);
  }

  .room-compare-toolbar > span {
    color: rgb(251 243 232 / .56);
    font-size: 11px;
    line-height: 1.5;
  }

  .room-compare-dialog {
    position: fixed;
    z-index: 205;
    inset: 0;
    padding: 28px;
    display: grid;
    place-items: center;
    visibility: hidden;
    background: rgb(13 8 5 / .88);
    opacity: 0;
    transition: opacity .26s var(--ease-out), visibility .26s step-end;
  }

  .room-compare-dialog[hidden] { display: none; }

  .room-compare-dialog.is-open {
    visibility: visible;
    opacity: 1;
    transition: opacity .26s var(--ease-out), visibility 0s;
  }

  .room-compare-dialog__panel {
    position: relative;
    width: min(1180px, 100%);
    max-height: calc(100dvh - 56px);
    overflow-y: auto;
    overscroll-behavior: contain;
    border-radius: 16px;
    background: var(--brand-paper-bright);
    color: var(--brand-ink);
    box-shadow: 0 28px 90px rgb(7 4 2 / .36);
    opacity: 0;
    transition: opacity .3s var(--ease-out);
  }

  .room-compare-dialog.is-open .room-compare-dialog__panel { opacity: 1; }

  .room-compare-dialog__close {
    position: absolute;
    z-index: 4;
    top: 22px;
    right: 22px;
    border-color: rgb(36 26 18 / .18);
    color: var(--brand-ink);
  }

  .room-compare-dialog__header {
    padding: clamp(34px, 4vw, 54px) clamp(30px, 4.5vw, 62px) clamp(28px, 3vw, 40px);
    border-bottom: 1px solid rgb(36 26 18 / .13);
  }

  .room-compare-dialog__header > span {
    color: #8b725a;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  .room-compare-dialog__header h2 {
    margin-top: 12px;
    color: var(--brand-ink);
    font-size: clamp(42px, 4vw, 60px);
    font-weight: 500;
    letter-spacing: -.055em;
    line-height: .96;
  }

  .room-compare-dialog__header p {
    max-width: 600px;
    margin-top: 15px;
    color: #6e6257;
    font-size: 13px;
    line-height: 1.6;
  }

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

  .room-compare-card {
    min-width: 0;
    padding: clamp(28px, 3vw, 42px);
    display: flex;
    flex-direction: column;
  }

  .room-compare-card + .room-compare-card { border-left: 1px solid rgb(36 26 18 / .13); }

  .room-compare-card__head > span {
    color: #9a8169;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .1em;
  }

  .room-compare-card__head h3 {
    margin-top: 9px;
    color: var(--brand-ink);
    font-size: clamp(31px, 2.8vw, 43px);
    font-weight: 500;
    letter-spacing: -.05em;
    line-height: 1;
  }

  .room-compare-card__facts {
    margin-top: 24px;
    min-height: 45px;
    padding: 13px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    border-top: 1px solid rgb(36 26 18 / .13);
    border-bottom: 1px solid rgb(36 26 18 / .13);
    color: #675b50;
    font-size: 11px;
    text-transform: uppercase;
  }

  .room-compare-card__facts strong { color: var(--brand-ink); font-weight: 500; }

  .room-compare-card > p {
    min-height: 64px;
    margin-top: 18px;
    color: #71655a;
    font-size: 13px;
    line-height: 1.55;
  }

  .room-compare-card > ul {
    margin-top: 18px;
    color: #5d5147;
    font-size: 12px;
    line-height: 1.45;
  }

  .room-compare-card > ul li {
    min-height: 38px;
    padding: 10px 0;
    border-top: 1px solid rgb(36 26 18 / .11);
  }

  .room-compare-card__actions {
    margin-top: auto;
    padding-top: 26px;
    display: grid;
    gap: 8px;
  }

  .room-compare-card__actions a {
    min-height: 44px;
    padding: 0 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-radius: var(--radius-pill);
    color: var(--brand-ink);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .055em;
    text-transform: uppercase;
    transition: background-color .28s ease, border-color .28s ease;
  }

  .room-compare-card__actions a:first-child { background: var(--brand-paper-soft); }
  .room-compare-card__actions a:last-child { border: 1px solid rgb(36 26 18 / .18); }
  .room-compare-card__actions a:first-child:hover { background: #e9ddcc; }
  .room-compare-card__actions a:last-child:hover { border-color: rgb(36 26 18 / .36); background: rgb(36 26 18 / .035); }
  .room-compare-card__actions .icon { width: 16px; }

  .room-compare-dialog__help {
    min-height: 70px;
    padding: 16px clamp(30px, 4.5vw, 62px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid rgb(36 26 18 / .13);
    background: #f3e9da;
  }

  .room-compare-dialog__help span { color: #75685d; font-size: 12px; }
  .room-compare-dialog__help a { color: var(--brand-ink); font-size: 14px; font-weight: 500; }

  @media (max-width: 860px) {
    .room-compare-dialog { padding: 14px; align-items: end; }
    .room-compare-dialog__panel { width: 100%; max-height: calc(100dvh - 28px); border-radius: 15px; }
    .room-compare-grid { grid-template-columns: 1fr; }
    .room-compare-card + .room-compare-card { border-left: 0; border-top: 1px solid rgb(36 26 18 / .13); }
    .room-compare-card > p { min-height: 0; }
    .room-compare-card__actions { grid-template-columns: 1fr 1fr; }
    .room-compare-toolbar { padding-inline: 0; }
  }

  @media (max-width: 720px) {
    .room-compare-launch--intro { margin-top: -14px; }
    .room-compare-toolbar { align-items: flex-start; flex-direction: column; gap: 12px; padding-bottom: 17px; }
    .room-compare-toolbar > span { font-size: 10px; }
    .room-compare-dialog { padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); }
    .room-compare-dialog__panel { max-height: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); border-radius: 13px; }
    .room-compare-dialog__close { top: 14px; right: 14px; }
    .room-compare-dialog__header { padding: 30px 22px 24px; }
    .room-compare-dialog__header h2 { padding-right: 38px; font-size: clamp(38px, 11vw, 48px); }
    .room-compare-card { padding: 27px 22px; }
    .room-compare-card__facts { margin-top: 20px; }
    .room-compare-card__actions { grid-template-columns: 1fr; }
    .room-compare-dialog__help { padding: 17px 22px calc(17px + env(safe-area-inset-bottom)); align-items: flex-start; flex-direction: column; gap: 7px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .room-compare-dialog,
    .room-compare-dialog__panel,
    .room-compare-launch,
    .room-compare-card__actions a { transition: none; }
  }
}

/* assets/scss/components/_booking.scss */
@layer components {
  .booking-dock {
    position: relative;
    z-index: 8;
    background: var(--paper);
  }

  .booking-dock--floating {
    margin-top: -54px;
  }

  .booking-dock .container {
    position: relative;
    background: var(--paper-bright);
    box-shadow: var(--shadow);
  }

  .booking-form {
    display: grid;
    grid-template-columns: 1fr 1fr .8fr 1.15fr;
    border: 1px solid var(--line);
    background: var(--paper-bright);
  }

  .booking-form__field {
    min-width: 0;
    min-height: 72px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 9px 19px;
    border-right: 1px solid var(--line);
  }

  .booking-form__field label {
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .booking-form__field input,
  .booking-form__field select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    border: 0;
    background: transparent;
    color: var(--ink);
    font-size: 15px;
    font-weight: 500;
    outline: 0;
  }

  .booking-form__field select {
    appearance: none;
  }

  .booking-form__field--select {
    position: relative;
  }

  .booking-form__field--select::after {
    content: "";
    position: absolute;
    right: 20px;
    bottom: 24px;
    width: 6px;
    height: 6px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg);
    pointer-events: none;
  }

  .booking-form__submit {
    min-height: 72px;
    border: 0;
  }



  @media (max-width: 900px) {
    .booking-dock--floating {
      margin-top: -34px;
    }

    .booking-form {
      grid-template-columns: repeat(3, 1fr);
    }

    .booking-form__submit {
      grid-column: 1 / -1;
      min-height: 56px;
    }
  }

  @media (max-width: 620px) {
    .booking-dock--floating {
      margin-top: 0;
    }

    .booking-dock .container {
      width: 100%;
      box-shadow: none;
    }

    .booking-form {
      grid-template-columns: 1fr 1fr;
      border-inline: 0;
    }

    .booking-form__field {
      min-height: 64px;
      padding-inline: 14px;
    }

    .booking-form__field:nth-child(2) {
      border-right: 0;
    }

    .booking-form__field:nth-child(3) {
      grid-column: 1 / -1;
      border-top: 1px solid var(--line);
      border-right: 0;
    }

    .booking-form__submit {
      min-height: 54px;
    }


  }

  @media (max-width: 360px) {
    .booking-form {
      grid-template-columns: 1fr;
    }

    .booking-form__field,
    .booking-form__field:nth-child(2),
    .booking-form__field:nth-child(3) {
      grid-column: 1;
      border-top: 1px solid var(--line);
      border-right: 0;
    }

    .booking-form__field:first-child {
      border-top: 0;
    }

    .booking-form__submit {
      grid-column: 1;
    }
  }
}

/* assets/scss/components/_smart-booking.scss */
@layer components {
  .smart-booking-trigger { position:fixed; z-index:138; left:50%; bottom:calc(12px + env(safe-area-inset-bottom)); max-width:calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)); min-height:48px; padding:6px 8px 6px 18px; display:inline-flex; align-items:center; gap:14px; border:1px solid rgb(241 228 211 / .24); border-radius:var(--radius-pill); background:var(--brand-bg-deep); color:var(--brand-paper-bright); opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,8px); transition:opacity 180ms ease, transform 180ms ease; cursor:pointer; }
  .smart-booking-trigger.is-visible { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
  .smart-booking-trigger__label { font-size:12px; white-space:nowrap; }
  .smart-booking-trigger__mark { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--brand-paper-bright); color:var(--brand-ink); }
  .smart-booking-trigger__mark .icon { width:17px; }
  .smart-booking-dialog { position:fixed; z-index:210; inset:0; padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); display:grid; place-items:center; overflow:auto; visibility:hidden; opacity:0; background:rgb(13 8 5 / .65); transition:opacity 200ms ease,visibility 200ms step-end; }
  .smart-booking-dialog.is-open { visibility:visible; opacity:1; transition:opacity 200ms ease; }
  .smart-booking-dialog__panel { position:relative; width:min(440px,100%); max-height:100%; overflow:auto; padding:46px 28px 28px; display:grid; gap:16px; border-radius:14px; background:var(--brand-paper-bright); color:var(--brand-ink); transform:translateY(8px); transition:transform 200ms ease; }
  .smart-booking-dialog.is-open .smart-booking-dialog__panel { transform:none; }
  .smart-booking-dialog__panel h2 { font-size:36px; line-height:1.05; }
  .smart-booking-dialog__panel p { font-size:14px; line-height:1.6; color:#6b5847; }
  .smart-booking-dialog__panel .button { letter-spacing:.015em; text-transform:none; font-size:14px; background:#705841; }
  .smart-booking-dialog__close { position:absolute; top:8px; right:8px; border:0; border-radius:3px; color:var(--brand-ink); font-size:26px; }
  .smart-booking-dialog__question { min-height:48px; padding:10px 18px; border:1px solid #917c67; border-radius:var(--radius-pill); background:transparent; color:var(--brand-ink); font:inherit; font-size:14px; cursor:pointer; }
  .smart-booking-trigger:focus-visible, .smart-booking-dialog__panel button:focus-visible { outline:2px solid var(--brand-gold); outline-offset:3px; }
  .smart-booking-dialog__socials,
  .site-footer__socials {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
  }

  .smart-booking-dialog__socials { position: relative; z-index: 1; margin-top: 18px; }

  .smart-booking-dialog__socials[hidden],
  .site-footer__socials[hidden],
  .smart-booking-dialog__socials a[hidden],
  .site-footer__socials a[hidden] { display: none; }

  .smart-booking-dialog__socials a,
  .site-footer__socials a {
    min-width: 42px;
    min-height: 42px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid currentColor;
    border-radius: var(--radius-pill);
    transition: transform .4s var(--ease-out), background-color .3s ease, border-color .3s ease;
  }

  .smart-booking-dialog__socials a {
    border-color: rgb(241 228 211 / .19);
    color: rgb(241 228 211 / .78);
  }

  .smart-booking-dialog__socials a:hover {
    border-color: rgb(241 228 211 / .35);
    background: rgb(241 228 211 / .07);
    transform: translateY(-1px);
  }

  .social-sprite { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
  .social-icon { width: 17px; height: 17px; flex: 0 0 auto; fill: none; }
  .smart-booking-dialog__socials a > span,
  .site-footer__socials a > span { font-size: 9px; font-weight: 500; letter-spacing: .07em; text-transform: uppercase; }


  @media (max-width:720px) { .smart-booking-dialog { align-items:end; } .smart-booking-dialog__panel { padding-inline:22px; } }
  @media (prefers-reduced-motion:reduce) { .smart-booking-trigger,.smart-booking-dialog,.smart-booking-dialog__panel { transition:none; transform:none; } .smart-booking-trigger,.smart-booking-trigger.is-visible { transform:translateX(-50%); } }
}

/* assets/scss/components/_faq.scss */
@layer components {
  .faq { border-top: 1px solid var(--line); }
  .faq-item { border-bottom: 1px solid var(--line); }
  .faq-item button { width: 100%; min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; text-align: left; cursor: pointer; }
  .faq-item button > span:first-child { font-size: clamp(17px, 2vw, 24px); letter-spacing: -.02em; }
  .faq-item__plus { position: relative; flex: 0 0 30px; width: 30px; height: 30px; }
  .faq-item__plus::before, .faq-item__plus::after { content: ""; position: absolute; top: 50%; left: 50%; width: 16px; height: 1px; background: currentColor; transform: translate(-50%, -50%); transition: transform .3s var(--ease-out); }
  .faq-item__plus::after { transform: translate(-50%, -50%) rotate(90deg); }
  .faq-item button[aria-expanded="true"] .faq-item__plus::after { transform: translate(-50%, -50%) rotate(0); }
  .faq-item__answer { display: grid; grid-template-rows: 1fr; }
  .faq-item__answer > p { overflow: hidden; max-width: 720px; padding-bottom: 28px; color: var(--muted); }
  .js .faq-item__answer { grid-template-rows: 0fr; transition: grid-template-rows .35s var(--ease-out); }
  .js .faq-item__answer > p { padding-bottom: 0; }
  .js .faq-item.is-open .faq-item__answer { grid-template-rows: 1fr; }
  .js .faq-item.is-open .faq-item__answer > p { padding-bottom: 28px; }
}

/* assets/scss/pages/_inner.scss */
@layer pages {
  .responsive-media-delivery { display: contents; }
  .v51-theme {
    --v51-bg: var(--brand-bg);
    --v51-bg-deep: var(--brand-bg-deep);
    --v51-paper: var(--brand-paper-bright);
    --v51-paper-2: var(--brand-paper-soft);
    --v51-gold: var(--brand-gold);
    --v51-ink: var(--brand-ink);
    --v51-muted: var(--brand-muted);
    --v51-line: var(--brand-line);
    min-width: 0;
    padding-top: 0;
    background: var(--surface-dark);
    color: var(--v51-paper);
  }
  .v51-theme main { min-height: 70vh; }

  /* generic inner chapters */
  .v51-theme .section { padding-block: clamp(84px, 7vw, 120px); background: var(--surface-dark); color: var(--v51-paper); }
  .v51-theme .section--soft { background: var(--v51-paper); color: var(--v51-ink); }
  .v51-theme .section--dark,
  .v51-theme .section--ink { background: var(--surface-dark-deep); color: var(--v51-paper); }
  .v51-theme .kicker,
  .v51-eyebrow { color: #a88b6e; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
  .v51-theme .large-copy { font-size: clamp(23px, 2vw, 30px); line-height: 1.35; }

  /* chapter hero */
  .v51-theme .page-hero {
    position: relative;
    width: var(--site-media-shell);
    height: clamp(520px, 62svh, 600px);
    margin: 10px auto 0;
    overflow: hidden;
    border-radius: 9px;
    background: var(--surface-dark-deep);
    color: #fff;
  }
  .v51-theme .page-hero::before { display: none; }
  .v51-theme .page-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(18 12 8 / .70), rgb(18 12 8 / .12) 68%), linear-gradient(0deg, rgb(18 12 8 / .64), transparent 54%); }
  .v51-theme .page-hero__media,
  .v51-theme .page-hero__picture,
  .v51-theme .page-hero__picture img { position: absolute; inset: 0; width: 100%; height: 100%; }
  .v51-theme .page-hero__picture img { object-fit: cover; filter: var(--image-hotel-filter); }
  .v51-theme .page-hero__content { position: relative; z-index: 3; width: calc(100% - clamp(56px, 6vw, 108px)); height: 100%; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; gap: var(--site-grid-gap); padding: 92px 0 48px; }
  .v51-theme .page-hero__content .kicker { position: absolute; top: 72px; left: 0; color: rgb(255 255 255 / .72); }
  .v51-theme .page-hero h1 { grid-column: 1 / span 7; max-width: 10ch; color: #fff; font-family: var(--font-sans); font-size: clamp(58px, 6.6vw, 96px); font-weight: 500; letter-spacing: -.07em; line-height: .9; text-transform: none; }
  .v51-theme .page-hero p { grid-column: 9 / -1; max-width: 340px; margin: 0 0 6px; color: rgb(255 255 255 / .82); font-size: var(--text-support); line-height: 1.65; }

  /* hotel chapter: stay information */
  .v51-theme[data-route="hotel"] .page-hero__media { background: rgb(0 0 0); }
  .v51-theme[data-route="hotel"] .page-hero__picture img { opacity: .78; }
  .v51-theme[data-route="hotel"] .stay-facts { padding-block: clamp(48px, 4vw, 64px) clamp(80px, 6vw, 100px); }
  .v51-theme[data-route="hotel"] .stay-facts__layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--site-grid-gap); align-items: start; }
  .v51-theme[data-route="hotel"] .stay-facts__heading { grid-column: 1 / span 4; }
  .v51-theme[data-route="hotel"] .stay-facts__heading h2 { max-width: 9ch; margin-top: 18px; color: var(--v51-gold); font-size: clamp(44px, 4.4vw, 66px); font-weight: 400; letter-spacing: -.06em; line-height: .98; }
  .v51-theme[data-route="hotel"] .stay-facts__rules { grid-column: 6 / -1; border-top: 1px solid var(--v51-line); }
  .v51-theme[data-route="hotel"] .stay-facts__rule { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(0, 2fr); gap: clamp(20px, 2vw, 36px); padding: 22px 0 24px; border-bottom: 1px solid var(--v51-line); }
  .v51-theme[data-route="hotel"] .stay-facts__rule h3 { color: var(--v51-paper); font-size: 14px; font-weight: 500; line-height: 1.5; }
  .v51-theme[data-route="hotel"] .stay-facts__rule p { max-width: 55ch; margin: 0; color: rgb(251 243 232 / .68); font-size: 14px; line-height: 1.68; }

  /* rooms catalogue: cream product cards on the chocolate world */
  .v51-theme.rooms-page > main > .section { padding-block: 76px 108px; }
  .v51-theme .room-list {
    width: var(--site-shell);
    display: flex;
    flex-direction: column;
    gap: calc(var(--component-gap) * 1.45);
  }

  .v51-theme .compact-cta { padding-block: 96px; background: var(--surface-dark-deep); color: var(--v51-paper); }
  .v51-theme .compact-cta::before { display: none; }
  .v51-theme .compact-cta .container { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; gap: var(--site-grid-gap); }
  .v51-theme .compact-cta h2 { max-width: 10ch; font-size: clamp(44px, 4.5vw, 68px); }
  .v51-theme .compact-cta p { color: rgb(251 243 232 / .65); font-size: 14px; line-height: 1.6; }
  .v51-theme .compact-cta h2 { grid-column: 1 / span 5; }
  .v51-theme .compact-cta p { grid-column: 7 / span 3; }
  .v51-theme .compact-cta .button { grid-column: 11 / -1; justify-self: end; }

  /* room detail — cinematic product template */
  .v51-theme.room-detail-page { background: var(--surface-dark); }
  .v51-theme .room-detail-masthead { width: var(--site-media-shell); margin: 10px auto 0; padding-bottom: clamp(48px, 4.2vw, 64px); }
  .v51-theme .room-detail-masthead__media { position: relative; height: clamp(590px, 72svh, 730px); overflow: hidden; border-radius: var(--radius-media); background: var(--surface-dark-deep); color: #fff; }
  .v51-theme .room-detail-masthead__media::after { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:var(--room-media-readability), linear-gradient(90deg, rgb(13 8 5 / .20), transparent 43%, rgb(13 8 5 / .12) 100%); }
  .v51-theme .room-detail-masthead__media > .responsive-media-picture { width:100%; height:100%; display:block; }
  .v51-theme .room-detail-masthead__media > img,
  .v51-theme .room-detail-masthead__media > .responsive-media-delivery > img,
  .v51-theme .room-detail-masthead__media > .responsive-media-picture > img { width:100%; height:100%; object-fit:cover; filter:var(--image-hotel-filter); transform:scale(1.002); }
  .v51-theme .room-detail-masthead__top { position:absolute; z-index:3; top:clamp(24px,2vw,34px); right:clamp(28px,2.4vw,42px); left:clamp(28px,2.4vw,42px); display:flex; align-items:center; justify-content:space-between; gap:24px; color:#fff; font-size:11px; font-weight:500; letter-spacing:.11em; text-transform:uppercase; text-shadow:0 1px 12px rgb(0 0 0 / .55); }
  .v51-theme .room-detail-masthead__back { color:#fff; }
  .v51-theme .room-detail-masthead__meta { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
  .v51-theme .room-detail-masthead__share { min-height:36px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid rgb(255 255 255 / .24); border-radius:var(--radius-pill); background:rgb(13 8 5 / .16); color:#fff; font:inherit; font-size:9px; font-weight:500; letter-spacing:.095em; text-transform:uppercase; cursor:pointer; transition:border-color .25s ease, background-color .25s ease, opacity .25s ease; }
  .v51-theme .room-detail-masthead__share:hover { border-color:rgb(255 255 255 / .42); background:rgb(13 8 5 / .28); }
  .v51-theme .room-detail-masthead__share .icon--share { width:14px; height:14px; }
  .v51-theme .room-detail-masthead__title { position:absolute; z-index:3; left:clamp(34px,4vw,72px); bottom:clamp(44px,5vw,80px); max-width:min(58vw,760px); }
  .v51-theme .room-detail-masthead__title .kicker { color:#fff; }
  .v51-theme .room-detail-masthead__title h1 { margin-top:14px; color:#fff; font-size:clamp(70px,8vw,118px); font-weight:400; letter-spacing:-.075em; line-height:.88; text-shadow:0 2px 22px rgb(0 0 0 / .28); }
  .v51-theme .room-detail-masthead__promise { position:absolute; z-index:3; right:clamp(34px,4vw,72px); bottom:clamp(48px,5.3vw,84px); width:min(31vw,430px); display:grid; justify-items:start; gap:22px; }
  .v51-theme .room-detail-masthead__promise p { max-width:38ch; color:#fff; font-size:var(--text-support); line-height:1.6; text-shadow:0 1px 16px rgb(0 0 0 / .42); }
  .v51-theme .room-detail-masthead__promise .button { min-height:46px; }

  .v51-theme .room-detail-facts { position:relative; z-index:5; width:calc(100% - clamp(40px,5vw,86px)); margin:-38px auto 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) minmax(220px,1.16fr); overflow:hidden; border-radius:var(--radius-card); background:var(--v51-paper); color:var(--v51-ink); box-shadow:0 18px 60px rgb(18 11 6 / .16); }
  .v51-theme .room-detail-facts > div { min-height:104px; padding:24px clamp(22px,2vw,34px); display:flex; flex-direction:column; justify-content:center; gap:8px; border-right:1px solid rgb(36 26 18 / .12); }
  .v51-theme .room-detail-facts span { color:#8a7d70; font-size:var(--text-label); font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
  .v51-theme .room-detail-facts strong { color:var(--v51-ink); font-size:var(--text-support); font-weight:400; line-height:1.25; }
  .v51-theme .room-detail-facts__action { min-height:104px; padding:0 clamp(24px,2.2vw,38px); display:flex; align-items:center; justify-content:space-between; gap:16px; background:linear-gradient(var(--interaction-primary-hover) 0 0) 0 100% / 100% 0 no-repeat,var(--interaction-primary); color:#fff; font-size:var(--text-action); font-weight:500; letter-spacing:.095em; text-transform:uppercase; transition:background-size .5s var(--ease-out); }
  .v51-theme .room-detail-facts__action span { color:inherit; }
  .v51-theme .room-detail-facts__action:hover { background-size:100% 100%; background-color:#70563e; --interaction-primary-hover:#70563e; }
  .v51-theme .room-detail-facts__action:focus-visible { outline:3px solid #241a12; outline-offset:-6px; }
  .v51-theme .room-detail-facts__action .icon { width:18px; transition:transform .52s var(--ease-out); }
  .v51-theme .room-detail-facts__action:hover .icon { transform:translateX(5px); }

  .v51-theme .room-story-gallery { padding:clamp(64px,5.4vw,92px) 0 clamp(92px,7vw,124px); background:var(--surface-dark); color:var(--v51-paper); }
  .v51-theme .room-story-gallery__head { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-items:end; gap:var(--site-grid-gap); }
  .v51-theme .room-story-gallery__head > div { grid-column:1 / span 6; }
  .v51-theme .room-story-gallery__head > p { grid-column:9 / -1; max-width:38ch; justify-self:end; margin:0; color:rgb(251 243 232 / .58); font-size:var(--text-support); line-height:1.65; text-align:right; }
  .v51-theme .room-story-gallery__head h2 { margin-top:14px; color:var(--v51-gold); font-size:clamp(46px,4.5vw,68px); font-weight:400; letter-spacing:-.055em; line-height:.96; }
  .v51-theme .room-story-gallery__grid { margin-top:var(--content-gap); display:grid; grid-template-columns:6fr 3fr 3fr; align-items:end; gap:var(--component-gap); }
  .v51-theme .room-story-gallery__item { position:relative; min-width:0; padding:0; overflow:hidden; border:0; border-radius:var(--radius-media); background:transparent; color:#fff; text-align:left; cursor:zoom-in; }
  .v51-theme .room-story-gallery__item::after { content:""; position:absolute; inset:0; background:var(--room-media-readability); pointer-events:none; }
  .v51-theme .room-story-gallery__item > .responsive-media-picture { width:100%; display:block; }
  .v51-theme .room-story-gallery__item img { width:100%; height:auto; display:block; filter:var(--image-hotel-filter); transition:transform .82s var(--ease-out); }
  .v51-theme .room-story-gallery__item:hover img { transform:scale(1.018); }
  .v51-theme .room-story-gallery__item span { position:absolute; z-index:2; right:12px; bottom:11px; left:12px; color:#fff; font-size:var(--text-caption); font-weight:500; letter-spacing:.08em; text-transform:uppercase; text-shadow:0 1px 14px rgb(12 7 4 / .68); }

  .v51-theme .room-amenities-chapter { padding:clamp(92px,7vw,124px) 0; background:var(--v51-paper); color:var(--v51-ink); }
  .v51-theme .room-amenities-chapter__inner { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--site-grid-gap); align-items:start; }
  .v51-theme .room-amenities-chapter__intro { grid-column:1 / span 5; max-width:610px; }
  .v51-theme .room-amenities-chapter__intro .kicker { color:#8b725a; }
  .v51-theme .room-amenities-chapter__intro h2 { margin-top:16px; color:var(--v51-ink); font-size:clamp(44px,4.4vw,68px); font-weight:400; letter-spacing:-.06em; line-height:.94; }
  .v51-theme .room-amenities-chapter__intro p { max-width:46ch; margin-top:22px; color:#71665b; font-size:var(--text-support); line-height:1.65; }
  .v51-theme .room-amenities-list { grid-column:7 / -1; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgb(36 26 18 / .14); }
  .v51-theme .room-amenities-list li { min-height:118px; padding:28px 0; display:flex; align-items:flex-end; border-bottom:1px solid rgb(36 26 18 / .14); color:var(--v51-ink); font-size:18px; line-height:1.35; }
  .v51-theme .room-amenities-list li:nth-child(odd) { padding-right:28px; border-right:1px solid rgb(36 26 18 / .14); }
  .v51-theme .room-amenities-list li:nth-child(even) { padding-left:28px; }

  .v51-theme .room-lifestyle { position:relative; width:var(--site-media-shell); height:clamp(560px,68svh,760px); margin:clamp(18px,2.2vw,34px) auto clamp(96px,7vw,128px); overflow:hidden; border-radius:var(--radius-media); color:#fff; }
  .v51-theme .room-lifestyle::after { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(0deg,rgb(14 9 5 / .68),transparent 50%),linear-gradient(90deg,rgb(14 9 5 / .34),transparent 54%); }
  .v51-theme .room-lifestyle > img,
  .v51-theme .room-lifestyle > .responsive-media-delivery > img { width:100%; height:100%; object-fit:cover; filter:var(--image-hotel-filter); }
  .v51-theme .room-lifestyle__copy { position:absolute; z-index:2; left:clamp(34px,4vw,72px); bottom:clamp(40px,4.6vw,76px); max-width:min(55vw,760px); }
  .v51-theme .room-lifestyle__copy .kicker { color:rgb(255 255 255 / .72); }
  .v51-theme .room-lifestyle__copy h2 { max-width:15ch; margin-top:14px; color:#fff; font-size:clamp(46px,4.8vw,72px); font-weight:400; letter-spacing:-.06em; line-height:.94; }
  .v51-theme .room-lifestyle__copy p { max-width:50ch; margin-top:18px; color:rgb(255 255 255 / .8); font-size:var(--text-support); line-height:1.65; }
  .v51-theme .room-lifestyle__action { position:absolute; z-index:2; right:clamp(34px,4vw,72px); bottom:clamp(40px,4.6vw,76px); }

  .v51-theme .room-related-chapter { padding:0 0 clamp(104px,8vw,144px); background:var(--surface-dark); color:var(--v51-paper); }
  .v51-theme .room-related-chapter__head { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-items:end; gap:var(--site-grid-gap); }
  .v51-theme .room-related-chapter__head > div { grid-column:1 / span 6; }
  .v51-theme .room-related-chapter__head > a { grid-column:10 / -1; justify-self:end; }
  .v51-theme .room-related-chapter__head h2 { margin-top:14px; color:var(--v51-gold); font-size:clamp(42px,4vw,62px); font-weight:400; letter-spacing:-.055em; line-height:.96; }
  .v51-theme .room-related-grid { margin-top:var(--content-gap); display:grid; grid-template-columns:1fr 1fr; gap:var(--component-gap); }
  .v51-theme .room-related-card { min-height:286px; display:grid; grid-template-columns:1.08fr .92fr; overflow:hidden; border-radius:var(--radius-card); background:var(--v51-paper); color:var(--v51-ink); }
  .v51-theme .room-related-card__media { display:block; min-height:0; margin:10px 0 10px 10px; overflow:hidden; border-radius:var(--radius-media); }
  .v51-theme .room-related-card__media img { width:100%; height:100%; object-fit:cover; filter:var(--image-hotel-filter); transition:transform .82s var(--ease-out); }
  .v51-theme .room-related-card:hover .room-related-card__media img { transform:scale(1.025); }
  .v51-theme .room-related-card__copy { padding:30px 30px 26px; display:flex; flex-direction:column; }
  .v51-theme .room-related-card__copy > span { color:#8a7b6d; font-size:10px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
  .v51-theme .room-related-card h3 { margin-top:12px; color:var(--v51-ink); font-size:clamp(34px,3vw,48px); font-weight:400; letter-spacing:-.055em; line-height:1; }
  .v51-theme .room-related-card p { margin-top:8px; color:#776a5f; font-size:var(--text-support); }
  .v51-theme .room-related-card strong { margin-top:auto; min-height:44px; display:inline-flex; align-items:center; gap:10px; color:var(--v51-ink); font-size:11px; font-weight:500; letter-spacing:.095em; text-transform:uppercase; }
  .v51-theme .room-related-card strong .icon { width:17px; transition:transform .52s var(--ease-out); }
  .v51-theme .room-related-card:hover strong .icon { transform:translateX(5px); }

  /* about/value pages */
  .v51-theme .editorial-grid > div > h2 { color: var(--v51-gold); }
  .v51-theme .editorial-grid > div > p:not(.large-copy) { color: rgb(251 243 232 / .62); }
  .v51-theme .section--soft .editorial-grid > div > p:not(.large-copy) { color: #71675d; }
  .v51-theme .values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  .v51-theme .values-grid article { min-height:300px; padding:30px; display:flex; flex-direction:column; border:1px solid var(--v51-line); border-radius:10px; }
  .v51-theme .values-grid article:nth-child(2) { background:var(--v51-paper); color:var(--v51-ink); border-color:transparent; }
  .v51-theme .values-grid span { opacity:.5; font-size:11px; }
  .v51-theme .values-grid h2 { margin-top:auto; font-size:34px; }
  .v51-theme .values-grid p { margin-top:12px; opacity:.68; font-size:14px; line-height:1.6; }
  .v51-theme .gallery-triptych { display:grid; grid-template-columns:1.15fr .8fr 1fr; gap:14px; align-items:end; }
  .v51-theme .gallery-triptych picture { display:block; overflow:hidden; border-radius:7px; }
  .v51-theme .gallery-triptych picture:nth-child(1) { aspect-ratio:4/5; }
  .v51-theme .gallery-triptych picture:nth-child(2) { aspect-ratio:3/4; }
  .v51-theme .gallery-triptych picture:nth-child(3) { aspect-ratio:4/4.6; }
  .v51-theme .gallery-triptych img { width:100%; height:100%; object-fit:cover; }

  /* surroundings */
  .v51-theme.surroundings-page > main > .section { padding-block: clamp(72px, 5.8vw, 100px); }
  .v51-theme .destination-list { width:var(--site-shell); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(58px,5.8vw,108px); }
  .v51-theme .destination-card { display:block; padding-bottom:clamp(40px,4vw,72px); border-bottom:1px solid var(--v51-line); }
  .v51-theme .destination-card:nth-child(even) .destination-card__picture { order:2; }
  .v51-theme .destination-card__picture { aspect-ratio:1.25/1; overflow:hidden; border-radius:8px; }
  .v51-theme .destination-card__picture::after { display:none; }
  .v51-theme .destination-card__picture img { width:100%; height:100%; object-fit:cover; filter:var(--image-nature-filter); }
  .v51-theme.surroundings-page .page-hero__picture img { filter: var(--image-nature-filter); }
  .v51-theme .destination-card > div > span { color:#a78a6c; font-size:11px; }
  .v51-theme .destination-card h2 { margin-top:14px; color:var(--v51-gold); font-size:clamp(38px,3.7vw,56px); }
  .v51-theme .destination-card p { margin-top:16px; max-width:440px; color:rgb(251 243 232 / .66); font-size:var(--text-support); line-height:1.65; }

  /* gallery */
  .v51-theme .gallery-grid { width:var(--site-shell); display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(14px,1.2vw,22px); }
  .v51-theme .gallery-tile { position:relative; min-height:0; overflow:hidden; border:0; border-radius:8px; background:transparent; color:#fff; text-align:left; cursor:pointer; }
  .v51-theme .gallery-tile--1 { grid-column:span 7; aspect-ratio:1.45/1; }
  .v51-theme .gallery-tile--2 { grid-column:span 5; aspect-ratio:1/1.12; }
  .v51-theme .gallery-tile--3 { grid-column:span 5; aspect-ratio:1/1.04; }
  .v51-theme .gallery-tile--4 { grid-column:span 7; aspect-ratio:1.45/1; }
  .v51-theme .gallery-tile--5 { grid-column:span 6; aspect-ratio:1.28/1; }
  .v51-theme .gallery-tile img,
  .v51-theme .gallery-video-tile video { width:100%; height:100%; object-fit:cover; filter: var(--image-hotel-filter); transition:transform .82s var(--ease-out); }
  .v51-theme .gallery-tile:hover img,
  .v51-theme .gallery-video-tile:hover video { transform:scale(1.025); }
  .v51-theme .gallery-tile > span { position:absolute; z-index:2; inset:auto 14px 13px; padding:6px 9px; border-radius:999px; background:rgb(32 23 15 /.72); color:#fff; font-size:var(--text-caption); backdrop-filter:blur(10px); }
  .v51-theme .gallery-video-tile { grid-column: span 4; aspect-ratio: 2 / 3; cursor: default; }
  .v51-theme .gallery-tile--full { grid-column: 1 / -1; aspect-ratio: 2 / 1; }
  .v51-theme .gallery-video-tile::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 55%,rgb(31 22 15 /.34)); }
  .v51-theme .gallery-video-tile__control { position:absolute; z-index:3; inset:50% auto auto 50%; min-height:48px; padding:0 18px; border:1px solid rgb(255 255 255 /.28); border-radius:999px; background:rgb(31 22 15 /.66); color:#fff; font-size:10px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; backdrop-filter:blur(12px); transform:translate(-50%,-50%); cursor:pointer; transition:background .28s ease, transform .42s var(--ease-out); }
  .v51-theme .gallery-video-tile__control:hover { background:rgb(31 22 15 /.82); transform:translate(-50%,-50%) scale(1.02); }
  .v51-theme .gallery-video-tile.is-playing .gallery-video-tile__control { opacity:.72; }
  .v51-theme .gallery-video-tile.is-unavailable .gallery-video-tile__control { opacity:.78; cursor:default; }
  .v51-theme .gallery-video-tile__caption { pointer-events:none; }
  .v51-theme.gallery-page > main > .section { padding-top: clamp(72px, 5.6vw, 92px); }
  .v51-theme.gallery-page .page-hero::after { background: linear-gradient(90deg, rgb(18 12 8 / .54), rgb(18 12 8 / .08) 68%), linear-gradient(0deg, rgb(18 12 8 / .48), transparent 54%); }
  .v51-theme.gallery-page .page-hero__picture img { filter: var(--image-hotel-filter); }
  .v51-theme .lightbox { position: fixed; z-index: 190; inset: 0; display: grid; place-items: center; visibility: hidden; padding: 40px; background: rgb(20 14 9 / .94); opacity: 0; transition: opacity .3s ease, visibility .3s step-end; }
  .v51-theme .lightbox.is-open { visibility: visible; opacity: 1; transition: opacity .3s ease, visibility 0s; }
  .v51-theme .lightbox__panel { position: relative; width: min(var(--site-shell), 1680px); max-height: 90vh; display: grid; place-items: center; }
  .v51-theme .lightbox__figure { width: 100%; min-width: 0; margin: 0; padding-inline: 72px; display: grid; justify-items: center; gap: 12px; }
  .v51-theme .lightbox__figure img { max-width: 100%; max-height: calc(90vh - 48px); width: auto; height: auto; object-fit: contain; border-radius: 6px; opacity: 1; transition: opacity .22s var(--ease-out); }
  .v51-theme .lightbox__panel.is-media-pending .lightbox__figure img { opacity: 0; }
  .v51-theme .lightbox__meta { width: min(100%, 1180px); min-height: 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: rgb(255 255 255 / .72); font-size: 11px; line-height: 1.4; }
  .v51-theme .lightbox__counter { flex: 0 0 auto; color: rgb(255 255 255 / .52); font-variant-numeric: tabular-nums; letter-spacing: .08em; }
  .v51-theme .lightbox__nav { position: absolute; z-index: 3; top: 50%; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgb(255 255 255 / .22); border-radius: 999px; background: rgb(20 14 9 / .38); color: #fff; backdrop-filter: blur(10px); transform: translateY(-50%); cursor: pointer; transition: background .28s ease, border-color .28s ease, transform .28s ease; }
  .v51-theme .lightbox__nav:hover { border-color: rgb(255 255 255 / .42); background: rgb(20 14 9 / .66); }
  .v51-theme .lightbox__nav--prev { left: 0; }
  .v51-theme .lightbox__nav--prev .icon { transform: rotate(180deg); }
  .v51-theme .lightbox__nav--next { right: 0; }
  .v51-theme .lightbox__nav .icon { width: 20px; }
  .v51-theme .lightbox__close { position: absolute; z-index: 4; top: 22px; right: 22px; color: #fff; border-color: rgb(255 255 255 / .28); }

  @media (min-width: 721px) {
    .v51-theme.gallery-page .page-hero { height: clamp(480px, 58svh, 560px); }
  }

  /* booking */
  .v51-theme .booking-page { width:var(--site-media-shell); min-height:clamp(680px,76svh,820px); margin:10px auto 80px; display:grid; grid-template-columns:1.15fr .85fr; overflow:hidden; border-radius:10px; background:var(--v51-paper); color:var(--v51-ink); }
  .v51-theme .booking-page__media { position:relative; min-height:clamp(680px,76svh,820px); }
  .v51-theme .booking-page__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 70%,rgb(26 18 12 /.18)); }
  .v51-theme .booking-page__picture,
  .v51-theme .booking-page__picture img { width:100%; height:100%; }
  .v51-theme .booking-page__picture img { object-fit:cover; filter:var(--image-hotel-filter); }
  .v51-theme .booking-page__content { position:relative; padding:72px 58px 48px; display:flex; flex-direction:column; justify-content:center; }
  .v51-theme .booking-page__content::after { display:none; }
  .v51-theme .booking-page__content h1 { margin-top:14px; font-size:clamp(48px,4.8vw,72px); font-weight:500; letter-spacing:-.06em; line-height:.95; }
  .v51-theme .booking-page__content h1 em { color:#8b6e51; font-family:var(--font-display); font-weight:400; }
  .v51-theme .booking-page__content > p { margin-top:20px; color:#6f6358; font-size:var(--text-support); line-height:1.65; }
  .v51-theme .booking-page-form { margin-top:28px; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .v51-theme .booking-form__field { padding:13px 15px; border:1px solid rgb(36 26 18 /.15); border-radius:8px; }
  .v51-theme .booking-form__field label { display:block; margin-bottom:8px; color:#7d7165; font-size:10px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
  .v51-theme .booking-form__field input,
  .v51-theme .booking-form__field select { width:100%; min-height:44px; border:0; outline:0; background:transparent; color:var(--v51-ink); font:inherit; font-size:14px; }
  .v51-theme .booking-page-form .button { grid-column:1/-1; min-height:48px; border:0; border-radius:999px; background:linear-gradient(var(--interaction-primary-hover) 0 0) 0 100% / 100% 0 no-repeat,var(--interaction-primary); color:#fff; }
  .v51-theme .booking-page-form__status { grid-column:1/-1; color:#765f48; font-size:12px; line-height:1.5; }
  .v51-theme .booking-page__fallback { margin-top:20px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; color:#756b62; font-size:12px; }
  .v51-theme .booking-page__fallback a,
  .v51-theme .booking-page__share { color:#6e523b; font-weight:500; }
  .v51-theme .booking-page__share { min-height:40px; padding:0; display:inline-flex; align-items:center; gap:6px; border:0; background:transparent; font:inherit; cursor:pointer; }
  .v51-theme .booking-page__share .icon--share { width:14px; height:14px; }

  /* 404 / compact contact-style chapter */
  .v51-theme .contact-hero { padding: 170px 0 120px; background: var(--surface-dark); color: var(--v51-paper); }
  .v51-theme .contact-hero__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: start; }
  .v51-theme .contact-hero h1 { margin-top: 16px; color: var(--v51-gold); font-size: clamp(58px, 6vw, 90px); font-weight: 500; letter-spacing: -.07em; line-height: .9; }
  .v51-theme .contact-hero h1 em { font-family: var(--font-display); font-weight: 400; }
  .v51-theme .contact-hero p { max-width: 450px; margin-top: 24px; color: rgb(251 243 232 / .64); font-size: var(--text-support); line-height: 1.65; }
  .v51-theme .contact-list { display: grid; border-top: 1px solid var(--v51-line); }
  .v51-theme .contact-list > * { min-height: 88px; padding: 16px 0; display: grid; grid-template-columns: .45fr 1fr; align-items: center; gap: 25px; border-bottom: 1px solid var(--v51-line); }
  .v51-theme .contact-list span { color: rgb(251 243 232 / .42); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
  .v51-theme .contact-list strong { color: var(--v51-paper); font-size: 18px; font-weight: 500; }

  /* real contact page */
  .v51-contact-hero { padding: clamp(82px, 6.2vw, 108px) 0 clamp(78px, 5.8vw, 104px); background: var(--surface-dark); }
  .v51-contact-hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--site-grid-gap); align-items: center; }
  .v51-contact-intro { grid-column: 1 / span 4; max-width: 500px; }
  .v51-contact-hero h1 { margin-top: 16px; color: var(--v51-gold); font-size: clamp(58px, 5.8vw, 86px); font-weight: 500; letter-spacing: -.07em; line-height: .9; }
  .v51-contact-hero h1 em { font-family: var(--font-display); font-weight: 400; }
  .v51-contact-intro__place { max-width: 430px; margin-top: 24px; color: rgb(251 243 232 / .76); font-size: 16px; line-height: 1.55; }
  .v51-contact-intro__actions { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 10px; }
  .v51-contact-intro__note { max-width: 390px; margin-top: 24px; color: rgb(251 243 232 / .48); font-size: var(--text-support); line-height: 1.6; }
  .v51-contact-card { grid-column: 6 / -1; min-height: clamp(360px, 31vw, 470px); padding: clamp(36px, 3.6vw, 58px); display: flex; flex-direction: column; border-radius: 12px; background: var(--v51-paper); color: var(--v51-ink); }
  .v51-contact-card .v51-eyebrow { color: rgb(39 29 20 / .48); }
  .v51-contact-card__phone { width: max-content; max-width: 100%; margin-top: auto; color: var(--v51-ink); font-size: clamp(36px, 4.2vw, 62px); font-weight: 500; letter-spacing: -.06em; line-height: .96; }
  .v51-contact-card > p { max-width: 38ch; margin-top: 18px; color: rgb(39 29 20 / .64); font-size: var(--text-support); line-height: 1.6; }
  .v51-contact-card__address { font-size: 18px; line-height: 1.55; }
  .v51-contact-card__backup { margin-top: 24px; display: flex; flex-direction: column; gap: 4px; }
  .v51-contact-card__backup span { color: rgb(39 29 20 / .58); font-size: 11px; letter-spacing: .04em; }
  .v51-contact-card__backup a { width: max-content; min-height: 44px; display: inline-flex; align-items: center; color: var(--v51-ink); font-size: 18px; }
  .v51-contact-card__actions { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
  .v51-contact-card__actions > a:not(.button) { min-height: 44px; display: inline-flex; align-items: center; color: var(--v51-ink); font-size: 11px; font-weight: 500; text-transform: uppercase; }
  .v51-contact-card > small { max-width: 56ch; margin-top: 22px; color: rgb(39 29 20 / .46); font-size: 10px; line-height: 1.55; }

  .v51-location-section { padding: var(--section-space) 0 clamp(96px, 7vw, 124px); background: var(--surface-dark); }
  .v51-location-section__head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--site-grid-gap); align-items: end; margin-bottom: clamp(30px, 3vw, 44px); }
  .v51-location-section__head > span { grid-column: 1 / span 2; align-self: start; }
  .v51-location-section__head > div { grid-column: 3 / span 5; }
  .v51-location-section__head > p { grid-column: 9 / -1; max-width: 440px; justify-self: end; }
  .v51-location-section h2 { color: var(--v51-gold); font-size: clamp(38px, 3.8vw, 56px); font-weight: 500; letter-spacing: -.05em; line-height: 1; }
  .v51-location-section p { color: rgb(251 243 232 / .62); font-size: var(--text-support); line-height: 1.65; }
  .v51-location-section__map-actions { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 10px; }
  .v51-map-frame { position: relative; height: clamp(520px, 42vw, 620px); overflow: hidden; border-radius: var(--radius-card); background: #e5d9c8; }
  .v51-map-frame iframe { width: 100%; height: 100%; border: 0; display: block; opacity: 0; transition: opacity .46s var(--ease-out); }
  .v51-map-placeholder { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: clamp(28px, 4vw, 54px); background: radial-gradient(circle at 78% 18%, rgb(255 246 229 / .52), transparent 32%), linear-gradient(145deg, rgb(234 223 206) 0%, rgb(216 199 175) 58%, rgb(203 180 151) 100%); color: var(--brand-ink); transition: opacity .38s var(--ease-out), visibility .38s var(--ease-out); }
  .v51-map-placeholder::before { content: ""; position: absolute; inset: clamp(14px, 2vw, 24px); border: 1px solid rgb(61 43 29 / .14); border-radius: calc(var(--radius-card) - 8px); pointer-events: none; }
  .v51-map-placeholder > * { position: relative; z-index: 1; }
  .v51-map-placeholder > strong { max-width: 9em; margin-top: 14px; font-family: var(--font-display); font-size: clamp(36px, 4.2vw, 62px); font-weight: 400; line-height: .95; letter-spacing: -.045em; }
  .v51-map-placeholder > p { max-width: 420px; margin: 20px 0 24px; color: rgb(40 30 21 / .72); font-size: var(--text-support); line-height: 1.65; }
  .v51-map-actions { position: absolute; z-index: 3; top: 16px; right: 16px; left: 16px; display: flex; flex-wrap: wrap; gap: 8px; pointer-events: none; }
  .v51-map-actions a, .v51-map-actions button { min-height: 44px; padding: 10px 14px; border: 1px solid rgb(61 43 29 / .2); border-radius: 8px; background: var(--brand-paper-bright); color: var(--brand-ink); font: inherit; font-size: 12px; cursor: pointer; pointer-events: auto; }
  .v51-map-actions [hidden] { display: none; }
  @media (prefers-reduced-motion: reduce) { .v51-map-frame iframe, .v51-map-placeholder { transition: none; } }
  .v51-map-frame.is-loading .v51-map-placeholder { cursor: progress; }
  .v51-map-frame.is-loaded iframe { opacity: 1; }
  .v51-map-frame.is-loaded .v51-map-placeholder { opacity: 0; visibility: hidden; pointer-events: none; }
  .v51-map-frame.is-unavailable .v51-map-placeholder { cursor: default; }

  @media (max-width: 1120px) {
    .v51-theme .contact-hero__grid { gap:60px; }
    .v51-contact-intro { grid-column: 1 / span 5; }
    .v51-contact-card { grid-column: 6 / -1; }
  }

  @media (max-width: 900px) and (min-width: 721px) {
    .v51-theme[data-route="hotel"] .stay-facts__heading { grid-column: 1 / span 4; }
    .v51-theme[data-route="hotel"] .stay-facts__rules { grid-column: 5 / -1; }
    .v51-theme[data-route="hotel"] .stay-facts__rule { grid-template-columns: 1fr; gap: 6px; }
    .v51-theme .room-detail-masthead__media { height: 610px; }
    .v51-theme .room-detail-masthead__promise { width: 31vw; }
    .v51-theme .room-detail-masthead__title { max-width: 48vw; }
    .v51-theme .room-detail-masthead__title h1 { font-size: clamp(48px, 6.4vw, 58px); }
    .v51-theme .room-detail-masthead__share { width:44px; min-width:44px; min-height:44px; padding:0; }
    .v51-theme .room-detail-masthead__share [data-share-label] { display:none; }
    .v51-theme .booking-page__share { min-height:44px; }
    .v51-theme .room-detail-facts { grid-template-columns: repeat(3, 1fr); }
    .v51-theme .room-detail-facts__action { grid-column: 1 / -1; min-height: 70px; }
    .v51-theme .room-story-gallery__grid { grid-template-columns: 1.35fr .85fr .85fr; }
    .v51-theme .room-related-card { grid-template-columns: 1fr; }
    .v51-theme .room-related-card__media { min-height: 210px; margin: 9px 9px 0; }
  }

  @media (max-width: 720px) {
    .v51-theme { padding-bottom:72px; }

    .v51-theme[data-route="hotel"] .stay-facts { padding-block: 48px 76px; }
    .v51-theme[data-route="hotel"] .stay-facts__layout { grid-template-columns: 1fr; gap: 38px; }
    .v51-theme[data-route="hotel"] .stay-facts__heading,
    .v51-theme[data-route="hotel"] .stay-facts__rules { grid-column: 1; }
    .v51-theme[data-route="hotel"] .stay-facts__heading h2 { max-width: 11ch; margin-top: 14px; font-size: clamp(38px, 10vw, 48px); }
    .v51-theme[data-route="hotel"] .stay-facts__rule { grid-template-columns: 1fr; gap: 7px; padding-block: 20px 22px; }
    .v51-theme[data-route="hotel"] .stay-facts__rule h3,
    .v51-theme[data-route="hotel"] .stay-facts__rule p { font-size: 14px; }

    .v51-theme .room-detail-masthead__media { height: clamp(620px, 80svh, 720px); }
    .v51-theme .room-detail-masthead__top { top: 24px; right: 20px; left: 20px; gap: 12px; font-size: 9px; }
    .v51-theme .room-detail-masthead__meta { gap: 8px; }
    .v51-theme .room-detail-masthead__share { width: 44px; min-width: 44px; min-height: 44px; padding: 0; }
    .v51-theme .room-detail-masthead__share [data-share-label] { display: none; }
    .v51-theme .room-detail-masthead__title { left: 0; right: 0; bottom: 190px; max-width: none; }
    .v51-theme .room-detail-masthead__title h1 { font-size: clamp(34px, 10.7vw, 64px); line-height: 1; }
    .v51-theme .room-detail-masthead__promise { right: 0; bottom: 48px; left: 0; width: auto; gap: 14px; }
    .v51-theme .room-detail-masthead__promise p { max-width: none; font-size: var(--text-support); }
    .v51-theme .room-detail-facts { width: var(--site-shell); grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v51-theme .room-detail-facts > div { min-height: 90px; padding: 18px 10px; }
    .v51-theme .room-detail-facts strong { font-size: var(--text-support); }
    .v51-theme .room-detail-facts span { font-size: var(--text-label); }
    .v51-theme .room-detail-facts__action { grid-column: 1 / -1; min-height: 60px; }

    .v51-theme .page-hero { width:100%; height:clamp(500px,66svh,560px); margin-top:0; border-radius:0; }
    .v51-theme .page-hero__content { width:var(--site-shell); display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; gap:18px; padding:90px 0 30px; }
    .v51-theme .page-hero__content .kicker { top:28px; }
    .v51-theme .page-hero h1 { font-size:clamp(48px,14vw,64px); }
    .v51-theme .page-hero p { max-width:290px; font-size:var(--text-support); }

    .v51-theme.rooms-page > main > .section { padding:62px 0 82px; }
    .v51-theme .room-list {
      width: var(--site-shell);
      padding-inline: 0;
      display: flex;
      flex-direction: column;
      gap: calc(var(--component-gap) * 1.25);
      overflow: visible;
      scroll-snap-type: none;
    }

    .v51-theme .room-story-gallery { padding:58px 0 72px; }
    .v51-theme .room-story-gallery__head { grid-template-columns:1fr; gap:12px; }
    .v51-theme .room-story-gallery__head > div,
    .v51-theme .room-story-gallery__head > p { grid-column:1; justify-self:stretch; text-align:left; }
    .v51-theme .room-story-gallery__head h2 { font-size:38px; }
    .v51-theme .room-story-gallery__head > p { max-width:42ch; font-size:var(--text-support); }
    .v51-theme .room-story-gallery__grid { margin-top:34px; grid-template-columns:1fr 1fr; gap:8px; align-items:start; }
    .v51-theme .room-story-gallery__item { border-radius:8px; }
    .v51-theme .room-story-gallery__item--1 { grid-column:1 / -1; }
    .v51-theme .room-story-gallery__item span { right:9px; bottom:8px; left:9px; font-size:var(--text-caption); }

    .v51-theme .room-amenities-chapter { padding:64px 0 72px; }
    .v51-theme .room-amenities-chapter__inner { grid-template-columns:1fr; gap:34px; }
    .v51-theme .room-amenities-chapter__intro,
    .v51-theme .room-amenities-list { grid-column:1; }
    .v51-theme .room-amenities-chapter__intro h2 { font-size:40px; }
    .v51-theme .room-amenities-chapter__intro p { font-size:var(--text-support); }
    .v51-theme .room-amenities-list { grid-template-columns:1fr; }
    .v51-theme .room-amenities-list li { min-height:72px; padding:18px 0; font-size:15px; }
    .v51-theme .room-amenities-list li:nth-child(odd) { padding-right:0; border-right:0; }
    .v51-theme .room-amenities-list li:nth-child(even) { padding-left:0; }

    .v51-theme .room-lifestyle { width:var(--site-media-shell); height:auto; aspect-ratio:4 / 5; margin:10px auto 72px; border-radius:8px; }
    .v51-theme .room-lifestyle__copy { right:20px; left:20px; bottom:90px; max-width:none; }
    .v51-theme .room-lifestyle__copy h2 { font-size:38px; }
    .v51-theme .room-lifestyle__copy p { max-width:34ch; font-size:var(--text-support); }
    .v51-theme .room-lifestyle__action { right:auto; bottom:26px; left:20px; min-height:44px; }

    .v51-theme .room-related-chapter { padding-bottom:88px; }
    .v51-theme .room-related-chapter__head { grid-template-columns:1fr; gap:20px; }
    .v51-theme .room-related-chapter__head > div,
    .v51-theme .room-related-chapter__head > a { grid-column:1; justify-self:start; }
    .v51-theme .room-related-chapter__head h2 { font-size:38px; }
    .v51-theme .room-related-grid { margin-top:34px; grid-template-columns:1fr; gap:12px; }
    .v51-theme .room-related-card { min-height:0; grid-template-columns:1fr; }
    .v51-theme .room-related-card__media { aspect-ratio:4 / 3; margin:8px 8px 0; }
    .v51-theme .room-related-card__copy { min-height:210px; padding:24px 22px 20px; }
    .v51-theme .room-related-card h3 { font-size:36px; }

    .v51-theme .values-grid { grid-template-columns:1fr; }
    .v51-theme .values-grid article { min-height:230px; }
    .v51-theme .gallery-triptych { grid-template-columns:1fr 1fr; }
    .v51-theme .gallery-triptych picture:first-child { grid-column:1/-1; }

    .v51-theme .destination-list { width:var(--site-shell); grid-template-columns:1fr; gap:64px; }
    .v51-theme .destination-card,
    .v51-theme .destination-card:nth-child(even) { grid-template-columns:1fr; gap:24px; }
    .v51-theme .destination-card:nth-child(even) .destination-card__picture { order:0; }
    .v51-theme .destination-card__picture { aspect-ratio:4/3; }

    .v51-theme .gallery-grid { width:var(--site-shell); grid-template-columns:1fr 1fr; gap:10px; }
    .v51-theme .gallery-tile--1,
    .v51-theme .gallery-tile--2,
    .v51-theme .gallery-tile--3,
    .v51-theme .gallery-tile--4,
    .v51-theme .gallery-tile--5 { grid-column:span 1; aspect-ratio:1/1.15; }
    .v51-theme .gallery-tile:nth-child(3n+1) { grid-column:1/-1; aspect-ratio:4/3; }
    .v51-theme .gallery-video-tile { grid-column:span 1; aspect-ratio:2/3; }
    .v51-theme .gallery-video-tile:nth-child(7) { grid-column:1/-1; aspect-ratio:4/5; }
    .v51-theme .gallery-tile--full { grid-column:1/-1; aspect-ratio:4/3; }
    .v51-theme .lightbox { padding: 14px; }
    .v51-theme .lightbox__figure { padding-inline: 0; gap: 10px; }
    .v51-theme .lightbox__figure img { max-height: calc(88vh - 54px); border-radius: 4px; }
    .v51-theme .lightbox__meta { padding-inline: 2px; gap: 12px; font-size: 10px; }
    .v51-theme .lightbox__nav { top: 50%; width: 42px; height: 42px; background: rgb(20 14 9 / .64); }
    .v51-theme .lightbox__nav--prev { left: 8px; }
    .v51-theme .lightbox__nav--next { right: 8px; }
    .v51-theme .lightbox__close { top: 12px; right: 12px; background: rgb(20 14 9 / .5); }

    .v51-theme .booking-page { width:var(--site-media-shell); min-height:0; margin:10px auto 56px; display:flex; flex-direction:column; }
    .v51-theme .booking-page__media { min-height:360px; }
    .v51-theme .booking-page__content { padding:34px 24px 30px; }
    .v51-theme .booking-page__content h1 { font-size:48px; }
    .v51-theme .booking-page-form { grid-template-columns:1fr; }
    .v51-theme .booking-page-form .button,
    .v51-theme .booking-page-form__status { grid-column:1; }

    .v51-theme .contact-hero { padding: 115px 0 82px; }
    .v51-theme .contact-hero__grid { grid-template-columns: 1fr; gap: 44px; }
    .v51-theme .contact-hero h1 { font-size: 56px; }
    .v51-theme .contact-list > * { min-height: 72px; grid-template-columns: .4fr 1fr; }

    .v51-contact-hero { padding: 70px 0 64px; }
    .v51-contact-hero__grid { grid-template-columns: 1fr; gap: 30px; }
    .v51-contact-intro,
    .v51-contact-card { grid-column: 1; }
    .v51-contact-hero h1 { font-size: 56px; }
    .v51-contact-intro__place { margin-top: 18px; font-size: 14px; }
    .v51-contact-intro__actions { margin-top: 22px; }
    .v51-contact-intro__note { margin-top: 18px; }
    .v51-location-section { padding-bottom: 82px; }
    .v51-location-section__head { grid-template-columns: 1fr; gap: 14px; margin-bottom: 26px; }
    .v51-location-section__head > span,
    .v51-location-section__head > div,
    .v51-location-section__head > p { grid-column: 1; justify-self: stretch; }
    .v51-map-frame { height: clamp(420px, 115vw, 500px); border-radius: 10px; }
  
  }

  @media (max-width: 360px) {
    .v51-theme .room-detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v51-theme .room-detail-facts > div:nth-child(3) { grid-column: 1 / -1; }
    .v51-contact-hero h1 { font-size: 46px; }
    .v51-contact-card__phone { font-size: 30px; }
  }
}

/* assets/scss/pages/_destinations.scss */
@layer pages {
  .destination-page { background: var(--surface-dark); color: var(--brand-paper-bright); }
  .destination-detail { overflow: clip; }
  .destination-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-block: 28px 18px; color: rgb(251 243 232 / .55); font-size: var(--text-caption); }
  .destination-breadcrumb a { color: var(--brand-paper-bright); border-bottom: 1px solid rgb(251 243 232 / .25); }
  .destination-hero { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(28px, 5vw, 92px); align-items: stretch; padding-bottom: clamp(82px, 8vw, 130px); }
  .destination-detail--right .destination-hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  .destination-hero__copy { min-width: 0; align-self: center; padding-block: 58px 36px; }
  .destination-hero .kicker { color: var(--brand-gold); }
  .destination-hero h1 { max-width: 11ch; margin-block: 28px 30px; color: var(--brand-paper-bright); font-family: var(--font-display); font-size: clamp(60px, 6.1vw, 112px); font-weight: 400; letter-spacing: -.068em; line-height: .95; overflow-wrap: anywhere; }
  .destination-hero__copy > p { max-width: 36ch; color: rgb(251 243 232 / .8); font-size: clamp(18px, 1.5vw, 23px); line-height: 1.55; }
  .destination-text-link { display: inline-flex; min-height: 46px; align-items: center; margin-top: 34px; color: var(--brand-paper-bright); border-bottom: 1px solid rgb(251 243 232 / .42); font-size: var(--text-action); }
  .destination-art { position: relative; min-width: 0; overflow: hidden; isolation: isolate; background: radial-gradient(circle at 70% 23%, #77563a, #3d2d20 49%, #261c15); border: 1px solid rgb(221 187 145 / .2); }
  .destination-art--hero { min-height: clamp(510px, 49vw, 740px); }
  .destination-art::before { position: absolute; inset: 12%; content: ""; border: 1px solid rgb(239 223 204 / .15); border-radius: 50%; transform: scaleX(1.55) rotate(-18deg); }
  .destination-art::after { position: absolute; inset: 22%; content: ""; border: 1px solid rgb(239 223 204 / .19); border-radius: 50%; transform: scaleX(1.6) rotate(-18deg); }
  .destination-art__circle { position: absolute; top: 17%; right: 13%; width: 35%; aspect-ratio: 1; border-radius: 50%; background: #caa979; opacity: .82; box-shadow: 0 0 110px rgb(220 171 105 / .24); }
  .destination-art__line { position: absolute; left: -12%; width: 125%; height: 45%; border-top: 1px solid rgb(239 223 204 / .5); border-radius: 50%; transform: rotate(-13deg); }
  .destination-art__line--one { top: 55%; }
  .destination-art__line--two { top: 63%; }
  .destination-art__line--three { top: 72%; }
  .destination-art__label { position: absolute; bottom: 28px; left: 30px; color: rgb(251 243 232 / .8); font-size: var(--text-label); letter-spacing: .13em; text-transform: uppercase; }
  .destination-art--water { background: radial-gradient(circle at 63% 20%, #6e776d, #324b4c 42%, #20302d); }
  .destination-art--water .destination-art__circle { top: 12%; right: 18%; width: 27%; background: #d5c8a8; opacity: .42; }
  .destination-art--water .destination-art__line { transform: rotate(17deg); border-color: rgb(224 237 221 / .62); }
  .destination-art--canyon { background: linear-gradient(110deg, #73553c 0 39%, #211913 40% 56%, #62492f 57%); }
  .destination-art--canyon .destination-art__circle { top: 18%; right: 36%; width: 22%; opacity: .35; }
  .destination-art--canyon .destination-art__line { transform: rotate(74deg); left: -34%; width: 160%; border-color: rgb(245 225 188 / .42); }
  .destination-art--ascent { background: radial-gradient(circle at 50% 68%, #8b7252, #39423c 60%, #22251f); }
  .destination-art--ascent .destination-art__circle { top: 14%; right: 18%; width: 26%; }
  .destination-art--ascent .destination-art__line { transform: rotate(-24deg); }
  .destination-art--warmth { background: radial-gradient(circle at 70% 60%, rgb(185 141 102), #61452f 52%, #2c2119); }
  .destination-art--warmth .destination-art__circle { top: 26%; right: 26%; width: 45%; opacity: .42; }
  .destination-art--warmth .destination-art__line { transform: rotate(7deg); }
  .destination-art--motion { background: linear-gradient(142deg, #615f44, #765b3c 44%, #29251c); }
  .destination-art--motion .destination-art__line { transform: rotate(-32deg); border-width: 2px; }
  .destination-art--quiet { background: radial-gradient(circle at 55% 36%, #79806e, #41483b 50%, #252c24); }
  .destination-art--quiet .destination-art__circle { top: 25%; right: 17%; width: 29%; background: #e0c59e; opacity: .42; }
  .destination-art--quiet .destination-art__line { transform: rotate(5deg); border-color: rgb(226 231 207 / .5); }
  .destination-character, .destination-expect, .destination-practical { display: grid; grid-template-columns: minmax(160px, .4fr) minmax(0, 1fr); gap: clamp(28px, 6vw, 110px); padding-block: clamp(70px, 7vw, 110px); border-top: 1px solid var(--brand-line); }
  .destination-section-index { color: var(--brand-gold); font-size: var(--text-label); letter-spacing: .1em; text-transform: uppercase; }
  .destination-character h2, .destination-expect h2, .destination-practical h2, .destination-day h2, .destination-related h2 { color: var(--brand-gold); font-family: var(--font-display); font-size: clamp(42px, 4.2vw, 70px); font-weight: 400; letter-spacing: -.05em; line-height: 1.05; }
  .destination-character p { max-width: 34ch; margin-top: 30px; font-size: clamp(22px, 2.2vw, 34px); line-height: 1.48; }
  .destination-visual { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1fr); min-height: 520px; background: var(--brand-paper); color: var(--brand-ink); }
  .destination-detail--right .destination-visual { grid-template-columns: minmax(0, 1fr) minmax(0, .7fr); }
  .destination-detail--right .destination-visual__statement { order: 2; }
  .destination-visual__statement { align-self: end; padding: clamp(28px, 4.5vw, 72px); }
  .destination-visual__statement span { color: var(--brand-muted); font-size: var(--text-label); letter-spacing: .12em; text-transform: uppercase; }
  .destination-visual__statement p { max-width: 23ch; margin-top: 24px; font-family: var(--font-display); font-size: clamp(32px, 3.2vw, 52px); line-height: 1.18; letter-spacing: -.04em; }
  .destination-art--story { min-height: 520px; border: 0; }
  .destination-expect ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 42px); margin-top: 50px; }
  .destination-expect li { padding-top: 20px; border-top: 1px solid var(--brand-line-strong); }
  .destination-expect li > span { color: var(--brand-gold); font-size: var(--text-label); }
  .destination-expect h3 { margin-top: 34px; font-family: var(--font-display); font-size: clamp(26px, 2vw, 36px); font-weight: 400; }
  .destination-expect li p { margin-top: 14px; color: rgb(251 243 232 / .73); font-size: var(--text-body); line-height: 1.7; }
  .destination-day { padding-block: clamp(80px, 8vw, 140px); background: var(--brand-paper); color: var(--brand-ink); }
  .destination-day__inner { display: grid; grid-template-columns: minmax(160px, .4fr) minmax(0, 1fr); gap: clamp(28px, 6vw, 110px); }
  .destination-day h2 { color: var(--brand-ink); }
  .destination-day p, .destination-practical p { max-width: 55ch; margin-top: 30px; font-size: clamp(18px, 1.6vw, 24px); line-height: 1.65; }
  .destination-day__path { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 46px; padding-top: 24px; border-top: 1px solid rgb(36 26 18 / .2); color: var(--brand-muted); font-size: var(--text-caption); }
  .destination-practical { border: 0; }
  .destination-related { padding-block: clamp(70px, 7vw, 110px); border-top: 1px solid var(--brand-line); }
  .destination-related__head { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
  .destination-related nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--site-grid-gap); margin-top: 46px; }
  .destination-related nav a { min-height: 180px; display: flex; flex-direction: column; justify-content: space-between; padding: 24px; border: 1px solid var(--brand-line-strong); transition: background-color .2s ease; }
  .destination-related nav a:hover { background: rgb(251 243 232 / .07); }
  .destination-related nav a > span { color: var(--brand-gold); font-size: var(--text-label); }
  .destination-related nav a strong { color: var(--brand-paper-bright); font-family: var(--font-display); font-size: clamp(24px, 2vw, 34px); font-weight: 400; line-height: 1.1; }
  .destination-related nav a > span:last-child { align-self: end; }
  .destination-return { padding-block: clamp(70px, 7vw, 110px); background: #38291d; }
  .destination-return__inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .7fr); gap: clamp(34px, 6vw, 110px); align-items: center; }
  .destination-return h2 { max-width: 15ch; margin-top: 24px; font-family: var(--font-display); font-size: clamp(42px, 4.4vw, 76px); font-weight: 400; letter-spacing: -.055em; line-height: 1.08; }
  .destination-return__actions { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; margin-top: 38px; }
  .destination-return__actions .destination-text-link { margin-top: 0; }
  .destination-return figure { min-width: 0; }
  .destination-return img { display: block; width: 100%; max-height: 490px; object-fit: cover; object-position: 50% 58%; }
  .destination-return figcaption { padding-top: 10px; color: rgb(251 243 232 / .58); font-size: var(--text-caption); }
  @media (max-width: 900px) {
    .destination-hero, .destination-detail--right .destination-hero { grid-template-columns: 1fr 1fr; gap: 28px; }
    .destination-hero h1 { font-size: clamp(46px, 6.2vw, 74px); }
    .destination-art--hero { min-height: 490px; }
    .destination-visual { min-height: 410px; }
    .destination-art--story { min-height: 410px; }
  }
  @media (max-width: 720px) {
    .destination-breadcrumb { padding-block: 18px 8px; gap: 7px; font-size: 11px; }
    .destination-hero, .destination-detail--right .destination-hero { grid-template-columns: 1fr; gap: 12px; padding-bottom: 64px; }
    .destination-hero__copy { padding-block: 24px 18px; }
    .destination-hero h1 { max-width: 100%; margin-block: 18px 20px; font-size: clamp(47px, 12vw, 72px); overflow-wrap: normal; hyphens: auto; }
    .destination-hero__copy > p { font-size: var(--text-hero-support); }
    .destination-hero .destination-text-link { margin-top: 18px; }
    .destination-art--hero { min-height: 360px; }
    .destination-art__label { left: 18px; bottom: 18px; }
    .destination-character, .destination-expect, .destination-practical, .destination-day__inner { grid-template-columns: 1fr; gap: 22px; padding-block: 58px; }
    .destination-character h2, .destination-expect h2, .destination-practical h2, .destination-day h2, .destination-related h2 { font-size: clamp(38px, 10vw, 54px); }
    .destination-character p { margin-top: 20px; font-size: 23px; }
    .destination-visual, .destination-detail--right .destination-visual { grid-template-columns: 1fr; }
    .destination-detail--right .destination-visual__statement { order: 0; }
    .destination-visual__statement { padding: 28px 22px 34px; }
    .destination-visual__statement p { font-size: 35px; }
    .destination-art--story { min-height: 310px; }
    .destination-expect ol { grid-template-columns: 1fr; gap: 28px; margin-top: 30px; }
    .destination-expect h3 { margin-top: 14px; }
    .destination-day { padding-block: 0; }
    .destination-day__path { margin-top: 30px; }
    .destination-related { padding-block: 58px; }
    .destination-related__head { display: block; }
    .destination-related h2 { margin-top: 20px; }
    .destination-related nav { grid-template-columns: 1fr; margin-top: 28px; gap: 10px; }
    .destination-related nav a { min-height: 132px; }
    .destination-return { padding-block: 58px; }
    .destination-return__inner { grid-template-columns: 1fr; }
    .destination-return h2 { font-size: clamp(42px, 10vw, 58px); }
    .destination-return img { max-height: 390px; }
  }
}

@layer pages {
  .destination-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 34px; }
  .destination-hero__actions .destination-text-link { margin: 0; padding: 0; background: none; border-top: 0; border-right: 0; border-left: 0; font: inherit; font-size: var(--text-action); line-height: 1.4; cursor: pointer; }
  .destination-share-status { display: block; min-height: 22px; margin-top: 10px; color: var(--brand-gold); font-size: var(--text-caption); }
  .destination-hero--photo { position: relative; width: var(--site-media-shell); min-height: clamp(700px, 76svh, 880px); display: flex; align-items: end; padding: 0; isolation: isolate; overflow: hidden; background: #302921; }
  .destination-hero--photo::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(90deg, rgb(20 15 11 / .78) 0%, rgb(20 15 11 / .54) 42%, transparent 82%), linear-gradient(0deg, rgb(20 15 11 / .45), transparent 45%); pointer-events: none; }
  .destination-hero--photo .destination-hero__photo { position: absolute; z-index: 0; inset: 0; margin: 0; }
  .destination-hero__photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
  .destination-hero__photo figcaption { position: absolute; z-index: 2; right: 25px; bottom: 19px; padding: 4px 7px; background: rgb(29 22 15 / .68); color: #fff; font-size: 11px; }
  .destination-hero--photo .destination-hero__copy { position: relative; z-index: 2; width: min(100%, 900px); padding: clamp(55px, 6vw, 96px); align-self: end; }
  .destination-hero--photo .destination-hero__copy > p { color: #fff; text-shadow: 0 1px 18px rgb(0 0 0 / .45); }
  .destination-hero--photo h1 { max-width: 13ch; color: #fff; text-shadow: 0 2px 25px rgb(0 0 0 / .36); }
  .destination-hero--photo .kicker, .destination-hero--photo .destination-text-link { color: #fff; }
  .destination-hero--photo .destination-share-status { color: #fff; }
  .destination-detail--right .destination-hero--photo .destination-hero__copy { margin-left: auto; }
  .destination-detail--right .destination-hero--photo::after { background: linear-gradient(270deg, rgb(20 15 11 / .8) 0%, rgb(20 15 11 / .55) 44%, transparent 90%), linear-gradient(0deg, rgb(20 15 11 / .45), transparent 45%); }
  .destination-visual__media { position: relative; min-height: 520px; margin: 0; overflow: hidden; }
  .destination-visual__media img { display: block; width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
  .destination-visual__media figcaption { position: absolute; right: 18px; bottom: 16px; padding: 5px 8px; background: rgb(29 22 15 / .68); color: #fff; font-size: var(--text-caption); }
  .destination-gallery { padding-block: clamp(84px, 7vw, 118px); background: #30241a; color: var(--brand-paper-bright); }
  .destination-gallery__head { display: flex; justify-content: space-between; align-items: end; gap: 24px; }
  .destination-gallery h2 { margin-top: 18px; color: var(--brand-gold); font-family: var(--font-display); font-size: clamp(42px, 4.2vw, 70px); font-weight: 400; letter-spacing: -.05em; line-height: 1.08; }
  .destination-gallery__controls { display: flex; align-items: center; gap: 14px; }
  .destination-gallery__controls button { width: 48px; height: 48px; border: 1px solid var(--brand-line-strong); border-radius: 50%; background: none; color: #fff; font: inherit; cursor: pointer; }
  .destination-gallery__controls button:hover { background: rgb(255 255 255 / .12); }
  .destination-gallery__counter { min-width: 58px; color: var(--brand-paper-soft); font-size: var(--text-caption); text-align: center; font-variant-numeric: tabular-nums; }
  .destination-gallery__rail { width: var(--site-shell); display: flex; gap: clamp(14px, 1.8vw, 26px); margin: 38px auto 0; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 0; scrollbar-width: thin; scrollbar-color: var(--brand-gold) transparent; touch-action: pan-x pan-y; }
  .destination-gallery__rail:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 4px; }
  .destination-gallery__item { flex: 0 0 min(59vw, 770px); min-width: 0; margin: 0; padding-bottom: 12px; scroll-snap-align: start; }
  .destination-gallery__item--portrait { flex-basis: min(37vw, 490px); }
  .destination-gallery__item button { display: block; width: 100%; height: clamp(460px, 42vw, 620px); padding: 0; overflow: hidden; border: 0; background: #211b16; cursor: zoom-in; }
  .destination-gallery__item img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .destination-gallery__item--portrait img { object-position: center; }
  .destination-gallery__item figcaption { min-height: 48px; display: flex; justify-content: space-between; gap: 18px; padding-top: 12px; color: var(--brand-paper-bright); font-size: var(--text-caption); }
  .destination-gallery__item figcaption small { color: rgb(251 243 232 / .6); font-size: 11px; text-align: right; }
  .destination-gallery--single .destination-gallery__controls { display: none; }
  .destination-gallery--single .destination-gallery__rail { overflow: visible; }
  .destination-gallery--single .destination-gallery__item { flex-basis: 100%; }
  .destination-gallery--single .destination-gallery__item button { height: clamp(420px, 46vw, 680px); }
  .destination-gallery__rail.is-dragging { scroll-snap-type: none; }
  .destination-gallery__rail.is-dragging, .destination-gallery__rail.is-dragging * { cursor: grabbing; user-select: none; }
  .destination-day__stages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(22px, 3vw, 42px); margin-top: clamp(34px, 4vw, 62px); }
  .destination-day__stages li { padding-top: 18px; border-top: 1px solid rgb(36 26 18 / .25); }
  .destination-day__stages li span { color: var(--brand-muted); font-size: var(--text-label); letter-spacing: .08em; text-transform: uppercase; }
  .destination-day__stages li p { max-width: 32ch; margin-top: 14px; font-size: var(--text-body); line-height: 1.6; }
  .destination-practical ul { margin-top: 40px; }
  .destination-practical li { display: grid; grid-template-columns: minmax(120px, .34fr) minmax(0, 1fr); gap: 20px; padding-block: 18px; border-top: 1px solid var(--brand-line); }
  .destination-practical li strong { color: var(--brand-gold); font-size: var(--text-label); font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
  .destination-practical li span { max-width: 50ch; color: rgb(251 243 232 / .8); font-size: var(--text-body); line-height: 1.6; }
  .destination-related nav { grid-template-columns: 1.2fr .9fr .9fr; gap: clamp(14px, 2vw, 30px); }
  .destination-related nav a { min-height: 0; padding: 0; border: 0; background: transparent; }
  .destination-related nav a:hover { background: transparent; }
  .destination-related__photo, .destination-related__art { width: 100%; height: clamp(190px, 22vw, 320px); display: block; overflow: hidden; background: radial-gradient(circle at 65% 25%, #8a6e4b, #3a2b20); }
  .destination-related__photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .5s var(--ease-out); }
  .destination-related nav a:hover img { transform: scale(1.035); }
  .destination-related__art--warmth { background: radial-gradient(circle at 65% 45%, rgb(195 157 111 / .8), #3b291f 70%); }
  .destination-related__meta { margin-top: 18px; }
  .destination-related nav a strong { margin-block: 14px 8px; }
  .destination-related__arrow { margin-top: auto; }
  .destination-return__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .destination-return__inner > div > p { max-width: 39ch; margin-top: 22px; color: rgb(251 243 232 / .78); font-size: var(--text-body); line-height: 1.65; }
  .destination-return img { max-height: 660px; }
  .destination-credits { padding-block: 28px 66px; color: rgb(251 243 232 / .65); font-size: var(--text-caption); }
  .destination-credits summary { width: fit-content; cursor: pointer; color: var(--brand-paper-bright); }
  .destination-credits ol { display: grid; gap: 10px; margin-top: 18px; }
  .destination-credits li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; padding-bottom: 10px; border-bottom: 1px solid var(--brand-line); }
  .destination-credits a { color: var(--brand-paper-bright); text-decoration: underline; text-underline-offset: 3px; }
  .destination-credits p { margin-top: 18px; }
  .destination-page .lightbox__nav { backdrop-filter: none; }
  @media (max-width: 900px) {
    .destination-hero--photo { min-height: 690px; }
    .destination-gallery__item { flex-basis: 68vw; }
    .destination-gallery__item--portrait { flex-basis: 47vw; }
  }
  @media (max-width: 720px) {
    .destination-hero--photo { min-height: min(850px, 112svh); display: flex; align-items: end; }
    .destination-hero--photo::after, .destination-detail--right .destination-hero--photo::after { background: linear-gradient(0deg, rgb(20 15 11 / .9) 0%, rgb(20 15 11 / .65) 46%, rgb(20 15 11 / .14) 100%); }
    .destination-hero--photo .destination-hero__copy { width: 100%; padding: 28px 20px 26px; }
    .destination-hero--photo h1 { max-width: 100%; font-size: clamp(43px, 11.5vw, 67px); hyphens: none; }
    .destination-hero__actions { gap: 7px 18px; margin-top: 24px; }
    .destination-hero__actions .destination-text-link { min-height: 40px; font-size: 12px; }
    .destination-hero__photo figcaption { right: 14px; top: 12px; bottom: auto; max-width: calc(100% - 28px); font-size: 11px; }
    .destination-visual__media, .destination-visual__media img { min-height: 320px; }
    .destination-gallery { padding-block: 58px; }
    .destination-gallery__head { align-items: end; }
    .destination-gallery h2 { font-size: 39px; }
    .destination-gallery__controls { gap: 6px; }
    .destination-gallery__controls button { width: 36px; height: 36px; }
    .destination-gallery__counter { min-width: 46px; font-size: 11px; }
    .destination-gallery__rail { gap: 12px; margin-top: 26px; }
    .destination-gallery__item, .destination-gallery__item--portrait { flex-basis: 82vw; }
    .destination-gallery__item button { height: min(94vw, 440px); }
    .destination-gallery__item--portrait button { height: min(112vw, 510px); }
    .destination-gallery__item figcaption { display: block; }
    .destination-gallery__item figcaption small { display: block; margin-top: 6px; text-align: left; }
    .destination-day__stages { grid-template-columns: 1fr; }
    .destination-day__stages li p { margin-top: 8px; }
    .destination-practical li { grid-template-columns: 1fr; gap: 8px; }
    .destination-related nav { grid-template-columns: 1fr; gap: 24px; }
    .destination-related__photo, .destination-related__art { height: 230px; }
    .destination-return__inner { grid-template-columns: 1fr; }
    .destination-credits li { display: block; }
    .destination-credits li > span { display: block; margin-bottom: 5px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .destination-related__photo img { transition: none; }
  }
}

/* assets/scss/pages/_final.scss */
@layer pages {
  .home--v51 {
    --v5-bg: var(--brand-bg);
    --v5-bg-deep: var(--brand-bg-deep);
    --v5-bg-soft: color-mix(in srgb, var(--brand-bg) 86%, var(--brand-paper));
    --v5-paper: var(--brand-paper);
    --v5-paper-2: var(--brand-paper-soft);
    --v5-paper-bright: var(--brand-paper-bright);
    --v5-gold: var(--brand-gold);
    --v5-gold-soft: #b88f65;
    --v5-ink: var(--brand-ink);
    --v5-muted: var(--brand-muted);
    --v5-line: var(--brand-line);
    --v5-line-strong: var(--brand-line-strong);
    min-width: 0;
    background: var(--surface-dark);
    color: var(--v5-paper);
  }

  .home--v51 ::selection { background: var(--v5-gold); color: var(--v5-ink); }
  .home--v51 .scroll-progress { z-index: 160; }
  .v5-site-canvas,
  .v51-site { width: 100%; margin: 0; overflow: visible; border: 0; border-radius: 0; background: var(--surface-dark); box-shadow: none; }

  /* hero fills a real viewport composition */
  .v5-hero { padding: 10px 0 clamp(72px, 5.2vw, 96px); background: var(--surface-dark); }
  .v5-hero__media {
    position: relative;
    width: var(--site-media-shell);
    height: clamp(590px, 78svh, 860px);
    margin: 4px auto 0;
    overflow: hidden;
    border-radius: 6px;
    background: rgb(0 0 0);
  }
  .v5-hero__media::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 79% 74%, rgb(13 8 5 / .14), transparent 54%), linear-gradient(90deg, transparent 45%, rgb(13 8 5 / .11) 100%), linear-gradient(0deg, rgb(20 12 7 / .58), rgb(20 12 7 / .12) 54%, transparent 78%); pointer-events: none; }
  .v5-hero__media picture,
  .v5-hero__media img { width: 100%; height: 100%; }
  .v5-hero__media img { object-fit: cover; object-position: 50% 56%; opacity: .82; transform: scale(1.006); transform-origin: 50% 56%; }
  .v5-hero__overlay { position: absolute; z-index: 3; inset: auto clamp(36px, 4.4vw, 82px) clamp(84px, 7.4vw, 122px); display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: clamp(48px, 6vw, 116px); }
  .v5-hero__title { margin: 0; }
  .v5-hero__title span,
  .v5-hero__title strong { display: block; color: #fff; font-size: clamp(58px, 6.05vw, 102px); font-weight: 400; letter-spacing: -.07em; line-height: .91; }
  .v5-hero__title strong { margin-top: .08em; font-family: var(--font-display); font-size: clamp(52px, 5.45vw, 92px); font-style: italic; font-weight: 400; letter-spacing: -.035em; line-height: .94; }
  .v5-hero__promise { justify-self: end; max-width: 450px; }
  .v5-hero__promise p { margin: 0 0 22px; color: #fff; font-size: var(--text-hero-support); line-height: 1.55; text-shadow: 0 2px 18px rgb(10 6 3 / .55); }
  .v5-hero__promise > div { display: flex; gap: 10px; flex-wrap: wrap; }
  .v5-pill { min-height: 48px; padding: 0 23px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 999px; font-size: var(--text-action); font-weight: 500; letter-spacing: .055em; text-transform: uppercase; transition: background-size .5s var(--ease-out), color .32s var(--ease-out), transform .62s var(--ease-out); }
  .v5-pill:hover { transform: translateY(-1px); }
  .v5-pill .icon { width: 17px; transition: transform .52s var(--ease-out); }
  .v5-pill:hover .icon { transform: translateX(4px); }
  .v5-pill--light { background: linear-gradient(var(--interaction-light-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--v5-paper-2); color: var(--v5-ink); }
  .v5-pill--light:hover { background-size: 100% 100%; }
  .v5-pill--ghost { border: 1px solid rgb(255 255 255 / .55); background: linear-gradient(var(--interaction-outline-hover) 0 0) 0 100% / 100% 0 no-repeat; color: #fff; }
  .v5-pill--ghost:hover { background-size: 100% 100%; }

  /* booking is a real commercial dock */
  .v5-booking { --reveal-filter-base: drop-shadow(0 22px 40px rgb(8 5 3 / .22)); position: relative; z-index: 8; width: var(--site-shell); margin: -72px auto 0; color: var(--v5-ink); filter: var(--reveal-filter-base); scroll-margin-top: 18px; }
  .v5-booking__tab { width: max-content; min-width: 220px; padding: 14px 24px 13px; border-radius: 12px 12px 0 0; background: var(--v5-paper-bright); font-size: var(--text-action); font-weight: 500; }
  .v5-booking__form { min-height: 112px; display: grid; grid-template-columns: 1fr 1fr .78fr 1.24fr; overflow: hidden; border-radius: 0 14px 14px 14px; background: var(--v5-paper-bright); }
  .v5-booking__form label { min-width: 0; padding: 21px clamp(20px, 2vw, 34px) 18px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid rgb(36 26 18 / .12); }
  .v5-booking__form label > span { margin-bottom: 9px; color: #62584e; font-size: var(--text-label); font-weight: 500; letter-spacing: .09em; text-transform: uppercase; }
  .v5-booking__form input,
  .v5-booking__form select { width: 100%; min-width: 0; min-height: 44px; padding: 0; border: 0; outline: 0; background: transparent; color: #40382f; font-family: var(--font-sans); font-size: 20px; font-weight: 500; }
  .v5-booking__form button { min-width: 0; margin: 15px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; border: 0; border-radius: 999px; background: linear-gradient(var(--interaction-primary-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--interaction-primary); color: #fff; font-size: var(--text-action); font-weight: 500; letter-spacing: .065em; text-transform: uppercase; cursor: pointer; transition: background-size .5s var(--ease-out), color .32s var(--ease-out), transform .62s var(--ease-out); }
  .v5-booking__form button:hover { background-size: 100% 100%; transform: translateY(-1px); }
  .v5-booking__form button .icon { width: 17px; transition: transform .52s var(--ease-out); }
  .v5-booking__form button:hover .icon { transform: translateX(4px); }

  /* shared true-site layout */
  .v5-why,
  .v5-experiences,
  .v5-rooms,
  .v5-trust,
  .v5-faq { margin-inline: auto; padding-inline: 0; }
  .v5-why,
  .v5-trust { width: var(--site-shell); }
  .v5-experiences { width: var(--site-shell); }
  .v5-rooms { width: var(--site-shell); }
  .v5-faq { width: var(--site-shell); }
  .v5-experiences,
  .v5-rooms,
  .v5-enquiry,
  .v5-trust { position: relative; isolation: isolate; }
  .v5-experiences::before,
  .v5-rooms::before,
  .v5-enquiry::before,
  .v5-trust::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    clip-path: inset(0 -100vmax);
    pointer-events: none;
  }
  .v5-experiences::before,
  .v5-rooms::before { box-shadow: 0 0 0 100vmax var(--surface-dark); }
  .v5-enquiry::before { box-shadow: 0 0 0 100vmax var(--surface-dark-deep); }
  .v5-trust::before { box-shadow: 0 0 0 100vmax var(--surface-dark-deep-return); }
  .v5-section-intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 60px; }
  .v5-section-intro > div { max-width: 720px; }
  .v5-section-intro__aside { display: flex; flex-direction: column; align-items: flex-end; gap: 24px; }
  .v5-section-intro small { margin-top: 7px; color: #9b7e62; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
  .v5-section-intro h2,
  .v5-faq__intro h2,
  .v5-contacts__head h2,
  .v5-enquiry__copy h2 { margin: 16px 0 16px; color: var(--v5-gold); font-size: clamp(42px, 4vw, 62px); font-weight: 400; letter-spacing: -.06em; line-height: .99; }
  .v5-section-intro h2 em,
  .v5-enquiry__copy h2 em { display: inline-block; color: var(--v5-paper); font-family: var(--font-display); font-style: italic; font-weight: 400; letter-spacing: -.045em; }
  .v5-section-intro p,
  .v5-faq__intro p,
  .v5-enquiry__copy p { max-width: 480px; color: rgb(241 228 211 / .67); font-size: 15px; line-height: 1.65; }
  .v5-label { display: inline-flex; align-items: center; color: #a38769; font-size: var(--text-label); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
  .v5-section-intro--compact h2 { font-size: clamp(38px, 3.5vw, 54px); }

  /* why */
  .v5-why { padding-top: calc(var(--section-space) * .82); padding-bottom: calc(var(--section-space) * .96); background: var(--v5-paper-bright); color: var(--v5-ink); box-shadow: 0 0 0 100vmax var(--v5-paper-bright); clip-path: inset(0 -100vmax); }
  .v5-why .v5-section-intro h2 { color: var(--v5-ink); font-size: clamp(38px, 3.45vw, 54px); }
  .v5-why .v5-section-intro p { color: rgb(36 26 18 / .68); }
  .v5-why .v5-label,
  .v5-why .v5-section-intro small { color: #876d55; }
  .v5-why__grid { margin-top: clamp(36px, 3.4vw, 52px); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: stretch; gap: var(--site-grid-gap); }
  .v5-why__grid > figure { position: relative; grid-column: 1 / span 6; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 5px; }
  .v5-why__grid > figure img { width: 100%; height: 100%; object-fit: cover; filter: var(--image-hotel-filter); }
  .v5-why__grid > figure figcaption { position: absolute; inset: auto 14px 13px; color: rgb(255 255 255 / .86); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
  .v5-benefits { grid-column: 7 / -1; height: 100%; display: grid; grid-template-rows: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgb(36 26 18 / .18); }
  .v5-benefits article { min-height: 0; display: grid; grid-template-columns: 1fr; align-items: center; border-bottom: 1px solid rgb(36 26 18 / .18); }
  .v5-benefits i { display: none; }
  .v5-benefits h3 { max-width: 30ch; color: var(--v5-ink); font-size: clamp(16px, 1.2vw, 20px); font-weight: 500; letter-spacing: -.025em; line-height: 1.35; }

  /* experiences */
  .v5-experiences { padding-top: var(--section-space); padding-bottom: calc(var(--section-space) * .7); }
  .v5-experience-rail { margin-top: var(--content-gap); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--component-gap); }
  .v5-experience-card { min-width: 0; display: block; color: var(--v5-paper); }
  .v5-experience-card figure { aspect-ratio: 3 / 4.08; overflow: hidden; border-radius: 5px; background: #16100b; }
  .v5-experience-card img { width: 100%; height: 100%; object-fit: cover; filter: var(--image-nature-filter); transition: transform .82s var(--ease-out); }
  .v5-experience-card:first-child img { filter: var(--image-hotel-filter); }
  .v5-experience-card:hover img { transform: scale(1.035); }
  .v5-experience-card > span { display: block; margin-top: 16px; color: var(--v5-paper-bright); font-size: clamp(16px, 1.15vw, 19px); font-weight: 500; }
  .v5-experience-card p { max-width: 28ch; margin-top: 8px; color: rgb(241 228 211 / .62); font-size: var(--text-support); line-height: 1.55; }

  /* rooms */
  .v5-rooms { padding-top: var(--section-space); padding-bottom: var(--section-space); }
  .v5-hero + .v5-rooms { padding-top: clamp(38px, 3.2vw, 52px); }
  .v5-room-stack { margin-top: var(--content-gap); display: flex; flex-direction: column; gap: calc(var(--component-gap) * 1.45); }
  .v5-more-link { width: max-content; margin: 28px 0 0; min-height: 44px; padding: 0 20px; display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; background: linear-gradient(var(--interaction-light-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--v5-paper-2); color: var(--v5-ink); font-size: var(--text-action); font-weight: 500; text-transform: uppercase; transition: background-size .5s var(--ease-out), transform .62s var(--ease-out); }
  .v5-more-link:hover { background-size: 100% 100%; transform: translateY(-1px); }
  .v5-more-link .icon { width: 17px; transition: transform .52s var(--ease-out); }
  .v5-more-link:hover .icon { transform: translateX(4px); }
  .v5-more-link--intro { margin: 0; }

  /* enquiry */
  .v5-enquiry { width: var(--site-shell); margin-inline: auto; padding: var(--chapter-space) 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; gap: var(--site-grid-gap); }
  .v5-enquiry__copy { grid-column: 1 / span 4; max-width: 470px; }
  .v5-assist-card { grid-column: 6 / -1; justify-self: stretch; }
  .v5-enquiry__copy .v5-enquiry__note { margin-top: 22px; max-width: 390px; color: rgb(241 228 211 / .55); font-size: 11px; line-height: 1.55; }
  .v5-assist-card { min-height: clamp(280px, 23vw, 360px); padding: clamp(34px, 3.2vw, 52px); display: flex; flex-direction: column; justify-content: flex-end; border: 1px solid var(--v5-line-strong); border-radius: 11px; background: linear-gradient(135deg, rgb(255 255 255 / .035), transparent 56%); color: var(--v5-paper-bright); }
  .v5-assist-card > span { margin-bottom: auto; color: rgb(241 228 211 / .55); font-size: 10px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
  .v5-assist-card__phone { width: max-content; color: var(--v5-paper-bright); font-size: clamp(31px, 3vw, 48px); font-weight: 500; letter-spacing: -.05em; line-height: 1; }
  .v5-assist-card > p { margin-top: 15px; color: rgb(241 228 211 / .66); font-size: 13px; line-height: 1.55; }
  .v5-assist-card__actions { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
  .v5-assist-card__actions > a:not(.button) { min-height: 44px; display: inline-flex; align-items: center; color: rgb(241 228 211 / .76); font-size: 11px; font-weight: 500; text-transform: uppercase; }

  /* trust */
  .v5-trust { padding-top: var(--section-space); padding-bottom: var(--chapter-space); }
  .v5-trust-rail { margin-top: var(--content-gap); display: grid; grid-template-columns: 1.28fr .86fr .86fr; gap: var(--component-gap); }
  .v5-trust-card { min-height: clamp(286px, 21vw, 340px); padding: clamp(32px, 2.7vw, 48px); display: flex; flex-direction: column; border: 1px solid var(--v5-line-strong); border-radius: 11px; color: var(--v5-paper-bright); }
  .v5-trust-card--light { border-color: transparent; background: var(--v5-paper-bright); color: var(--v5-ink); }
  .v5-trust-card > span { font-size: 10px; opacity: .52; }
  .v5-trust-card h3 { max-width: 17ch; margin-top: auto; font-size: clamp(28px, 2.35vw, 40px); font-weight: 500; letter-spacing: -.045em; line-height: 1.04; }
  .v5-trust-card p { max-width: 43ch; margin-top: 16px; color: currentColor; font-size: var(--text-support); line-height: 1.65; opacity: .7; }
  .v5-trust-card a { margin-top: 18px; width: max-content; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 500; text-transform: uppercase; }
  .v5-trust-card a .icon { width: 17px; transition: transform .52s var(--ease-out); }
  .v5-trust-card a:hover .icon { transform: translateX(4px); }

  /* faq */
  .v5-faq { padding-top: var(--chapter-space); padding-bottom: var(--chapter-space); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; gap: var(--site-grid-gap); background: var(--v5-paper-bright); color: var(--v5-ink); box-shadow: 0 0 0 100vmax var(--v5-paper-bright); clip-path: inset(0 -100vmax); }
  .v5-faq__intro { grid-column: 1 / span 4; position: sticky; top: calc(var(--header-h) + 30px); }
  .v5-faq__intro > p { max-width: 390px; }
  .v5-faq__intro h2 { color: var(--v5-ink); }
  .v5-faq__intro > p { color: rgb(36 26 18 / .68); font-size: 15px; }
  .v5-faq .v5-label { color: #876d55; }
  .v5-faq__intro a { margin-top: 34px; min-height: 48px; padding: 0 22px; display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 999px; background: linear-gradient(var(--interaction-light-hover) 0 0) 0 100% / 100% 0 no-repeat, var(--v5-paper-2); color: var(--v5-ink); font-size: 11px; font-weight: 500; text-transform: uppercase; transition: background-size .5s var(--ease-out), transform .62s var(--ease-out); }
  .v5-faq__intro a:hover { background-size: 100% 100%; transform: translateY(-1px); }
  .v5-faq__intro a .icon { width: 17px; transition: transform .52s var(--ease-out); }
  .v5-faq__intro a:hover .icon { transform: translateX(4px); }
  .v5-faq__list { grid-column: 6 / -1; width: 100%; max-width: 940px; justify-self: end; border-top: 1px solid rgb(36 26 18 / .18); }
  .v5-faq .faq-item { margin: 0; overflow: hidden; border: 0; border-bottom: 1px solid rgb(36 26 18 / .18); border-radius: 0; background: transparent; color: var(--v5-ink); }
  .v5-faq .faq-item button { min-height: 78px; padding: 0 24px; }
  .v5-faq .faq-item button > span:first-child { font-size: 16px; font-weight: 500; letter-spacing: -.02em; }
  .v5-faq .faq-item button i { position: relative; flex: 0 0 24px; width: 24px; height: 24px; font-style: normal; }
  .v5-faq .faq-item button i::before,
  .v5-faq .faq-item button i::after { content: ""; position: absolute; top: 50%; left: 50%; width: 14px; height: 1px; background: currentColor; transform: translate(-50%, -50%); transition: transform .35s var(--ease-out); }
  .v5-faq .faq-item button i::after { transform: translate(-50%, -50%) rotate(90deg); }
  .v5-faq .faq-item.is-open button i::after { transform: translate(-50%, -50%) rotate(0); }
  .v5-faq .faq-item__answer > p { max-width: 690px; padding-inline: 24px; color: #6a5e54; font-size: var(--text-support); line-height: 1.65; }
  .v5-faq .faq-item.is-open .faq-item__answer > p { padding-bottom: 24px; }

  /* location/footer: real section, not fake map */
  .v5-contacts { width: 100%; margin: 0; padding-top: var(--section-space); padding-bottom: var(--component-gap); background: var(--surface-dark); }
  .v5-contacts__head { width: var(--site-shell); margin-inline: auto; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; gap: var(--site-grid-gap); }
  .v5-contacts__head > div:first-child { grid-column: 1 / span 6; }
  .v5-contacts__head .v5-contacts__meta { grid-column: 8 / -1; }
  .v5-contacts__meta { padding-bottom: 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; color: rgb(241 228 211 / .7); font-size: var(--text-support); }
  .v5-contacts__meta a { grid-column: 1 / -1; width: max-content; min-height: 44px; margin-top: 8px; display: inline-flex; align-items: center; gap: 8px; color: var(--v5-paper); font-weight: 500; text-transform: uppercase; }
  .v5-contacts__meta .v5-contacts__phone { margin-top: 0; font-size: 15px; letter-spacing: -.02em; text-transform: none; }
  .v5-contacts__meta a .icon,
  .v5-location-visual > strong .icon { width: 17px; transition: transform .52s var(--ease-out); }
  .v5-contacts__meta a:hover .icon,
  .v5-location-visual:hover > strong .icon { transform: translateX(4px); }
  .v5-contact-map { width: 100%; height: clamp(520px, 66svh, 760px); margin-top: var(--content-gap); border-radius: 0; }
  .v5-location-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(33 23 15 / .10), rgb(33 23 15 / .45)); }
  .v5-location-visual img { width: 100%; height: 100%; object-fit: cover; filter: var(--image-nature-filter); transition: transform .82s var(--ease-out); }
  .v5-location-visual:hover img { transform: scale(1.012); }
  .v51-location-label { position: absolute; z-index: 2; top: 22px; left: 24px; color: rgb(255 255 255 / .84); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
  .v5-location-visual > strong { position: absolute; z-index: 2; inset: auto 24px 22px auto; display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 12px; font-weight: 500; text-transform: uppercase; }
  @media (max-width: 1150px) and (min-width: 721px) {
    .v5-hero__overlay { bottom: clamp(82px, 9vw, 106px); }
  }

  @media (max-width: 1050px) {
    .v5-why__grid { gap: 42px; }
    .v5-experience-rail { grid-template-columns: repeat(4, clamp(240px, 31vw, 320px)); overflow-x: auto; padding-bottom: 10px; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-inline: contain; }
    .v5-experience-rail::-webkit-scrollbar { display:none; }
    .v5-experience-card { scroll-snap-align: start; scroll-snap-stop: normal; }
    .v5-enquiry { gap: var(--content-gap); }
    .v5-trust-rail { grid-template-columns: 1.1fr 1fr; }
    .v5-trust-card:last-child { grid-column: 1 / -1; min-height: 260px; }
  }

  @media (max-width: 860px) {
    .v5-booking__form { grid-template-columns: 1fr 1fr; }
    .v5-booking__form button { min-height: 58px; }
  }

  @media (max-width: 720px) {
    .home--v51 { padding-bottom: 72px; }
    .v5-hero { padding: 8px 0 54px; }
    .v5-hero__media { width: var(--site-media-shell); height: auto; min-height: 0; aspect-ratio: 4 / 5; margin-top: 8px; border-radius: 8px; }
    .v5-hero__media img { object-position: 56% 50%; }
    .v5-hero__overlay { inset: auto 0 50px; display: block; }
    .v5-hero__title span { font-size: clamp(42px, 13vw, 56px); }
    .v5-hero__title strong { margin-top: .1em; font-size: clamp(38px, 11.7vw, 50px); }
    .v5-hero__promise { max-width: 310px; margin-top: 20px; justify-self: auto; }
    .v5-hero__promise p { max-width: 285px; font-size: var(--text-hero-support); }
    .v5-pill { min-height: 44px; padding-inline: 17px; font-size: var(--text-action); }
    .v5-booking { width: var(--site-shell); margin-top: -25px; }
    .v5-booking__tab { min-width: 155px; padding: 11px 15px; font-size: var(--text-action); }
    .v5-booking__form { grid-template-columns: 1fr 1fr; border-radius: 0 11px 11px 11px; }
    .v5-booking__form label { min-height: 72px; padding: 12px 14px; }
    .v5-booking__form label > span { font-size: var(--text-label); }
    .v5-booking__form input,
    .v5-booking__form select { font-size: var(--text-body); }
    .v5-booking__form label:nth-child(2) { border-right: 0; }
    .v5-booking__form .v5-booking__guests { grid-column: 1 / -1; border-top: 1px solid rgb(36 26 18 / .1); border-right: 0; }
    .v5-booking__form button { grid-column: 1 / -1; min-height: 50px; margin: 7px; font-size: var(--text-action); }

    .v5-why,
    .v5-experiences,
    .v5-rooms,
    .v5-trust,
    .v5-faq,
    .v5-enquiry { width: var(--site-shell); margin-inline: auto; }
    .v5-section-intro { display: block; }
    .v5-section-intro__aside { margin-top: 20px; align-items: flex-start; }
    .v5-section-intro small { display: none; }
    .v5-section-intro h2,
    .v5-faq__intro h2,
    .v5-contacts__head h2,
    .v5-enquiry__copy h2 { font-size: clamp(32px, 10vw, 44px); }
    .v5-section-intro p,
    .v5-faq__intro p,
    .v5-enquiry__copy p { font-size: var(--text-support); }
    .v5-label { font-size: var(--text-label); }
    .v5-section-intro h2 em,
    .v5-enquiry__copy h2 em { font-size: .94em; }

    .v5-why { width: 100%; padding: var(--section-space) var(--content-gutter) calc(var(--section-space) * 1.08); background: var(--surface-dark); color: var(--v5-paper); box-shadow: none; clip-path: none; }
    .v5-why .v5-section-intro h2 { color: var(--v5-paper); }
    .v5-why .v5-section-intro p { color: rgb(241 228 211 / .74); }
    .v5-why .v5-label { color: var(--v5-gold); }
    .v5-why__grid { margin-top: var(--content-gap); grid-template-columns: 1fr; gap: 28px; }
    .v5-why__grid > figure { grid-column: 1; aspect-ratio: 4 / 3; width: 100%; }
    .v5-benefits { grid-column: 1; height: auto; border-color: rgb(241 228 211 / .18); }
    .v5-benefits article { min-height: 66px; border-color: rgb(241 228 211 / .18); }
    .v5-benefits h3 { color: var(--v5-paper); font-size: var(--text-body); }

    .v5-experiences { padding-bottom: var(--section-space); }
    .v5-experience-rail { margin-right: calc(-1 * var(--content-gutter)); grid-template-columns: repeat(5, minmax(220px, 72vw)); gap: 11px; padding-right: var(--content-gutter); }
    .v5-experience-card > span { font-size: 14px; }
    .v5-experience-card p { font-size: var(--text-support); }

    .v5-rooms { padding-bottom: var(--section-space); }
    .v5-hero + .v5-rooms { padding-top: 34px; }
    .v5-room-stack { margin-top: var(--content-gap); }
    .v5-more-link { min-height: 44px; font-size: var(--text-action); }

    .v5-enquiry { padding: var(--section-space) 0; grid-template-columns: 1fr; gap: 30px; }
    .v5-enquiry__copy,
    .v5-assist-card { grid-column: 1; }
    .v5-enquiry__copy .v5-enquiry__note { margin-top: 16px; }

    .v5-trust { padding-bottom: var(--chapter-space); }
    .v5-trust-rail { margin-top: var(--content-gap); display: flex; overflow-x: auto; gap: var(--component-gap); scroll-snap-type: x mandatory; scrollbar-width: none; }
    .v5-trust-rail::-webkit-scrollbar { display:none; }
    .v5-trust-card,
    .v5-trust-card:last-child { flex: 0 0 84%; min-height: 255px; grid-column: auto; scroll-snap-align: start; }
    .v5-trust-card h3 { font-size: 25px; }
    .v5-trust-card p { font-size: var(--text-support); }

    .v5-faq { padding-bottom: var(--chapter-space); grid-template-columns: 1fr; gap: var(--content-gap); }
    .v5-faq__intro,
    .v5-faq__list { grid-column: 1; }
    .v5-faq__intro { position: static; }
    .v5-faq .faq-item button { min-height: 66px; }
    .v5-faq .faq-item button > span:first-child { font-size: var(--text-body); }
    .v5-faq .faq-item__answer > p { font-size: var(--text-support); }

    .v5-contacts { padding-bottom: var(--component-gap); }
    .v5-contacts__head { width: var(--site-shell); }
    .v5-contacts__head { grid-template-columns: 1fr; gap: 20px; }
    .v5-contacts__head > div:first-child,
    .v5-contacts__head .v5-contacts__meta { grid-column: 1; }
    .v5-contacts__meta { font-size: var(--text-support); }
    .v5-contact-map { height: 430px; margin-top: var(--content-gap); }
    .v51-location-label { top: 16px; left: 16px; font-size: 10px; }
    .v5-location-visual > strong { inset: auto 16px 16px; font-size: 10px; }
  }

  @media (max-width: 420px) {
    .v5-hero__promise > div { flex-direction: column; align-items: flex-start; }
    .v5-pill { width: max-content; }
    .v5-why__grid > figure { width: 100%; }
  }
}

/* assets/scss/base/_motion.scss */
@layer states {
  .js.motion-ready [data-reveal] { opacity: 0; }
  .js.motion-ready [data-reveal-group] :is(.v5-label, h2, p),
  .js.motion-ready [data-reveal-group] > :is(a, .v5-section-intro__aside, .v5-contacts__meta) { opacity: 0; }

  @media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
    .js.motion-ready [data-reveal] { transition: opacity .72s var(--ease-out) var(--reveal-delay, 0ms); }
    .js.motion-ready [data-reveal].is-visible { opacity: 1; }
    .js.motion-ready [data-reveal-group] :is(.v5-label, h2, p),
    .js.motion-ready [data-reveal-group] > :is(a, .v5-section-intro__aside, .v5-contacts__meta) { transition: opacity .72s var(--ease-out); }
    .js.motion-ready [data-reveal-group].is-visible :is(.v5-label, h2, p),
    .js.motion-ready [data-reveal-group].is-visible > :is(a, .v5-section-intro__aside, .v5-contacts__meta) { opacity: 1; }
    .js.motion-ready [data-reveal-group].is-visible .v5-label { transition-delay: 0ms; }
    .js.motion-ready [data-reveal-group].is-visible h2 { transition-delay: 80ms; }
    .js.motion-ready [data-reveal-group].is-visible p { transition-delay: 160ms; }
    .js.motion-ready [data-reveal-group].is-visible > :is(a, .v5-section-intro__aside, .v5-contacts__meta) { transition-delay: 240ms; }
    .around-card img, .gallery-tile img { transition: transform .8s var(--ease-out); }
    .around-card:hover img, .gallery-tile:hover img { transform: scale(1.035); }
  }

  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .js.motion-ready [data-reveal],
    .js.motion-ready [data-reveal-group] :is(.v5-label, h2, p),
    .js.motion-ready [data-reveal-group] > :is(a, .v5-section-intro__aside, .v5-contacts__meta) { opacity: 1; transition: none; }
    .site-header,
    .skip-link,
    .drawer,
    .drawer.is-open,
    .drawer__panel,
    .drawer-nav a,
    .site-nav,
    .site-nav__cta,
    .site-nav__links a::after,
    .button,
    .icon--arrow,
    .text-link,
    .faq-item__plus::before,
    .faq-item__plus::after,
    .faq-item__answer,
    .v5-hero__media img,
    .v5-pill,
    .v5-booking__form button,
    .v5-experience-card img,
    .room-category-card__media img,
    .room-media-gallery__track,
    .room-category-card__actions a,
    .v5-faq .faq-item button i,
    .v5-faq .faq-item button i::before,
    .v5-faq .faq-item button i::after,
    .smart-booking-trigger,
    .smart-booking-dialog,
    .smart-booking-dialog__panel,
    .around-card img,
    .gallery-tile img,
    .v51-theme .gallery-tile img,
    .v51-theme .lightbox,
    .v51-theme .lightbox.is-open,
    .v51-theme .lightbox__nav {
      transition: none;
    }

    .button:hover,
    .drawer-nav a:hover,
    .drawer-nav a[aria-current="page"],
    .button:hover .icon--arrow,
    .text-link:hover .icon--arrow,
    .site-nav__cta:hover,
    .v5-hero__media:hover img,
    .v5-pill:hover,
    .v5-booking__form button:hover,
    .v5-experience-card:hover img,
    .room-category-card:hover .room-category-card__media img,
    .room-category-card__actions a:hover,
    .around-card:hover img,
    .gallery-tile:hover img {
      transform: none;
    }
  }
}

/* assets/scss/components/_launch.scss */
@layer components {
  .lead-dialog { width: min(540px, calc(100% - 28px)); max-height: calc(100dvh - 36px); padding: clamp(24px, 5vw, 44px); margin: auto; border: 1px solid var(--brand-gold); border-radius: 4px; background: var(--brand-paper-bright); color: var(--brand-bg-deep); overflow-y: auto; }
  .lead-dialog::backdrop { background: rgb(20 13 8 / .72); }
  .lead-dialog__close { position: absolute; right: 10px; top: 10px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; background: transparent; color: inherit; font: inherit; font-size: 24px; cursor: pointer; }
  .lead-dialog h2 { margin: 12px 0; font-size: clamp(28px, 5vw, 38px); }
  .lead-dialog p { line-height: 1.55; margin: 14px 0; }
  .lead-dialog form, .lead-dialog form > label { display: grid; gap: 10px; }
  .lead-dialog form { gap: 18px; }
  .lead-dialog input:not([type="checkbox"]), .lead-dialog textarea { width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid currentColor; border-radius: 3px; font: inherit; background: transparent; color: inherit; }
  .lead-dialog a { text-decoration: underline; text-underline-offset: 3px; }
  .lead-dialog form > .lead-dialog__consent { display: flex; align-items: flex-start; font-size: 13px; line-height: 1.5; }
  .lead-dialog__consent input { flex: 0 0 auto; margin-top: 3px; }
  .lead-dialog__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
  .lead-trigger { color: inherit; font: inherit; text-align: left; text-decoration: underline; text-underline-offset: 4px; background: transparent; border: 0; cursor: pointer; }
  .legal-page { max-width: 900px; margin-inline: auto; padding: clamp(110px, 15vw, 180px) 24px 80px; }
  .legal-page h1 { font-size: clamp(30px, 5vw, 54px); line-height: 1.15; overflow-wrap: anywhere; }
  .legal-page h2 { font-size: 25px; margin: 34px 0 14px; }
  .legal-page p, .legal-page li { line-height: 1.7; margin-block: 14px; }
  .legal-page a { text-decoration: underline; overflow-wrap: anywhere; }
  .legal-page__notice, .tl-shell { padding: 22px; border: 1px solid currentColor; border-radius: 4px; margin-block: 24px; }
  .tl-shell { grid-column: 1 / -1; }
}

/* assets/scss/components/_feedback.scss */
@layer pages {
  .home-gallery { padding: clamp(76px, 7vw, 126px) 0; background: var(--v5-paper-bright); color: var(--v5-ink); }
  .home-gallery__head { display: grid; grid-template-columns: 1fr minmax(220px, 28%); align-items: end; gap: 36px; }
  .home-gallery__head h2 { margin-top: 18px; font-size: clamp(42px, 5vw, 76px); line-height: .96; letter-spacing: -.06em; }
  .home-gallery__head p { max-width: 29ch; color: #756557; font-size: var(--text-support); }
  .home-gallery__composition { margin-top: clamp(36px, 4vw, 68px); display: grid; gap: clamp(40px, 5vw, 84px); }
  .home-gallery__stair { display: grid; align-items: end; gap: var(--site-grid-gap); }
  .home-gallery__stair--first { grid-template-columns: 1.4fr .75fr .75fr; }
  .home-gallery__stair--return { grid-template-columns: .7fr .9fr 1.4fr; align-items: start; }
  .home-gallery__composition figure { position: relative; overflow: hidden; background: #392c21; }
  .home-gallery__main { height: clamp(420px, 43vw, 660px); }
  .home-gallery__side { height: clamp(330px, 34vw, 530px); }
  .home-gallery__detail { height: clamp(260px, 27vw, 420px); }
  .home-gallery__return-1 { height: clamp(260px, 27vw, 420px); }
  .home-gallery__return-2 { height: clamp(330px, 34vw, 530px); }
  .home-gallery__return-3 { height: clamp(420px, 43vw, 660px); }
  .home-gallery__composition img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease-out); }
  .home-gallery__composition figure:hover img { transform: scale(1.025); }
  .home-gallery__composition figcaption { position: absolute; inset: auto 16px 16px; color: #fff; font-size: var(--text-caption); font-weight: 500; letter-spacing: .06em; text-shadow: 0 1px 12px #1b100b; text-transform: uppercase; }
  .home-gallery__link { width: max-content; min-height: 52px; margin-top: 28px; display: inline-flex; align-items: center; gap: 24px; border-bottom: 1px solid currentColor; color: var(--v5-ink); font-size: var(--text-action); font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
  .home-gallery__link span { font-size: 22px; }
  .v5-experience-card--sauna .v5-experience-card__type { aspect-ratio: 3 / 4.08; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid rgb(210 172 126 / .45); background: radial-gradient(circle at 70% 25%, #6a4e32, #261a12 58%); color: #e8caa4; }
  .v5-experience-card__type small { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
  .v5-experience-card__type strong { font-family: var(--font-display); font-size: clamp(45px, 5vw, 88px); font-weight: 400; letter-spacing: -.06em; }
  .v5-experience-card__type span { font-size: 12px; }
  .home-film { padding: clamp(80px, 7vw, 124px) 0; background: var(--surface-dark-deep); }
  .home-film__layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(34px, 6vw, 108px); align-items: center; }
  .home-film__intro h2 { margin-top: 20px; color: var(--v5-gold); font-size: clamp(43px, 5vw, 76px); letter-spacing: -.06em; }
  .home-film__intro p { max-width: 34ch; margin-top: 24px; color: rgb(241 228 211 / .68); font-size: 15px; line-height: 1.65; }
  .home-film__media { position: relative; height: clamp(400px, 42vw, 640px); overflow: hidden; border-radius: 6px; background: #1b120d; }
  .home-film__media video { width: 100%; height: 100%; object-fit: cover; }
  .home-film__media::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgb(15 9 6 / .55)); pointer-events: none; }
  .home-film__media .gallery-video-tile__control { position: absolute; z-index: 2; top: 50%; left: 50%; min-height: 56px; padding: 0 25px; border: 1px solid rgb(255 255 255 / .7); border-radius: 999px; background: rgb(28 20 15 / .78); color: #fff; font-size: var(--text-action); transform: translate(-50%, -50%); cursor: pointer; }
  .home-film__media .gallery-video-tile__caption { position: absolute; z-index: 2; bottom: 20px; left: 22px; color: #fff; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
  .home-film__media [hidden] { display: none; }
  .home-film__media video { background: #1b120d; }
  .home-film__watch { position: absolute; z-index: 3; top: 50%; left: 50%; min-height: 56px; padding: 0 25px; border: 1px solid rgb(255 255 255 / .7); border-radius: 999px; background: rgb(28 20 15 / .78); color: #fff; font: inherit; font-size: var(--text-action); transform: translate(-50%, -50%); white-space: nowrap; cursor: pointer; }
  .home-film__watch:hover, .home-film__controls button:hover { background: rgb(28 20 15 / .92); }
  .home-film__controls { position: absolute; z-index: 3; right: 18px; bottom: 58px; left: 18px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
  .home-film__controls button { min-height: 42px; padding: 0 13px; border: 1px solid rgb(255 255 255 / .5); border-radius: 999px; background: rgb(28 20 15 / .78); color: #fff; font: inherit; font-size: 11px; cursor: pointer; }
  .home-film__progress { flex: 1 1 110px; min-width: 90px; padding: 10px 4px; }
  .home-film__progress input { width: 100%; accent-color: #e7c789; cursor: pointer; }
  .home-film__status { position: absolute; z-index: 3; top: 18px; right: 18px; left: 18px; width: fit-content; max-width: calc(100% - 36px); padding: 8px 12px; border-radius: 4px; background: rgb(28 20 15 / .82); color: #fff; font-size: 12px; }
  .home-film__media:fullscreen { width: 100vw; height: 100vh; border-radius: 0; background: #000; }
  .home-film__media:fullscreen video { object-fit: contain; }
  .home-film__media:fullscreen .home-film__controls { bottom: 28px; }
  .home-film__media:fullscreen .gallery-video-tile__caption { display: none; }
  .v5-contacts__meta .v5-contacts__backup { min-height: 30px; margin-top: 0; font-size: 13px; text-transform: none; }
  .v5-location-visual { display: flex; align-items: center; justify-content: space-between; padding: clamp(40px, 7vw, 110px); background: #cbbb9e; color: #2c2118; }
  .v5-location-visual::after { background: linear-gradient(90deg, rgb(233 219 193 / .96), rgb(233 219 193 / .60) 46%, transparent); }
  .v5-location-visual__lines { position: absolute; inset: 0; background: repeating-linear-gradient(31deg, transparent 0 61px, rgb(55 43 30 / .13) 62px 63px, transparent 64px 116px), repeating-linear-gradient(116deg, transparent 0 108px, rgb(55 43 30 / .10) 109px 110px, transparent 111px 180px); }
  .v5-location-visual .v51-location-label { color: #403024; }
  .v5-location-visual__place { position: relative; z-index: 2; }
  .v5-location-visual__place > span { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
  .v5-location-visual__place strong { display: block; margin-top: 22px; font-family: var(--font-display); font-size: clamp(64px, 9vw, 150px); font-weight: 400; line-height: .9; letter-spacing: -.07em; }
  .v5-location-visual__place p { margin-top: 26px; font-size: clamp(17px, 1.7vw, 25px); line-height: 1.6; }
  .v5-location-visual > a { position: relative; z-index: 3; align-self: end; min-height: 50px; padding: 0 22px; display: inline-flex; align-items: center; gap: 20px; border-radius: 999px; background: #312319; color: #fff; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
  .v5-location-visual > a span { font-size: 20px; }
  .surroundings-hero .page-hero__picture img { object-position: 18% 48%; }
  .surroundings-hero__caption { position: absolute; z-index: 3; right: 26px; top: 22px; color: #fff; font-size: 10px; letter-spacing: .1em; text-shadow: 0 1px 6px #24180f; text-transform: uppercase; }
  .v51-theme .surroundings-intro { padding-bottom: 50px; }
  .surroundings-intro .container { display: grid; grid-template-columns: .55fr 1.6fr .8fr; gap: 26px; align-items: start; }
  .surroundings-intro h2 { color: var(--v51-gold); font-size: clamp(38px, 4.5vw, 68px); letter-spacing: -.06em; }
  .surroundings-intro p { color: rgb(251 243 232 / .65); font-size: 14px; line-height: 1.7; }
  .v51-theme .surroundings-destinations { padding-top: 0; }
  .destination-stories { display: grid; gap: clamp(34px, 4.6vw, 76px); }
  .destination-story { min-width: 0; padding: 0 0 clamp(34px, 4.6vw, 76px); display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 6vw, 112px); align-items: center; border-bottom: 1px solid var(--v51-line); }
  .destination-story:nth-child(even) .destination-story__art { order: 2; }
  .destination-story:first-child { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
  .destination-story__art { position: relative; min-width: 0; min-height: 340px; margin: 0; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; border: 1px solid rgb(224 188 150 / .16); border-radius: var(--radius-media); background: radial-gradient(circle at 75% 20%, #5b422d, #2d2119 65%); color: rgb(251 243 232 / .94); }
  .destination-story:first-child .destination-story__art { min-height: 490px; }
  .destination-story__art--photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(16 10 6 / .29), transparent 30%, transparent 56%, rgb(16 10 6 / .62)); pointer-events: none; }
  .destination-story__art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: var(--image-nature-filter); }
  .destination-story__art span, .destination-story__art figcaption, .destination-story__art small { position: relative; z-index: 1; }
  .destination-story__art span { font-family: var(--font-display); font-size: clamp(68px, 9vw, 150px); line-height: .9; letter-spacing: -.08em; text-shadow: 0 2px 24px rgb(0 0 0 / .26); }
  .destination-story__art small, .destination-story__art figcaption { font-size: var(--text-caption); line-height: 1.35; letter-spacing: .04em; text-shadow: 0 1px 12px rgb(0 0 0 / .7); }
  .destination-story__art figcaption a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
  .destination-story__art figcaption a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
  .destination-story__copy { align-self: center; padding: 20px 0; }
  .destination-story__copy > span { color: #b99d7a; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
  .destination-story__copy h2 { margin-top: 20px; color: var(--v51-gold); font-size: clamp(31px, 3.6vw, 60px); letter-spacing: -.06em; line-height: 1; }
  .destination-story__copy p { max-width: 44ch; margin-top: 19px; color: rgb(251 243 232 / .82); font-size: var(--text-support); line-height: 1.65; }
  .destination-story__copy a { min-height: 45px; margin-top: 21px; display: inline-flex; align-items: center; gap: 14px; color: var(--v51-paper); border-bottom: 1px solid rgb(251 243 232 / .35); font-size: var(--text-action); letter-spacing: .06em; text-transform: uppercase; }
  .cookie-banner { position: fixed; z-index: 300; right: clamp(16px, 3vw, 48px); bottom: clamp(16px, 3vw, 48px); width: min(760px, calc(100% - 32px)); padding: clamp(22px, 2.5vw, 35px); display: grid; grid-template-columns: 1fr auto; gap: 28px; border: 1px solid #ac9271; border-radius: 12px; background: #f4ede3; color: #2b2119; box-shadow: 0 18px 70px rgb(0 0 0 / .3); }
  .cookie-banner[hidden] { display: none; }
  .cookie-banner__copy h2 { margin-top: 7px; font-size: 30px; }
  .cookie-banner__copy p { max-width: 50ch; margin-top: 9px; color: #64564a; font-size: var(--text-support); line-height: 1.55; }
  .cookie-banner__copy a { min-height: 44px; margin-top: 10px; display: inline-flex; align-items: center; border-bottom: 1px solid #6c5947; font-size: 12px; }
  .cookie-banner__actions { display: flex; flex-direction: column; justify-content: center; gap: 9px; }
  .cookie-banner__actions button { min-height: 45px; padding: 0 20px; border: 1px solid #4b382a; border-radius: 999px; background: #34251a; color: #fff; white-space: nowrap; cursor: pointer; }
  .cookie-banner__actions button:last-child { background: transparent; color: #34251a; }
  .cookie-settings-trigger { width: max-content; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
  @media (max-width: 900px) {
    .home-gallery__head, .home-film__layout, .surroundings-intro .container { grid-template-columns: 1fr; }
    .home-gallery__stair--first { grid-template-columns: 1.2fr .8fr; }
    .home-gallery__detail { display: none; }
    .home-gallery__stair--return { grid-template-columns: .8fr 1.2fr; }
    .home-gallery__return-3 { grid-column: 1 / -1; }
    .destination-stories { grid-template-columns: 1fr; }
    .destination-story, .destination-story:first-child { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; }
  }
  @media (max-width: 720px) {
    .home-gallery__head h2, .home-film__intro h2 { font-size: clamp(38px, 10vw, 50px); }
    .home-gallery__composition { gap: 32px; }
    .home-gallery__stair--first,
    .home-gallery__stair--return { grid-template-columns: 1fr 1fr; gap: 10px; }
    .home-gallery__main { grid-column: 1 / -1; height: 440px; }
    .home-gallery__side, .home-gallery__detail { display: block; height: 240px; }
    .home-gallery__detail { grid-column: 2; }
    .home-gallery__return-1,
    .home-gallery__return-2 { height: 240px; }
    .home-gallery__return-3 { height: 440px; }
    .home-film__media { height: 420px; }
    .v5-location-visual { min-height: 480px; align-items: flex-end; flex-direction: column; padding: 60px var(--content-gutter) 30px; }
    .v5-location-visual__place { align-self: flex-start; }
    .v5-location-visual__place strong { font-size: 72px; }
    .surroundings-intro .container { gap: 20px; }
    .surroundings-hero__caption { display: none; }
    .destination-story, .destination-story:first-child { grid-template-columns: 1fr; gap: 0; }
    .destination-story:nth-child(even) .destination-story__art { order: 0; }
    .destination-story__art, .destination-story:first-child .destination-story__art { min-height: 260px; }
    .destination-story__art span { font-size: 86px; }
    .cookie-banner { right: 12px; bottom: 12px; width: calc(100% - 24px); max-height: calc(100svh - 24px); overflow: auto; grid-template-columns: 1fr; gap: 15px; }
    .cookie-banner__actions { flex-direction: row; flex-wrap: wrap; }
  }
  @media (prefers-reduced-motion: reduce) {
    .home-gallery__composition img { transition: none; }
  }
}

/* assets/scss/components/_guest-experience.scss */
@layer pages {
  .guest-day { padding: clamp(88px, 8vw, 132px) 0; background: var(--surface-dark); color: var(--brand-paper-bright); }
  .guest-day__head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .55fr); align-items: end; gap: var(--site-grid-gap); padding-bottom: clamp(38px, 4vw, 62px); border-bottom: 1px solid var(--brand-line); }
  .guest-day__head h2 { max-width: 12ch; margin-top: 18px; color: var(--brand-gold); font-size: clamp(48px, 5.4vw, 82px); font-weight: 400; line-height: .96; letter-spacing: -.065em; }
  .guest-day__head > p { max-width: 34ch; margin: 0 0 4px; color: rgb(251 243 232 / .76); font-size: clamp(17px, 1.45vw, 21px); line-height: 1.55; }
  .guest-day__morning { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 6vw, 100px); align-items: center; padding-top: clamp(38px, 4vw, 62px); }
  .guest-day__image { position: relative; min-width: 0; height: clamp(430px, 43vw, 600px); margin: 0; overflow: hidden; border-radius: var(--radius-media); background: var(--surface-dark-deep); }
  .guest-day__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; filter: var(--image-hotel-filter); }
  .guest-day__image figcaption { position: absolute; bottom: 18px; left: 20px; color: #fff; font-size: var(--text-caption); letter-spacing: .1em; text-shadow: 0 1px 10px #21150d; text-transform: uppercase; }
  .guest-day__breakfast { max-width: 530px; }
  .guest-day__time { display: block; margin-bottom: 26px; color: var(--brand-gold); font-family: var(--font-display); font-size: clamp(72px, 9vw, 142px); line-height: .88; letter-spacing: -.075em; }
  .guest-day h3 { color: var(--brand-paper-bright); font-size: clamp(28px, 2.8vw, 43px); font-weight: 400; line-height: 1.1; letter-spacing: -.045em; }
  .guest-day__breakfast p, .guest-day__chapter p { max-width: 47ch; margin-top: 18px; color: rgb(251 243 232 / .74); font-size: var(--text-support); line-height: 1.7; }
  .guest-day__breakfast p + p { margin-top: 12px; }
  .guest-day__chapters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 6vw, 100px); margin-top: clamp(52px, 6vw, 100px); border-top: 1px solid var(--brand-line); }
  .guest-day__chapter { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-content: start; gap: 18px; padding-top: 28px; }
  .guest-day__chapter > span { color: #b39470; font-size: 12px; letter-spacing: .1em; }
  .guest-day__closing { display: grid; grid-template-columns: minmax(0, .55fr) minmax(0, 1.45fr); gap: var(--site-grid-gap); margin-top: clamp(60px, 6vw, 100px); padding-top: 28px; border-top: 1px solid var(--brand-line); }
  .guest-day__closing p { max-width: 31ch; margin: 0; color: var(--brand-gold); font-family: var(--font-display); font-size: clamp(29px, 3.3vw, 49px); line-height: 1.16; letter-spacing: -.045em; }

  .v51-theme[data-route="hotel"] .hotel-day { padding-block: clamp(80px, 7vw, 116px); background: var(--surface-dark-deep); }
  .hotel-day__layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--site-grid-gap); align-items: start; }
  .hotel-day__intro { grid-column: 1 / span 5; }
  .hotel-day__intro h2 { max-width: 11ch; margin-top: 18px; color: var(--brand-gold); font-size: clamp(45px, 4.7vw, 68px); font-weight: 400; line-height: 1; letter-spacing: -.055em; }
  .hotel-day__text { grid-column: 7 / -1; padding-top: 10px; border-top: 1px solid var(--brand-line); }
  .hotel-day__text p { max-width: 53ch; margin: 22px 0 0; color: rgb(251 243 232 / .75); font-size: var(--text-support); line-height: 1.75; }
  .hotel-day__text p:first-child { margin-top: 22px; color: var(--brand-paper-bright); font-size: clamp(19px, 1.7vw, 24px); line-height: 1.5; }

  @media (max-width: 900px) {
    .guest-day__head { grid-template-columns: minmax(0, 1fr) minmax(0, .75fr); }
    .guest-day__morning { gap: 32px; }
    .guest-day__time { font-size: clamp(72px, 11vw, 100px); }
  }
  @media (max-width: 720px) {
    .guest-day { padding-block: 76px 82px; }
    .guest-day__head, .guest-day__morning, .guest-day__chapters, .guest-day__closing { grid-template-columns: minmax(0, 1fr); }
    .guest-day__head { gap: 22px; padding-bottom: 30px; }
    .guest-day__head h2 { font-size: clamp(43px, 11vw, 58px); }
    .guest-day__morning { gap: 35px; padding-top: 32px; }
    .guest-day__image { height: clamp(340px, 105vw, 490px); }
    .guest-day__time { margin-bottom: 17px; font-size: 78px; }
    .guest-day__chapters { gap: 0; margin-top: 50px; }
    .guest-day__chapter { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding-block: 25px 28px; border-bottom: 1px solid var(--brand-line); }
    .guest-day__closing { gap: 20px; margin-top: 48px; padding-top: 25px; }
    .guest-day__closing p { font-size: clamp(31px, 8.2vw, 42px); }
    .v51-theme[data-route="hotel"] .hotel-day { padding-block: 76px; }
    .hotel-day__layout { grid-template-columns: 1fr; gap: 35px; }
    .hotel-day__intro, .hotel-day__text { grid-column: 1; }
    .hotel-day__intro h2 { font-size: clamp(40px, 10vw, 53px); }
  }
}

/* assets/scss/components/_travelline.scss */
@layer components {
  .tl-search-home, .tl-search-shell { min-width: 0; position: relative; z-index: 8; }
  .tl-search-shell { margin: 20px auto 28px; }
  #block-search { box-sizing: border-box; background: #fbf3e8; width: 100%; border-radius: 0 14px 14px 14px; }
  .tl-search-shell #block-search { border-radius: 14px; }
  .tl-container { margin: 0 auto; padding: 24px 29px; }
  .tl-booking-page { padding-top: 28px; padding-bottom: 56px; }
  .tl-booking-page > .site-shell { width:min(var(--site-shell),1440px); }
  .tl-booking-intro { margin-bottom:28px; }
  .tl-booking-module { scroll-margin-top:calc(var(--header-h) + 30px); }
  .tl-booking-status { position:absolute; top:0; left:0; right:0; min-height:480px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:32px; border:1px solid rgb(211 173 128 / .2); border-radius:14px; background:var(--brand-bg-deep); color:var(--brand-paper-bright); text-align:center; pointer-events:none; }
  .tl-booking-status img { width:94px; height:auto; }
  .tl-booking-status span { font-size:26px; }
  .tl-booking-status p { max-width:32ch; font-size:14px; opacity:.75; }
  .tl-booking-status[hidden], .tl-booking-fallback[hidden] { display:none; }
  .tl-booking-fallback { position:relative; padding:24px; border:1px solid var(--brand-gold); border-radius:10px; color:var(--brand-paper-bright); }
  .tl-booking-fallback a { text-decoration:underline; text-underline-offset:4px; }
  .tl-booking-module.is-transport-loaded { animation:tl-host-reveal 200ms ease-out; }
  @keyframes tl-host-reveal { from { opacity:.65; } to { opacity:1; } }
  @media (prefers-reduced-motion:reduce) { .tl-booking-module.is-transport-loaded { animation:none; } }
  .tl-booking-intro h1 { margin: 12px 0 20px; font-size: clamp(40px, 5vw, 76px); line-height: 1.05; }
  .tl-booking-intro p { max-width: 650px; }
  .tl-booking-module { position: relative; z-index: 0; min-height: 520px; }
  #tl-booking-form { width: 100%; max-width: 1440px; margin: 0 auto; z-index: 0; }
  .tl-booking-help { margin-top: 28px; }
  @media (min-width: 721px) and (max-width: 1000px) {
    .tl-search-home .tl-container { padding: 12px 24px; }
  }
  @media (max-width: 720px) {
    .tl-container { padding: 16px 12px; }
    .tl-search-home .tl-container { padding-top: 14px; padding-bottom: 14px; }
    .tl-search-shell { margin-top: 16px; margin-bottom: 20px; }
    .tl-booking-intro { margin-bottom:24px; }
    .tl-booking-module { min-height:480px; }
  }
}

/* assets/scss/components/_partner101.scss */
@layer components {
  .partner101 { display:grid; grid-template-columns:minmax(0,1fr) 160px; align-items:center; gap:32px; width:min(var(--site-shell),920px); margin-inline:auto; padding:18px 0; margin-bottom:var(--section-space); border-block:1px solid var(--brand-line-strong); }
  .partner101__copy h2 { margin:0 0 10px; font-family:var(--font-display); font-size:clamp(27px,2.2vw,34px); font-weight:400; letter-spacing:-.035em; line-height:1.15; }
  .partner101__copy a { font-size:13px; }
  .partner101__copy a, .booking-prepayment a, .stay-facts__rule a { text-decoration:underline; text-underline-offset:4px; }
  .partner101__badge { width:160px; min-height:50px; }
  .partner101__badge a { display:block; width:160px; height:50px; text-decoration:none; }
  .partner101__badge a[hidden], .partner101__badge p[hidden] { display:none; }
  .partner101__badge img { width:160px; height:50px; max-width:none; }
  .partner101__badge p { margin:0; font-size:12px; line-height:1.5; color:var(--brand-paper-soft); }
  .partner101 a:focus-visible { outline:2px solid var(--focus-ring); outline-offset:5px; }
  .booking-prepayment { margin-top:14px; font-size:15px; line-height:1.6; }
  @media (max-width:720px) {
    .partner101 { grid-template-columns:minmax(0,1fr); gap:18px; padding-block:20px; }
    .partner101__copy h2 { font-size:27px; }
  }
}

/* assets/scss/components/_guest-reviews.scss */
@layer components {
  .guest-reviews { padding:clamp(50px,5.5vw,86px) 0; background:var(--brand-paper); color:var(--brand-ink); }
  .guest-reviews .kicker { color:var(--brand-muted); }
  .guest-reviews__heading { display:grid; grid-template-columns:1.4fr 1fr; gap:var(--content-gap); align-items:end; padding-bottom:34px; }
  .guest-reviews__heading h1, .guest-reviews__heading h2 { margin-top:16px; font-family:var(--font-display); font-size:clamp(34px,4.3vw,62px); font-weight:400; letter-spacing:-.045em; line-height:1.08; }
  .guest-reviews__heading p { max-width:40ch; color:var(--brand-muted); font-size:15px; line-height:1.7; }
  .guest-reviews__collection { display:grid; grid-template-columns:1.25fr 1fr; border-block:1px solid var(--line); }
  .guest-review { min-width:0; padding:24px 0 24px 36px; }
  .guest-review--featured { grid-row:span 3; padding:34px 48px 34px 0; border-right:1px solid var(--line); display:flex; flex-direction:column; }
  .guest-review:nth-child(n+3) { border-top:1px solid var(--line); }
  .guest-review__meta { display:flex; justify-content:space-between; align-items:center; gap:12px; }
  .guest-review__index { color:var(--brand-muted); font-size:11px; letter-spacing:.1em; }
  .guest-review__rating { display:inline-flex; align-items:center; gap:4px; flex-shrink:0; color:var(--brand-muted); font-size:12px; }
  .guest-review__rating svg { width:13px; height:13px; }
  .guest-review blockquote { margin:0; }
  .guest-review__text { margin:16px 0 22px; font-family:var(--font-display); font-size:clamp(21px,1.7vw,27px); line-height:1.4; }
  .guest-review--featured .guest-review__text { margin:50px 0 32px; max-width:20ch; font-size:clamp(36px,3.45vw,56px); line-height:1.18; letter-spacing:-.03em; }
  .guest-review footer { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 14px; color:var(--brand-muted); font-size:12px; line-height:1.7; }
  .guest-review footer strong { color:var(--brand-ink); font-size:14px; font-weight:500; }
  .guest-review footer a { text-decoration:underline; text-underline-offset:4px; }
  .guest-review--featured footer { margin-top:auto; max-width:32ch; }
  .guest-review--featured footer strong { flex-basis:100%; }
  .guest-reviews__all { display:inline-flex; gap:36px; align-items:center; margin-top:24px; padding:12px 0; border-bottom:1px solid var(--brand-ink); font-size:14px; }
  .guest-reviews--page .guest-reviews__collection { grid-template-columns:1fr 1fr; }
  .guest-reviews--page .guest-review { padding:32px; }
  .guest-reviews--page .guest-review:nth-child(odd) { padding-left:0; border-right:1px solid var(--line); }
  .guest-reviews--page .guest-review:nth-child(even) { padding-right:0; }
  .guest-reviews--page .guest-review__text { font-size:clamp(21px,1.7vw,28px); line-height:1.6; margin-block:26px; }
  .review-themes { display:grid; grid-template-columns:1fr 1.4fr; gap:var(--content-gap); padding-block:var(--section-space); }
  .review-themes h2, .reviews-help h2 { margin:16px 0 20px; font-family:var(--font-display); font-size:clamp(32px,3.4vw,48px); line-height:1.1; font-weight:400; }
  .review-themes p, .reviews-help p { max-width:32ch; font-size:15px; line-height:1.7; color:var(--brand-paper-soft); }
  .review-themes dl { border-top:1px solid var(--brand-line); }
  .review-themes dl > div { display:grid; grid-template-columns:1fr 1.6fr; gap:24px; border-bottom:1px solid var(--brand-line); padding:20px 0; }
  .review-themes dt { font-size:15px; font-weight:500; }
  .review-themes dd { font-size:14px; line-height:1.7; color:var(--brand-paper-soft); }
  .reviews-help { padding-block:40px 56px; display:flex; gap:24px; align-items:center; justify-content:space-between; border-top:1px solid var(--brand-line-strong); }
  .reviews-help__actions { display:flex; align-items:center; gap:22px; }
  .reviews-help__question { text-decoration:underline; text-underline-offset:5px; }
  .guest-reviews a:focus-visible, .reviews-help button:focus-visible { outline:2px solid var(--focus-ring); outline-offset:5px; }
  @media (max-width:720px) {
    .guest-reviews__heading, .review-themes { grid-template-columns:1fr; gap:24px; }
    .guest-reviews__heading { padding-bottom:28px; }
    .guest-reviews__collection, .guest-reviews--page .guest-reviews__collection { grid-template-columns:1fr; }
    .guest-review, .guest-review--featured, .guest-reviews--page .guest-review { grid-row:auto; padding:26px 0; }
    .guest-reviews--page .guest-review:nth-child(odd) { border-right:0; }
    .guest-review--featured { border-right:0; }
    .guest-review + .guest-review { border-top:1px solid var(--line); }
    .guest-review--featured .guest-review__text { margin-top:30px; }
    .guest-review--featured footer { margin-top:0; }
    .review-themes dl > div { grid-template-columns:1fr; gap:8px; }
    .reviews-help { align-items:flex-start; flex-direction:column; gap:24px; }
    .reviews-help__actions { flex-direction:column; align-items:flex-start; gap:20px; }
  }
}
