:root {
  --white: #fff;
  --black: #111211;
  --light-bg: #f3f3f2;
  --gold: #b08353;
  --gold-dark: #a36624;
  --gold-border: #87623a;
  --gray: #111211;
  --gray-dark: #404040;
  --border: #dbdad7;
  --cream: #f7f7f7;
  --warm: #faf6eb;
  --warm2: #e7e6e4;
  --beige: #ede6de;
  --dark-green: #16261a;
  --red: #d40000;
  --card-bg: #fdfbf7;
  --font-serif: 'Cormorant Garamond', 'Cormorant Garamond Placeholder', serif;
  --font-infant: 'Cormorant Infant', serif;
  --font-sans: 'PT Sans', sans-serif;
  --font-inter: 'Inter', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--black);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }
ul { margin-left:15px; padding-left:15px;  }

/* ===== NAV ===== */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: transparent;
  display: flex; justify-content: center;
  padding: 16px 36px;
  transition: transform 0.35s ease, background-color 0.35s ease, backdrop-filter 0.35s ease;
  transform: translateY(0);
}
.nav.scrolled {
  background: rgba(255,255,255,0.8);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.nav.hidden {
  transform: translateY(-100%);
}
.nav.transparent {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.nav-inner {
  width: 100%; max-width: 100%;
  display: flex; justify-content: space-between; align-items: center;
  position: relative;
}
.nav-logo {
  width: 124px; height: 32px;
  color: #111211;
  transition: color 0.35s ease;
}
.nav-logo a { display: block; width: 100%; height: 100%; }
.nav-logo svg { width: 100%; height: 100%; display: block; fill: currentColor; }
.nav-logo img { width: 124px; height: 32px; object-fit: contain; }
.nav.transparent .nav-logo { color: #fff; }
.nav-logo-white { display: none; }
.nav-logo-black { display: block; }
.nav.transparent .nav-logo-white { display: block; }
.nav.transparent .nav-logo-black { display: none; }
.nav-logo img.nav-logo-white,
.nav-logo img.nav-logo-black,
.nav-logo .nav-logo-white svg,
.nav-logo .nav-logo-black svg { width: 124px; height: 32px; object-fit: contain; }

.nav-menu {
  display: flex; align-items: center; gap: 24px;
  list-style: none; margin: 0; padding: 0;
  font-family: "PT Sans", "PT Sans Placeholder", sans-serif;
  font-size: 16px; font-weight: 400;
  letter-spacing: -.02em;
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
}
.nav-menu a {
  color: #111211;
  text-decoration: none;
  transition: color 0.35s ease;
  white-space: nowrap;
}
.nav.transparent .nav-menu a { color: #fff; }

.menu-item-has-children {
  position: relative;
  display: flex; align-items: center; gap: 4px;
}
.dropdown-arrow {
  display: inline-flex; align-items: center;
  color: #111211;
  transition: color 0.35s ease;
}
.nav.transparent .dropdown-arrow { color: #fff; }
.sub-menu {
  display: none;
  position: absolute; top: 100%; left: 0;
  min-width: 240px;
  background: #fff;
  padding: 8px 0;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
  list-style: none; margin: 0; z-index: 10;
}
.menu-item-has-children:hover .sub-menu,
.menu-item-has-children:focus-within .sub-menu { display: block; }
.sub-menu a {
  display: block; padding: 8px 16px;
  color: #111211 !important;
  font-size: 15px;
}
.sub-menu a:hover { color: #868279 !important; }

.nav-actions {
  display: flex; align-items: center; gap: 24px;
}
.nav-phone {
  font-family: "PT Sans", "PT Sans Placeholder", sans-serif;
  font-size: 16px; font-weight: 400;
  color: #111211; text-decoration: none;
  transition: color 0.35s ease;
  white-space: nowrap;
}
.nav.transparent .nav-phone { color: #fff; }
.nav-book-btn {
  font-family: "PT Sans", "PT Sans Placeholder", sans-serif;
  font-size: 16px; font-weight: 400;
  color: #fff; text-decoration: none;
  padding: 12px 24px;
  background: rgb(135, 98, 58);
  border: 1px solid rgb(135, 98, 58);
  border-radius: 100px;
  transition: color 0.35s ease, background-color 0.35s ease;
  white-space: nowrap;
}
.nav-book-btn:hover { background: rgb(163, 102, 36); border-color: rgb(163, 102, 36); }

.nav-toggle {
  display: none;
  background: none; border: none; cursor: pointer; padding: 4px;
  font-family: inherit; font-size: 16px; font-weight: 400;
  letter-spacing: -0.02em; color: #111211;
  transition: color 0.35s ease;
}
.nav.transparent .nav-toggle { color: #fff; }

@media (max-width: 1439.98px) {
  .nav-menu { display: none; }
  .nav-actions { display: none; }
  .nav-toggle { display: flex; }
}

/* ===== MOBILE MENU OVERLAY ===== */
.nav-mobile {
  position: fixed; top: 0; left: 0; right: 0; z-index: 90;
  background: #fff;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  height: 100vh;
  padding-top: 64px;
  box-sizing: border-box;
  display: flex;
  transform: translateY(-100%);
  transition: transform 0.4s ease;
}
.nav-mobile.open {
  transform: translateY(0);
}
.nav-mobile-inner {
  flex: 1; display: flex; flex-direction: column;
  padding: 16px 36px;
  overflow-y: auto;
	gap:40px;
}
.nav-mobile-header {
  display: flex; justify-content: space-between; align-items: center;
}
.nav-mobile-logo {
  width: 124px; height: 32px; color: #111211;
}
.nav-mobile-logo svg { width: 100%; height: 100%; display: block; fill: currentColor; }
.nav-mobile-logo img { width: 124px; height: 32px; object-fit: contain; }
.nav-mobile-close {
  background: none; border: none; cursor: pointer;
  font-family: inherit; font-size: 16px; font-weight: 400;
  color: #111211; padding: 8px 0; letter-spacing: -0.02em;
}
.nav-mobile-menu {
   display: flex; flex-direction: column;
  justify-content: flex-start; margin-top: 40px;
}
.nav-mobile-menu-list {
  list-style: none; margin: 0; padding: 0 20px;
  display: flex; flex-direction: column; gap: 16px;
}
.nav-mobile-menu-list > li { width: 100%; }
.nav-mobile-menu-list a {
  display: flex; align-items: center; height: 50px;
  text-decoration: none; color: #111211;
  font-family: inherit; font-size: 16px; font-weight: 400;
  letter-spacing: -0.02em;
}
.nav-mobile .menu-item-has-children {
  display: flex; flex-wrap: wrap; align-items: center;
}
.nav-mobile .menu-item-has-children > a { flex: 1; }
.nav-mobile .dropdown-arrow {
  display: flex; align-items: center; justify-content: center;
  width: 50px; height: 50px; cursor: pointer;
  transform: rotate(-90deg); transition: transform 0.3s ease;
}
.nav-mobile .sub-menu-open .dropdown-arrow {
  transform: rotate(0deg);
}
.nav-mobile .sub-menu {
  display: none; width: 100%; position: relative; top: 0;
  list-style: none; margin: 0; padding: 0 0 0 16px;
  box-shadow: none; background: transparent;
}
.nav-mobile .sub-menu-open > .sub-menu { display: block !important; }
.nav-mobile .menu-item-has-children:hover > .sub-menu,
.nav-mobile .menu-item-has-children:focus-within > .sub-menu { display: none; }
.nav-mobile .menu-item-has-children.sub-menu-open:hover > .sub-menu,
.nav-mobile .menu-item-has-children.sub-menu-open:focus-within > .sub-menu { display: block !important; }
.nav-mobile .sub-menu a { height: 44px; font-size: 16px; color: #868279; }
.nav-mobile .sub-menu a:hover { color: #111211; }
.nav-mobile-menu-list > li > a { font-size: 24px; }
.nav-mobile .menu-item-has-children > a { font-size: 24px; }
.nav-mobile-bottom {
  display: flex; flex-direction: column; align-items: center; gap: 32px;
  padding: 0 20px 32px;
}
.nav-mobile-phone {
  font-family: inherit; font-size: 16px; font-weight: 400;
  color: #111211; text-decoration: none; letter-spacing: -0.02em;
}
.nav-mobile-book-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 48px; padding: 12px 24px;
  border: 1px solid rgb(135, 98, 58); border-radius: 100px;
  background: transparent; color: rgb(135, 98, 58);
  font-family: inherit; font-size: 16px; font-weight: 400;
  text-decoration: none; white-space: nowrap;
  transition: background 0.3s, color 0.3s;
}
.nav-mobile-book-btn:hover {
  background: rgb(135, 98, 58); color: #fff;
}
@media (min-width: 1440px) { .nav-mobile { display: none; } }

/* Mobile menu open: force header logo + toggle to black */
body.menu-open .nav { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
body.menu-open .nav .nav-logo { color: #111211; }
body.menu-open .nav .nav-logo-white { display: none; }
body.menu-open .nav .nav-logo-black { display: block; }
body.menu-open .nav .nav-toggle { color: #111211; }
body.home .section-header.reveal.visible{width:60%;}
@media (max-width: 810px) {body.home .section-header.reveal.visible{width:100%;}}
/* ===== HERO ===== */
.hero {
  position: relative; width: 100%; height: 100vh; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.hero-bg {
  position: absolute; inset: 0;
}
.hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.hero-gradient-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(#151916d9 0%, #22252266 22%, #22252233 100%);
}
.hero-gradient-bottom {
  position: absolute; inset: 0; z-index: 1; bottom: -1px;
  -webkit-mask: linear-gradient(#0000 76.6%, #00000087 82.8%, #000000d6 89.5%, #000 96.9%);
  mask: linear-gradient(#0000 76.6%, #00000087 82.8%, #000000d6 89.5%, #000 96.9%);
  background: var(--cream);
}
.hero-deco-left {
  position: absolute; z-index: 3; width: min(50vw, 600px); top: 0; left: -120px; pointer-events: none;
  animation: heroDecoIn 1.2s ease-out forwards;
}
.hero-deco-right {
  position: absolute; z-index: 3; width: min(50vw, 600px); top: 0; right: -120px; pointer-events: none;
  animation: heroDecoIn 1.2s ease-out 0.3s forwards;
}
.hero-deco-left img, .hero-deco-right img { width: 100%; height: 100%; object-fit: contain; }
@keyframes heroDecoIn {
  from { opacity: 0; transform: scale(1.8); }
  to { opacity: 1; transform: scale(1); }
}
.hero-content {
  position: absolute; z-index: 3; left: 0; top: 32px;
  width: 100%; padding: 40px 80px;
  display: flex; flex-direction: column; align-items: center; gap: 24px;
  animation: heroFade 1.5s ease-out forwards;
}
@keyframes heroFade {
  from { opacity: 0; transform: translateY(40px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero-title-wrap {
  display: flex; flex-direction: column; align-items: center; gap: 20px;
  width: 100%; max-width: 1200px;
}
.hero-content--page {
  position: relative; top: auto; animation: none;
  padding: 180px 80px 80px;
}
.hero-svg-arrows { display: flex; align-items: center; gap: 20px; }
.hero-svg-arrows svg { width: 24px; height: 24px; opacity: 0.75; }
.hero-svg-line {
  width: 80px; height: 1px; background: rgba(255,255,255,0.5);
}
.hero-deco-dots {
  place-content: center; align-items: center;
  display: flex; flex-flow: row; gap: 10px;
  height: min-content; overflow: hidden;
  padding: 0; position: relative; 
}
.hero-deco-dots-svg { flex: 0 0 auto; height: 22px; width: 132px; }
.hero-deco-dots-dot {
  aspect-ratio: 1; width: 16px; height: 16px;
  border: 1px solid #fff; border-radius: 32px;
  background: rgba(255,255,255,0.1); flex-shrink: 0;
}
.hero-title {
  font-family: var(--font-serif); font-size: 80px; font-weight: 400;
  color: var(--white); letter-spacing: 2px; text-transform: uppercase;
  text-align: center; 
}
.hero-title span { display: inline-block; }
.hero-subtitle {
  font-family: var(--font-infant); font-size: 30px;
  letter-spacing: 0.04em; color: var(--white); text-align: center;
}
.hero-cta-wrap {
  background: var(--white); border-radius: 24px;
  padding: 24px 40px;
}
.hero-cta {
  display: inline-block; padding: 12px 20px 14px;
  border: 1px solid var(--gold-dark); border-radius: 100px;
  color: var(--white); font-family: var(--font-inter); font-size: 16px;
  background: var(--gold-dark);
  transition: all 0.3s ease; cursor: pointer;
}
.hero-cta:hover { background: var(--gold); border-color: var(--gold); }
.hero .hero-top { flex-flow: column; place-content: center; align-items: center; gap: 16px; width: 100%; display: flex; }
.hero .breadcrumb-link,
.hero .breadcrumb-sep,
.hero .breadcrumb-current { color: rgba(255,255,255,0.8); }
.hero .breadcrumb-link:hover { color: #fff; }

/* ===== INNER HERO (compact with breadcrumbs) ===== */
.hero--inner {
  flex-flow: column; place-content: center flex-end; align-items: center;
  gap: 96px; width: 100%; padding: 164px 32px 100px;
  display: flex; position: relative; overflow: visible;
  height: auto; min-height: 0;
}
.hero--inner .hero-inner {
  flex-flow: column; place-content: center; align-items: center;
  gap: 16px; width: 100%; max-width: 1748px; padding: 0;
  display: flex; position: relative;
}
.hero--inner .hero-image { margin-top: 64px; }
.hero--inner .hero-top { flex-flow: column; place-content: center; align-items: center; gap: 16px; width: 100%; display: flex; }
.hero--inner .hero-title { color: var(--black); width: auto; }
.hero--inner .hero-title-block { max-width: 600px; text-align: center; }
.hero--inner .hero-subtitle {
  font-family: var(--font-infant); font-weight: 400; font-size: 30px;
  letter-spacing: 0.04em; line-height: 1.4em; color: var(--gold); margin-top: 16px;
}
.hero--inner .breadcrumb-link,
.hero--inner .breadcrumb-sep,
.hero--inner .breadcrumb-current { color: var(--black); }
.hero--inner .breadcrumb-link:hover { color: var(--gray-dark); }
.hero--inner .hero-image {
  aspect-ratio: 1.83957; width: 100%; border-radius: 8px; position: relative; overflow: hidden;
  animation: heroFade 1.5s ease-out forwards;
}
.hero--inner .hero-image img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }

.hero-intro-section {
  display: flex; flex-flow: column; align-items: center;
  padding: 32px 32px 80px; width: 100%;
}
.hero-intro-inner { max-width: 1748px; width: 100%; display: flex; justify-content: center; }
.hero-intro-text {
  font-family: var(--font-sans); font-size: 20px; letter-spacing: -.02em;
  line-height: 1.6em; color: var(--black); text-align: center;
  width: 100%; max-width: 600px;
}
.privacy-policy .hero--inner .hero-title-block{
  max-width: 1100px;
}
span.word {
    word-wrap: break-word;
    word-break: break-word;
}
/* ===== SECTION COMMON ===== */
.section { padding: 64px 32px 100px; display: flex; flex-direction: column; align-items: center; gap: 64px; }
.section-inner { width: 100%; max-width: 100%; display: flex; flex-direction: column; align-items: center; gap: 40px; }
.section-header { text-align: center; width: 100%;  }
.section-title {
  font-family: var(--font-serif); font-size: 56px; font-weight: 400;
  letter-spacing: 0.02em; line-height: 1em; color: var(--black);
  text-transform: uppercase;
}
.section-subtitle {
  font-family: var(--font-serif); font-size: 30px; font-weight: 400;
  letter-spacing: 0.04em; line-height: 1.4em; color: var(--gold);
}
.section-desc {
  font-family: var(--font-sans); font-size: 24px; color: var(--gray);
  line-height: 1.6; margin-top: 16px;
}

/* ===== ACCOMMODATION ===== */
.accommodation-section { gap: 64px; }
.accommodation-row {
  display: flex; gap: 24px; justify-content: center; align-items: flex-start;
  width: 100%; max-width: 1748px;
}
.accommodation-col {
  flex: 1; display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.accommodation-image-wrap {
  width: 100%; aspect-ratio: 1.81775; position: relative; overflow: hidden;
  -webkit-mask: radial-gradient(42% 50% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(42% 50% at 51.1%, #000 0%, #0000 99.8205%);
}
.accommodation-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.accommodation-image-wrap:hover img { transform: scale(1.05); }
.accommodation-col-right .accommodation-image-wrap {
  -webkit-mask: radial-gradient(43% 54% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(43% 54% at 51.1%, #000 0%, #0000 99.8205%);
}
.accommodation-text { display: flex; flex-direction: column; align-items: center; gap: 16px; max-width: 480px; }
.accommodation-title { font-family: var(--font-serif); font-size: 48px; font-weight: 700; color: var(--black); text-align: center; }
.accommodation-desc { font-family: var(--font-sans); font-size: 24px; color: var(--gray); line-height: 1.6; text-align: center; }
.accommodation-btn {
  padding: 12px 20px 14px; border: 1px solid var(--gold); border-radius: 100px;
  color: var(--gold); font-family: var(--font-inter); font-size: 14px;
  background: var(--white); cursor: pointer; transition: all 0.3s; display: inline-block;
}
.accommodation-btn:hover { background: var(--gold); color: var(--white); }
.accommodation-divider {
  align-self: stretch; width: 1px;
  border-left: 1px dashed var(--border);
}
.accommodation-all-inc {
  text-align: center; max-width: 840px;
  font-family: var(--font-sans); font-size: 18px; color: var(--gray); line-height: 1.6;margin:0 auto;
}

/* ===== SERVICES TABS ===== */
.home .services-section { background: var(--cream); padding: 100px 32px 132px; position: relative; overflow: hidden; }
.services-inner {
  display: flex; flex-direction: column; gap: 64px;
  width: 100%; max-width: 1748px; margin: 0 auto;
}
.services-header-col {
  width: 100%; max-width: 66%; margin-left: auto;
  display: flex; flex-direction: column; align-items: flex-start;
}
.services-header-content {
  width: 100%; max-width: 442px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 32px;
}
.tabs-panel {
  width: 100%; display: flex; flex-direction: row; gap: 64px; align-items: center;
}
.tabs-list {
  flex: 1; display: flex; flex-direction: column; gap: 8px;
}
.tab-item {
  cursor: pointer; width: 100%;
}
.tab-inner {
  display: flex; flex-direction: row; align-items: flex-start; gap: 20px;
  padding: 20px 24px; border-radius: 8px;
  transition: background-color 0.3s;
}
.tab-inner.open { background: var(--white); }
.tab-inner.closed { background: var(--light-bg); }
.tab-body {
  display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
  flex: 1;
}
.tab-label {
  font-family: var(--font-serif); font-size: 40px; font-weight: 600;
}
.tab-inner.open .tab-label { color: var(--gold); }
.tab-inner.closed .tab-label { color: var(--gray); }
.tab-desc {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6; color: var(--gray-dark);
  max-height: 0; opacity: 0; overflow: hidden;
  transition: max-height 0.4s ease, opacity 0.4s ease, margin 0.3s ease;
  margin: 0;
}
.tab-link {
  font-family: var(--font-inter); font-size: 20px;
  color: var(--gold); border-bottom: 1px solid var(--gold);
  max-height: 0; opacity: 0; overflow: hidden;
  transition: max-height 0.4s ease, opacity 0.4s ease, margin 0.3s ease;
  margin: 0;
}
.tab-inner.open .tab-desc {
  max-height: 200px; opacity: 1; margin: 4px 0 0;
}
.tab-inner.open .tab-link {
  max-height: 40px; opacity: 1; margin: 4px 0 0;
}
.tab-image-wrap {
  width: 66%; border-radius: 8px; overflow: hidden; position: relative;
  aspect-ratio: 1.39352;
}
.tab-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: opacity 0.5s; }
.services-deco-1 {
  position: absolute; width: 25%; aspect-ratio: 1; top: 49px; left: -6px; z-index: 0;
  -webkit-mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%);
  pointer-events: none;
}
.services-deco-2 {
  position: absolute; width: 44%; aspect-ratio: 1.29293; top: 5%; left: 91%; z-index: 0;
  transform: translate(-50%, -50%);
  -webkit-mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%);
  pointer-events: none;
}

/* ===== SERVICES SECTION (archive) ===== */
.services-intro {
  width: 100%; display: flex; place-content: center;
  align-items: center; padding: 64px 32px 0;
}
.services-intro-inner {
  width: 100%; max-width: 688px; display: flex; justify-content: center;
}
.services-intro-text {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: #111211;
  text-align: center; margin: 0;
}
.services-section {
  width: 100%; display: flex; place-content: center flex-start;
  align-items: center; flex-direction: column;
  padding: 100px 64px 0; overflow: visible; position: relative;
}
.services-section .services-container {
  flex-flow: column; flex: none; place-content: flex-start center;
  align-items: center; gap: 80px; width: 100%; max-width: 1748px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: visible;
}
.services-section .services-grid {
  flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 150px; width: 100%;
  height: min-content; padding: 0; display: flex; position: relative;
}
.services-section .services-row {
  flex-flow: row; flex: none; place-content: center flex-start;
  align-items: center; gap: 10px; width: 100%;
  height: min-content; padding: 0; display: flex; position: relative;
}
.services-section .services-card-wrap {
  flex: 1 0 0; width: 1px; height: auto; position: relative;
}
.services-card.services-card-layout {
  flex-flow: row; place-content: center flex-start; align-items: center;
  gap: 80px; width: 100%; height: min-content; padding: 0;
  display: flex; position: relative; overflow: hidden;
}
.services-card .services-card-body {
  flex-flow: column; flex: 1 0 0; place-content: center;
  align-items: flex-start; gap: 32px; width: 1px; max-width: 35%;
  height: min-content; padding: 0; display: flex; position: relative; overflow: visible;
}
.services-card .services-card-header { flex: none; width: 100%; height: auto; position: relative; }
.services-card .services-card-desc {
  word-break: break-word; word-wrap: break-word;
  flex: none; width: 100%; height: auto; position: relative;
}
.services-card .services-card-btn-box { flex: none; width: auto; height: 48px; position: relative; }
.services-card .services-card-img {
  aspect-ratio: 1.36661; height: 757px; flex: 1 0 0;
  width: 1px; max-width: 60%; position: relative; overflow: hidden;
}
.services-card .services-card-img img { width: 100%; height: 100%; object-fit: cover; }
.services-card.services-card-d-right .services-card-body { order: 1; }
.services-card.services-card-d-right .services-card-img { order: 0; }
.services-btn.services-btn-link {
  cursor: pointer; flex-flow: row; place-content: center;
  align-items: center; gap: 10px; height: 48px;
  padding: 12px 20px 14px; text-decoration: none; display: flex;
  overflow: hidden; border: 1px solid var(--gold); border-radius: 100px;
  background: var(--white); transition: all 0.3s;
}
.services-btn.services-btn-link:hover { background: var(--gold); }
.services-btn .services-btn-text { flex: none; width: auto; height: auto; position: relative; }
.services-btn .services-btn-text p { font-family: var(--font-sans); font-size: 18px; letter-spacing: -.02em; color: var(--gold); transition: color 0.3s; }
.services-btn.services-btn-link:hover .services-btn-text p { color: #fff; }
.services-card-title-block.services-card-title-inner {
  align-content: center; align-items: center; gap: 0;
  flex-flow: column; justify-content: center; width: 676px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: visible;
}
.services-card-title-block .services-card-heading,
.services-card-title-block .services-card-subtitle {
  word-break: break-word; word-wrap: break-word;
  flex: none; width: 100%; height: auto; position: relative;
}
.services-card-title-block .services-card-heading h2 {
  font-family: var(--font-serif); font-size: 56px; font-weight: 400;
  letter-spacing: 0.02em; line-height: 1em; color: var(--black); text-transform: uppercase;
}
.services-card-title-block .services-card-subtitle p {
  font-family: var(--font-infant); font-size: 24px; font-weight: 400;
  letter-spacing: 0.04em; line-height: 1.4em; color: var(--gold);
}
.services-card-desc p {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
}

/* ===== SERVICES BOTTOM TEXT ===== */
.services-bottom-text {
  padding: 0 32px 100px; width: 100%; display: flex;
  place-content: center; align-items: center; position: relative;
  margin-top:30px;
}
.services-bottom-text .services-bottom-text-inner {
  max-width: 50%; width: 100%; text-align: center;margin-top:64px;
}
.services-bottom-text .services-bottom-text-inner p {
  font-family: var(--font-sans); font-size: 16px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black); margin: 0;
}
.services-bottom-text .services-bottom-text-inner a {
  color: var(--gold); text-decoration: underline;
}

/* ===== SERVICES INFO ===== */
.services-info {
  place-content: center flex-end; align-items: start;
  display: flex; flex-flow: column; gap: 64px;
  padding: 0 32px 100px; width: 100%;
  overflow: visible; position: relative;
}
.services-info .services-info-inner {
  place-content: center; align-items: center;
  display: flex; flex-flow: column; gap: 80px;
  max-width: 1748px; width: 100%;
  overflow: visible; position: relative;
  margin: 0 auto;
}
.services-info .services-info-content {
  place-content: center; align-items: center;
  display: flex; flex-flow: column; gap: 32px;
  max-width: 50%; width: 100%;
  overflow: hidden; position: relative;
}
.services-info .services-info-block {
  place-content: center; align-items: start;
  display: flex; flex-flow: column; gap: 10px;
  width: 100%; overflow: hidden; position: relative;
}
.services-info .services-info-title {
  font-family: var(--font-serif); font-size: 40px; font-weight: 400;
  letter-spacing: 0em; line-height: 1.2em; color: var(--black);
  text-transform: none; margin: 0;
}
.services-info .services-info-text {
  flex: 0 0 auto; width: 100%; height: auto; position: relative;
  word-break: break-word; overflow-wrap: break-word;
}
.services-info .services-info-text p,
.services-info .services-info-text li {
  font-family: var(--font-sans); font-size: 16px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
  margin: 0 0 20px;
}
.services-info .services-info-text p:last-child { margin-bottom: 0; }
.services-info .services-info-text ul { margin: 0 0 20px; padding-left: 20px; }
.services-info .services-info-text li { margin-bottom: 8px; }
.services-info .services-info-text li:last-child { margin-bottom: 0; }
/* ===== TESTIMONIALS ===== */
.testimonials-section {
  padding: 100px 32px; position: relative; overflow: hidden;
}
.testimonials-container {
  z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 48px;
  width: 100%; max-width: 1748px; margin: 0 auto;
}
.testimonials-heading {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  width: 100%; align-self: flex-start;
}
.testimonials-heading-inner {
  display: flex; flex-direction: column; align-items: flex-start; gap: 32px;
  width: 100%;
}
.testimonials-grid {
  display: flex; flex-flow: row; gap: 20px 24px;
  max-width: 1200px; width: 100%;
  align-self: flex-start;
  margin:0 auto;
}
.testimonial-card-wrap {
  flex: 1 0 0; width: 1px; aspect-ratio: 0.96;
  display: flex;
}
.testimonial-card {
  flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 32px;
  padding: 32px; background: var(--white); border-radius: 8px; overflow: hidden;
}
.testimonial-stars {
  display: flex; gap: 2px;
}
.tstar { width: 18px; height: 18px; fill: var(--gold); flex-shrink: 0; }
.testimonial-body {
  display: flex; flex-direction: column; align-items: flex-start; gap: 32px;
  width: 100%;
}
.testimonial-text {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6; color: var(--black);
}
.testimonial-author-row {
  display: flex; flex-direction: row; align-items: center; gap: 20px;
  width: 100%;
}
.testimonial-author-col {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
}
.testimonial-author {
  font-family: var(--font-serif); font-size: 24px; font-weight: 600;
  letter-spacing: -0.02em; line-height: 1.2; color: var(--black);
}
.testimonial-date {
  font-family: var(--font-sans); font-size: 16px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6; color: var(--gray-dark);
}
.testimonials-btns {
  display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 16px;
  width: 100%;
}
.btn-border {
  padding: 14px 28px; border: 1px solid var(--gold); border-radius: 100px;
  color: var(--gold); font-family: var(--font-inter); font-size: 18px;
  background: transparent; cursor: pointer; transition: all 0.3s; display: inline-block;
  text-align: center;box-shadow: rgba(19, 20, 21, 0.02) 0px 5px 5px 0px, rgba(19, 20, 21, 0.02) 0px 8px 8px 0px, rgba(19, 20, 21, 0.02) 0px 10px 10px 0px, rgba(19, 20, 21, 0.02) 0px 12px 25px 0px, rgba(19, 20, 21, 0.02) 0px 4px 4px 0px, rgba(19, 20, 21, 0.02) 0px 4px 4px 0px, rgba(255, 255, 255, 0.07) 0px 1px 0.75px 0px inset;
}
.btn-border:hover { background: var(--gold); color: var(--white); }
.btn-filled {
  padding: 14px 28px; border: 1px solid var(--gold-dark); border-radius: 100px;
  color: var(--white); font-family: var(--font-inter); font-size: 18px;line-height: 18px;
  background: var(--gold-dark); cursor: pointer; transition: all 0.3s; display: inline-block;
  text-align: center;box-shadow: rgba(19, 20, 21, 0.02) 0px 5px 5px 0px, rgba(19, 20, 21, 0.02) 0px 8px 8px 0px, rgba(19, 20, 21, 0.02) 0px 10px 10px 0px, rgba(19, 20, 21, 0.02) 0px 12px 25px 0px, rgba(19, 20, 21, 0.02) 0px 4px 4px 0px, rgba(19, 20, 21, 0.02) 0px 4px 4px 0px, rgba(255, 255, 255, 0.07) 0px 1px 0.75px 0px inset;
}
.btn-filled:hover { background: var(--gold); border-color: var(--gold); }
.testimonials-deco {
  aspect-ratio: 1; width: 24%; position: absolute; top: -50px; right: -17px; z-index: -1;
  -webkit-mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%);
  pointer-events: none;
}

/* ===== ABOUT ===== */
.about-section {
  display: flex; flex-direction: row; justify-content: center; align-items: center;
  gap: 108px; width: 100%; padding: 100px 32px 132px; position: relative;
}
.about-inner {
  display: flex; flex-direction: row; justify-content: space-between; align-items: center;
  flex: 1 0 0;  max-width: 1748px;
}
.about-deco {
  width: 25%; flex: none; position: relative; aspect-ratio: 0.97335;
  -webkit-mask: radial-gradient(60% 50% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(60% 50% at 51.1%, #000 0%, #0000 99.8205%);
}
.about-deco img { width: 100%; height: 100%; object-fit: fill; }
.about-stack {
  z-index: 1; flex: 1 0 0; width: 1px; max-width: 66%;
  display: flex; flex-direction: column; align-items: flex-start; gap: 48px;
}
.about-video-wrap {
  flex: none; width: 908px; aspect-ratio: 1.65693; border-radius: 8px; overflow: hidden;
}
.about-video-wrap video { width: 100%; height: 100%; object-fit: cover; }
.about-content {
  display: flex; flex-direction: column; align-items: flex-start; gap: 32px;
  width: 100%; max-width: 676px;
}
.about-title-block {
  display: flex; flex-direction: column; align-items: flex-start; gap: 0; width: 100%;
}
.about-title-block .section-title { text-align: left; }
.about-title-block .section-subtitle { text-align: left; margin-top: 0; }
.about-text-1 {
  font-family: var(--font-sans); font-size: 24px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6; width: 100%; max-width: 880px;
}
.about-text-2 {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6; width: 100%; max-width: 396px;
}

/* ===== GALLERY ===== */
.gallery-section { padding: 100px 32px; }
.gallery-row {
  display: flex; gap: 24px; justify-content: center;
  width: 100%; max-width: 1748px;
}
.gallery-item {
  flex: 1; border-radius: 8px; overflow: hidden; position: relative;
  aspect-ratio: 1.21566;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }

/* ===== SPLASH BANNER ===== */
.splash {
  flex-flow: column; place-content: flex-end; align-items: flex-end;
  gap: 16px; width: 100%; display: flex;
  position: relative; overflow: visible;
}
.splash-inner {
  flex: none; width: 100%; height: 100vh;
  position: relative; overflow: hidden;
}
.splash-inner > img {
  width: 100%; height: 100%; object-fit: cover;
}
.splash-gradient-overlay {
  background: var(--cream); flex: none; width: 100%; height: 100vh;
  position: absolute; top: -1px; left: 0; pointer-events: none;
  -webkit-mask: linear-gradient(#000 0%, #000000d6 8.2%, #00000087 14.9%, #0000 21.95% 100%);
  mask: linear-gradient(#000 0%, #000000d6 8.2%, #00000087 14.9%, #0000 21.95% 100%);
}
.splash-content {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  width: 100%; max-width: 64%; position: absolute; z-index: 1;
  top: 50%; left: 51%; transform: translate(-50%, -50%);
}
.splash-content svg { width: 100%; height: auto; display: block; }
.splash-title {
  font-family: var(--font-serif); font-size: 156px; font-weight: 600;
  color: var(--white); text-transform: uppercase; letter-spacing: -0.02em;
  line-height: 1.4em; text-align: center; margin: 0;
}
#splash-here .splash-title { font-size: 107.6px; }
#splash-here .btn-border { background: var(--white); width: auto; display: none; }
.splash-tree-l {
  aspect-ratio: 0.666667; width: 40%; position: absolute; z-index: 2;
  bottom: -230px; left: -216px; pointer-events: none;
}
.splash-tree-r {
  aspect-ratio: 0.666667; width: 40%; position: absolute; z-index: 2;
  bottom: -190px; right: -240px; pointer-events: none;
}
.splash-tree-l img, .splash-tree-r img,
.splash-leaf-l img, .splash-leaf-r img { width: 100%; height: 100%; object-fit: cover; }
.splash-leaf-l { position: absolute; pointer-events: none; will-change: transform; }
.splash-leaf-r { position: absolute; pointer-events: none; will-change: transform; }

/* ===== ALL INCLUSIVE DETAIL ===== */
.ai-section {
  flex-flow: column; flex: none; place-content: center flex-end;
  align-items: center; gap: 16px; width: 100%; height: min-content;
  padding: 132px 32px 100px; display: flex; position: relative; overflow: visible;
}
.ai-container {
  flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 96px; width: 100%; max-width: 1748px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: visible;
}
.ai-header-wrap {
  z-index: 1; flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 10px; width: 100%; height: min-content;
  padding: 24px 0 0; display: flex; position: relative; overflow: visible;
}
.ai-header-outer {
  flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 32px; width: 100%; max-width: 572px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: visible;
}
.ai-header-inner {
  flex-flow: column; flex: none; place-content: flex-start center;
   gap: 32px; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative; overflow: hidden;
}
.ai-header-inner .btn-wrap {
  flex: none; width: 100%; height: auto; position: relative;text-align: center;
}
.heading-content{display: flex; flex-direction: column;  gap: 16px;align-self:center;text-align:center;}
.ai-header-inner .btn-wrap a { display: inline-flex; }
.ai-grid {
  flex: none;
  grid-template-rows: repeat(2, min-content);
  grid-template-columns: repeat(3, minmax(50px, 1fr));
  grid-auto-rows: min-content; justify-content: center;
  gap: 32px 24px; width: 100%; height: min-content;
  padding: 0; display: grid; position: relative; overflow: hidden;
}
.ai-card-container {
  flex: none; place-self: start; width: 100%; height: auto; position: relative;
}
.ai-card-inner {
  flex-flow: column; place-content: center flex-start;
  align-items: center; gap: 32px; width: 100%; height: min-content;
  padding: 0 32px 32px; display: flex; position: relative; overflow: hidden;
}
.ai-card-img {
  aspect-ratio: 1; height: auto;
  flex: none; width: 78%; position: relative; overflow: hidden;
  border-radius: 1000px;
}
.ai-card-img img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.ai-card-body {
  flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 12px; width: 100%; max-width: 396px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: hidden;
}
.ai-card-title {
  font-family: var(--font-serif); font-size: 40px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.2em; text-align: center;
  color: var(--black); text-transform: none;
}
.ai-card-desc {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; text-align: center;
  color: var(--gray); word-break: break-word; word-wrap: break-word;
}

/* ===== HOW IT WORKS ===== */
.how-section {
  flex-flow: column; flex: none; place-content: center flex-end;
  align-items: center; gap: 64px; width: 100%; height: min-content;
  padding: 132px 32px 100px; display: flex; position: relative; overflow: visible;
}
.how-header-wrap {
  flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 32px; width: 100%; max-width: 680px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: visible;
}
.how-header-inner {
  flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 32px; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative; overflow: hidden;
}
.how-grid {
  flex-flow: row; flex: none; place-content: flex-start center;
  align-items: flex-start; gap: 24px; width: 100%; max-width: 1748px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: visible;
}
.how-card-wrap {
  flex: 1 0 0; align-self: stretch; width: 1px; height: auto; position: relative;
}
.how-card {
  will-change: transform; flex-flow: column; place-content: center;
  align-items: center; gap: 40px; width: 100%; height: 100%;
  padding: 8px 40px 32px; display: flex; position: relative; overflow: hidden;
  background: var(--white); border-radius: 8px; box-sizing: border-box;
}
.how-card-top {
  flex-flow: row; flex: none; place-content: center flex-start;
  align-items: center; gap: 24px; width: min-content; height: min-content;
  padding: 0; display: flex; position: relative; overflow: hidden;
}
.how-card-num {
  flex: none; width: auto; height: auto; position: relative;
  font-family: var(--font-serif); font-size: 88px; line-height: 96px;
  color: var(--border);
}
.how-card-body {
  flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 8px; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative; overflow: hidden;
}
.how-card-title {
  font-family: var(--font-serif); font-size: 32px; font-weight: 600;
  letter-spacing: -0.02em; line-height: 1.2em; text-align: left;
  color: var(--black); text-transform: none; width: 100%;
}
.how-card-desc {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; text-align: left;
  color: var(--gray); width: 100%;
}
.how-icon {
  z-index: 1; flex: none; width: 108px; height: 108px;
  position: absolute; top: -17px; right: -15px;
  transform: rotate(-8deg);
}
.how-icon svg { width: 100%; height: 100%; fill: var(--border); color: var(--border); }
.how-footer {
  flex-flow: column; flex: none; place-content: center;
  align-items: center; gap: 10px; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative; overflow: hidden;
}
.how-footer-text {
  font-family: var(--font-sans); font-size: 18px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; text-align: center;
  color: var(--black); width: 100%; max-width: 48%;
}
.how-footer-text a { color: var(--gold); text-decoration: none; }
.how-footer-text a:hover { color: #ab886d; }

/* ===== HOUSE RULES ===== */
.rules-section {
  display: flex; flex-flow: column; align-items: center;
  padding: 0 32px 50px; width: 100%;
}
.rules-inner { max-width: 1748px; display: flex; flex-flow: column; align-items: center; gap: 80px; width: 100%; }
.rules-grid { display: flex; flex-flow: row; gap: 24px; width: 100%; }
.rule-card {
  flex: 1; display: flex; flex-flow: column; align-items: flex-start;
  background: var(--white); border-radius: 8px; padding: 48px 32px 32px;
  gap: 40px; box-shadow: rgba(19,20,21,0.04) 0 5px 5px 0, rgba(19,20,21,0.04) 0 8px 8px 0, rgba(19,20,21,0.04) 0 10px 10px 0, rgba(19,20,21,0.04) 0 12px 25px 0;
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.rule-card:hover { transform: translateY(-6px); box-shadow: rgba(19,20,21,0.08) 0 10px 18px 0, rgba(19,20,21,0.08) 0 16px 24px 0; }
.rule-icon { width: 80px; height: 80px; flex-shrink: 0; color: var(--gold); }
.rule-icon svg { width: 100%; height: 100%; display: block; fill: currentColor; }
.rule-card-body { display: flex; flex-flow: column; gap: 16px; }
.rule-title {
  font-family: var(--font-serif); font-size: 40px; font-weight: 400;
  letter-spacing: -.02em; line-height: 1.2em; color: var(--black);
}
.rule-text {
  font-family: var(--font-sans); font-size: 20px; letter-spacing: -.02em;
  line-height: 1.6em; color: var(--black);
}

/* ===== FAQ ===== */
.faq-section {
  flex-flow: column; place-content: center flex-end;
  align-items: center; gap: 16px; width: 100%; height: min-content;
  padding: 100px 32px; display: flex; position: relative; overflow: visible;
}
.faq-inner {
  flex-flow: row; place-content: flex-start center;
  align-items: flex-start; gap: 24px; width: 100%; max-width: 1748px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: visible;
}
.faq-left {
  z-index: 1; flex-flow: column; flex: 1 0 0; place-content: flex-start center;
  align-items: flex-start; gap: 8px; width: 1px; height: min-content;
  padding: 24px 0 0; display: flex; position: sticky; top: 80px; overflow: visible;
}
.faq-left-header {
  flex-flow: column; flex: none; place-content: flex-start center;
  align-items: flex-start; gap: 32px; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative; overflow: visible;
}
.faq-left-header-inner {
  flex-flow: column; flex: none; place-content: flex-start center;
  align-items: flex-start; gap: 32px; width: 100%; max-width: 464px;
  height: min-content; padding: 0; display: flex; position: relative; overflow: hidden;
}
.faq-left-header-inner > div { word-break: break-word; word-wrap: break-word; flex: none; width: 100%; height: auto; position: relative; }
.faq-left-header-inner .section-desc { font-size: 24px; color: #111211; }
.faq-left-header-inner .btn-border {
  background: rgb(17,18,17); border-color: rgb(17,18,17); color: #fff;
}
.faq-left-header-inner .btn-border:hover {
  background: rgb(64,64,64); border-color: rgb(64,64,64); color: #fff;
}
.faq-right {
  flex-flow: column; flex: 1 0 0; place-content: flex-start center;
  align-items: flex-start; gap: 0; width: 1px; height: min-content;
  padding: 0; display: flex; position: relative;
}
.faq-item-wrap {
  flex-flow: row; flex: none; place-content: center flex-start;
  align-items: center; gap: 10px; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative;
}
.faq-item {
  flex-flow: column; place-content: flex-start; align-items: flex-start;
  gap: 8px; width: 100%; height: min-content; padding: 24px 0;
  display: flex; position: relative; overflow: visible;
  border-top: 1px solid var(--border); cursor: pointer;
}
.faq-question {
  flex-flow: row; place-content: center space-between;
  align-items: center; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative; overflow: visible;
}
.faq-qgroup {
  flex-flow: row; flex: 1 0 0; place-content: flex-start center;
  align-items: flex-start; gap: 8px; width: 1px; height: min-content;
  padding: 0; display: flex; position: relative; overflow: visible;
}
.faq-num {
  flex: none; width: auto; height: auto; position: relative;
  font-family: 'Alegreya', serif; font-size: 24px; line-height: 1.4em;
  color: var(--gray);
}
.faq-qtext {
  word-break: break-word; word-wrap: break-word; flex: 1 0 0;
  width: 1px; height: auto; position: relative;
  font-family: var(--font-serif); font-size: 24px;
  letter-spacing: -0.02em; line-height: 1.6em;
  color: var(--black);
}
.faq-arrow {
  flex: none; width: 24px; height: 24px; position: relative;
  transition: transform 0.3s;
}
.faq-arrow svg { width: 100%; height: 100%; fill: var(--black); }
.faq-item.open .faq-arrow { transform: rotate(180deg); }
.faq-answer {
  max-height: 0; overflow: hidden; transition: max-height 0.4s;
  word-break: break-word; word-wrap: break-word;
  flex: none; width: 100%; height: auto; position: relative;
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--gray);
  padding: 0 0 0 16px;
}
.faq-item.open .faq-answer { max-height: 300px; }
.faq-right .btn-border { margin-top: 24px; }

/* ===== FAQ PAGE (template-faq.php) ===== */
.faq-page-list {
  display: flex; flex-direction: column; width: 100%;
  max-width: 900px; margin: 0 auto;
}
.faq-page-item {
  border-top: 1px solid var(--border); cursor: pointer;
  padding: 24px 0; display: flex; flex-direction: column; gap: 8px;
}
.faq-page-item:last-child { border-bottom: 1px solid var(--border); }
.faq-page-question {
  display: flex; flex-flow: row; justify-content: space-between;
  align-items: center; width: 100%;
}
.faq-page-qgroup { display: flex; flex-flow: row; align-items: flex-start; gap: 8px; flex: 1; }
.faq-page-num {
  flex: none; font-family: 'Alegreya', serif; font-size: 24px; line-height: 1.4em;
  color: var(--gray);
}
.faq-page-qtext {
  flex: 1; font-family: var(--font-serif); font-size: 24px;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
}
.faq-page-arrow {
  flex: none; width: 24px; height: 24px; transition: transform 0.3s;
}
.faq-page-arrow svg { width: 100%; height: 100%; fill: var(--black); }
.faq-page-item.open .faq-page-arrow { transform: rotate(180deg); }
.faq-page-answer {
  max-height: 0; overflow: hidden; transition: max-height 0.4s;
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--gray);
  padding: 0 0 0 16px;
}
.faq-page-item.open .faq-page-answer { max-height: 300px; }

/* ===== CONTACT ===== */

.contact-section {
  flex-flow: column; place-content: flex-end; align-items: flex-end; gap: 16px;
  width: 100%; height: min-content; padding: 100px 32px 132px; display: flex;
  position: relative; overflow: visible;
  background: var(--dark-green);
  border-bottom: 1px solid #404040;
}
.contact-container {
  flex-flow: column; flex: none; place-content: center; align-items: center;
  gap: 24px; width: 100%; height: min-content; padding: 0; display: flex;
  position: relative; overflow: visible;
}
.contact-row {
  z-index: 1; flex-flow: row; flex: none; place-content: flex-start center;
  align-items: flex-start; gap: 80px; width: 100%; max-width: 1748px;
  height: min-content; padding: 0; display: flex; position: sticky; top: 80px;
  overflow: visible;
}
.contact-left {
  flex-flow: column; flex: 1 0 0; place-content: flex-start; align-items: flex-start;
  gap: 48px; width: 1px; height: min-content; padding: 0; display: flex;
  position: relative; overflow: visible;
}
.contact-title-wrap {
  flex-flow: column; flex: none; place-content: flex-start center;
  align-items: flex-start; gap: 32px; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative; overflow: visible;
}
.contact-title-inner {
  flex-flow: column; flex: none; place-content: flex-start center;
  align-items: flex-start; gap: 24px; width: 100%; max-width: 564px;
  height: min-content; padding: 0; display: flex; position: relative;
  overflow: visible;
}
.contact-title-inner > div { word-break: break-word; word-wrap: break-word; flex: none; width: 100%; height: auto; position: relative; }
.contact-right {
  flex-flow: column; flex: 1 0 0; place-content: flex-start center;
  align-items: flex-start; gap: 24px; width: 1px; height: min-content;
  padding: 0; display: flex; position: relative; overflow: hidden;
}
.contact-info {
  flex-flow: column; flex: none; place-content: flex-start center;
  align-items: flex-start; gap: 24px; width: 100%; max-width: 564px;
  height: min-content; padding: 0; display: flex; position: relative;
  overflow: visible;
}
.contact-label-row {
  flex-flow: row; flex: none; place-content: flex-start; align-items: center;
  gap: 32px; width: 100%; height: min-content; padding: 0;
  display: flex; position: relative; overflow: visible;
}
.contact-label {
  flex: none; width: auto; height: auto; position: relative;
  font-family: var(--font-sans); font-size: 16px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; text-transform: uppercase;
  color: #dbdad7;
}
.contact-phone-link {
  word-break: break-word; word-wrap: break-word; flex: none; width: 100%; max-width: 648px;
  height: auto; position: relative;
  font-family: var(--font-infant); font-size: 64px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1em; color: var(--white);
  text-decoration: none; transition: color 0.4s cubic-bezier(.44,0,.56,1);
}
.contact-phone-link:hover { color: #868279; }
.contact-social {
  flex-flow: row; flex: none; place-content: center flex-start;
  align-self: stretch; align-items: center; gap: 24px; width: auto;
  height: min-content; padding: 0; display: flex; position: relative;
  overflow: visible;
}
.contact-social-link {
  aspect-ratio: 1; height: 40px;
  overflow: hidden; flex: none; width: 40px; text-decoration: none;
  position: relative; display: flex; align-items: center; justify-content: center;
}
.contact-social-link svg { width: 100%; height: 100%; }
.contact-btns {
  flex-flow: row; flex: none; place-content: center flex-start;
  align-items: center; gap: 32px; width: 100%; height: min-content;
  padding: 0; display: flex; position: relative; overflow: hidden;
}
.contact-btn {
  cursor: pointer; flex-flow: column; place-content: center; align-items: center;
  gap: 10px;  height: min-content; padding: 0 0 4px;
  text-decoration: none; display: flex; position: relative; overflow: hidden;
  border-bottom: 1px solid var(--white);
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--white);
  transition: color 0.3s;
}
.contact-btn:hover { color: var(--gold); border-color: var(--gold); }
.contact-map-area {
  flex-flow: column; flex: none; place-content: center; align-items: center;
  gap: 40px; width: 100%; height: min-content; padding: 0; display: flex;
  position: relative; overflow: visible;
}
.contact-map-wrap {
  flex-flow: column; flex: none; place-content: center; align-items: center;
  gap: 10px; width: 100%; height: min-content; padding: 0;
  display: flex; position: relative; border-radius: 8px; overflow: hidden;
}
.contact-map-inner {
  aspect-ratio: 1.41228; height: auto; flex: none; width: 100%;
  position: relative;
}
.contact-map-inner iframe { width: 100%; height: 100%; border: 0; }
.contact-address-area {
  flex-flow: column; flex: none; place-content: center; align-items: center;
  gap: 48px; width: 100%; height: min-content; padding: 0; display: flex;
  position: relative; overflow: visible;
}
.contact-address-row {
  flex-flow: row; flex: none; place-content: center; align-items: center;
  gap: 24px; width: 100%; height: min-content; padding: 0; display: flex;
  position: relative; overflow: visible;
}
.contact-address-col {
  flex-flow: column; flex: 1 0 0; place-content: start; align-items: start;
  gap: 0; width: 1px; height: min-content; padding: 0;
  display: flex; position: relative; overflow: visible;
}

/* ===== FOOTER ===== */
.footer { background-color: var(--dark-green); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; width: 100%; padding: 0; }
.footer-container { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0; width: 100%; max-width: 1400px; padding: 64px 24px 32px; overflow: hidden; }
.footer-content { display: flex; flex-direction: column; align-items: center; gap: 40px; width: 100%; padding: 24px; }
.footer-brand { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0; width: auto; padding: 8px 0 0; }
.footer-logo svg { display: block; width: 180px; height: 48px; }
.footer-logo img { display: block; width: 180px; height: 48px; object-fit: contain; }
.footer-nav { display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 80px; width: 100%; }
.footer-nav-columns { display: flex; flex-direction: row; justify-content: flex-start; align-items: flex-start; gap: 24px; flex: 1; min-width: 0; flex-wrap: wrap; }
.footer-nav-group { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 8px; flex: 1; min-width: 0; }
.footer-nav-title { font-family: var(--font-sans); font-size: 16px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.6em; text-transform: uppercase; color: #868279; margin-bottom: 0; }
.footer-nav-links { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; width: 100%; }
.footer-nav-link { font-family: var(--font-sans); font-size: 18px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.6em; color: var(--white); transition: color 0.4s cubic-bezier(0.44, 0, 0.56, 1); text-decoration: none; }
.footer-nav-link:hover { color: #868279; }
.footer-nav-sublinks { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 8px; width: 100%; }
.footer-service-item { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 10px; width: 100%; }
.footer-service-link { flex: 1; min-width: 0; font-family: var(--font-sans); font-size: 18px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.6em; color: var(--white); transition: color 0.4s cubic-bezier(0.44, 0, 0.56, 1); text-decoration: none; }
.footer-service-link:hover { color: #868279; }
.footer-blog-item { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 10px; width: 100%; }
.footer-blog-link { flex: 1; min-width: 0; font-family: var(--font-sans); font-size: 18px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.6em; color: var(--white); transition: color 0.4s cubic-bezier(0.44, 0, 0.56, 1); text-decoration: none; }
.footer-blog-link:hover { color: #868279; }
.footer-bottom { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; width: 100%; padding: 0; }
.footer-social { display: flex; align-items: center; justify-content: center; gap: 16px; width: auto; }
.footer-social-link { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; transition: background 0.3s; background: none; }
.footer-social-link:hover { background: none; }
.footer-social-link svg { width: 24px; height: 24px; display: block; fill: var(--white); }
.footer-copyright { display: flex; flex-direction: column; align-items: center; gap: 10px; width: auto; }
.footer-copyright-text { font-family: var(--font-sans); font-size: 14px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.2em; color: var(--border); text-align: center; }
.footer-copyright-link { font-family: var(--font-sans); font-size: 14px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.2em; color: #868279; text-align: center; transition: color 0.4s cubic-bezier(0.44, 0, 0.56, 1); }
.footer-copyright-link:hover { color: #404040; }

/* ===== SINGLE POST ===== */
.post-hero {
  padding: 164px 32px 0; display: flex; flex-direction: column;
  align-items: center;
}
.post-hero-inner { max-width: 800px; width: 100%; text-align: center; }
.post-hero .breadcrumbs { justify-content: center; }
.post-title {
  font-family: var(--font-sans); font-weight: 400; font-size: 56px;
  line-height: 1.1em; color: var(--black);
}
.post-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 24px; justify-content: center; }
.post-meta-item { font-family: var(--font-sans); font-size: 16px; color: var(--gray-dark); letter-spacing: -.02em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 6px; }
.post-meta-item svg { width: 16px; height: 16px; flex-shrink: 0; display: block; }
.post-meta-item--sep { width: 8px; height: 8px; border-radius: 100px; background: var(--border); flex-shrink: 0; display: inline-block; }
.post-cover { margin-top: 32px; border-radius: 8px; overflow: hidden; }
.post-cover img { width: 100%; height: auto; display: block; border-radius: 8px; object-fit: cover; }
.post-section { padding: 48px 0 80px; display: flex; flex-direction: column; align-items: center; }
.post-body { max-width: 800px; width: 100%; }
.post-lead {
  font-family: var(--font-sans); font-size: 24px; font-weight: 400;
  line-height: 1.6em; letter-spacing: -.02em; color: var(--black); margin-bottom: 48px;
}
.post-text { font-family: var(--font-sans); font-size: 16px; font-weight: 400; line-height: 1.6em; letter-spacing: -.02em; color: var(--black); }
.post-text p { margin-bottom: 20px; }
.post-text h2 {
  font-family: var(--font-sans); font-size: 40px; font-weight: 400;
  line-height: 1.2em; color: var(--black); margin: 48px 0 20px;
}
.post-text h3 {
  font-family: var(--font-sans); font-size: 32px; font-weight: 400;
  line-height: 1.2em; color: var(--black); margin: 40px 0 16px;
}
.post-text blockquote {
  margin: 32px 0; padding: 0 24px; border-left: 4px solid var(--gold);
  font-family: var(--font-sans); font-size: 24px; font-style: italic;
  font-weight: 400; line-height: 1.4em; color: var(--black);
}
.post-text .wp-block-image, .post-text .wp-block-image img { border-radius: 8px; }
.post-text .wp-block-image { margin: 32px 0; }
.post-text .wp-block-image img { width: 100%; height: auto; display: block; object-fit: cover; }
.related { padding: 0 32px 80px; }
.related-title {
  font-family: var(--font-sans); font-size: 40px; font-weight: 400;
  line-height: 1.2em; color: var(--black); text-align: center; margin-bottom: 48px;
}
.related-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  max-width: 1748px; margin: 0 auto;
}
.related-card {
  border-radius: 8px; overflow: hidden; display: block;
  background: var(--white);
  transition: opacity 0.3s ease;
}
.related-card:hover { opacity: 0.85; }
.related-card-image { position: relative; width: 100%; aspect-ratio: 4/3; overflow: hidden; }
.related-card-image img { width: 100%; height: 100%; object-fit: cover; }
.related-card-content { padding: 20px; background: var(--white); }
.related-card-title {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  line-height: 1.4; color: var(--black); margin-bottom: 12px;
}
.related-card-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.related-card-meta-item { font-family: var(--font-sans); font-size: 14px; color: var(--gray); display: inline-flex; align-items: center; gap: 6px; }
.related-card-meta-item svg { width: 16px; height: 16px; flex-shrink: 0; display: block; }
.related-card-meta-item--sep { width: 8px; height: 8px; border-radius: 100px; background: var(--border); flex-shrink: 0; display: inline-block; }
.related-action { text-align: center; margin-top: 48px; }
@media (max-width: 1023.98px) { .related-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 809.98px) {
  .post-title { font-size: 40px; }
  .post-lead { font-size: 20px; }
  .related-grid { grid-template-columns: 1fr; gap: 24px; }
  .related-title { font-size: 32px; }
  .post-text h2 { font-size: 32px; }
  .post-text h3 { font-size: 28px; }
  .post-text blockquote { font-size: 20px; }
}

/* ===== BLOG ===== */
.blog-hero {
  padding: 164px 32px 60px; display: flex; flex-direction: column;
  align-items: center; text-align: center;
}
.blog-hero-inner { max-width: 1748px; width: 100%; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.blog-hero-title {
  font-family: var(--font-serif); font-weight: 400; font-size: 80px;
  letter-spacing: 0.02em; line-height: 1em; color: var(--black); text-transform: uppercase;
}
.blog-hero-subtitle {
  font-family: var(--font-infant); font-weight: 400; font-size: 30px;
  letter-spacing: 0.04em; line-height: 1.4em; color: var(--gold); margin-top: 16px;
}
.blog-filter {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 48px; flex-wrap: wrap;
}
.blog-filter-btn {
  font-family: var(--font-sans); font-size: 18px; font-weight: 400;
  color: var(--gray-dark); background: none; border: none; cursor: pointer;
  padding: 8px 4px; position: relative; transition: color 0.3s ease;
}
.blog-filter-btn::after {
  content: ''; display: block; width: 100%; height: 2px;
  background: var(--gold); margin-top: 4px;
  opacity: 0; transition: opacity 0.3s ease;
}
.blog-filter-btn.active { color: var(--gold); }
.blog-filter-btn.active::after { opacity: 1; }
.blog-section { padding: 0 32px 100px; }
.blog-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  max-width: 1748px; margin: 0 auto;
}
.blog-card {
  border-radius: 8px; overflow: hidden; display: block;
  background: var(--white); box-shadow: none;
  transition: opacity 0.45s ease, transform 0.45s ease;
}
.blog-card-image {
  position: relative; width: 100%; aspect-ratio: 4/3; overflow: hidden;
}
.blog-card-image img { width: 100%; height: 100%; object-fit: cover; }
.blog-card-content { padding: 20px; background: var(--white); }
.blog-card-title {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  line-height: 1.4; color: var(--black); margin-bottom: 12px;
}
.blog-card-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.blog-card-meta-item { font-family: var(--font-sans); font-size: 14px; color: var(--gray); display: inline-flex; align-items: center; gap: 6px; }
.blog-card-meta-item svg { width: 16px; height: 16px; flex-shrink: 0; display: block; }
.blog-card-meta-item--sep { width: 8px; height: 8px; border-radius: 100px; background: var(--border); flex-shrink: 0; display: inline-block; }
.blog-card.filter-out {
  opacity: 0; transform: translateY(24px) scale(0.96);
  pointer-events: none;
}
.blog-card.filter-in {
  animation: cardIn 0.5s ease forwards;
}
.blog-card.filter-hidden { display: none; }
@keyframes cardIn {
  0% { opacity: 0; transform: translateY(24px) scale(0.96); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
.blog-cta { padding: 0 32px 100px; }
.blog-cta-inner {
  position: relative; border-radius: 8px; overflow: hidden;
  max-width: 1748px; margin: 0 auto;
}
.blog-cta-inner img { width: 100%; height: 400px; object-fit: cover; }
.blog-cta-overlay {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.45);
}
.blog-cta-content {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  text-align: center; color: #fff; width: 90%; max-width: 500px;
}
.blog-cta-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase; }
.blog-cta-sub { font-family: var(--font-infant); font-size: 30px; letter-spacing: 0.04em; color: var(--gold); margin: 16px 0 32px; }
.blog-cta-btn {
  display: inline-block; padding: 14px 32px;
  background: var(--gold-dark); color: #fff; font-size: 18px;
  border-radius: 100px; border: 1px solid var(--gold-dark);
  transition: background 0.3s;
}
.blog-cta-btn:hover { background: var(--gold); }
@media (max-width: 1023.98px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 809.98px) {
  .blog-grid { grid-template-columns: 1fr; gap: 24px; }
  .blog-hero-title { font-size: 40px; }
  .blog-filter-btn { font-size: 16px; }
}

/* ===== TAXI APP ===== */


.taxi-app {
  display: flex; flex-flow: column; align-items: center; width: 100%;
  padding: 50px 32px 100px;
}
.taxi-app-inner {
  max-width: 1748px; width: 100%;
  display: flex; flex-flow: row; align-items: center; gap: 80px;
}
.taxi-app-image-col {
  flex: 1 0 0; width: 1px; max-width: 60%;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; border-radius: 8px; aspect-ratio: 1.36661;
  background: linear-gradient(180deg, var(--beige) 0%, var(--light-bg) 100%);
}
.taxi-app-image-col img { width: 100%; height: 100%; object-fit: contain; max-width: 42%;}
.taxi-app-text-col {
  flex: 1 0 0; width: 1px; max-width: 35%;
  display: flex; flex-flow: column; gap: 32px;
}
.taxi-app-title {
  font-family: var(--font-serif); font-size: 56px; font-weight: 400;
  letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase; color: var(--black);
}
.taxi-app-desc {
  font-family: var(--font-sans); font-size: 20px; letter-spacing: -.02em;
  line-height: 1.6em; color: var(--black);
}
.taxi-app-buttons { display: flex; flex-flow: row; gap: 16px; flex-wrap: wrap; }
.btn-primary {
  display: inline-block; padding: 12px 20px 14px;
  border: 1px solid var(--gold-dark); border-radius: 100px; background: var(--gold-dark);
  color: var(--white); font-size: 18px; letter-spacing: -.02em;
  white-space: nowrap; transition: background 0.3s ease;
}
.btn-primary:hover { background: var(--gold); }
.btn-outline {
  display: inline-block; padding: 12px 20px 14px;
  border: 1px solid var(--gold); border-radius: 100px; background: var(--white);
  color: var(--gold); font-size: 18px; letter-spacing: -.02em;
  white-space: nowrap; transition: all 0.3s ease;
}
.btn-outline:hover { background: var(--gold); color: var(--white); }

.steps-section {
  display: flex; flex-flow: column; align-items: center; width: 100%;
  padding: 100px 32px 80px;
}
.steps-inner {
  max-width: 1748px; width: 100%;
  display: flex; flex-flow: column; align-items: flex-start; gap: 80px;
  position: relative;
}
.steps-title-wrap {
  flex-flow: column; flex: none;
  place-content: center; align-items: center; gap: 32px;
  width: 100%; max-width: 40%;
  display: flex; position: relative;
  align-self: center; text-align: center;
}
.steps-title {
  font-family: var(--font-serif); font-size: 56px; font-weight: 400;
  letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase; color: var(--black);
}
.steps-grid-row {
  width: 100%;
  display: flex; flex-flow: row; gap: 24px;
  position: relative; z-index: 1;
}
.step-card-ssr { display: contents; }
.step-card-container {
  flex: 1 0 0; align-self: stretch;
  width: 1px; position: relative;
}
.step-card {
  background-color: var(--white);
  border-radius: 8px;
  display: flex; flex-flow: column;
  place-content: flex-start; align-items: flex-start;
  gap: 40px; width: 100%; height: 100%;
  padding: 8px 40px 32px;
  position: relative; overflow: hidden;
}
.step-number {
  font-family: var(--font-serif); font-size: 88px; line-height: 96px;
  color: var(--border); flex-shrink: 0;
}
.step-card-body { display: flex; flex-flow: column; gap: 8px; }
.step-card-title {
  font-family: var(--font-sans); font-size: 24px; font-weight: 400;
  line-height: 1.2em; color: var(--black);
}
.step-card-text {
  font-family: var(--font-sans); font-size: 20px; letter-spacing: -.02em;
  line-height: 1.6em; color: var(--gray-dark);
}
.steps-taxi-icon {
  width: calc(25% - 18px); aspect-ratio: 1;
  position: absolute; right: 0; bottom: 110px; z-index: 0;
  will-change: transform;
  animation: taxi-float 6s ease-in-out infinite;
  pointer-events: none; overflow: hidden;
}
.steps-taxi-icon img {
  width: 100%; height: 100%; object-fit: cover; opacity: 0.6;
  mask-image: radial-gradient(53% 59% at 51.1% 50%, rgb(0,0,0) 0%, rgba(0,0,0,0) 99.8205%);
  -webkit-mask-image: radial-gradient(53% 59% at 51.1% 50%, rgb(0,0,0) 0%, rgba(0,0,0,0) 99.8205%);
}
@keyframes taxi-float {
  0%, 100% { transform: translateY(-20px); }
  50% { transform: translateY(-28px); }
}

.features-section {
  display: flex; flex-flow: column; align-items: center; width: 100%;
  padding: 80px 32px;
}
.features-inner { max-width: 1748px; width: 100%; }
.features-card {
  background: var(--light-bg); border-radius: 8px; overflow: hidden; width: 100%;
}
.features-card-row { display: flex; flex-flow: row; align-items: stretch; }
.features-left {
  flex: 0 0 35%; max-width: 35%;
  display: flex; flex-flow: column; gap: 32px; padding: 48px;
}
.features-title {
  font-family: var(--font-serif); font-size: 56px; font-weight: 400;
  letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase; color: var(--black);
}
.features-desc {
  font-family: var(--font-sans); font-size: 20px; letter-spacing: -.02em;
  line-height: 1.6em; color: var(--black);
}
.features-list { display: flex; flex-flow: column; gap: 12px; }
.feature-item {
  display: flex; align-items: center; gap: 12px;
  padding: 16px; border-radius: 12px; background: var(--light-bg);
  font-size: 18px; letter-spacing: -.02em; line-height: 1.6em; color: var(--black);
  cursor: pointer; transition: background 0.4s ease, color 0.4s ease;
}
.feature-item.active { background: var(--white); }
.feature-icon, .feature-icon-gray {
  width: 24px; height: 24px; flex-shrink: 0; position: relative; display: flex; align-items: center; justify-content: center;
}
.feature-icon { color: var(--gold); }
.feature-icon-gray { color: var(--gray); }
.feature-icon svg, .feature-icon-gray svg { width: 100%; height: 100%; fill: currentColor; transition: fill 0.4s ease; }
.feature-icon-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--gold); position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%); opacity: 0; transition: opacity 0.4s ease;
}
.feature-item.active .feature-icon-dot { opacity: 1; }
.feature-item.active .feature-icon { color: var(--gold); }
.feature-item.active .feature-icon svg { fill: currentColor; opacity: 1; }
.features-qr-row {
  display: flex; flex-flow: row; place-content: center flex-start;
  align-items: center; gap: 24px; width: min-content; height: min-content;
}
.features-qr-code { width: 132px; height: 132px; border-radius: 4px; overflow: hidden; flex-shrink: 0; }
.features-qr-code img { width: 100%; height: 100%; object-fit: cover; display: block; }
.features-store-links { display: flex; flex-flow: column; gap: 12px; }
.features-store-link { width: 150px; display: block; }
.features-store-link svg { width: 100%; height: auto; display: block; }
.features-qr-block {
  border: 1px dashed var(--warm2); border-radius: 8px;width:min-content;
  padding: 24px; display: flex; flex-flow: column; gap: 16px; align-items: flex-start;
}
.features-qr-img { width: 132px; height: 132px; border-radius: 4px; overflow: hidden; flex-shrink: 0; }
.features-qr-img img { width: 100%; height: 100%; object-fit: cover; }
.features-app-links { display: flex; flex-flow: column; gap: 8px; }
.features-app-link { width: 150px; height: auto; display: block; }
.features-app-link svg { width: 100%; height: auto; display: block; }
.features-qr-text {
  font-size: 18px; letter-spacing: -.02em; line-height: 1.6em; color: var(--black); width: 100%;
}
.features-right-col {
  flex: 1 0 0; width: 1px; max-width: 60%;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; border-radius: 8px; aspect-ratio: 1.36661;
  background: linear-gradient(180deg, var(--beige) 0%, var(--light-bg) 100%);
  padding: 56px 0;
}
.features-right-col img {
  max-width: 315px; width: 100%; height: auto;
  transition: opacity 0.5s ease;
}

@media (max-width: 1439.98px) {
  .taxi-app-inner { flex-flow: column; gap: 64px; }
  .taxi-app-image-col { max-width: unset; flex: none; width: 100%; aspect-ratio: unset; }
  .taxi-app-text-col { max-width: unset; flex: none; width: 100%; }
  .steps-grid-row { flex-flow: row; flex-wrap: wrap; }
  .step-card-container { flex: none; width: calc(50% - 12px); align-self: auto; }
  .steps-taxi-icon { width: calc(50% - 12px); }
  .features-card-row { flex-flow: column; }
  .features-left { flex: none; max-width: unset; width: 100%; padding: 32px; }
  .features-right-col { flex: none; width: 100%; max-width: 100%; aspect-ratio: unset; align-items: center; justify-content: center; }
  .features-right-col img { margin: 0 auto; max-width:315px !important; }
  .features-qr-code { display: none; }
  .features-qr-text { display: none; }
  .features-qr-row { width: 100%; justify-content: center;  }
  .features-store-links { flex-flow: row wrap; gap: 16px; justify-content: center; }
  .features-qr-block { align-items: center; justify-content: center; width:100%;}
}
@media (min-width: 810px) and (max-width: 1439.98px) {
  .taxi-app { padding: 100px 24px 80px; }
  .features-section { padding: 80px 24px; }
}
@media (max-width: 809.98px) {
  .taxi-app { padding: 80px 16px 64px; }
  .taxi-app-title { font-size: 40px; }
  .taxi-app-buttons { flex-flow: column; }
  .steps-section { padding: 80px 16px; }
  .steps-title { font-size: 40px; }
  .steps-grid-row { flex-flow: column; gap: 16px; }
  .step-card-container { width: 100%; align-self: auto; }
  .steps-taxi-icon { width: 46.32%; }
  .features-section { padding: 80px 16px; }
  .features-left { padding: 24px; }
  .features-title { font-size: 40px; }
  .features-qr-row { flex-flow: column; align-items: center; width: 100%; }
  .features-qr-block { flex-flow: column; align-items: center; }
  .features-right-col img { width: 100%; max-width: 100%; }
}

/* ===== REVEAL ===== */
.reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.8s ease, transform 0.8s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: 0.1s; }
.reveal-d2 { transition-delay: 0.2s; }
.reveal-d3 { transition-delay: 0.3s; }
.reveal-d4 { transition-delay: 0.4s; }

.word {
  display: inline-block;
  opacity: 0; transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s ease;
  transition-delay: calc(var(--i, 0) * 0.08s);
}
.char {
  display: inline-block;
  opacity: 0; transform: translateY(10px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  transition-delay: calc(var(--i, 0) * 0.03s);
}
.char-word {
  display: inline-block;
  white-space: nowrap;
}
.split-words.in .word,
.split-chars.in .char {
  opacity: 1; transform: translateY(0);
}

/* ===== COTTAGE SPECIFIC ===== */
.cottage-about {
  flex-flow: column; place-content: center flex-end; align-items: center;
  gap: 64px; width: 100%; height: min-content;
  padding: 80px 32px 132px; display: flex; position: relative; overflow: visible;
}
.cottage-about-inner {
  flex-flow: column; place-content: center; align-items: center;
  gap: 48px; width: 100%; max-width: 1748px; display: flex; position: relative;
}
.cottage-about-content {
  z-index: 1; flex-flow: column; place-content: flex-start center;
  align-items: flex-start; gap: 32px; width: 100%; display: flex; position: relative; overflow: hidden;
}
.cottage-about-text-row {
  flex-flow: row; place-content: flex-start; align-items: flex-start;
  gap: 24px; width: 100%; display: flex; position: relative; overflow: hidden;
}
.cottage-about-text-col {
  flex: 1 0 0; width: 1px; max-width: 33%; height: auto; position: relative;
  white-space: pre-wrap; word-break: break-word; word-wrap: break-word;
}
.cottage-about-text-col p {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
}
.cottage-about-images {
  z-index: 1; flex-flow: row; place-content: flex-start center;
  align-items: flex-start; gap: 24px; width: 100%; display: flex; position: relative; overflow: hidden;
}
.cottage-about-img-sm {
  aspect-ratio: 1.28933; flex: 1 0 0; width: 1px; max-width: 33%;
  border-radius: 8px; position: relative; overflow: hidden;
}
.cottage-about-img-lg {
  aspect-ratio: 1.39531; flex: 1 0 0; width: 1px; max-width: 66%;
  border-radius: 8px; position: relative; overflow: hidden;
}
.cottage-about-img-sm img, .cottage-about-img-lg img { width: 100%; height: 100%; object-fit: cover; }
.cottage-about-deco {
  aspect-ratio: 1.5; z-index: 0; flex: none; width: 500px;
  position: absolute; top: -90px; right: -90px; overflow: visible;
  pointer-events: none; will-change: transform;
  animation: cottageDecoFloat 8s ease-in-out infinite;
  -webkit-mask: radial-gradient(51.84% 50% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(51.84% 50% at 51.1%, #000 0%, #0000 99.8205%);
}
@keyframes cottageDecoFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
.cottage-about-deco--kottedzh {
  width: 700px;
  top: 44px;
  right: -220px;
}
.cottage-rules {
  flex-flow: column; place-content: center flex-end; align-items: center;
  gap: 64px; width: 100%; padding: 0 32px; display: flex; position: relative;
}
.cottage-rules-inner {
  flex-flow: column; place-content: flex-start center;
  align-items: flex-start; gap: 80px; width: 100%; max-width: 1748px;
  display: flex; position: relative;
}
.cottage-rules-grid {
  flex-flow: row; place-content: center flex-start; align-items: center;
  gap: 24px; width: 100%; display: flex; position: relative; overflow: hidden;
}
.cottage-rule-card {
  flex: 1 0 0; align-self: stretch; width: 1px; height: auto; position: relative;
}
.cottage-rule-card-inner {
  background: var(--white); border-radius: 8px; height: 100%; width: 100%;
  will-change: transform; flex-flow: column; place-content: flex-start; align-items: flex-start;
  gap: 40px; padding: 48px 32px 32px; display: flex; position: relative; overflow: hidden;
}
.cottage-rule-icon {
  flex: none; width: 80px; height: 80px; position: relative;
}
.cottage-rule-icon svg { width: 100%; height: 100%; display: block; }
.cottage-rule-body {
  flex-flow: column; place-content: flex-start center; align-items: flex-start;
  gap: 16px; width: 100%; display: flex; position: relative; overflow: hidden;
}
.cottage-rule-title {
  font-family: var(--font-serif); font-size: 40px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.2em; color: var(--black);
}
.cottage-rule-desc {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
}
.cottage-amenities {
  z-index: 1; flex-flow: column; place-content: center flex-end;
  align-items: center; gap: 64px; width: 100%;
  padding: 100px 32px; display: flex; position: relative; overflow: visible;
}
.cottage-amenities-inner {
  flex-flow: column; place-content: flex-start; align-items: flex-start;
  gap: 64px; width: 100%; max-width: 1748px; display: flex; position: relative; overflow: visible;
}
.cottage-amenities-row {
  flex-flow: column; place-content: flex-start; align-items: flex-start;
  gap: 64px; width: 100%; display: flex; position: relative; overflow: visible;
}
.cottage-amenities-col {
  z-index: 1; flex-flow: column; place-content: flex-start center;
  align-items: flex-start; gap: 32px; width: 100%; display: flex; position: relative; overflow: hidden;
}
.cottage-amenities-desc {
  white-space: pre-wrap; word-break: break-word; word-wrap: break-word;
  flex: none; width: 100%; max-width: 560px; height: auto; position: relative;
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
}
.cottage-amenities-grid {
  grid-template-columns: repeat(2, minmax(50px, 1fr));
  grid-auto-rows: minmax(0, 1fr); justify-content: center;
  gap: 32px 24px; width: 100%; display: grid; position: relative; overflow: hidden;
}
.cottage-amenity-card {
  width: 100%; height: auto; position: relative; place-self: start;
  will-change: transform; flex-flow: row; place-content: center flex-start;
  align-items: center; gap: 24px; display: flex; position: relative; overflow: hidden;
}
.cottage-amenity-icon {
  width: 48px; height: 48px; position: relative; flex: none;
}
.cottage-amenity-icon svg { width: 100%; height: 100%; display: block; }
.cottage-amenity-label {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
}
.cottage-amenities-cta {
  flex-flow: row; place-content: center flex-start; align-items: center;
  gap: 10px; width: 100%; display: flex; position: relative; overflow: hidden;
}
.cottage-amenities-cta p {
  font-family: var(--font-sans); font-size: 16px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
  max-width: 756px;;
}
.cottage-amenities-cta a { color: var(--gold); }
.cottage-amenities-cta a:hover { color: #ab886d; }
.cottage-amenities-deco {
  aspect-ratio: 1; z-index: 0; flex: none; width: 30%;
  position: absolute; top: 32px; right: 32px; overflow: visible;
  -webkit-mask: radial-gradient(53% 59% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(53% 59% at 51.1%, #000 0%, #0000 99.8205%);
}
.cottage-amenities-deco img { width: 100%; height: 100%; object-fit: cover; }
.cottage-gallery {
  flex-flow: column; place-content: flex-end; align-items: flex-end;
  gap: 64px; width: 100%; padding: 0 32px; display: flex; position: relative; overflow: hidden;
}
.cottage-gallery-inner {
  flex-flow: column; place-content: flex-start center;
  align-items: flex-start; gap: 80px; width: 100%; display: flex; position: relative;
}
.cottage-slider-wrap {
  aspect-ratio: 1.72; flex: none; width: 100%; position: relative; overflow: hidden;
}
.cottage-slider {
  display: flex; flex-direction: row; width: 100%; height: 100%;
  place-items: center; margin: 0; padding: 0; list-style-type: none;
  user-select: none; position: relative;
}
.cottage-slider-track {
  display: flex; flex-direction: row; width: 100%; height: 100%;
  margin: 0; padding: 0; list-style-type: none;
  cursor: grab; user-select: none; touch-action: pan-y;
  transition: transform 0.5s ease;
}
.cottage-slide {
  flex: 0 0 100%; width: 100%; height: 100%; border-radius: 8px;
  position: relative; overflow: hidden;
}
.cottage-slide img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.cottage-slider-arrows {
  position: absolute; display: flex; flex-direction: row;
  justify-content: space-between; align-items: center;
  inset: 20px; pointer-events: none;
}
.cottage-slider-arrow {
  border: none; display: block; place-content: center; place-items: center;
  overflow: hidden; background: rgba(0,0,0,0.2); cursor: pointer;
  width: 40px; height: 40px; border-radius: 40px;
  pointer-events: auto; padding: 0; color: #fff; font-size: 24px;
}
.cottage-slider-arrow svg { width: 40px; height: 40px; display: block; }
.cottage-slider-dots {
  display: flex; place-content: center; place-items: center;
  position: absolute; left: 50%; bottom: 20px;
  transform: translateX(-50%); border-radius: 50px;
  background: rgba(0,0,0,0.2); padding: 0;
}
.cottage-slider-dot {
  border: none; display: flex; place-content: center; place-items: center;
  overflow: hidden; background: transparent; cursor: pointer;
  margin: 0; padding: 10px 5px;
}
.cottage-slider-dot-inner {
  border-radius: 50%; width: 10px; height: 10px;
  background: var(--white); transition: opacity 0.3s;
}

.cottage-tent {
  flex-flow: column; place-content: center flex-end; align-items: center;
  gap: 64px; width: 100%; padding: 50px 32px; display: flex; position: relative;
}
.cottage-tent-inner {
  flex-flow: column; place-content: flex-start center;
  align-items: flex-start; gap: 80px; width: 100%; max-width: 1748px;
  display: flex; position: relative;
}
.cottage-tent-card {
  background: var(--white); border-radius: 8px; will-change: transform;
  flex-flow: row; place-content: center flex-start; align-items: center;
  gap: 72px; width: 100%; padding: 32px 56px 32px 32px;
  display: flex; position: relative; overflow: hidden;
}
.cottage-tent-image {
  border-radius: 8px; flex: none; width: 60%; max-width: 60%;
  height: 548px; position: relative; overflow: hidden;
}
.cottage-tent-image img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.cottage-tent-info {
  flex-flow: column; flex: 1 0 0; place-content: flex-start center;
  align-items: flex-start; gap: 32px; width: 1px; display: flex; position: relative;
}
.cottage-tent-text-col {
  width: 100%; height: auto; position: relative;
  white-space: pre-wrap; word-break: break-word; word-wrap: break-word;
}
.cottage-tent-text-col p {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -0.02em; line-height: 1.6em; color: var(--black);
}
.cottage-tent-btn { flex: none; width: auto; height: 48px; position: relative; }
/* ===== BOOKING CTA ===== */
.page-cta { padding: 0 32px 100px; }
.page-cta-inner {
  position: relative; border-radius: 8px; overflow: hidden;
  max-width: 1748px; margin: 0 auto;
}
.page-cta-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.page-cta-overlay {
  position: absolute; inset: 0; background: rgba(0,0,0,0.45);
}
.page-cta-content {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  text-align: center; color: #fff; width: 90%; max-width: 500px;
}
.page-cta-title {
  font-family: var(--font-serif); font-size: 56px; font-weight: 400;
  letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase;
}
.page-cta-sub {
  font-family: var(--font-infant); font-size: 30px; letter-spacing: 0.04em;
  color: white; margin: 5px 0 20px;
}
.page-cta-btn {
  display: inline-block; padding: 14px 32px;
  background: rgb(135, 98, 58);
  border: 1px solid rgb(135, 98, 58); border-radius: 100px;
  color: #fff; font-size: 18px; transition: background 0.3s;
}
.page-cta-btn:hover { background: rgb(163, 102, 36); border-color: rgb(163, 102, 36); }

/* ===== SINGLE SERVICE STYLES ===== */
.breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 0; }
.breadcrumbs a, .breadcrumbs span { font-size: 16px; letter-spacing: -.02em; }
.breadcrumb-link { color: var(--gray); padding: 0 6px 0 0; transition: color 0.3s; }
.breadcrumb-link:hover { color: var(--black); }
.breadcrumb-sep { color: var(--border); padding: 0 6px; }
.breadcrumb-current { color: var(--black); padding-left: 6px; }
.service { flex-flow: column; flex: none; place-content: center flex-end; align-items: center; gap: 64px; width: 100%; padding: 100px 32px; display: flex; position: relative; overflow: visible; }
.service-inner { flex-flow: column; flex: none; place-content: center; align-items: center; gap: 96px; width: 100%; max-width: 1748px; display: flex; position: relative; }
.service-content { flex-flow: column; flex: none; place-content: center; align-items: center; gap: 64px; width: 100%; display: flex; position: relative; }
.service-text { flex: none; width: 100%; max-width: 720px; }
.service-text p { font-family: var(--font-sans); font-size: 16px; font-weight: 400; letter-spacing: -.02em; line-height: 1.6em; color: var(--black); text-align: start; text-decoration: none; text-transform: none; }
.service-text h2 { font-family: var(--font-sans); font-size: 40px; font-weight: 400; letter-spacing: 0em; line-height: 1.2em; color: var(--black); text-align: start; text-decoration: none; text-transform: none; margin-bottom: 24px; }
.service-text a { color: var(--gold); }
.service-text a:hover { color: #ab886d; }
.service-images { z-index: 1; flex-flow: row; flex: none; place-content: center; align-items: center; gap: 24px; width: 100%; display: flex; position: relative; }
.service-image { aspect-ratio: 1.33283; border-radius: 8px; flex: 1 0 0; width: 1px; position: relative; overflow: hidden; }
.service-image img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; transition: transform 0.6s; }
.service-image:hover img { transform: scale(1.05); }
.service-deco-1 { aspect-ratio: 1.29293; z-index: 0; flex: none; width: 31%; position: absolute; top: -106px; right: -50px; overflow: visible; -webkit-mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%); mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%); }
.service-deco-2 { aspect-ratio: 1.29293; z-index: 0; flex: none; width: 31%; position: absolute; bottom: -14px; left: -72px; overflow: visible; -webkit-mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%); mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%); }
.service-deco-1 img, .service-deco-2 img { width: 100%; height: 100%; object-fit: cover; }
.related { flex-flow: column; flex: none; place-content: center flex-end; align-items: center; gap: 64px; width: 100%; padding: 100px 32px; display: flex; position: relative; }
.related-inner { flex-flow: column; flex: none; place-content: center; align-items: center; gap: 64px; width: 100%; max-width: 1748px; display: flex; }
.related-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; color: var(--black); text-align: center; text-transform: uppercase; }
.related-grid { display: grid; grid-template-columns: repeat(3, minmax(50px, 1fr)); gap: 24px; width: 100%; }
.related-card { background: transparent; border: 1px solid var(--white); border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s, box-shadow 0.3s; }
.related-card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.08);background: white; }
.related-card-img { aspect-ratio: 1.5; width: 100%; position: relative; overflow: hidden; }
.related-card-img img { width: 100%; height: 100%; object-fit: cover; }
.related-card-body { padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.related-card-title { font-family: var(--font-serif); font-size: 24px; font-weight: 700; color: var(--black); }
.related-card-desc { font-size: 16px; color: var(--gray-dark); line-height: 1.6em; }
.related-all { display: inline-block; padding: 14px 32px; border: 1px solid var(--gold-border); border-radius: 100px; color: #fff; background: var(--gold-dark); font-family: var(--font-sans); font-size: 18px; letter-spacing: -.02em; transition: background 0.3s; box-shadow: rgba(19, 20, 21, 0.02) 0px 5px 5px 0px, rgba(19, 20, 21, 0.02) 0px 8px 8px 0px, rgba(19, 20, 21, 0.02) 0px 10px 10px 0px, rgba(19, 20, 21, 0.02) 0px 12px 25px 0px, rgba(19, 20, 21, 0.02) 0px 4px 4px 0px, rgba(19, 20, 21, 0.02) 0px 4px 4px 0px, rgba(255, 255, 255, 0.07) 0px 1px 0.75px 0px inset;}
.related-all:hover { background: var(--gold); }

/* ===== ANIMACIYA PAGE ===== */
.animation {
  flex-flow: column; flex: none; place-content: center flex-end; align-items: center;
  gap: 64px; width: 100%; padding: 100px 32px;
  display: flex; position: relative; overflow: visible;
}
.animation-inner {
  flex-flow: column; flex: none; place-content: center; align-items: center;
  gap: 96px; width: 100%; max-width: 1748px; display: flex; position: relative;
}
.animation-badge {
  z-index: 0; flex: none; width: 28.02%; aspect-ratio: 1; opacity: 0.9;
  position: absolute; top: -180px; right: 0; border-radius: 50%; overflow: hidden;
  -webkit-mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%);
  mask: radial-gradient(50% 50% at 51.1%, #000 0%, #0000 99.8205%);
}
.animation-badge img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.animation-content {
  z-index: 1; flex-flow: column; flex: none; place-content: center; align-items: center;
  gap: 64px; width: 100%; max-width: none; display: flex; position: relative;
}
.animation-text { text-align: center; width: 100%; max-width: 900px; }
.animation-text p {
  font-family: var(--font-sans); font-size: 20px; font-weight: 400;
  letter-spacing: -.02em; line-height: 1.6em; color: var(--black);
}
.animation-grid {
  flex-flow: row; flex: none; place-content: center; align-items: center;
  gap: 24px; width: 100%; display: flex; position: relative;
}
.animation-image { aspect-ratio: 4/3; border-radius: 8px; flex: 1 0 0; width: 1px; position: relative; overflow: hidden; }
.animation-image img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; transition: transform 0.6s; }
.animation-image:hover img { transform: scale(1.05); }

.faq-teaser { width: 100%; padding: 0 32px; display: flex; }
.faq-teaser-inner { width: 100%; max-width: 1748px; margin: 0 auto; display: flex; flex-direction: column; gap: 48px; }
.faq-teaser-head { display: flex; flex-direction: column; gap: 8px; }
.faq-teaser-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; color: var(--black); }
.faq-teaser-sub { font-family: var(--font-sans); font-size: 20px; color: var(--black); line-height: 1.6em; }
.faq-teaser-btn { align-self: flex-start; display: inline-block; padding: 14px 32px; background: var(--black); border-radius: 100px; color: #fff; font-size: 18px; transition: background 0.3s; }
.faq-teaser-btn:hover { background: var(--gray-dark); }
.faq-list { display: flex; flex-direction: column; width: 100%; }
.faq-more { align-self: flex-start; display: inline-block; padding: 14px 32px; border: 1px solid var(--gold); border-radius: 100px; color: var(--gold); background: #fff; font-size: 18px; transition: all 0.3s; }
.faq-more:hover { background: var(--gold); color: #fff; }
.cta-section { background: var(--dark-green); border-top: 1px solid var(--gray-dark); width: 100%; display: flex; position: relative; overflow: hidden; }
.cta-inner { width: 100%; max-width: 1748px; margin: 0 auto; padding: 100px 32px; display: flex; flex-direction: column; gap: 64px; }
.cta-head { display: flex; flex-direction: column; gap: 16px; }
.cta-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; color: #fff; text-transform: uppercase; }
.cta-sub { font-family: var(--font-infant); font-size: 30px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.4em; color: var(--gold); }
.cta-desc { font-family: var(--font-sans); font-size: 20px; color: #fff; line-height: 1.6em; }
.cta-row { display: flex; flex-wrap: wrap; gap: 64px; justify-content: space-between; }
.cta-col { display: flex; flex-direction: column; gap: 32px; flex: 1; min-width: 280px; }
.cta-booking-label { font-size: 16px; text-transform: uppercase; color: var(--border); letter-spacing: -.02em; }
.cta-booking-hours { font-size: 16px; color: #fff; }
.cta-phone { font-family: var(--font-infant); font-size: 64px; line-height: 1em; color: #fff; letter-spacing: -.02em; transition: color 0.4s; }
.cta-phone:hover { color: var(--gray); }
.cta-social { display: flex; gap: 24px; }
.cta-social a { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.1); border-radius: 50%; transition: background 0.3s; }
.cta-social a:hover { background: var(--gold); }
.cta-social svg { width: 24px; height: 24px; fill: #fff; }
.cta-btns { display: flex; gap: 32px; flex-wrap: wrap; }
.cta-btn { border-bottom: 1px solid #fff; color: #fff; font-size: 20px; padding-bottom: 4px; transition: color 0.3s, border-color 0.3s; }
.cta-btn:hover { color: var(--gold); border-color: var(--gold); }
.cta-map { width: 100%; border-radius: 8px; overflow: hidden; aspect-ratio: 1.41228; }
.cta-map iframe { width: 100%; height: 100%; border: 0; }
.cta-address { display: flex; flex-direction: column; gap: 16px; }
.cta-address-label { font-size: 16px; text-transform: uppercase; color: var(--gray); letter-spacing: -.02em; }
.cta-address-text { font-family: var(--font-sans); font-size: 18px; color: #fff; }

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  .accommodation-row { flex-direction: column; align-items: center; }
  .accommodation-divider { display: none; }
  .tabs-panel { flex-direction: column; gap: 32px; }
  .tabs-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .tab-inner { width: 100%; }
  .tab-image-wrap { order: -1; width: 100%; }
  .tab-label {
    font-family: "Cormorant Garamond", serif;
    font-size: 24px; font-weight: 600;
    letter-spacing: -.02em; line-height: 1.2em;
    color: #111211;
  }
  .tab-link {
    font-family: "PT Sans", sans-serif;
    font-size: 16px; font-weight: 400;
    letter-spacing: -.02em; line-height: 1.6em;
    color: #111211;
  }
  .tab-desc,
  .tab-inner.open .tab-desc {
    max-height: 0; opacity: 0; overflow: hidden; margin: 0;
  }
  .services-header-col { max-width: 100%; }
  .testimonials-grid { flex-direction: column; }
  .testimonial-card-wrap { width: 100%; aspect-ratio: auto; }
  .testimonial-card { width: 100%; }
  .testimonials-deco { width: 32%; }
  .about-inner { flex-direction: column; align-items: center; gap: 48px; }
  .about-deco { width: 50%; }
  .about-stack { max-width: 100%; width:100%;}
  .about-video-wrap { width: 100%; }
  .gallery-row { flex-direction: column; }
  .ai-grid { grid-template-columns: 1fr 1fr; }
  .how-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, min-content); }
  .how-card-wrap { flex: none; place-self: start; width: 100%; height: 100%; }
  .how-footer-text { max-width: 80%; }
  .how-section { padding: 100px 32px 80px; }
  .faq-section { padding: 80px 24px; }
  .faq-inner { flex-direction: column; gap: 56px; }
  .faq-left { flex: none; width: 100%; position: static; }
  .faq-right { flex: none; width: 100%; }
  .rules-grid { flex-flow: column; }
  .rules-inner { gap: 48px; }
  .hero-title { font-size: 48px; }
  .hero-content--page { padding: 120px 40px 60px; }
}
@media (max-width: 1441px) {
  .contact-section { padding: 100px 24px 132px; }
  .contact-row { flex-direction: column; gap: 48px; }
  .contact-left { flex: none; width: 100%; align-items: center; }
  .contact-title-wrap { align-items: center; }
  .contact-title-inner { align-items: center; }
  .contact-info { align-items: center; }
  .contact-label-row { justify-content: center; }
  .contact-social { justify-content: center; }
  .contact-btns { justify-content: center; }
  .contact-phone-link { max-width: 100%; font-size: clamp(32px, 5vw, 64px); }
  .contact-right { flex: none; align-items: center; width: 100%; overflow: visible; }
  .contact-map-area { width: 100%; }
  .contact-map-wrap { height: 560px; }
  .contact-map-inner { aspect-ratio: 1.33214; height: auto; }
  .contact .contact-grid { grid-template-columns: 1fr !important; }
  .contact .contact-map { min-height: 420px; }
  .cottage-rules-grid { flex-direction: column; }
.cottage-rule-card { width: 100%; flex: none; }
.cottage-about-text-row { flex-wrap: wrap; }
.cottage-about-text-col { flex: none; width: calc(50% - 12px); max-width: calc(50% - 12px); }
.cottage-tent-card { flex-flow: column; align-items: stretch; gap: 32px; padding: 24px; }
.cottage-tent-image { width: 100%; max-width: 100%; height: auto; aspect-ratio: 1.5; }
.cottage-tent-info { width: 100%; gap: 24px; }
}
@media (max-width: 809px) {
  #splash-here .btn-border { display: inline-block; }
  .section-title { font-size: 40px; }
  .rules-section { padding: 0 16px 50px; }
  .rules-grid { gap: 16px; }
  .rule-card { padding: 40px 24px 24px; }
  .rule-title { font-size: 32px; }
  .rule-text { font-size: 18px; }
  .cottage-about { padding: 60px 16px 80px; }
  .cottage-about-content { overflow: visible; }
  .cottage-about .section-header { order: 1; }
  .cottage-about-text-row { flex-direction: column; order: 2; }
  .cottage-about-text-col { max-width: 100%; width: 100%; flex: none; }
  .cottage-about-images { flex-direction: column; order: 0; }
  .cottage-about-images.reveal { opacity: 1; transform: none; }
  .cottage-about-img-sm, .cottage-about-img-lg { max-width: 100%; width: 100%; flex: none; height: auto; }
  .cottage-about-deco { display: none; }
  .cottage-rules-grid { flex-direction: column; }
  .cottage-rule-card { width: 100%; flex: none; }
  .cottage-rule-title { font-size: 32px; }
  .cottage-amenities-grid { grid-template-columns: repeat(1, minmax(50px, 1fr)); }
  .cottage-amenities-deco { width: 62%; top: 4px; }
  .cottage-tent-card { flex-direction: column; padding: 16px; }
  .cottage-tent-image { width: 100%; max-width: 100%; height: auto; aspect-ratio: 1.5; }
  .cottage-tent-info { gap: 24px; width:100%; }
  .page-cta { padding: 0 16px 80px; }
  .page-cta-title { font-size: 40px; }
  .page-cta-sub { font-size: 24px; }
  .service { padding: 64px 16px; }
  .service-text { max-width: unset; width: 280px; }
  .service-images { flex-flow: column; }
  .service-image { width: 100%; flex: none; }
  .related { padding: 64px 16px; }
  .related-grid { grid-template-columns: 1fr; }
  .footer-container { gap: 40px; }
  .footer-nav { flex-direction: column; align-items: flex-start; gap: 48px; }
  .footer-nav-group { flex: none; width: 100%; }
  .post-body { padding: 0 15px; box-sizing: border-box; }
}
@media (max-width: 640px) {
  .ai-grid { grid-template-columns: 1fr; }
  .how-grid {
    overflow: hidden; display: flex; flex-wrap: nowrap; gap: 0;
    justify-content: flex-start; position: relative;
  }
  .how-card-wrap { flex: 0 0 100%; width: 100%; min-width: 0; }
  .how-card { padding: 8px 24px 24px; width: 47%; }
  .how-card-wrap.reveal {
    opacity: 1; transform: none;
    transition-delay: 0s !important;
  }
  .how-footer-text { max-width: unset; }
  .how-carousel-arrow {
    position: absolute; z-index: 2;
    width: 40px; height: 40px; border: none;
    cursor: pointer; font-size: 22px; line-height: 1;
    display: flex; align-items: center; justify-content: center;
    transition: opacity 0.3s;
    background: rgba(200,200,200,0.4); color: #fff;
    border-radius: 50%;
  }
  .how-carousel-arrow-prev { left: 8px; }
  .how-carousel-arrow-next { right: 8px; }
  .how-carousel-dots {
    display: flex; justify-content: center; gap: 6px;
    padding: 6px 12px; margin-top: 12px;
    background: rgba(200,200,200,0.3); border-radius: 20px;
    width: min-content; margin-left: auto; margin-right: auto;
  }
  .how-carousel-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,0.5); border: none; cursor: pointer;
    transition: background 0.3s; padding: 0;
  }
  .how-carousel-dot.active { background: #fff; }
  .hero-title { font-size: 32px; width: 100%; }
  .hero-subtitle { font-size: 22px; }
  .hero-content { top: 0; padding: 40px 20px; }
  .hero-content--page { padding: 40px 20px; }
  .hero-title-wrap { width: 100%; }
  .section-title { font-size: 32px; line-height: 1.1em; }
  .section-subtitle { font-size: 24px; }
  .contact-section { padding: 100px 16px 132px; }
  .contact-section .section-title { font-size: 40px; font-weight: 400; letter-spacing: .02em; line-height: 1em; color: var(--white); text-align: center; }
  .contact-section .section-subtitle { font-family: var(--font-infant); font-size: 30px; font-weight: 400; letter-spacing: .04em; line-height: 1.4em; text-align: center; }
  .contact-section .section-desc { text-align: center; }
  .contact-address-col { align-items: center; text-align: center; }
  .contact-phone-link { width: 100%; font-size: 48px; }
  .contact-social { width: 100%; justify-content: center; }
  .contact-btns { flex-direction: column; gap: 16px; }
  .contact-map-inner { aspect-ratio: unset; height: 501px; }
  .testimonials-btns { flex-direction: column; align-items: center; }
  .btn-border, .btn-filled { width: 100%; }
  .footer-nav { flex-wrap: wrap; justify-content: flex-start; gap: 16px 24px; }
  .footer-nav-group { flex: none; width: 48%; }
  .cta-inner { padding: 124px 32px; }
  .cta-section { min-height: 430px; }
  .page-cta-inner { min-height: 430px; }
  .page-cta-inner img { min-height: 430px; }
}
@media (min-width: 810px) and (max-width: 1439px) {
  .footer-nav { flex-wrap: wrap; justify-content: flex-start; gap: 16px 24px; }
  .footer-nav-group { flex: none; width: 200px; }
}
@media (max-width: 1439px) and (min-width: 810px) {
  .cottage-about { padding: 60px 24px 80px; }
  /* .cottage-about-deco { display: none; } */
  .cottage-tent-image { height: 400px; }
  .footer-nav { flex-wrap: wrap; justify-content: flex-start; gap: 16px 24px; }
  .footer-nav-group { flex: none; width: 200px; }
}

/* ===== GALLERY PAGE (template-gallery.php) ===== */
.tour { width: 100%; padding: 100px 32px; display: flex; }
.tour-inner { width: 100%; max-width: 1748px; margin: 0 auto; display: flex; flex-direction: column; gap: 48px; }
.tour-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; color: var(--black); text-align: center; }
.tour-frame { width: 100%; border-radius: 8px; overflow: hidden; background: var(--card-bg); aspect-ratio: 1748 / 480; min-height: 280px; box-shadow: 0 12px 30px rgba(0,0,0,0.06); }
.tour-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.gallery { width: 100%; padding: 0 32px 100px; display: flex; }
.gallery-inner { width: 100%; max-width: 1748px; margin: 0 auto; display: flex; flex-direction: column; gap: 48px; }
.gallery-tabs {
  position: sticky; top: 72px; z-index: 90;
  display: flex; gap: 8px; flex-wrap: nowrap; overflow-x: auto;
  background: var(--card-bg); border-radius: 12px; padding: 12px 16px;
  scrollbar-width: none; -ms-overflow-style: none;
  box-shadow: 0 6px 18px rgba(0,0,0,0.05);
}
.gallery-tabs::-webkit-scrollbar { display: none; }
.gallery-tab {
  position: relative; flex: none; padding: 12px 20px; cursor: pointer;
  font-size: 18px; letter-spacing: -.02em; color: var(--gray-dark);
  transition: color 0.3s; white-space: nowrap;
}
.gallery-tab .line {
  position: absolute; left: 16px; right: 16px; bottom: 4px; height: 2px;
  background: var(--gold); opacity: 0; transform: scaleX(0); transform-origin: center;
  transition: opacity 0.3s, transform 0.3s;
}
.gallery-tab.is-active { color: var(--gold); }
.gallery-tab.is-active .line { opacity: 1; transform: scaleX(1); }
.gallery-panel { display: block; scroll-margin-top: 150px; }
.gallery-panel + .gallery-panel { margin-top: 64px; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.gallery-subtitle {
  font-family: var(--font-serif); font-size: 40px; font-weight: 400;
  letter-spacing: -.02em; line-height: 1.2em; color: var(--black);
  text-align: center; margin-bottom: 32px;
}
.gallery-item {
  position: relative; border-radius: 8px; overflow: hidden;
  aspect-ratio: 4 / 3; cursor: pointer; background: var(--beige);
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; transition: transform 0.6s ease; }
.gallery-item:hover img { transform: scale(1.05); }
.gallery-item::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  box-shadow: inset 0 0 0 0 rgba(176,131,83,0); transition: box-shadow 0.3s;
}
.gallery-item:hover::after { box-shadow: inset 0 0 0 3px var(--gold); }
.gallery-overlay {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,0); color: #fff; transition: all 0.3s; z-index: 2;
}
.gallery-overlay svg { width: 48px; height: 48px; opacity: 0; transform: scale(0.8); transition: all 0.3s; }
.gallery-item:hover .gallery-overlay { background: rgba(12,12,12,0.95); }
.gallery-item:hover .gallery-overlay svg { opacity: 1; transform: scale(1); }

.glightbox {
  display: none; position: fixed; z-index: 99999; inset: 0;
  align-items: center; justify-content: center;
}
.glightbox.open { display: flex; }
.glightbox-bg { position: absolute; inset: 0; background: rgba(0,0,0,0.92); }
.glightbox-close {
  position: absolute; top: 16px; right: 20px; z-index: 10;
  background: none; border: none; color: #fff; font-size: 36px;
  cursor: pointer; line-height: 1; padding: 4px; opacity: 0.8;
}
.glightbox-close:hover { opacity: 1; }
.glightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 10;
  background: rgba(255,255,255,0.08); border: none; border-radius: 50%;
  width: 44px; height: 44px; display: flex; align-items: center;
  justify-content: center; cursor: pointer; color: #fff;
  transition: background 0.3s; opacity: 0.8;
}
.glightbox-nav:hover { background: rgba(255,255,255,0.2); opacity: 1; }
.glightbox-nav svg { width: 24px; height: 24px; }
.glightbox-prev { left: 16px; }
.glightbox-next { right: 16px; }
.glightbox-content {
  position: relative; z-index: 5; max-width: 85vw; max-height: 85vh;
  display: flex; align-items: center; justify-content: center;
}
.glightbox-img { max-width: 100%; max-height: 85vh; object-fit: contain; border-radius: 4px; }

/* ===== TESTIMONIALS PAGE (template-testimonials.php) ===== */
.reviews { width: 100%; padding: 100px 32px; display: flex; position: relative; }
.reviews-inner { width: 100%; max-width: 1748px; margin: 0 auto; display: flex; flex-direction: column; gap: 64px; }
.reviews-head { display: flex; flex-direction: column; gap: 24px; text-align: center; align-items: center; }
.reviews-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; color: var(--black); }
.reviews-desc { font-size: 18px; color: var(--gray-dark); line-height: 1.6em; max-width: 760px; }
.reviews-form-text { font-size: 18px; color: var(--gray-dark); line-height: 1.6em; text-align: center; max-width: 800px; margin: 0 auto; }
.reviews-deco {
  aspect-ratio: 1; width: 25%; z-index: 1;
  position: absolute; top: 32px; right: 32px; overflow: visible; pointer-events: none;
  -webkit-mask: radial-gradient(50% 50% at 51.1%, #000 0%, transparent 99.82%);
  mask: radial-gradient(50% 50% at 51.1%, #000 0%, transparent 99.82%);
}
.reviews-deco img { width: 100%; height: 100%; display: block; object-fit: cover; }
.reviews-grid {
  z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(50px, 1fr));
  grid-auto-rows: minmax(0, 1fr); gap: 24px; width: 100%;
  position: relative;
}
.review-cell { display: flex; align-items: center; width: 100%; height: 376px; padding: 0; background: #fff; }
.review-card {
  max-width: 100%; height: auto;
  border-radius: 8px; padding: 32px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 32px;
}
.review-stars { display: flex; gap: 4px; }
.review-stars svg { width: 20px; height: 20px; fill: var(--gold); }
.review-body { display: flex; flex-direction: column; align-items: flex-start; gap: 32px; width: 100%; }
.review-text { font-family: var(--font-sans); font-size: 20px; font-weight: 400; letter-spacing: -0.02em; color: var(--black); line-height: 1.5em; }
.review-meta { display: flex; flex-direction: row; align-items: center; gap: 20px; width: 100%; }
.review-author-block { display: flex; flex-direction: column; gap: 2px; }
.review-author { font-family: var(--font-serif); font-size: 24px; font-weight: 600; letter-spacing: -0.02em; color: var(--black); }
.review-date { font-size: 14px; color: var(--gray-dark); }

/* ===== CONTACT PAGE (template-contact.php) ===== */
.contact {
  flex-flow: column; place-content: center flex-end; align-items: center;
  gap: 64px; width: 100%; padding: 100px 32px; display: flex; position: relative;
}
.contact .contact-inner {
  flex-flow: column; place-content: center; align-items: center;
  gap: 96px; width: 100%; max-width: 1748px; display: flex; position: relative;
}
.contact .contact-grid {
  display: grid; grid-template-columns: 3fr 2fr;
  gap: 80px; width: 100%; align-items: stretch;
}
.contact .contact-map { width: 100%; border-radius: 8px; overflow: hidden; min-height: 706px; position: relative; }
.contact .contact-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.contact .contact-map-credit { margin-top: 8px; font-size: 13px; color: var(--gray); }
.contact .contact-map-credit a { color: var(--gray); transition: color 0.3s; }
.contact .contact-map-credit a:hover { color: var(--gold); }
.contact .contact-info { display: flex; flex-direction: column; gap: 24px; align-self: center; max-width: 100%;}
.contact .contact-info-title { font-family: "Cormorant Garamond", serif; font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase; color: #111211; }
.contact .contact-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 20px; width: 100%; }
.contact .contact-block-full { grid-column: span 2; }
.contact .contact-divider-full { grid-column: 1 / -1; height: 1px; background: #e7e6e4; width: 100%; align-self: start; }
.contact .contact-block-col { display: flex; flex-direction: column; gap: 24px; }
.contact .contact-block { display: flex; flex-direction: column; gap: 8px; }
.contact .contact-block-label { font-family: "PT Sans", sans-serif; font-size: 14px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.2em; text-transform: uppercase; color: #868279; }
.contact .contact-block-text { font-size: 20px; color: var(--black); line-height: 1.6em; }
.contact .contact-block-text a { color: var(--black); transition: color 0.3s; }
.contact .contact-block-text a:hover { color: var(--gold); }
.contact .contact-divider { width: 100%; height: 1px; background: var(--border); }
.contact .contact-row { display: flex; flex-direction: row; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: flex-start; }
.contact .contact-social { display: flex; gap: 7px; margin-top: 4px; }
.contact .contact-social a { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; background: var(--light-bg); border-radius: 50%; transition: background 0.3s; }
/* .contact .contact-social a:hover { background: var(--gold); } */
.contact .contact-social svg { width: 24px; height: 24px; fill: var(--black); }
/* .contact .contact-social a:hover svg { fill: #fff; } */
.contact .contact-requisites { width: 100%; background: var(--light-bg); border-radius: 8px; padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.contact .contact-requisites .contact-block-label { font-size: 14px; }
.contact .contact-requisites .contact-requisites-label { color: #868279; }
.contact .contact-requisites-grid { display: flex; flex-direction: row; gap: 24px; width: 100%; }
.contact .contact-requisites-col { font-size: 16px; line-height: 1.6; flex: 1; }

@media (max-width: 810px) {
  .contact .contact-info-grid { grid-template-columns: 1fr; }
  .contact .contact-block-full { grid-column: span 1; }
  .contact .contact-requisites-grid { flex-direction: column; gap: 12px; }
}

/* ===== GETTING HERE (contact page) ===== */
.getting {
  flex-flow: column; place-content: center; align-items: center;
  gap: 80px; width: 100%; padding: 100px 32px; display: flex; position: relative;
  background: var(--light-bg);
}
.getting-inner {
  flex-flow: column; place-content: center; align-items: center;
  gap: 24px; width: 100%; max-width: 1748px; display: flex;
}
.getting-title {
  font-family: var(--font-serif); font-size: 56px; font-weight: 400;
  letter-spacing: 0.02em; line-height: 1em; color: var(--black);
  text-align: center; text-transform: uppercase;
}
.getting-main {
  flex-flow: row; place-content: flex-start; align-items: flex-start;
  gap: 80px; width: 100%; display: flex; position: relative;
}
.getting-left {
  flex: 1 0 0; width: 1px; display: flex; flex-direction: column;
  gap: 24px; position: sticky; top: 32px;
}
.getting-image { aspect-ratio: 1.12274; width: 100%; border-radius: 8px; position: relative; overflow: hidden; }
.getting-image img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; transition: transform 0.6s; }
.getting-image:hover img { transform: scale(1.05); }
.getting-info {
  background: #f7f7f7; border-radius: 8px;
  flex-flow: column; place-content: center; align-items: center;
  gap: 40px; width: 100%; padding: 40px; display: flex; position: relative;
}
.getting-info-rows { display: flex; flex-flow: row; place-content: flex-start; align-items: flex-start; gap: 24px; width: 100%; }
.getting-info-col { flex: 1 0 0; width: 1px; display: flex; flex-direction: column; gap: 4px; }
.getting-info-label { font-size: 14px; text-transform: uppercase; color: #868279; letter-spacing: -.02em; }
.getting-info-text { font-size: 18px; color: #111211; line-height: 1.6em; }
.getting-btn {
  align-self: center; display: inline-block; padding: 14px 32px;
  border-radius: 100px; color: #fff; background: var(--black);
  font-size: 18px; letter-spacing: -.02em; transition: background 0.3s, opacity 0.3s;
}
.getting-btn:hover { opacity: 0.85; }
.getting-steps {
  flex-flow: column; flex: 1 0 0; width: 1px; max-width: 40%;
  display: flex; gap: 16px; position: relative;
}
.getting-step {
  background: var(--white); border: 1px solid var(--border); border-radius: 8px;
  padding: 24px 32px; display: flex; gap: 24px; align-items: flex-start;
  transition: transform 0.3s, box-shadow 0.3s; flex-flow: column;
}
.getting-step:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.08); }
.getting-step-num {
  font-family: var(--font-serif); font-size: 88px; line-height: 1em;
  color: var(--border); flex: none;
}
.getting-step-body { display: flex; flex-direction: column; gap: 8px; }
.getting-step-title { font-family: var(--font-serif); font-size: 32px; font-weight: 700; color: var(--black); }
.getting-step-desc { font-size: 20px; color: var(--gray-dark); line-height: 1.6em; }

/* ===== BOOK-NOW CTA (standalone) ===== */
.book-now { width: 100%; padding: 100px 32px; display: flex; }
.book-now-inner { width: 100%; max-width: 1748px; margin: 0 auto; }
.book-now-card {
  position: relative; width: 100%; border-radius: 8px; overflow: hidden;
  aspect-ratio: 1.83957; display: flex; align-items: center; justify-content: center;
}
.book-now-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.book-now-overlay { position: absolute; inset: 0; background: rgba(34,37,34,0.4); }
.book-now-content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; padding: 24px; max-width:600px;}
.book-now-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; color: #fff; text-transform: uppercase; }
.book-now-sub { font-family: var(--font-infant); font-size: 30px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.4em; color: #ffffff; }
.book-now-btn { display: inline-block; padding: 14px 32px; border: 1px solid var(--gold-border); border-radius: 100px; color: #fff; background: var(--gold-dark); font-size: 18px; letter-spacing: -.02em; transition: background 0.3s; }
.book-now-btn:hover { background: var(--gold); }

/* ===== FAQ PAGE (template-faq.php) ===== */
.faq-page .hero-section {
    display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    width: 100%; gap: 64px; padding: 164px 32px 0; position: relative;
}
.faq-page .hero-container {
    display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start;
    gap: 80px; width: 100%; max-width: 1748px;
}
.faq-page .hero-header {
    display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%;
}

.faq-page .page-title-wrapper { display: flex; flex-direction: column; align-items: center; gap: 0; width: 100%; }
.faq-page .page-title {
    font-family: var(--font-serif); font-size: 80px; font-weight: 400;
    letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase;
    color: var(--black); text-align: center;
}
.faq-page .page-subtitle {
    font-family: var(--font-infant); font-size: 30px; font-weight: 400;
    letter-spacing: 0.04em; line-height: 1.4em; color: var(--gold); text-align: center;
}

/* FAQ accordion */
.faq-page .faq-section { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 64px; width: 100%; padding: 100px 32px; }
.faq-page .faq-inner { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 16px; width: 100%; padding: 100px 32px; }
.faq-page .faq-container { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 24px; width: 100%; max-width: 1748px; }
.faq-page .faq-column { flex: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0; min-width: 0; }
.faq-page .faq-item-wrapper { width: 100%; }
.faq-page .faq-item {
    display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
    width: 100%; padding: 24px 0; border-top: 1px solid var(--beige); cursor: pointer;
}
.faq-page .faq-header { display: flex; justify-content: space-between; align-items: center; width: 100%; gap: 0; }
.faq-page .faq-title-row { display: flex; align-items: flex-start; justify-content: flex-start; gap: 8px; flex: 1; min-width: 0; }
.faq-page .faq-number { font-family: 'Alegreya', serif; font-size: 24px; line-height: 1.4em; color: var(--gray-dark); flex-shrink: 0; white-space: nowrap; }
.faq-page .faq-question { font-family: var(--font-serif); font-size: 24px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.6em; color: var(--black); flex: 1; min-width: 0; word-break: break-word; }
.faq-page .faq-toggle { width: 24px; height: 24px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.3s ease; }
.faq-page .faq-item.open .faq-toggle { transform: rotate(180deg); }
.faq-page .faq-toggle svg { width: 24px; height: 24px; fill: var(--black); color: var(--black); }
.faq-page .faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s ease; width: 100%; padding: 0 0 0 16px; }
.faq-page .faq-item.open .faq-answer { max-height: 500px; padding: 8px 0 0 16px; }
.faq-page .faq-answer-text { font-family: var(--font-sans); font-size: 20px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.6em; color: var(--black); word-break: break-word; }

/* FAQ form CTA */
.faq-page .faq-bottom-cta { position: sticky; top: 80px; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; padding: 24px 0 0; }
.faq-page .faq-cta-inner { display: flex; flex-direction: column; align-items: center; gap: 32px; width: 100%; }
.faq-page .faq-cta-title-wrapper { display: flex; flex-direction: column; align-items: center; gap: 0; width: 100%; }
.faq-page .faq-cta-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase; color: var(--black); text-align: center; }
.faq-page .faq-cta-card { background-color: var(--cream); border-radius: 8px; display: flex; flex-direction: column; align-items: center; gap: 16px; width: 448px; padding: 32px; position: relative; overflow: hidden; }
.faq-page .faq-cta-form-wrapper { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; max-width: 400px; }
.faq-page .v1-form-grid { display: grid; width: 100%; grid-template-columns: repeat(1, 1fr); row-gap: 20px; column-gap: 8px; }
.faq-page .form-field { display: flex; flex-direction: column; grid-column: span 2; margin-bottom: 0; }
.faq-page .form-label { margin-bottom: 6px; align-self: flex-start; font-size: 14px; font-family: var(--font-sans); font-weight: 400; color: var(--gray); }
.faq-page .form-label .required { color: #d40000; margin-left: 2px; }
.faq-page .form-input { width: 100%; padding: 12px; border-radius: 8px; font-size: 16px; font-family: var(--font-sans); background-color: var(--white); color: var(--black); border: 1px solid var(--light-bg); outline: none; transition: box-shadow 0.18s ease; }
.faq-page .form-input::placeholder { color: var(--gray); opacity: 1; }
.faq-page .form-input:focus { box-shadow: 0 0 0 2px rgba(176, 131, 83, 0.2); }
.faq-page .form-textarea { resize: vertical; min-height: 60px; }
.faq-page .form-checkbox-row { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.faq-page .form-checkbox { width: auto; margin-right: 0; }
.faq-page .form-checkbox-label { font-size: 14px; font-family: var(--font-sans); color: var(--gray); }
.faq-page .form-checkbox-label .required { color: #d40000; margin-left: 2px; }
.faq-page .form-submit-row { grid-column: span 2; width: 100%; display: block; margin-top: 16px; }
.faq-page .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--font-sans); font-size: 18px; font-weight: 400; letter-spacing: -0.02em; border-radius: 100px; cursor: pointer; white-space: nowrap; transition: all 0.2s ease; text-decoration: none; }
.faq-page .btn-primary { padding: 15px 32px; border: none; background-color: var(--gold); color: var(--white); font-size: 16px; border-radius: 1000px; box-shadow: 0px 5px 5px rgba(0,0,0,0.1); cursor: pointer; }
.faq-page .btn-primary:hover { background-color: #9a7348; }
.faq-page .form-privacy-link { font-size: 14px; font-family: var(--font-sans); font-weight: 400; color: var(--gray-dark); text-align: center; }
.faq-page .form-privacy-link a { color: var(--gold); transition: color 0.3s; }
.faq-page .form-privacy-link a:hover { color: #ab886d; }

/* FAQ book-now CTA */
.faq-page .hero-cta { background-color: var(--light-bg); display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 80px; width: 100%; padding: 50px 32px 100px; overflow: hidden; border-top: 1px solid var(--beige); }
.faq-page .hero-cta-container { display: flex; flex-direction: column; align-items: center; gap: 24px; width: 100%; max-width: 1748px; }
.faq-page .hero-cta-banner { position: relative; width: 100%; aspect-ratio: 1.72; border-radius: 8px; overflow: hidden; }
.faq-page .hero-cta-banner img { width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: 8px; }
.faq-page .hero-cta-overlay { position: absolute; inset: 0; background-color: rgba(34, 37, 34, 0.4); border-radius: 8px; }
.faq-page .hero-cta-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; max-width: 600px; padding: 0 16px; z-index: 1; }
.faq-page .hero-cta-title-text { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; text-transform: uppercase; color: var(--white); text-align: center; }
.faq-page .hero-cta-subtitle-text { font-family: var(--font-infant); font-size: 30px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.4em; color: var(--white); text-align: center; }
.faq-page .btn-hero { padding: 12px 20px 14px; border: 1px solid var(--gold-border); border-radius: 100px; background-color: var(--gold-dark); color: var(--white); font-size: 18px; height: 48px; transition: all 0.3s ease; }
.faq-page .btn-hero:hover { background-color: var(--gold); border-color: var(--gold); }

/* ===== TESTIMONIALS PAGE - leave review form ===== */
.leave-review { width: 100%; padding: 100px 32px 132px; display: flex; position: relative; overflow: hidden; border-top: 1px solid var(--light-bg);border-color: #ede6de; }
.leave-review-deco { position: absolute; bottom: 32px; left: 32px; width: 29%; aspect-ratio: .666667; z-index: 1; -webkit-mask: radial-gradient(57% 59% at 51.3%, #000 0%, #0000 99.8205%); mask: radial-gradient(57% 59% at 51.3%, #000 0%, #0000 99.8205%); overflow: visible; pointer-events: none; }
.leave-review-deco img { width: 100%; height: 100%; display: block; object-fit: cover; }
.leave-review-inner { position: relative; z-index: 1; width: 100%; max-width: 1748px; margin: 0 auto; display: flex; flex-direction: column; gap: 64px; align-items: center; }
.review-form-card { width: 100%; max-width: 400px; background: transparent; border-radius: 8px; padding: 24px; }
.review-form { width: 100%; background: none; display: grid; grid-template-columns: 1fr; row-gap: 20px; column-gap: 8px; }
.review-form .form-field { display: flex; flex-direction: column; gap: 6px; }
.review-form .form-field label { font-size: 14px; color: var(--gray); }
.review-form .form-field label .req { color: #dd0000; margin-left: 2px; }
.review-form .form-field input,
.review-form .form-field select,
.review-form .form-field textarea { width: 100%; padding: 12px; border-radius: 8px; font-size: 16px; font-family: var(--font-sans); color: var(--black); background: var(--white); border: 1px solid var(--light-bg); outline: none; transition: box-shadow 0.18s ease; }
.review-form .form-field textarea { resize: vertical; }
.review-form .form-field input:focus,
.review-form .form-field select:focus,
.review-form .form-field textarea:focus { box-shadow: 0 0 0 3px rgba(176,131,83,0.2); }
.review-form .form-check { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.review-form .form-check input { width: auto; }
.review-form .form-check label { font-size: 14px; color: var(--gray); }
.form-submit { width: 100%; display: block; background: var(--gold); color: #fff; border: none; border-radius: 1000px; padding: 15px; font-size: 16px; cursor: pointer; font-family: var(--font-sans); transition: background 0.3s; }
.form-submit:hover { background: var(--gold-dark); }
.form-policy { text-align: center; }
.form-policy a { color: var(--gray-dark); text-decoration: underline; }

/* Special services CTA */
.special { width: 100%; display: flex; background: var(--dark-green); }
.special-inner { position: relative; z-index: 1; width: 100%; max-width: 1748px; margin: 0 auto; padding: 100px 32px; display: flex; flex-direction: column; gap: 64px; }
.special-head { display: flex; flex-direction: column; gap: 16px; }
.special-title { font-family: var(--font-serif); font-size: 56px; font-weight: 400; letter-spacing: 0.02em; line-height: 1em; color: #fff; text-transform: uppercase; }
.special-sub { font-family: var(--font-infant); font-size: 30px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.4em; color: var(--gold); }
.special-desc { font-size: 20px; color: #fff; line-height: 1.6em; }
.special-row { display: flex; flex-wrap: wrap; gap: 64px; justify-content: space-between; }
.special-col { display: flex; flex-direction: column; gap: 32px; flex: 1; min-width: 280px; }
.special-booking-label { font-size: 16px; text-transform: uppercase; color: var(--border); letter-spacing: -.02em; }
.special-booking-hours { font-size: 16px; color: #fff; }
.special-phone { font-family: var(--font-infant); font-size: 64px; line-height: 1em; color: #fff; letter-spacing: -.02em; transition: color 0.4s; }
.special-phone:hover { color: var(--gray); }
.special-social { display: flex; gap: 24px; }
.special-social a { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.1); border-radius: 50%; transition: background 0.3s; }
.special-social a:hover { background: var(--gold); }
.special-social svg { width: 24px; height: 24px; fill: #fff; }
.special-btns { display: flex; gap: 32px; flex-wrap: wrap; }
.special-btn { border-bottom: 1px solid #fff; color: #fff; font-size: 20px; padding-bottom: 4px; transition: color 0.3s, border-color 0.3s; }
.special-btn:hover { color: var(--gold); border-color: var(--gold); }
.special-map { width: 100%; border-radius: 8px; overflow: hidden; aspect-ratio: 1.41228; }
.special-map iframe { width: 100%; height: 100%; border: 0; }
.special-address { display: flex; flex-direction: column; gap: 16px; }
.special-address-label { font-size: 16px; text-transform: uppercase; color: var(--gray); letter-spacing: -.02em; }
.special-address-text { font-family: var(--font-sans); font-size: 18px; color: #fff; }

/* ===== BOOK-NOW PAGE (template-booknow.php) ===== */
.booknow-page .hero { flex-flow: column; place-content: center flex-end; align-items: center; gap: 96px; width: 100%; padding: 164px 32px 0; display: flex; position: relative; overflow: visible; height: auto;}
.booknow-page .hero-inner { flex-flow: column; place-content: center; align-items: center; gap: 64px; width: 100%; max-width: 1748px; padding: 0; display: flex; position: relative; overflow: visible; }
.booknow-page .hero-top { flex-flow: column; place-content: center; align-items: center; gap: 16px; width: 100%; display: flex; }
.booknow-page .hero-title-block { max-width: 700px; text-align: center; }
.booknow-page .hero-title { font-size: 56px; color: var(--black); width: auto; }
.booknow-page .hero-subtitle { font-family: var(--font-infant); font-weight: 400; font-size: 30px; letter-spacing: 0.04em; line-height: 1.4em; color: var(--gold); margin-top: 16px; }
.booknow-page .booking { flex-flow: column; place-content: center flex-end; align-items: center; gap: 64px; width: 100%; padding: 100px 0; display: flex; position: relative; overflow: visible; }
.booknow-page .booking-inner { flex-flow: column; place-content: flex-start center; align-items: flex-start; gap: 80px; width: 100%; max-width: 1748px; padding: 0; display: flex; position: relative; overflow: visible; }
.booknow-page .booking-frame { flex-flow: column; place-content: center; align-items: center; gap: 48px; width: 100%; padding: 50px 32px 0; scroll-margin-top: 200px; display: flex; position: relative; overflow: visible; }
.booknow-page .booking-frame iframe { width: 100%; border: 0; }
.booknow-page .info { flex-flow: column; place-content: center flex-end; align-items: center; gap: 64px; width: 100%; padding: 0 32px 100px; display: flex; position: relative; overflow: visible; }
.booknow-page .info-inner { flex-flow: column; place-content: center; align-items: center; gap: 80px; width: 100%; max-width: 1748px; padding: 0; display: flex; position: relative; overflow: visible; }
.booknow-page .info-content { flex-flow: column; place-content: center; align-items: center; gap: 32px; width: 100%; max-width: 50%; padding: 0; display: flex; position: relative; overflow: hidden; }
.booknow-page .info-text { font-size: 20px; color: var(--black); line-height: 1.5em; width: 100%; }
.booknow-page .info-text a { color: var(--gold); text-decoration: underline; }
.booknow-page .info-group { flex-flow: column; place-content: center; align-items: center; gap: 10px; width: 100%; padding: 0; display: flex; position: relative; overflow: hidden; }
.booknow-page .info-group h2 { font-family: var(--font-serif); font-size: 40px; font-weight: 400; letter-spacing: 0em; line-height: 1.2em; color: var(--black); width: 100%; }
.booknow-page .info-sub-text { font-size: 20px; color: var(--black); line-height: 1.5em; width: 100%; }
.booknow-page .rules { flex-flow: column; place-content: center flex-end; align-items: center; gap: 64px; width: 100%; padding: 0 32px 80px; display: flex; position: relative; overflow: visible; }
.booknow-page .rules-inner { flex-flow: column; place-content: flex-start center; align-items: flex-start; gap: 80px; width: 100%; max-width: 1748px; padding: 0; display: flex; position: relative; overflow: visible; }
.booknow-page .rules-row { flex-flow: row; place-content: center flex-start; align-items: center; gap: 24px; width: 100%; padding: 0; display: flex; position: relative; overflow: hidden; }
.booknow-page .rules-col { flex: 1 0 0; align-self: stretch; width: 1px; height: auto; position: relative; }
.booknow-page .rule-card { background: var(--white); border-radius: 8px; flex-flow: column; place-content: flex-start; align-items: flex-start; gap: 40px; width: 100%; padding: 48px 32px 32px; display: flex; position: relative; overflow: hidden; }
.booknow-page .rule-icon { width: 80px; height: 80px; flex: none; }
.booknow-page .rule-icon svg { width: 100%; height: 100%; fill: var(--gold); display: block; }
.booknow-page .rule-body { flex-flow: column; flex: none; place-content: flex-start center; align-items: flex-start; gap: 16px; width: 100%; padding: 0; display: flex; position: relative; overflow: hidden; }
.booknow-page .rule-title { font-family: var(--font-serif); font-size: 40px; font-weight: 400; letter-spacing: 0em; line-height: 1.2em; color: var(--black); width: 100%; }
.booknow-page .rule-desc { font-size: 20px; color: var(--black); line-height: 1.5em; width: 100%; }

/* ===== ABOUT PAGE (template-about.php) ===== */
.page-about .container {
  width: 100%;
  max-width: 1748px;
  margin: 0 auto;
  padding: 0 32px;
}
.page-about .about-hero {
  padding: 220px 0 80px;
  background: var(--white);
}

.page-about .breadcrumbs { justify-content: center; margin-bottom: 24px; }
.page-about .about-hero-title {
  font-family: var(--font-serif);
  font-size: 80px;
  font-weight: 400;
  line-height: 1em;
  letter-spacing: 0.02em;
  text-align: center;
  color: var(--black);
  margin-bottom: 24px;
  text-transform: uppercase;
  
}
.page-about .about-hero-subtitle {
  font-family: var(--font-infant);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.4em;
  text-align: center;
  color: var(--gold);
  margin-bottom: 80px;
}
.page-about .about-hero-video { width: 100%; border-radius: 8px; overflow: hidden; }
.page-about .about-hero-video video { width: 100%; display: block; object-fit: cover; border-radius: 8px; }

.section-title-sm {
  font-family: var(--font-serif);
  font-size: 56px;
  font-weight: 400;
  line-height: 1em;
  letter-spacing: 0.02em;
  text-align: center;
  color: var(--black);
  text-transform: uppercase;
}
.section-subtitle-sm {
  font-family: var(--font-infant);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.4em;
  text-align: center;
  color: var(--gold);
  margin-bottom: 24px;
}
.page-about .section { padding: 100px 0; }

.page-about .about {
  position: relative;
  padding: 100px 0;
  overflow: hidden;
}
.page-about .about-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 840px;
  margin: 0 auto;
  text-align: center;
}
.page-about .about-text {
  font-family: var(--font-sans);
  font-size: 24px;
  line-height: 1.6em;
  letter-spacing: -0.02em;
  color: var(--black);
  margin-top: 24px;
}
.page-about .about-text p + p { margin-top: 20px; }
.page-about .about-arrows {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
  justify-content: center;
}
.page-about .about-arrow-box {
  width: 16px;
  height: 16px;
  border: 1px solid var(--gold);
  border-radius: 16px;
  background: rgba(255,255,255,0.1);
  flex-shrink: 0;
}
.page-about .about-arrow {
  width: 132px;
  height: 22px;
  color: var(--gold);
  opacity: 0.75;
}
.page-about .about-arrow svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}
.page-about .about-deco-left {
  position: absolute;
  left: 0;
  top: 40%;
  transform: translateY(-50%);
  width: 27vw;
  max-width: 620px;
  height: 27vw;
  max-height: 620px;
  pointer-events: none;
  will-change: transform;
  mask: radial-gradient(50% 50% at 50% 50%, black 0%, black 40%, transparent 100%);
  -webkit-mask: radial-gradient(50% 50% at 50% 50%, black 0%, black 40%, transparent 100%);
  animation: aboutFloatLeft 4s ease-in-out infinite;
}
.page-about .about-deco-right {
  position: absolute;
  right: 0;
  top: 65%;
  transform: translateY(-50%);
  width: 27vw;
  max-width: 620px;
  height: 27vw;
  max-height: 620px;
  pointer-events: none;
  will-change: transform;
  mask: radial-gradient(50% 50% at 50% 50%, black 0%, black 40%, transparent 100%);
  -webkit-mask: radial-gradient(50% 50% at 50% 50%, black 0%, black 40%, transparent 100%);
  animation: aboutFloatRight 5s ease-in-out infinite;
}
.page-about .about-deco-left img,
.page-about .about-deco-right img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@keyframes aboutFloatLeft {
  0%, 100% { transform: translateY(-50%) translateY(0); }
  50% { transform: translateY(-50%) translateY(-12px); }
}
@keyframes aboutFloatRight {
  0%, 100% { transform: translateY(-50%) translateY(0); }
  50% { transform: translateY(-50%) translateY(-12px); }
}

.page-about .feature { padding: 60px 0; }
.page-about .feature-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 80px;
  padding: 0;
}
.page-about .feature-inner.reversed { flex-direction: row-reverse; }
.page-about .feature-image {
  flex: 1 0 0;
  max-width: 60%;
  width: 1px;
  height: 596px;
  overflow: hidden;
  border-radius: 8px;
}
.page-about .feature-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 8px;
}
.page-about .feature-content {
  flex: 1 0 0;
  max-width: 35%;
  width: 1px;
  display: flex;
  flex-flow: column;
  gap: 32px;
  padding: 0;
}
.page-about .feature-title {
  font-family: var(--font-serif);
  font-size: 56px;
  font-weight: 400;
  line-height: 1em;
  letter-spacing: 0.02em;
  color: var(--black);
  text-transform: uppercase;
}
.page-about .feature-tag {
  font-family: var(--font-infant);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.4em;
  color: var(--gold);
}
.page-about .feature-desc {
  font-family: var(--font-sans);
  font-size: 20px;
  line-height: 1.6em;
  letter-spacing: -0.02em;
  color: var(--black);
}
.page-about .feature-desc p + p { margin-top: 20px; }
.page-about .feature-content .btn-border {
  background: var(--white);
  border-color: var(--gold);
  color: var(--gold);
  font-size: 18px;
  align-self: flex-start;
}

.page-about .group {
  padding: 100px 0;
  background: linear-gradient(180deg, var(--dark-green) 0%, var(--black) 100%);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-flow: column;
  flex: none;
  place-content: center flex-end;
  align-items: center;
}
.page-about .group > .container { position: relative; z-index: 1; }
.page-about .group-title {
  font-family: var(--font-serif);
  font-size: 56px;
  font-weight: 400;
  line-height: 1em;
  letter-spacing: 0.02em;
  text-align: center;
  color: var(--white);
  margin-bottom: 8px;
  text-transform: uppercase;
}
.page-about .group-subtitle {
  font-family: var(--font-infant);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.4em;
  text-align: center;
  color: var(--gold);
  margin-bottom: 48px;
}
.page-about .group-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}
.page-about .group-card {
  border-radius: 8px;
  padding: 32px;
  text-align: center;
  max-width: 480px;
  justify-self: center;
  width: 100%;
}
.page-about .group-card-logo {
  height: 60px;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-about .group-card-logo img { max-height: 100%; object-fit: contain; }
.page-about .group-card-title {
  font-family: var(--font-sans);
  font-size: 40px;
  font-weight: 400;
  line-height: 1.2em;
  text-align: center;
  color: var(--gold);
  margin-bottom: 16px;
}
.page-about .group-card-desc {
  font-family: var(--font-sans);
  font-size: 20px;
  line-height: 1.6;
  color: var(--white);
  text-align: center;
  margin-bottom: 24px;
}
.page-about .group-card .btn-border {
  border: none;
  border-bottom: 1px solid var(--white);
  color: var(--white);
  font-size: 20px;
  border-radius: 0;
  padding: 0 0 4px;
  background: transparent;
}
.page-about .group-card .btn-border:hover {
  color: var(--gold);
  border-color: var(--gold);
}
.page-about .group-cta { text-align: center; margin-top: 48px; }
.btn-gold {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: 100px;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.25s ease;
  border: 1px solid var(--gold-dark);
  white-space: nowrap;
  background: var(--gold-dark);
  color: var(--white);
}
.btn-gold:hover { background: var(--gold); border-color: var(--gold); color: var(--white); }
.page-about .group-logo-bottom {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.1);
  opacity: 0;
  transition: transform 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 1.5s ease;
}
.page-about .group-logo-bottom.visible {
  transform: translate(-50%, -50%) scale(0.7);
  opacity: 1;
}
.page-about .group-logo-bottom img {
  display: block;
  height: 1338px;
  width: auto;
  max-width: none;
  opacity: 0.12;
}

.page-about .requisites {
  padding: 60px 0;
}
.page-about .requisites .container.reveal {
  background: #f3f3f2;
  border-radius: 8px;
  padding: 80px 40px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1748px;
}
.page-about .requisites-title {
  font-family: var(--font-serif);
  font-size: 56px;
  font-weight: 400;
  line-height: 1em;
  letter-spacing: 0.02em;
  text-align: center;
  color: #868279;
  text-transform: uppercase;
  margin: 0;
}
.page-about .requisites-inner {
  display: flex;
  flex-flow: row;
  gap: 40px;
  width: 100%;
}
.page-about .requisites-item { flex: 1; }
.page-about .requisites-item strong { color: #111211; }
.page-about .requisites-item p {
  font-family: var(--font-infant);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.4em;
  color: #b08353;
  white-space: pre-wrap;
  word-break: break-word;
}
.page-about .requisites-item .text-dark {
  color: #111211;
}

@media (max-width: 809.98px) {
  .page-about .container { padding: 0 16px; }
  .page-about .about-hero { padding: 140px 0 40px; }
  .page-about .about-hero-title { font-size: 48px; }
  .page-about .about-hero-subtitle { font-size: 24px; }
  .section-title-sm { font-size: 40px; }
  .section-subtitle-sm { font-size: 24px; }
  .page-about .about { padding: 60px 0; }
  .page-about .about-text { font-size: 20px; }
  .page-about .about-deco-left,
  .page-about .about-deco-right { display: none; }
  .page-about .feature-inner { flex-direction: column; gap: 64px; }
  .page-about .feature-inner.reversed { flex-direction: column; }
  .page-about .feature-image,
  .page-about .feature-content { flex: none; width: 100%; max-width: 100%; height: auto; }
  .page-about .feature-image { height: 300px; }
  .page-about .feature-title { font-size: 36px; }
  .page-about .group-cards { grid-template-columns: 1fr; gap: 24px; }
  .page-about .group { padding: 60px 0; }
  .page-about .group-title { font-size: 40px; }
  .page-about .requisites-title { font-size: 40px; }
  .page-about .requisites .container.reveal { padding: 40px 24px; gap: 24px; }
  .page-about .requisites-inner { flex-direction: column; gap: 24px; }
  .page-about .requisites-item p { font-size: 16px; color: #111211; }
}

/* ===== RESPONSIVE ===== */
@media (min-width: 810px) and (max-width: 1439.98px) {
  .faq-page .hero-section { padding: 164px 24px 0; }
  .faq-page .faq-section { padding: 80px 24px; }
  .faq-page .faq-inner { padding: 80px 24px; }
  .faq-page .faq-container { flex-direction: column; gap: 56px; }
  .faq-page .faq-column { width: 100%; }
  .faq-page .hero-cta { padding: 50px 24px 80px; }
  .booknow-page .hero { padding: 148px 24px 0; }
  .booknow-page .hero-inner { gap: 56px; }
  .booknow-page .booking { padding: 80px 0; }
  .booknow-page .booking-frame { padding: 50px 24px 0; }
  .booknow-page .info { padding: 100px 24px 80px; }
  .booknow-page .info-content { max-width: unset; }
  .booknow-page .rules { padding: 0 24px 80px; }
  .booknow-page .rules-row { flex-direction: column; }
  .booknow-page .rules-col { align-self: unset; flex: none; width: 100%; }
  .leave-review { padding: 80px 24px 100px; }
  .leave-review-deco { width: 21%; }
  .special-inner { padding: 80px 24px; }
  .hero--inner { padding: 148px 24px 80px; }
  .hero--inner .hero-image { aspect-ratio: 1.5875; }
  .animation { padding: 80px 24px; }
  .animation-content { gap: 48px; }
  .animation-grid { gap: 16px; }
  .tour, .gallery, .book-now { padding-left: 24px; padding-right: 24px; }
  .tour, .book-now { padding-top: 80px; padding-bottom: 80px; }
  .gallery { padding-bottom: 80px; }
  .book-now-card { aspect-ratio: 1.5875; }
  .reviews, .leave-review, .book-now { padding-left: 24px; padding-right: 24px; }
  .reviews, .leave-review, .book-now { padding-top: 80px; padding-bottom: 80px; }
  .reviews-grid { grid-template-columns: repeat(2, minmax(50px, 1fr)); grid-auto-rows: min-content; }
  .review-cell { height: auto; }
  .review-card { width: 100%; }
  .reviews-deco { width: 25%; }
  .contact, .getting, .book-now { padding-left: 24px; padding-right: 24px; }
  .contact, .getting, .book-now { padding-top: 80px; padding-bottom: 80px; }
  .getting-main { flex-direction: column; gap: 48px; }
  .getting-left { flex: none; width: 100%; position: relative; top: unset; }
  .getting-steps { max-width: unset; flex: none; width: 100%; }
  .getting-image { aspect-ratio: 1.2; }
  .book-now-card { aspect-ratio: 1.5875; }
}
@media (max-width: 809.98px) {
  .hero--inner { padding: 132px 16px 40px; }
  .hero--inner .hero-title-block { width: 100%; }
  .hero--inner .hero-title { font-size: 40px; }
  .hero--inner .hero-image { aspect-ratio: 1.39844; }
  .animation { padding: 64px 16px; }
  .animation-badge { width: 52%; top: -10px; right: -10px; }
  .animation-content { padding-top: 96px; }
  .animation-grid { flex-direction: column; gap: 16px; }
  .animation-image { flex: none; width: 100%; }
  .booknow-page .hero { padding: 132px 16px 0; }
  .booknow-page .hero-inner { gap: 48px; }
  .booknow-page .hero-title-block { width: 100%; }
  .booknow-page .hero-title { font-size: 40px; }
  .booknow-page .booking { padding: 64px 0; }
  .booknow-page .booking-frame { padding: 20px; }
  .booknow-page .info { padding: 80px 16px 64px; }
  .booknow-page .info-content { max-width: unset; }
  .booknow-page .rules { padding: 0 16px 80px; }
  .booknow-page .rules-row { flex-direction: column; gap: 16px; }
  .booknow-page .rules-col { align-self: unset; flex: none; width: 100%; }
  .tour, .gallery, .book-now { padding-left: 16px; padding-right: 16px; }
  .tour, .book-now { padding-top: 64px; padding-bottom: 64px; }
  .gallery { padding-bottom: 64px; }
  .tour-title, .book-now-title { font-size: 40px; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .book-now-card { aspect-ratio: 1.39844; }
  .gallery-tabs { top: 16px; }
  .gallery-panel { scroll-margin-top: 80px; }
  .reviews, .leave-review, .book-now { padding-left: 16px; padding-right: 16px; }
  .reviews { padding-top: 150px; padding-bottom: 80px; }
  .leave-review, .book-now { padding-top: 64px; padding-bottom: 64px; }
  .reviews-title, .special-title, .book-now-title { font-size: 40px; }
  .reviews-grid { grid-template-columns: 1fr; grid-auto-rows: min-content; }
  .review-cell { height: auto; }
  .review-card { width: 100%; }
  .reviews-deco { width: 41%; right: 32px; }
  .contact, .getting, .book-now { padding-left: 16px; padding-right: 16px; }
  .contact, .getting, .book-now { padding-top: 64px; padding-bottom: 64px; }
  .getting-main { flex-direction: column; gap: 48px; }
  .getting-left { flex: none; width: 100%; position: relative; top: unset; }
  .getting-steps { max-width: unset; flex: none; width: 100%; }
  .getting-image, .contact .contact-map { min-height: 280px; }
  .getting-info { padding: 24px 16px; }
  .book-now-card { aspect-ratio: 1.39844; }
  .getting-title, .book-now-title { font-size: 40px; }
  .contact .contact-grid { grid-template-columns: 1fr; }
  .faq-page .hero-section { padding: 164px 16px 0 15px; }
  .faq-page .hero-container { gap: 80px; }
  .faq-page .page-title { font-size: 48px; }
  .faq-page .faq-section { padding: 64px 16px; }
  .faq-page .faq-inner { padding: 64px 16px; }
  .faq-page .faq-container { flex-direction: column; gap: 48px; }
  .faq-page .faq-column { width: 100%; }
  .faq-page .faq-cta-card { width: 100%; padding: 0; }
  .faq-page .faq-cta-form-wrapper { width: 100%; }
  .faq-page .hero-cta { padding: 50px 24px 80px; }
  .faq-page .page-title-wrapper { width: 100%; }
  .leave-review { padding: 100px 16px 80px; }
  .leave-review-deco { bottom: unset; top: 0; left: 16px; width: 21%; z-index: 0; }
  .special-inner { padding: 64px 16px; }
  .special-phone { font-size: 48px; }
  .services-section { padding: 60px 24px 0; }
  .services-intro { padding: 48px 16px 0; }
  .services-intro-text { font-size: 18px; }
  .footer-nav-columns{flex-flow:column;}
}
@media (max-width: 640px) {
  .hero--inner .hero-title { font-size: 32px; }
  .booknow-page .hero-title { font-size: 32px; }
  .gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .gallery-tabs { padding: 8px 12px; }
  .gallery-tab { padding: 10px 14px; font-size: 16px; }
  .getting-step { flex-direction: column; gap: 12px; }
  .v1-form-grid { grid-template-columns: 1fr !important; }
  .form-field { grid-column: span 1 !important; }
  .form-submit-row { grid-column: span 1 !important; }
}
#_bn_widget_{
  max-width: 1200px;
  margin: 0 auto;
}

/* Services archive hero */
.post-type-archive-service .hero-content { inset: 0; top: 0; justify-content: center; align-items: center; text-align: center; }
.post-type-archive-service .hero-top { align-items: center; }
.post-type-archive-service .hero-title-wrap { width: 100%; max-width: 800px; }
.post-type-archive-service .hero-title { max-width: 800px; margin-left: auto; margin-right: auto; }
.post-type-archive-service #_bn_widget_ { max-width: 1000px; margin-left: auto; margin-right: auto; }

@media (max-width: 960px) {
  #_bn_widget_ { max-width: 290px; margin-left: auto; margin-right: auto; }
  .bnovo__header { display: none; }
  .bnovo__fields { border-radius: 20px; }
  .bnovo__button { border-radius: 25px; }
}

.taxi-app-image-col.reveal.reveal-d1.visible

 {
    padding-top: 60px;
}