/* ---------- Fonts ---------- */
@font-face {
   font-family: Manrope;
   font-style: normal;
   font-weight: 400;
   font-display: swap;
   src: url(../fonts/manrope-cyrillic-400.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116
}

@font-face {
   font-family: Manrope;
   font-style: normal;
   font-weight: 400;
   font-display: swap;
   src: url(../fonts/manrope-latin-400.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
   font-family: Manrope;
   font-style: normal;
   font-weight: 500;
   font-display: swap;
   src: url(../fonts/manrope-cyrillic-500.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116
}

@font-face {
   font-family: Manrope;
   font-style: normal;
   font-weight: 500;
   font-display: swap;
   src: url(../fonts/manrope-latin-500.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
   font-family: Manrope;
   font-style: normal;
   font-weight: 600;
   font-display: swap;
   src: url(../fonts/manrope-cyrillic-600.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116
}

@font-face {
   font-family: Manrope;
   font-style: normal;
   font-weight: 600;
   font-display: swap;
   src: url(../fonts/manrope-latin-600.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
   font-family: Manrope;
   font-style: normal;
   font-weight: 700;
   font-display: swap;
   src: url(../fonts/manrope-cyrillic-700.woff2) format("woff2");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116
}

@font-face {
   font-family: Manrope;
   font-style: normal;
   font-weight: 700;
   font-display: swap;
   src: url(../fonts/manrope-latin-700.woff2) format("woff2");
   unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

/* ---------- CSS Variables ---------- */
:root {
   --gold-50: #FBF8EE;
   --gold-100: #F5EDD3;
   --gold-300: #DFC377;
   --gold-500: #B59A3A;
   --gold-600: #96802E;
   --gold-800: #56491B;
   --gold-900: #3B3213;
   --forest: #18210C;
   --forest-900: #101608;
   --neutral-100: #E5E2DC;
   --neutral-300: #CDC8B8;
   --neutral-400: #B3AFA3;
   --white: #FFFFFF;

   --font: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

   --container: 1440px;
   --gutter: 80px;
   --header-h: 155px;
   --navbar-h: 106px;

   --ease: cubic-bezier(.22, 1, .36, 1);
   --radius-pill: 50px;
}

/* ---------- Reset ---------- */
*,
*::before,
*::after {
   box-sizing: border-box
}

html {
   -webkit-text-size-adjust: 100%
}

body {
   margin: 0;
   font-family: var(--font);
   font-size: 16px;
   line-height: 1.5;
   color: var(--gold-50);
   background: var(--forest);
   -webkit-font-smoothing: antialiased;
   text-rendering: optimizeLegibility;
   overflow-x: hidden;
}

img,
picture,
svg {
   display: block;
   max-width: 100%
}

[hidden] {
   display: none !important
}

a {
   color: inherit;
   text-decoration: none
}

ul {
   margin: 0;
   padding: 0;
   list-style: none
}

h1,
h2,
h3,
p {
   margin: 0
}

button {
   font: inherit;
   color: inherit;
   background: none;
   border: 0;
   cursor: pointer
}

address {
   font-style: normal
}

:focus-visible {
   outline: 2px solid var(--gold-300);
   outline-offset: 3px
}

.container {
   width: 100%;
   max-width: var(--container);
   margin-inline: auto;
   padding-inline: var(--gutter)
}

.visually-hidden {
   position: absolute !important;
   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;
   top: -100px;
   left: 16px;
   z-index: 2000;
   background: var(--gold-300);
   color: var(--gold-900);
   padding: 10px 18px;
   border-radius: 8px;
   font-weight: 600;
   transition: top .2s
}

.skip-link:focus {
   top: 16px
}

/* ---------- Icons ---------- */
.icon {
   width: 20px;
   height: 20px;
   fill: var(--gold-900);
   color: var(--gold-900)
}

.icon use {
   fill: inherit
}

.icon--gold {
   fill: var(--gold-300)
}

.icon--white {
   fill: var(--gold-50)
}

.icon--48 {
   width: 48px;
   height: 48px;
   fill: var(--gold-300)
}

/* ---------- Typography helpers ---------- */
.h3 {
   font-weight: 500;
   font-size: clamp(26px, 3.4vw, 36px);
   line-height: 1.2;
   text-transform: uppercase;
   letter-spacing: .01em
}

.h5 {
   font-weight: 500;
   font-size: 26px;
   line-height: 1.2;
   text-transform: uppercase
}

.eyebrow {
   display: flex;
   flex-direction: column;
   gap: 12px;
   font-weight: 600;
   font-size: 18px;
   line-height: 1.5;
   letter-spacing: .06em;
   text-transform: uppercase;
   color: var(--gold-300)
}

.eyebrow::after {
   content: "";
   width: 24px;
   height: 1px;
   background: var(--gold-300)
}

/* ---------- Buttons ---------- */
.btn {
   --pad-y: 20px;
   --pad-x: 40px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   padding: var(--pad-y) var(--pad-x);
   border-radius: var(--radius-pill);
   font-weight: 600;
   font-size: 16px;
   line-height: 1.4;
   text-transform: uppercase;
   letter-spacing: .01em;
   white-space: nowrap;
   border: 1px solid transparent;
   transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
}

.btn--sm {
   --pad-y: 12px;
   --pad-x: 24px;
   font-size: 14px
}

.btn--gold {
   background: var(--gold-300);
   color: var(--gold-900)
}

.btn--gold:hover {
   background: var(--gold-50);
   transform: translateY(-2px)
}

.btn--outline {
   border-color: var(--gold-300);
   color: var(--gold-300);
   background: rgba(223, 195, 119, .02);
   -webkit-backdrop-filter: blur(5px);
   backdrop-filter: blur(5px)
}

.btn--outline:hover {
   background: var(--gold-300);
   color: var(--gold-900);
   transform: translateY(-2px)
}


/* ---------- Loader для кнопок під час відправки форм ---------- */
.btn.is-loading {
   pointer-events: none;
   opacity: .85;
}
 
.btn.is-loading::after {
   content: "";
   width: 1em;
   height: 1em;
   margin-left: 10px;
   border: 2px solid currentColor;
   border-top-color: transparent;
   border-radius: 50%;
   animation: sm-btn-spin .6s linear infinite;
}
 
@keyframes sm-btn-spin {
   to {
      transform: rotate(360deg);
   }
}

/* ============================================================
   Header
   ============================================================ */
.header {
   position: fixed;
   inset: 0 0 auto;
   z-index: 1000;
   color: var(--gold-50);
   transition: background-color .4s var(--ease), box-shadow .4s var(--ease)
}

.header__topbar {
   border-bottom: 1px solid rgba(251, 248, 238, .1);
   transition: opacity .4s var(--ease), max-height .4s var(--ease)
}

.header__topbar-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   padding-block: 12px
}

.header__navbar-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   padding-block: 12px
}

.header.is-scrolled {
   background: rgba(24, 33, 12, .92);
   -webkit-backdrop-filter: blur(10px);
   backdrop-filter: blur(10px);
   box-shadow: 0 10px 30px rgba(0, 0, 0, .25)
}

.header.is-scrolled .header__topbar {
   opacity: 0;
   max-height: 0;
   overflow: hidden;
   pointer-events: none;
   border-bottom-color: transparent
}

.header.menu-open {
   background: var(--forest)
}

.header.menu-open .header__topbar {
   opacity: 1;
   max-height: 80px;
   overflow: visible;
   pointer-events: auto
}

.social {
   display: flex;
   align-items: center;
   gap: 20px
}

.social__link {
   display: grid;
   place-items: center;
   transition: color .3s, transform .3s
}

.social__link:hover {
   color: var(--gold-300);
   transform: translateY(-2px)
}

.social--sm .icon {
   width: 20px;
   height: 20px
}

.phone {
   position: relative
}

.phone__toggle {
   display: inline-flex;
   align-items: center;
   gap: 12px;
   font-weight: 500;
   font-size: 14px;
   text-transform: uppercase;
   letter-spacing: .02em;
   color: var(--gold-50)
}

.phone__toggle .icon {
   transition: transform .3s var(--ease)
}

.phone[data-open] .icon {
   transform: rotate(180deg)
}

.phone[data-open] .icon--gold {
   transform: unset
}

.phone__menu {
   position: absolute;
   top: calc(100% + 12px);
   left: 0;
   min-width: 220px;
   display: flex;
   flex-direction: column;
   gap: 4px;
   padding: 12px;
   background: var(--forest);
   border: 1px solid var(--gold-800);
   border-radius: 12px;
   box-shadow: 0 20px 40px rgba(0, 0, 0, .35);
   z-index: 5
}

.phone__menu a {
   padding: 8px 12px;
   border-radius: 8px;
   font-size: 15px;
   transition: background-color .25s, color .25s
}

.phone__menu a:hover {
   background: rgba(223, 195, 119, .08);
   color: var(--gold-300)
}

.header__address {
   display: flex;
   align-items: center;
   gap: 12px;
   font-size: 16px
}

.vtour {
   display: flex;
   align-items: center;
   gap: 6px;
   font-weight: 500;
   font-size: 12px;
   text-transform: uppercase;
   transition: color .3s
}

.vtour:hover {
   color: var(--gold-300)
}

.vtour .icon {
   width: 16px;
   height: 16px
}

.header__address .icon {
   width: 16px;
   height: 16px
}

.phone__toggle .icon {
   width: 16px;
   height: 16px
}

.phone__toggle .icon--white {
   width: 12px;
   height: 6px
}

.logo img {
   height: 82px;
   width: auto;
   object-fit: contain
}

.nav__list {
   display: flex;
   gap: 40px
}

.nav__link {
   position: relative;
   font-weight: 500;
   font-size: 14px;
   text-transform: uppercase;
   letter-spacing: .02em;
   padding-block: 4px;
   transition: color .3s
}

.nav__link::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: -2px;
   width: 100%;
   height: 1px;
   background: var(--gold-300);
   transform: scaleX(0);
   transform-origin: left;
   transition: transform .35s var(--ease)
}

.nav__link:hover {
   color: var(--gold-300)
}

.nav__link:hover::after {
   transform: scaleX(1)
}

.header__actions {
   display: flex;
   align-items: center;
   gap: 16px
}

.header__phone-mobile {
   display: none;
   align-items: center;
   gap: 8px;
   font-weight: 500;
   font-size: 14px;
   text-transform: uppercase;
   letter-spacing: .02em
}

.header__phone-mobile .icon {
   width: 16px;
   height: 16px
}

/* Burger button */
.burger {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   padding: 8px;
   z-index: 1100
}

.burger__box {
   position: relative;
   width: 24px;
   height: 24px
}

.burger__line {
   position: absolute;
   left: 2px;
   width: 20px;
   height: 2px;
   border-radius: 2px;
   background: var(--gold-50);
   transition: transform .4s var(--ease), opacity .3s var(--ease), background-color .3s
}

.burger__line:nth-child(1) {
   top: 6px
}

.burger__line:nth-child(2) {
   top: 11px
}

.burger__line:nth-child(3) {
   top: 16px
}

.burger.is-active .burger__line:nth-child(1) {
   transform: translateY(5px) rotate(45deg)
}

.burger.is-active .burger__line:nth-child(2) {
   opacity: 0
}

.burger.is-active .burger__line:nth-child(3) {
   transform: translateY(-5px) rotate(-45deg)
}

/* ============================================================
   Hero
   ============================================================ */
.hero {
   position: relative;
   isolation: isolate;
   overflow: hidden;
   background: var(--forest);
   --hero-top: calc(var(--header-h) + 45px);
   --hero-title-size: clamp(64px, 13.5vw, 200px);
   --hero-title-lh: .9;
   --hero-line-h: calc(var(--hero-title-size) * var(--hero-title-lh));
   --hero-title-rows: 1;
   --hero-titles-h: calc(var(--hero-line-h) * var(--hero-title-rows));
   --hero-gap-title-cta: 100px;
   --hero-gap-cta-hint: 150px;
   --hero-gap-hint-next: 125px;
}

.hero__bg,
.hero__overlay {
   position: absolute;
   inset: 0;
   overflow: hidden
}

.hero__bg {
   z-index: 1
}

.hero__overlay {
   z-index: 3;
   pointer-events: none
}

.hero__layer {
   position: absolute;
   inset: 0
}

.hero__layer img {
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
   width: 100%;
   height: 100%;
   max-width: none;
   object-fit: cover;
   object-position: top center;
   will-change: transform
}

.hero__grad {
   position: absolute;
   inset: 0;
   pointer-events: none
}

.hero__grad--base {
   background: linear-gradient(180deg, rgba(0, 0, 0, .8) 0%, rgba(0, 0, 0, .5) 40%, rgba(0, 0, 0, .5) 100%)
}

.hero__grad--overlay {
   background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .2) 40%, rgba(0, 0, 0, .5) 100%)
}

.hero__titles {
   position: relative;
}

.hero__word--left {
   z-index: 4
}

.hero__word--right {
   z-index: 2
}

.hero__titles-inner {
   display: flex;
   justify-content: space-between;
   padding-top: var(--hero-top);
   padding-inline: 20px;
}

.hero__word {
   font-weight: 700;
   font-size: var(--hero-title-size);
   line-height: var(--hero-title-lh);
   text-transform: uppercase;
   color: var(--gold-50);
   letter-spacing: -.01em
}

.hero__stage {
   position: relative;
   z-index: 5;
   display: flex;
   flex-direction: column;
   align-items: center;
   padding-top: var(--hero-gap-title-cta);
   padding-bottom: var(--hero-gap-hint-next)
}

.hero__cta {
   margin: 0 auto;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 40px;
   text-align: center;
   padding-inline: 16px
}

.hero__eyebrow {
   font-weight: 600;
   font-size: 18px;
   line-height: 1.5;
   letter-spacing: .06em;
   text-transform: uppercase;
   color: var(--gold-50)
}

.hero__buttons {
   display: flex;
   gap: 20px;
   flex-wrap: wrap;
   justify-content: center
}

.scroll-hint {
   margin: var(--hero-gap-cta-hint) auto 0;
   padding: 0;
   color: var(--gold-50);
   display: grid;
   place-items: center
}

.scroll-hint__mouse {
   width: 56px;
   height: 56px;
   overflow: visible
}

.scroll-hint__mouse path {
   fill: currentColor;
   fill-opacity: .75;
   transition: fill-opacity .3s
}

.scroll-hint:hover .scroll-hint__mouse path {
   fill-opacity: 1
}

.scroll-hint__wheel {
   animation: wheel 1.8s var(--ease) infinite
}

.scroll-hint__mouse {
   animation: bob 2.4s var(--ease) infinite
}

@keyframes wheel {

   0%,
   100% {
      transform: translateY(0);
      opacity: 1
   }

   50% {
      transform: translateY(4px);
      opacity: .4
   }
}

@keyframes bob {

   0%,
   100% {
      transform: translateY(0)
   }

   50% {
      transform: translateY(6px)
   }
}

/* ============================================================
   Benefits
   ============================================================ */
.benefits {
   position: relative;
   z-index: 4
}

.benefits__inner {
   padding: 80px var(--gutter) 100px;
   display: flex;
   flex-direction: column;
   gap: 60px
}

.hero .benefits__inner {
   padding-top: 0
}

.benefits__head {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 16px;
   text-align: center
}

.benefits__lead {
   max-width: 630px;
   color: var(--neutral-100);
   font-size: 16px
}

.benefits__grid {
   display: grid;
   grid-template-columns: repeat(6, 1fr);
   gap: 20px
}

.benefit {
   display: flex;
   flex-direction: column;
   gap: 16px;
   padding: 24px;
   border: 1px solid var(--gold-900);
   background: rgba(255, 255, 255, .05);
   -webkit-backdrop-filter: blur(10px);
   backdrop-filter: blur(10px);
   transition: transform .4s var(--ease), border-color .4s var(--ease), background-color .4s var(--ease)
}

.benefit:hover {
   transform: translateY(-6px);
   border-color: var(--gold-300);
   background: rgba(223, 195, 119, .08)
}

.benefit__ico {
   display: grid;
   place-items: center;
   width: 48px;
   height: 48px;
   border-radius: 100px;
   background: rgba(255, 255, 255, .05)
}

.benefit__ico .icon {
   width: 24px;
   height: 24px;
   fill: var(--gold-300)
}

.benefit__ico--full {
   background: none
}

.benefit__ico--full .icon {
   width: 48px;
   height: 48px
}

.benefit__text {
   display: flex;
   flex-direction: column;
   gap: 8px
}

.benefit__text h3 {
   font-weight: 600;
   font-size: 18px;
   line-height: 1.3
}

.benefit__text p {
   color: var(--neutral-300);
   font-size: 16px
}

/* ============================================================
   Burger menu overlay
   ============================================================ */
.menu {
   position: fixed;
   inset: 0;
   z-index: 900;
   background: var(--forest);
   color: var(--gold-50);
   overflow-y: auto;
   overflow-x: clip;
   overscroll-behavior: contain;
   opacity: 0;
   visibility: hidden;
   clip-path: inset(0 0 100% 0);
   transition: clip-path .6s var(--ease), opacity .4s var(--ease), visibility .4s
}

.menu.is-open {
   opacity: 1;
   visibility: visible;
   clip-path: inset(0 0 0 0)
}

.menu__inner {
   display: grid;
   grid-template-columns: 384px minmax(0, 1fr);
   min-height: 100%;
   padding: calc(var(--header-h) + 24px) 64px 60px;
   gap: 0
}

.menu__col {
   display: flex;
   flex-direction: column
}

.menu__col--nav {
   gap: 80px;
   padding: 60px 80px 0 0;
   border-right: 1px solid var(--gold-800)
}

.menu__col--feature {
   gap: 40px;
   padding: 60px 0 0 80px;
   min-width: 0
}

.menu__inner {
   position: relative
}

.menu__inner::before {
   content: "";
   position: absolute;
   top: calc(var(--header-h) + 24px);
   left: 50%;
   margin-left: -50vw;
   width: 100vw;
   height: 1px;
   background: var(--gold-800);
   pointer-events: none
}

.menu__col--feature .menu-swiper {
   min-width: 0;
   max-width: 100%
}

.menu__block {
   display: flex;
   flex-direction: column;
   gap: 24px
}

.menu__col--nav .menu__block:first-child {
   gap: 39px
}

.menu__nav .menu__list {
   display: flex;
   flex-direction: column;
   gap: 20px
}

.menu__link {
   width: max-content;
   font-weight: 500;
   font-size: 26px;
   line-height: 1.2;
   text-transform: uppercase;
   transition: color .3s, transform .3s var(--ease)
}

.menu__link:hover {
   color: var(--gold-300);
   transform: translateX(8px)
}

.menu__contacts {
   display: flex;
   flex-direction: column;
   gap: 12px;
   font-size: 16px;
   line-height: 1.5
}

.menu__contacts a {
   transition: color .3s
}

.menu__contacts a:hover {
   color: var(--gold-300)
}

.menu__heading {
   max-width: 583px
}

.social--round {
   display: flex;
   gap: 12px
}

.social--round .social__link {
   width: 40px;
   height: 40px;
   border-radius: 100px;
   background: rgba(255, 255, 255, .05);
   transition: background-color .3s, color .3s, transform .3s
}

.social--round .social__link:hover {
   background: var(--gold-300);
   transform: translateY(-3px)
}

.social--round .social__link:hover .icon {
   fill: var(--gold-900)
}

.social--round .icon {
   width: 16px;
   height: 16px
}

.menu-swiper {
   width: 100%;
   overflow: hidden
}

/* .menu-swiper .swiper-slide{height:auto} */
.offer {
   position: relative;
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
   gap: 24px;
   height: 500px;
   padding: 24px;
   overflow: hidden;
   isolation: isolate
}

.offer__bg {
   position: absolute;
   inset: 0;
   z-index: -2;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .6s var(--ease)
}

.offer::after {
   content: "";
   position: absolute;
   inset: 0;
   z-index: -1;
   background: linear-gradient(180deg, rgba(0, 0, 0, .1), rgba(0, 0, 0, .7))
}

.offer:hover .offer__bg {
   transform: scale(1.06)
}

.offer__body {
   display: flex;
   flex-direction: column;
   gap: 8px
}

.offer__body p {
   color: var(--neutral-100);
   font-size: 16px
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1280px) {
   :root {
      --gutter: 40px
   }
}

@media (max-width:1200px) {
   .header__address {
      display: none
   }

   .menu__col--nav {
      padding-right: 48px
   }

   .menu__col--feature {
      padding-left: 48px
   }
}

@media (max-width:1024px) {
   :root {
      --navbar-h: 96px
   }

   .nav,
   .header__book {
      display: none
   }

   .benefits__grid {
      grid-template-columns: repeat(3, 1fr)
   }

   .menu__inner {
      display: flex;
      flex-direction: column;
      grid-template-columns: none;
      gap: 48px;
      padding: calc(var(--navbar-h) + 24px) 16px 48px
   }

   .menu__inner::before {
      display: none
   }

   .menu__col {
      display: contents
   }

   .menu__col--nav .menu__block:first-child {
      order: 1
   }

   .menu__col--feature .menu__block {
      order: 2
   }

   .menu-swiper {
      order: 3
   }

   .menu__col--nav .menu__block:last-child {
      order: 4
   }

   .offer {
      height: 400px
   }
}

@media (max-width:768px) {
   :root {
      --gutter: 16px;
      --header-h: 79px;
      --navbar-h: 79px
   }

   .header__topbar {
      display: none
   }

   .logo img {
      height: 55px
   }

   .header__navbar-inner {
      gap: 12px
   }

   .header__actions {
      gap: 8px
   }

   .header__phone-mobile {
      display: inline-flex
   }

   .hero {
      --hero-top: calc(var(--header-h) + 142px);
      --hero-title-size: clamp(66px, 23vw, 120px);
      --hero-title-lh: 1;
      --hero-title-rows: 2;
      --hero-gap-title-cta: 171px;
      --hero-gap-cta-hint: 0px;
      --hero-gap-hint-next: 160px;
      --hero-peak: 0.157;
      --hero-canvas-h: calc((var(--hero-top) + var(--hero-line-h) * 1.5) / var(--hero-peak));
   }

   .hero__layer img {
      height: var(--hero-canvas-h)
   }

   .hero__titles--front .hero__titles-inner {
      justify-content: center;
      padding-top: var(--hero-top);
      flex-direction: column;
      align-items: center;
   }

   .hero__word--left {
      z-index: 2
   }

   .hero__word--right {
      z-index: 4
   }

   .hero__cta {
      gap: 28px
   }

   .hero__buttons {
      flex-direction: column;
      width: 100%
   }

   .hero__buttons .btn {
      width: 100%
   }

   .scroll-hint {
      display: none
   }

   .benefits__grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 12px
   }

   .benefits__inner {
      padding: 56px var(--gutter) 72px;
      gap: 40px
   }
}

@media (max-width:480px) {
   .hero__layer img {
      height: 100%;
   }
}

@media (max-width:420px) {
   .header__phone-mobile span {
      display: none
   }

   .hero__layer img {
      height: 93%;
   }
}

/* ============================================================
   Shared section chrome
   ============================================================ */
.section {
   position: relative;
   padding: clamp(100px, 10vw, 150px) 0;
   background: var(--gold-50);
   color: var(--gold-900)
}

.h2 {
   font-weight: 500;
   font-size: clamp(32px, 5vw, 60px);
   line-height: 1.15;
   text-transform: uppercase;
   color: var(--gold-800);
   margin: 0
}

.h2--light {
   color: var(--gold-50)
}

.h4 {
   font-weight: 500;
   font-size: clamp(24px, 3vw, 30px);
   line-height: 1.2;
   text-transform: uppercase;
   color: var(--gold-900);
   margin: 0
}

.section-eyebrow {
   display: inline-flex;
   align-items: center;
   gap: 12px;
   font-weight: 600;
   font-size: clamp(15px, 2vw, 18px);
   line-height: 1.5;
   letter-spacing: .06em;
   text-transform: uppercase;
   color: var(--gold-500)
}

.section-eyebrow::before {
   content: "";
   width: 24px;
   height: 1px;
   background: currentColor;
   flex: none
}

.section-eyebrow--both::after {
   content: "";
   width: 24px;
   height: 1px;
   background: currentColor;
   flex: none
}

.section-eyebrow--ondark {
   color: var(--gold-300)
}

.section__head {
   display: flex;
   flex-direction: column;
   gap: 16px
}

.section__head--between {
   flex-direction: row;
   align-items: flex-end;
   justify-content: space-between;
   gap: 24px;
   flex-wrap: wrap
}

.section__head--center {
   align-items: center;
   text-align: center;
   max-width: 900px;
   margin-inline: auto
}

.section__heading {
   display: flex;
   flex-direction: column;
   gap: 16px;
   max-width: 650px
}

.section__lead {
   max-width: 630px;
   color: var(--neutral-100);
   font-size: 16px
}

.section__lead--dark {
   color: var(--gold-900);
   opacity: .85
}

.hr-line {
   display: block;
   width: 24px;
   height: 1px;
   background: currentColor
}

/* Centered-layout sections */
.offers-sec>.container,
.advantages>.container,
.gallery>.container,
.blog>.container {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: clamp(40px, 5vw, 60px)
}

/* Extra buttons */
.btn--outline-dark {
   border-color: var(--gold-500);
   color: var(--gold-500);
   background: transparent
}

.btn--outline-dark:hover {
   background: var(--gold-500);
   color: var(--gold-50);
   transform: translateY(-2px)
}

.btn--icon {
   gap: 12px
}

.btn--icon .icon {
   width: 24px;
   height: 24px
}

.icon--dark {
   fill: var(--gold-900);
   color: var(--gold-900)
}

.icon--40 {
   width: 40px;
   height: 40px
}

.icon--48 {
   width: 48px;
   height: 48px
}

.icon--80 {
   width: 56px;
   height: 56px
}

/* ============================================================
   2. Проживання
   ============================================================ */
.rooms .section__head {
   margin-bottom: clamp(40px, 5vw, 60px)
}

.tabs {
   display: flex;
   gap: 32px
}

.tab {
   font-weight: 600;
   font-size: 18px;
   text-transform: uppercase;
   letter-spacing: .06em;
   color: var(--neutral-300);
   padding-bottom: 6px;
   border-bottom: 2px solid transparent;
   transition: color .3s, border-color .3s
}

.tab.is-active {
   color: var(--gold-500);
   border-color: var(--gold-500)
}

.rooms-panel {
   display: none
}

.rooms-panel.is-active {
   display: block
}

.rooms-swiper {
   overflow: hidden;
   padding-bottom: 8px
}

.rooms-swiper .swiper-slide {
   height: auto
}

.room {
   width: min(847px, 84vw)
}

.room__media {
   cursor: pointer
}

.room__card {
   display: flex;
   flex-direction: column;
   gap: 24px
}

.room__media {
   position: relative;
   height: 500px;
   overflow: hidden;
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
   gap: 24px;
   padding: 32px;
   isolation: isolate
}

.room__img {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   z-index: -2;
   transition: transform .7s var(--ease)
}

.room__grad {
   position: absolute;
   inset: 0;
   z-index: -1;
   background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, .55))
}

.room__card:hover .room__img {
   transform: scale(1.05)
}

.room__price {
   color: var(--gold-300);
   font-weight: 500;
   font-size: 24px
}

.room__features {
   display: flex;
   flex-wrap: wrap;
   gap: 14px 40px
}

.room__features li {
   display: flex;
   align-items: center;
   gap: 12px;
   color: var(--gold-50);
   font-size: 16px
}

.room__features .icon {
   width: 24px;
   height: 24px
}

.room__foot {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   flex-wrap: wrap
}

.room__name {
   color: var(--gold-900);
   font-weight: 500;
   font-size: clamp(22px, 3vw, 30px);
   text-transform: uppercase
}

.room__actions {
   display: flex;
   gap: 12px;
   flex-wrap: wrap
}

.slider-nav {
   display: flex;
   align-items: center;
   gap: clamp(20px, 3vw, 40px);
   margin-top: 40px
}

.slider-nav-blog,
.slider-nav-special-offers{
   display: none;
}

@media (max-width: 768px) {
   .slider-nav-blog,
   .slider-nav-special-offers{
      display: flex;
   }
}

.slider-counter {
   color: var(--gold-900);
   font-weight: 500;
   font-size: 30px;
   white-space: nowrap
}

.slider-counter__total {
   color: var(--neutral-300);
   font-size: 16px
}

.slider-progress {
   flex: 1;
   height: 2px;
   background: rgba(59, 50, 19, .15);
   position: relative;
   overflow: hidden;
   border-radius: 2px
}

.slider-progress__fill {
   position: absolute;
   inset: 0;
   transform-origin: left;
   background: var(--gold-900);
   transform: scaleX(.16);
   transition: transform .5s var(--ease)
}

.slider-arrows {
   display: flex;
   gap: 16px
}

.round-arrow {
   width: clamp(52px, 6vw, 80px);
   height: clamp(52px, 6vw, 80px);
   border-radius: 100px;
   border: 1px solid var(--neutral-300);
   display: grid;
   place-items: center;
   color: var(--gold-900);
   transition: background-color .3s, border-color .3s, color .3s, opacity .3s
}

.round-arrow .icon {
   width: 16px;
   height: 16px
}

.round-arrow--prev .icon {
   transform: rotate(90deg)
}

.round-arrow--next .icon {
   transform: rotate(-90deg)
}

.round-arrow:hover:not(:disabled) {
   background: var(--gold-300);
   border-color: var(--gold-300)
}

.round-arrow:disabled {
   opacity: .35;
   cursor: default
}

/* ============================================================
   3. Спеціальні пропозиції
   ============================================================ */
.offers-sec {
   background: var(--gold-100)
}

.offers-slider {
   width: 100%
}

.offers-swiper {
   overflow: hidden;
   padding-bottom: 8px
}

.offers-swiper .swiper-slide {
   height: auto
}

.offers-slider.is-locked .slider-nav {
   display: none
}

.promo-card {
   position: relative;
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
   gap: 24px;
   height: var(--h, 500px);
   padding: 32px;
   overflow: hidden;
   isolation: isolate
}

.promo-card__img {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   z-index: -2;
   transition: transform .7s var(--ease)
}

.promo-card__grad {
   position: absolute;
   inset: 0;
   z-index: -1;
   background: linear-gradient(180deg, rgba(0, 0, 0, .1), rgba(0, 0, 0, .6))
}

.promo-card:hover .promo-card__img {
   transform: scale(1.05)
}

.promo-card__title {
   color: var(--gold-50);
   font-weight: 500;
   font-size: 26px;
   text-transform: uppercase;
   line-height: 1.2
}

.promo-card__btn {
   align-self: flex-start
}

/* ============================================================
   4. Переваги (advantages)
   ============================================================ */
.advantages {
   background: var(--forest);
   color: var(--gold-50)
}

.advantages__head {
   max-width: 846px
}

.advantages__grid {
   display: grid;
   grid-template-columns: repeat(12, 1fr);
   gap: 20px;
   width: 100%
}

.adv-card {
   grid-column: span 6;
   height: 380px;
   position: relative;
   overflow: hidden
}

.adv-card--sm {
   grid-column: span 5
}

.adv-card--lg {
   grid-column: span 7
}

.adv-card a {
   display: block;
   height: 100%;
   position: relative;
   isolation: isolate
}

.adv-card img {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   z-index: -2;
   transition: transform .7s var(--ease)
}

.adv-card__grad {
   position: absolute;
   inset: 0;
   z-index: -1;
   background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .8))
}

.adv-card__title {
   position: absolute;
   left: 32px;
   bottom: 32px;
   right: 32px;
   color: var(--gold-50);
   font-weight: 500;
   font-size: 26px;
   text-transform: uppercase
}

.adv-card a:hover img {
   transform: scale(1.05)
}

/* ============================================================
   5. Ресторан
   ============================================================ */
.restaurant__inner {
   display: grid;
   grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
   gap: clamp(40px, 7vw, 128px);
   align-items: start
}

.restaurant__left,
.restaurant__right {
   min-width: 0
}

.rest-swiper {
   width: 100%;
   max-width: 100%
}

.restaurant__left {
   display: flex;
   flex-direction: column;
   gap: 60px
}

.restaurant__text {
   display: flex;
   flex-direction: column;
}

.restaurant__text .section-eyebrow {
   margin-bottom: 0;
}

.restaurant__text .h2 {
   margin-top: 16px;
   margin-bottom: 40px;
}

.restaurant__paras {
   display: flex;
   flex-direction: column;
   gap: 16px;
   color: var(--gold-900);
   font-size: 16px
}

.restaurant__right {
   height: 100%;
   display: flex;
   flex-direction: column;
   justify-content: space-between;
}

.restaurant__grill {
   display: flex;
   flex-direction: column;
   gap: 32px
}

.restaurant__grill-text {
   display: flex;
   flex-direction: column;
   gap: 4px;
   color: var(--gold-500)
}

.restaurant__grill-title {
   color: var(--gold-500);
   font-weight: 500;
   font-size: 18px;
   text-transform: uppercase
}

.restaurant__grill-text .hr-line {
   margin: 8px 0 4px
}

.restaurant__grill-text p:last-child {
   color: var(--gold-900)
}

.video {
   position: relative;
   display: block;
   width: 100%;
   overflow: hidden;
   cursor: pointer;
   isolation: isolate;
   border: 0;
   padding: 0;
   background: none
}

.video__poster {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .7s var(--ease)
}

.video:hover .video__poster {
   transform: scale(1.04)
}

.video--food {
   height: 400px
}

.video--wide {
   height: clamp(360px, 56vw, 806px)
}

.video__grad {
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, .4)
}

.video__play {
   position: absolute;
   left: 50%;
   top: 50%;
   transform: translate(-50%, -50%);
   width: clamp(64px, 8vw, 100px);
   height: clamp(64px, 8vw, 100px);
   border-radius: 50%;
   display: grid;
   place-items: center;
   background: rgba(255, 255, 255, .15);
   -webkit-backdrop-filter: blur(10px);
   backdrop-filter: blur(10px);
   color: var(--gold-50);
   transition: background-color .35s, color .35s, transform .35s
}

.video__play .icon {
   width: 32px;
   height: 32px;
   fill: currentColor;
   margin-left: 4px
}

.video:hover .video__play {
   background: var(--gold-300);
   color: var(--gold-900);
   transform: translate(-50%, -50%) scale(1.08)
}

.rest-slider {
   position: relative;
   overflow: hidden;
   height: clamp(420px, 50vw, 750px)
}

.rest-slider__track {
   position: relative;
   height: 100%
}

.rest-slider__slide {
   position: absolute;
   inset: 0;
   opacity: 0;
   transition: opacity .8s var(--ease);
   pointer-events: none
}

.rest-slider__slide.is-active {
   opacity: 1;
   pointer-events: auto
}

.rest-slider__slide img {
   width: 100%;
   height: 100%;
   object-fit: cover
}

.rest-slider__dots {
   position: absolute;
   left: 50%;
   bottom: 24px;
   transform: translateX(-50%);
   display: flex;
   gap: 8px;
   align-items: center
}

.rest-slider__dots button {
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .5);
   transition: width .35s, background-color .35s;
   padding: 0
}

.rest-slider__dots button.is-active {
   width: 40px;
   border-radius: 4px;
   background: var(--gold-300)
}

/* ============================================================
   6. SPA партнер банер
   ============================================================ */
.spa-banner {
   position: relative;
   overflow: hidden;
   color: var(--gold-50);
   background: rgba(0, 0, 0, 0.50);
   backdrop-filter: blur(15px);
}

.spa-banner__bg {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   z-index: -2
}

.spa-banner__grad {
   position: absolute;
   inset: 0;
   z-index: -1;
   background: linear-gradient(90deg, rgba(0, 0, 0, .8), rgba(0, 0, 0, .4) 50%, rgba(0, 0, 0, .6))
}

.spa-banner__inner {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: clamp(40px, 6vw, 80px);
   flex-wrap: wrap
}

.spa-banner__content {
   width: min(846px, 100%);
   display: flex;
   flex-direction: column;
   gap: 40px
}

.spa-banner__heading {
   display: flex;
   flex-direction: column;
   gap: 16px
}

.spa-banner__tags {
   flex: 1;
   min-width: 280px;
   display: flex;
   flex-direction: column;
   gap: 16px
}

.spa-banner__tags li {
   display: flex;
   align-items: center;
   gap: 24px
}

.spa-banner__tags p {
   font-weight: 600;
   font-size: 18px;
   line-height: 1.3;
   color: var(--neutral-100)
}

.spa-tag__ico {
   flex: none;
   width: 80px;
   height: 80px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .15);
   -webkit-backdrop-filter: blur(10px);
   backdrop-filter: blur(10px);
   display: grid;
   place-items: center
}

/* ============================================================
   7. FAQ
   ============================================================ */
.faq__inner {
   display: grid;
   grid-template-columns: minmax(0, 413px) minmax(0, 1fr);
   gap: clamp(40px, 8vw, 120px);
   align-items: start
}

.faq__aside {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   gap: 40px;
   position: sticky;
   top: 130px
}

.faq__heading {
   display: flex;
   flex-direction: column;
   gap: 16px
}

.faq__note {
   color: var(--gold-900);
   opacity: .85
}

.faq__list {
   display: flex;
   flex-direction: column
}

.faq-item {
   border-bottom: 1px solid rgba(59, 50, 19, .15)
}

.faq-item__q {
   width: 100%;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   padding: 32px 0;
   text-align: left;
   font-weight: 500;
   font-size: clamp(18px, 2vw, 20px);
   color: var(--gold-900);
   text-transform: none;
   line-height: 1.3
}

.faq-item__icon {
   position: relative;
   width: 24px;
   height: 24px;
   flex: none
}

.faq-item__icon::before,
.faq-item__icon::after {
   content: "";
   position: absolute;
   left: 50%;
   top: 50%;
   width: 16px;
   height: 2px;
   background: var(--gold-500);
   transform: translate(-50%, -50%);
   border-radius: 2px
}

.faq-item__icon::after {
   transform: translate(-50%, -50%) rotate(90deg);
   transition: opacity .3s, transform .3s
}

.faq-item.is-open .faq-item__icon::after {
   opacity: 0;
   transform: translate(-50%, -50%) rotate(0)
}

.faq-item__a {
   overflow: hidden;
   max-height: 0;
   transition: max-height .45s var(--ease)
}

.faq-item__a-inner {
   padding: 0 40px 32px 0;
   color: var(--gold-900);
   opacity: .85;
   line-height: 1.5
}

/* ============================================================
   8. Галерея
   ============================================================ */
.gallery__grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   grid-template-rows: repeat(5, 1fr);
   grid-auto-flow: column;
   gap: 20px;
   width: 100%;
   height: clamp(440px, 52vw, 650px)
}

.gallery__item {
   position: relative;
   overflow: hidden
}

.gallery__item--sm {
   grid-row: span 2
}

.gallery__item--lg {
   grid-row: span 3
}

.gallery__item button {
   display: block;
   width: 100%;
   height: 100%;
   cursor: zoom-in;
   padding: 0
}

.gallery__item img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .6s var(--ease)
}

.gallery__item:hover img {
   transform: scale(1.06)
}

/* ============================================================
   9. Про комплекс
   ============================================================ */
.about {
   padding: 0 0 clamp(72px, 10vw, 150px);
   background: var(--gold-50)
}

.about__text {
   margin-top: 60px;
   max-width: 846px;
   display: flex;
   flex-direction: column;
   gap: 24px;
   align-items: flex-start
}

.about__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    color: var(--gold-900);
    font-size: 16px;
    line-height: 1.5;
}

.about__content {
    position: relative;
    margin: 0;
    overflow: hidden;
    max-height: 72px;
    transition: max-height .55s var(--ease);
}

.about__content::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2.4em;
    background: linear-gradient(transparent, var(--gold-50));
    pointer-events: none;
    opacity: 1;
    transition: opacity .45s var(--ease);
}

/* Відкритий стан */
[data-readmore].is-open .about__content {
    /* Значення буде встановлювати JS */
}

[data-readmore].is-open .about__content::after {
    opacity: 0;
}

.text-link {
   display: inline-flex;
   width: fit-content;
   align-items: center;
   color: var(--gold-500);
   font-weight: 600;
   font-size: 16px;
   text-transform: uppercase;
   border-bottom: 1px solid var(--gold-500);
   padding-bottom: 4px;
   transition: color .3s, border-color .3s;
   background: none;
   cursor: pointer
}

.text-link:hover {
   color: var(--gold-600);
   border-color: var(--gold-600)
}

/* ============================================================
   10. Блог
   ============================================================ */
.blog__grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 20px;
   width: 100%
}

.blog-card {
   display: flex;
   flex-direction: column;
   gap: 16px
}

.blog-card__media {
   display: block;
   overflow: hidden
}

.blog-card__media img {
   width: 100%;
   height: 400px;
   object-fit: cover;
   transition: transform .6s var(--ease)
}

.blog-card__media:hover img {
   transform: scale(1.05)
}

.blog-card__tag {
   align-self: flex-start;
   background: var(--gold-100);
   color: var(--gold-600);
   font-weight: 500;
   font-size: 14px;
   text-transform: uppercase;
   padding: 4px 12px;
   border-radius: 20px
}

.blog-card__title {
   margin-top: 8px
}

.blog-card__title {
   font-weight: 500;
   font-size: 26px;
   text-transform: uppercase;
   color: var(--gold-900);
   line-height: 1.2
}

.blog-card__title a:hover {
   color: var(--gold-500)
}

.blog-card__excerpt {
   color: var(--gold-900);
   opacity: .8
}

/* ============================================================
   11. Групове бронювання
   ============================================================ */
.group {
   position: relative;
   overflow: hidden;
   color: var(--gold-50);
   background: linear-gradient(180deg, rgba(24, 33, 12, .85), var(--forest))
}

.group__bg {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   z-index: -2
}

.group__inner {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: clamp(24px, 4vw, 60px);
   align-items: stretch
}

.group__left {
   display: flex;
   flex-direction: column;
   gap: 60px;
   max-width: 630px
}

.group__heading {
   display: flex;
   flex-direction: column;
   gap: 16px
}

.group__lead {
   color: var(--gold-100)
}

.group__form {
   display: flex;
   flex-direction: column;
   gap: 36px;
   max-width: 522px;
   width: 100%
}

.field input {
   width: 100%;
   background: none;
   border: 0;
   border-bottom: 1px solid var(--gold-50);
   padding-bottom: 12px;
   color: var(--gold-50);
   font: inherit;
   font-size: 16px
}

.field input::placeholder {
   color: var(--neutral-400)
}

.field input:focus {
   outline: none;
   border-color: var(--gold-300)
}

.group__form .btn {
   align-self: flex-start
}

.group__photo img {
   width: 100%;
   height: 100%;
   min-height: 400px;
   object-fit: cover
}

/* ============================================================
   Карта
   ============================================================ */
.map {
   position: relative;
   background: var(--forest);
   height: clamp(320px, 32vw, 460px)
}

.map__frame {
   width: 100%;
   height: 100%;
   border: 0;
   display: block
}

.map__grad {
   position: absolute;
   inset: 0;
   pointer-events: none;
   background: linear-gradient(180deg, var(--forest), transparent 28%, transparent 72%, var(--forest))
}

/* ============================================================
   Footer
   ============================================================ */
.footer {
   background: var(--forest);
   color: var(--gold-50)
}

.footer__main {
   padding-top: 80px
}

.footer__top {
   display: flex;
   justify-content: space-between;
   gap: 48px;
   align-items: flex-start;
   flex-wrap: wrap
}

.footer__logo img {
   width: 150px;
   height: auto
}

.footer__cols {
   display: flex;
   gap: clamp(32px, 4vw, 60px);
   flex-wrap: wrap;
   width: 955px;
   max-width: 100%;
   justify-content: space-between
}

.footer__cols>* {
   min-width: 150px
}

.footer__col-title {
   color: var(--gold-300);
   font-weight: 500;
   font-size: 14px;
   text-transform: uppercase;
   letter-spacing: .04em;
   margin-bottom: 16px
}

.footer__links {
   display: flex;
   flex-direction: column;
   gap: 12px;
   font-weight: 500;
   font-size: 14px;
   text-transform: uppercase
}

.footer__links a:hover {
   color: var(--gold-300)
}

.footer__contacts {
   display: flex;
   flex-direction: column;
   gap: 12px;
   font-size: 16px;
   line-height: 1.5
}

.footer__contacts a {
   transition: color .3s
}

.footer__contacts a:hover {
   color: var(--gold-300)
}

.footer__bottom {
   margin-top: 80px;
   padding: 24px 0;
   border-top: 1px solid rgba(179, 175, 163, .2);
   display: flex;
   justify-content: space-between;
   gap: 24px;
   flex-wrap: wrap;
   color: var(--neutral-400);
   font-size: 16px
}

.footer__legal {
   display: flex;
   gap: 40px;
   flex-wrap: wrap
}

.footer__legal a:hover {
   color: var(--gold-50)
}

.footer__credit {
   background: var(--forest-900);
   overflow: hidden
}

.footer__credit-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   padding-block: 12px
}

.footer__credit-left {
   display: flex;
   align-items: center;
   gap: 16px;
   color: var(--neutral-400);
   font-size: 16px;
   white-space: nowrap;
   flex: none
}

.footer__klok {
   font-weight: 700;
   letter-spacing: .12em;
   color: var(--gold-50)
}

.hr-line--h {
   width: 20px;
   height: 1px;
   background: var(--neutral-400);
   flex: none
}

.footer__marquee {
   flex: 1;
   min-width: 0;
   overflow: hidden;
   -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
   mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent)
}

.footer__marquee-track {
   display: inline-flex;
   align-items: center;
   gap: 16px;
   white-space: nowrap;
   animation: marquee 32s linear infinite;
   will-change: transform
}

.footer__marquee-track span {
   color: var(--neutral-400);
   font-weight: 500;
   font-size: 14px;
   text-transform: uppercase;
   letter-spacing: .03em
}

.footer__marquee-track i {
   width: 3px;
   height: 3px;
   border-radius: 50%;
   background: var(--neutral-400);
   flex: none
}

@keyframes marquee {
   to {
      transform: translateX(-50%)
   }
}

/* ============================================================
   Back to top
   ============================================================ */
.to-top {
   position: fixed;
   left: clamp(12px, 4vw, 80px);
   bottom: clamp(24px, 6vh, 72px);
   z-index: 800;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 12px;
   color: var(--gold-900);
   opacity: 0;
   transform: translateY(16px);
   pointer-events: none;
   transition: opacity .4s var(--ease), transform .4s var(--ease), color .3s;
   mix-blend-mode: difference
}

.to-top.is-visible {
   opacity: 1;
   transform: none;
   pointer-events: auto
}

.to-top__line {
   position: relative;
   width: 1px;
   height: 40px;
   background: #fff
}

.to-top__line::before {
   content: "";
   position: absolute;
   top: 0;
   left: 50%;
   width: 7px;
   height: 7px;
   border-left: 1px solid #fff;
   border-top: 1px solid #fff;
   transform: translate(-50%, 0) rotate(45deg)
}

.to-top__label {
   writing-mode: vertical-rl;
   transform: rotate(180deg);
   text-transform: uppercase;
   font-size: 14px;
   letter-spacing: .12em;
   color: #fff
}

/* ============================================================
   Page loader
   ============================================================ */
.loader {
   position: fixed;
   inset: 0;
   z-index: 3000;
   background: var(--forest);
   display: grid;
   place-items: center;
   transition: opacity .6s var(--ease), visibility .6s
}

.loader.is-hidden {
   opacity: 0;
   visibility: hidden
}

.loader__box {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 20px
}

.loader__logo {
   width: 64px;
   height: 64px;
   color: var(--gold-300);
   animation: loaderPulse 1.7s ease-in-out infinite
}

.loader__name {
   color: var(--gold-50);
   font-weight: 600;
   letter-spacing: .24em;
   text-transform: uppercase;
   font-size: 14px
}

.loader__bar {
   position: relative;
   width: 160px;
   height: 2px;
   background: rgba(223, 195, 119, .2);
   overflow: hidden;
   border-radius: 2px
}

.loader__bar-fill {
   position: absolute;
   inset: 0;
   width: 40%;
   background: var(--gold-300);
   border-radius: 2px;
   animation: loaderBar 1.2s ease-in-out infinite
}

@keyframes loaderBar {
   0% {
      transform: translateX(-130%)
   }

   100% {
      transform: translateX(330%)
   }
}

@keyframes loaderPulse {

   0%,
   100% {
      opacity: .55;
      transform: scale(.94)
   }

   50% {
      opacity: 1;
      transform: scale(1)
   }
}

/* ============================================================
   Modals (room detail, form success)
   ============================================================ */
.modal {
   position: fixed;
   inset: 0;
   z-index: 1500;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 24px;
   opacity: 0;
   visibility: hidden;
   transition: opacity .35s var(--ease), visibility .35s
}

.modal.is-open {
   opacity: 1;
   visibility: visible
}

.modal__overlay {
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, .5);
   -webkit-backdrop-filter: blur(15px);
   backdrop-filter: blur(15px)
}

.modal__dialog {
   position: relative;
   background: var(--white);
   color: var(--gold-900);
   width: min(1280px, 100%);
   max-height: 90vh;
   overflow: auto;
   padding: 40px;
   display: flex;
   gap: 40px;
   transform: translateY(20px) scale(.985);
   transition: transform .4s var(--ease)
}

.modal.is-open .modal__dialog {
   transform: none
}

.modal__close {
   position: absolute;
   top: 24px;
   right: 24px;
   width: 40px;
   height: 40px;
   display: grid;
   place-items: center;
   color: var(--gold-900);
   z-index: 2
}

.modal__close .icon {
   width: 24px;
   height: 24px;
   color: var(--gold-900);
   fill: none
}

.modal__close:hover {
   color: var(--gold-500)
}

.room-modal__dialog {
   align-items: stretch
}

.room-modal__gallery {
   flex: 1;
   min-width: 0;
   display: flex;
   flex-direction: column;
   gap: 12px
}

.room-modal__main {
   aspect-ratio: 16/10;
   overflow: hidden
}

.room-modal__main img {
   width: 100%;
   height: 100%;
   object-fit: cover
}

.room-modal__thumbs {
   display: flex;
   gap: 12px
}

.room-modal__thumbs button {
   flex: 1;
   aspect-ratio: 16/10;
   overflow: hidden;
   border: 2px solid transparent;
   padding: 0;
   cursor: pointer
}

.room-modal__thumbs button.is-active {
   border-color: var(--gold-500)
}

.room-modal__thumbs img {
   width: 100%;
   height: 100%;
   object-fit: cover
}

.room-modal__info {
   flex: 1;
   min-width: 0;
   display: flex;
   flex-direction: column;
   gap: 40px;
   align-self: flex-end;
}

.room-modal__head {
   display: flex;
   flex-direction: column;
   gap: 12px
}

.room-modal__price {
   color: var(--gold-300);
   font-size: 24px;
   font-weight: 500
}

.room-modal__desc {
   color: var(--gold-900);
   line-height: 1.5
}

.room__features--dark li {
   color: var(--gold-900)
}

.room-modal__info .btn {
   align-self: flex-start
}

.sent-modal__dialog {
   flex-direction: column;
   align-items: center;
   text-align: center;
   gap: 20px;
   width: min(460px, 100%);
   padding: 48px 40px
}

.sent-modal__check {
   width: 72px;
   height: 72px;
   border-radius: 50%;
   background: rgba(223, 195, 119, .22);
   color: var(--gold-600);
   display: grid;
   place-items: center
}

.sent-modal__check svg {
   width: 36px;
   height: 36px
}

.sent-modal p {
   color: var(--gold-900);
   opacity: .8
}

/* Lightbox */
.lightbox {
   position: fixed;
   inset: 0;
   z-index: 1600;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: clamp(16px, 4vw, 48px);
   opacity: 0;
   visibility: hidden;
   transition: opacity .35s var(--ease), visibility .35s
}

.lightbox.is-open {
   opacity: 1;
   visibility: visible
}

.lightbox__swiper {
   position: relative;
   width: min(1100px, 92vw);
   height: 86vh;
   z-index: 1
}

.lightbox__swiper .swiper-slide {
   display: flex;
   align-items: center;
   justify-content: center
}

.lightbox__swiper .swiper-slide img {
   max-width: 100%;
   max-height: 86vh;
   object-fit: contain;
   display: block;
   -webkit-user-select: none;
   user-select: none
}

.lightbox__close {
   position: absolute;
   top: 24px;
   right: 24px;
   color: #fff;
   z-index: 3
}

.lightbox__close .icon {
   color: #fff;
   width: 28px;
   height: 28px;
   fill: none
}

.lightbox__arrow {
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   z-index: 3;
   width: 56px;
   height: 56px;
   border-radius: 50%;
   display: grid;
   place-items: center;
   color: #fff;
   background: rgba(255, 255, 255, .12);
   -webkit-backdrop-filter: blur(6px);
   backdrop-filter: blur(6px);
   transition: background-color .3s
}

.lightbox__arrow:hover {
   background: rgba(255, 255, 255, .28)
}

.lightbox__arrow .icon {
   width: 12px;
   height: 6px;
   color: #fff
}

.lightbox__arrow--prev {
   left: clamp(12px, 3vw, 40px);
   transform: translateY(-50%) rotate(90deg)
}

.lightbox__arrow--next {
   right: clamp(12px, 3vw, 40px);
   transform: translateY(-50%) rotate(-90deg)
}

body.no-scroll {
   overflow: hidden
}

/* ============================================================
   Swiper components, arrows, video ripple, video modal
   ============================================================ */
/* Round circular arrows on media (popup gallery + restaurant) */
.gallery-arrow {
   position: absolute;
   top: 50%;
   margin-top: -24px;
   z-index: 6;
   width: 48px;
   height: 48px;
   border-radius: 50%;
   display: grid;
   place-items: center;
   color: #fff;
   background: rgba(255, 255, 255, .22);
   -webkit-backdrop-filter: blur(6px);
   backdrop-filter: blur(6px);
   transition: background-color .3s, opacity .3s;
   cursor: pointer
}

.gallery-arrow:hover {
   background: rgba(255, 255, 255, .4)
}

.gallery-arrow .icon {
   width: 12px;
   height: 6px;
   color: #fff
}

.gallery-arrow--prev {
   left: 16px
}

.gallery-arrow--prev .icon {
   transform: rotate(90deg)
}

.gallery-arrow--next {
   right: 16px
}

.gallery-arrow--next .icon {
   transform: rotate(-90deg)
}

.gallery-arrow.swiper-button-disabled {
   opacity: 0;
   pointer-events: none
}

/* Room detail popup — Swiper gallery + thumbnails */
.room-modal__gallery {
   flex: 1;
   min-width: 0;
   display: flex;
   flex-direction: column;
   gap: 12px
}

.room-modal__swiper {
   position: relative;
   width: 100%;
   aspect-ratio: 16/10;
   overflow: hidden
}

.room-modal__swiper .swiper-slide img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block
}

.room-modal__thumbsbar {
   width: 100%
}

.room-modal__thumbsbar .swiper-slide {
   aspect-ratio: 16/10;
   cursor: pointer;
   opacity: .55;
   border: 2px solid transparent;
   transition: opacity .3s, border-color .3s
}

.room-modal__thumbsbar .swiper-slide-thumb-active {
   opacity: 1;
   border-color: var(--gold-500)
}

.room-modal__thumbsbar img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block
}

/* Restaurant image Swiper */
.rest-swiper {
   position: relative;
   height: clamp(420px, 50vw, 750px);
   overflow: hidden
}

.rest-swiper .swiper-slide img {
   width: 100%;
   height: 100%;
   object-fit: cover
}

.rest-swiper .gallery-arrow {
   opacity: 0
}

.rest-swiper:hover .gallery-arrow {
   opacity: 1
}

.rest-swiper .swiper-pagination {
   position: absolute;
   bottom: 24px;
   left: 0;
   right: 0;
   display: flex;
   gap: 8px;
   justify-content: center;
   align-items: center;
   z-index: 5
}

.rest-swiper .swiper-pagination-bullet {
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .5);
   opacity: 1;
   margin: 0 !important;
   transition: width .35s var(--ease), background-color .35s
}

.rest-swiper .swiper-pagination-bullet-active {
   width: 40px;
   border-radius: 4px;
   background: var(--gold-300)
}

/* Video play ripple (keep the play button's absolute centering) */
.video__play {
   overflow: visible
}

.video__ripple {
   position: absolute;
   inset: 0;
   border-radius: 50%;
   border: 2px solid currentColor;
   opacity: 0;
   animation: ripple 2.4s var(--ease) infinite;
   pointer-events: none
}

.video__ripple::after {
   content: "";
   position: absolute;
   inset: -2px;
   border-radius: 50%;
   border: 2px solid currentColor;
   opacity: 0;
   animation: ripple 2.4s var(--ease) 1.2s infinite
}

@keyframes ripple {
   0% {
      transform: scale(1);
      opacity: .6
   }

   80%,
   100% {
      transform: scale(2.4);
      opacity: 0
   }
}

/* YouTube video modal */
.video-modal {
   padding: clamp(16px, 4vw, 48px)
}

.video-modal__dialog {
   position: relative;
   width: min(1000px, 100%)
}

.video-modal__frame {
   position: relative;
   width: 100%;
   aspect-ratio: 16/9;
   background: #000;
   overflow: hidden
}

.video-modal__frame iframe {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   border: 0
}

.video-modal__close {
   position: absolute;
   top: -46px;
   right: 0;
   color: #fff
}

.video-modal__close .icon {
   color: #fff;
   width: 28px;
   height: 28px;
   fill: none
}

/* Burger menu — reliable internal scroll */
.menu {
   -webkit-overflow-scrolling: touch
}


/* ============================================================
   Responsive — sections
   ============================================================ */
@media (max-width:1024px) {
   .restaurant__inner {
      grid-template-columns: 1fr;
      gap: 48px
   }

   .faq__inner {
      grid-template-columns: 1fr;
      gap: 40px
   }

   .faq__aside {
      position: static
   }

   .group__inner {
      grid-template-columns: 1fr
   }

   .group__photo img {
      min-height: 320px
   }
}

@media (max-width:768px) {
   .section__head--between {
      flex-direction: column;
      align-items: flex-start
   }

   .advantages__grid {
      grid-template-columns: 1fr;
      display: flex;
      flex-direction: column
   }

   .adv-card {
      grid-column: auto;
   }

   .blog__grid {
      grid-template-columns: 1fr
   }

   .gallery__grid {
      grid-auto-flow: row;
      grid-template-columns: 1fr 1fr;
      grid-template-rows: none;
      height: auto
   }

   .gallery__item {
      grid-row: auto !important;
      aspect-ratio: 4/3
   }

   .modal__dialog {
      flex-direction: column;
      padding: 24px;
      gap: 24px
   }

   .room-modal__info {
      padding-right: 0
   }

   .modal__close {
      top: 12px;
      right: 12px
   }

   .modal__close .icon {
      color: var(--gold-50);
      fill: none
   }

   .footer__top {
      flex-direction: column
   }

   .footer__credit-inner {
      flex-direction: column;
   }

   .footer__marquee {
      width: 100%
   }

   .rooms-slider__track {
      gap: 16px
   }

   .room__media {
      height: 380px;
      padding: 20px
   }
}

@media (max-width:480px) {
   .gallery-arrow {
      width: 40px;
      height: 40px
   }

   .gallery__grid {
      grid-template-columns: 1fr
   }

   .modal__dialog {
      padding: 16px
   }

   .room-modal__price {
      font-size: 20px
   }

   .room__features {
      gap: 14px 24px
   }

   .room-modal__info .btn {
      align-self: normal;
   }

   .room__foot {
      flex-direction: column;
      align-items: flex-start
   }

   .room__actions {
      width: 100%
   }

   .room__actions .btn {
      flex: 1
   }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce) {

   *,
   *::before,
   *::after {
      animation-duration: .001ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .001ms !important;
      scroll-behavior: auto !important
   }

   .hero__layer img {
      transform: translateX(-50%) !important
   }
}