@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/normal-200-latin-ext.woff2') format('woff2'); font-style: normal; font-weight: 200; font-display: swap; unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/normal-200-latin.woff2') format('woff2'); font-style: normal; font-weight: 200; font-display: swap; unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/normal-300-latin-ext.woff2') format('woff2'); font-style: normal; font-weight: 300; font-display: swap; unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/normal-300-latin.woff2') format('woff2'); font-style: normal; font-weight: 300; font-display: swap; unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/normal-400-latin-ext.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/normal-400-latin.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/normal-500-latin-ext.woff2') format('woff2'); font-style: normal; font-weight: 500; font-display: swap; unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/normal-500-latin.woff2') format('woff2'); font-style: normal; font-weight: 500; font-display: swap; unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/italic-300-latin-ext.woff2') format('woff2'); font-style: italic; font-weight: 300; font-display: swap; unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Fahkwang'; src: url('/assets/fonts/fahkwang/italic-300-latin.woff2') format('woff2'); font-style: italic; font-weight: 300; font-display: swap; unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
  --background: #ffffff;
  --foreground: #171717;
  --gold: #b58e34;
  --gold-soft: #c9b381;
  --black: #080808;
  --ldg-psb-background: #ffffff;
  --ldg-psb-border-radius: 0.42em;
  --ldg-psb-box-shadow: 0 24px 54px rgba(0, 0, 0, 0.1);
  --ldg-psb-padding: 14px;
  --ldg-psb-input-background: #ffffff;
  --ldg-psb-button-border-radius: 0.42em;
  --ldg-psb-color-primary: #d9ad28;
  --ldg-psb-color-primary-lighter: #e4c15c;
  --ldg-psb-color-primary-darker: #bf9020;
  --ldg-psb-color-primary-contrast: #111111;
  --ldg-semantic-color-primary: #000000;
  --ldg-semantic-color-primary-lighter: #808080;
  --ldg-semantic-color-primary-darker: #000000;
  --ldg-semantic-color-primary-contrast: #ffffff;
  --ldg-component-modal-z-index: 999;
  --ldg-bnb-background: #ffffff;
  --ldg-bnb-border-radius: 0.42em;
  --ldg-bnb-box-shadow: 0 24px 54px rgba(0, 0, 0, 0.1);
  --ldg-bnb-padding: 14px;
  --ldg-bnb-input-background: #ffffff;
  --ldg-bnb-button-border-radius: 0.42em;
  --ldg-bnb-color-primary: #000000;
  --ldg-bnb-color-primary-lighter: #808080;
  --ldg-bnb-color-primary-darker: #000000;
  --ldg-bnb-color-primary-contrast: #ffffff;
  --ldg-component-calendar-cell-selection-bg-color: #000000;
  --ldg-component-calendar-cell-selection-color: #ffffff;
  --ldg-component-calendar-cell-selected-bg-color: #808080;
  --ldg-component-calendar-cell-selected-color: #ffffff;
  --ldg-bnb-font-family: inherit;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--background);
  color: var(--foreground);
  font-family: 'Fahkwang', Arial, Helvetica, sans-serif;
}
a { color: inherit; text-decoration: none; }
:where(a, button, input, textarea, summary):focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.page-shell { width: min(100% - 48px, 1297px); margin-inline: auto; }

.hero {
  position: relative;
  min-height: 750px;
  overflow: hidden;
  color: white;
  background: #111;
}
.hero-video, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-video { object-fit: cover; }
.hero-shade {
  background:
    linear-gradient(180deg, rgba(4, 7, 2, 0.66) 0%, rgba(4, 7, 2, 0.18) 45%, rgba(3, 5, 2, 0.5) 100%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.34), transparent 68%);
}
.site-header {
  position: relative;
  z-index: 2;
  display: grid;
  height: 180px;
  grid-template-rows: 180px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(5, 8, 3, 0.47);
  backdrop-filter: blur(2px);
}
.header-topline, .header-main { grid-column: 1; grid-row: 1; }
.header-topline {
  display: flex;
  width: calc(100% - 43px);
  height: 50px;
  align-items: flex-end;
  align-self: start;
  justify-content: space-between;
  margin: 0 13px 0 30px;
  color: rgba(255, 255, 255, 0.86);
  font-size: 13.598px;
  font-weight: 200;
}
.header-topline > span { margin-bottom: 10px; }
.header-top-actions { display: flex; align-items: center; gap: 20px; }
.socials { display: flex; align-items: center; gap: 21.5px; }
.socials a, .social-placeholder { display: grid; height: 14px; flex: 0 0 auto; place-items: center; }
.socials img { display: block; width: auto; height: 14px; }
.socials a:focus-visible { outline: 1px solid var(--gold-soft); outline-offset: 5px; }
.header-main {
  display: grid;
  width: calc(100% - 40px);
  min-height: 126px;
  grid-template-columns: 275px minmax(0, 1fr) 188px;
  align-items: center;
  align-self: start;
  gap: 28px;
  margin: 43px 10px 0 30px;
}
.brand img { display: block; width: 260px; height: auto; }
.primary-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 39px;
  font-size: 15.033px;
  font-weight: 200;
  white-space: nowrap;
}
.primary-nav a { position: relative; padding-block: 8px; }
.primary-nav a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: var(--gold-soft);
  content: '';
  transform: scaleX(0);
  transition: transform 180ms ease;
}
.primary-nav a:hover::after, .primary-nav a:focus-visible::after { transform: scaleX(1); }
.reserve-button {
  display: grid;
  min-height: 51px;
  place-items: center;
  border: 1px solid var(--gold-soft);
  color: var(--gold-soft);
  font-size: 16px;
  font-weight: 200;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  transition: background 180ms ease, color 180ms ease;
}
.reserve-button:hover, .reserve-button:focus-visible { background: var(--gold-soft); color: #111; }
.hero-content {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 570px;
  flex-direction: column;
  justify-content: flex-end;
  padding-block: 76px 120px;
}
.hero-copy h1 {
  max-width: 610px;
  margin: 0;
  font-size: 58.426px;
  font-weight: 200;
  line-height: 1;
}
.hero-copy p {
  margin: 12px 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 18.11px;
  font-weight: 200;
  line-height: 1.2;
}
.hero-content.page-shell { width: min(100% - 30px, 1297px); }
.search-widget-shell { width: min(850px, 100%); min-height: 40px; margin-top: 78px; }
.elloha-widget { width: 100%; min-width: 0; }
.search-widget-shell.elloha-widget { width: min(850px, 100%); }
.elloha-widget > [id^='elloha_'] { width: 100% !important; max-width: 100%; }
.elloha-widget iframe { display: block; width: 100% !important; max-width: 100% !important; border: 0; }
.search-widget-shell iframe { min-height: 40px; }

@media (max-width: 1120px) {
  .site-header { display: block; height: auto; }
  .header-topline { width: min(100% - 60px, 1297px); height: auto; min-height: 43px; align-items: center; margin-inline: auto; }
  .header-topline > span { margin-bottom: 0; }
  .header-main { width: min(100% - 60px, 1297px); margin: 0 auto; }
  .header-main { grid-template-columns: 230px minmax(0, 1fr) 155px; gap: 18px; }
  .brand img { width: 220px; }
  .primary-nav { gap: 16px; font-size: 11px; }
  html:not([lang='en']) .primary-nav { gap: 10px; font-size: 10.5px; }
  .hero-content { min-height: 580px; }
}
@media (max-width: 900px) {
  .hero { min-height: 0; }
  .header-topline { width: min(100% - 36px, 1297px); }
  .header-main { width: min(100% - 36px, 1297px); min-height: 92px; grid-template-columns: 1fr auto; }
  .brand img { width: 210px; }
  .primary-nav { display: none; }
  .reserve-button { display: none; }
  .language-switcher { display: none; }
  .hero-content { min-height: 590px; padding-block: 68px 58px; }
  .hero-copy h1 { font-size: clamp(45px, 11vw, 68px); }
  .desktop-break { display: none; }
}
@media (max-width: 560px) {
  .page-shell { width: min(100% - 30px, 1297px); }
  .header-topline { display: grid; min-height: 82px; place-items: center; align-content: center; gap: 8px; padding-block: 11px 9px; font-size: 10px; text-align: center; }
  .header-topline > span { line-height: 1.3; }
  .header-top-actions { gap: 0; }
  .socials { gap: 6px; }
  .socials a, .social-placeholder { width: 32px; height: 30px; }
  .header-main { grid-template-columns: minmax(0, 1fr) auto; justify-items: initial; gap: 12px; padding-block: 16px; }
  .brand img { width: min(210px, calc(100vw - 138px)); }
  .hero-content { min-height: 555px; justify-content: flex-end; padding-block: 52px 48px; }
  .hero-copy h1 { font-size: clamp(38px, 12vw, 52px); line-height: 1.02; }
  .hero-copy p { font-size: clamp(13px, 3.6vw, 14px); line-height: 1.35; }
  .search-widget-shell { margin-top: 28px; }
}

.section-anchor { scroll-margin-top: 20px; }
.section-kicker,
.eyebrow {
  margin: 0;
  color: var(--gold);
  font-size: 13.197px;
  font-weight: 400;
  text-transform: uppercase;
}
.section-kicker { padding-block: 100px 48px; text-align: center; }
.mobile-menu { display: none; }
.language-switcher { position: relative; flex: 0 0 auto; color: white; font-size: 11px; }
.language-switcher summary {
  display: flex;
  min-width: 62px;
  min-height: 31px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid rgba(201, 179, 129, 0.75);
  padding: 5px 8px;
  color: var(--gold-soft);
  cursor: pointer;
  list-style: none;
}
.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher summary img,
.language-option img { display: block; width: 24px; height: 18px; object-fit: cover; }
.language-chevron { margin-top: -4px; font-size: 14px; transition: transform 160ms ease; }
.language-switcher[open] .language-chevron { transform: rotate(180deg); }
.language-menu {
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: 126px;
  border: 1px solid rgba(201, 179, 129, 0.5);
  background: rgba(5, 8, 3, 0.98);
  box-shadow: 0 18px 40px rgba(0,0,0,0.34);
}
.language-option { display: flex; min-height: 38px; align-items: center; gap: 9px; padding: 7px 10px; border-bottom: 1px solid rgba(255,255,255,0.1); color: white; }
.language-option:last-child { border-bottom: 0; }
.language-option:hover,
.language-option:focus-visible,
.language-option.is-active { background: rgba(181, 142, 52, 0.16); }
.language-check { margin-left: auto; color: var(--gold-soft); }
.mobile-languages { display: none; }
html[lang='ru'] body { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
html[lang='zh-CN'] body { font-family: 'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', Arial, sans-serif; }
html:not([lang='en']) .primary-nav { gap: clamp(12px, 2vw, 26px); font-size: 13px; }
html[lang='ru'] .primary-nav,
html[lang='zh-CN'] .primary-nav { font-weight: 300; }
html:not([lang='en']) :is(.hero-copy h1, .intro-copy h2, .summary-copy h2, .cards-section h2, .experience-copy h3, .contact-copy h2) {
  overflow-wrap: anywhere;
  hyphens: auto;
}
.intro-aside svg,
.contact-icon svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; }
.social-placeholder { cursor: default; }

.estate-intro {
  display: grid;
  width: min(100% - 24px, 1297px);
  grid-template-columns: 376px 458px minmax(0, 1fr);
  align-items: start;
  gap: 30px;
  padding-block: 130px 48px;
}
.intro-copy h2 {
  margin: 50.5px 0 26px;
  font-size: 43px;
  font-weight: 200;
  line-height: 0.98;
}
.intro-copy > p:not(.eyebrow, .signature, .owner) {
  margin: 0 0 13px;
  color: #000;
  font-size: 16px;
  line-height: 1.2;
}
.signature {
  margin: 28px 0 5px;
}
.signature img { display: block; width: 129.5px; height: 36px; object-fit: contain; object-position: left center; }
.owner { margin: 0; font-size: 16px; line-height: 1.2; }
.owner span { color: var(--gold); }
.intro-image { display: block; width: 100%; height: auto; aspect-ratio: 0.665; object-fit: cover; }
.intro-aside {
  width: 322px;
  align-self: start;
  margin-left: 32px;
  padding-top: 288px;
}
.watch-tour {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: #565656;
  font-size: 16.896px;
  font-weight: 400;
}
.watch-tour span {
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  border: 1px solid #c5a13c;
  border-radius: 50%;
  color: #b99028;
  padding-left: 2px;
}
.watch-tour svg { width: 14px; height: 14px; fill: currentColor; stroke-width: 1.4; }
.intro-aside blockquote {
  margin: 35px 0 22px 5px;
  font-size: 21px;
  font-weight: 500;
  line-height: 1.3;
}
.intro-aside > p {
  margin: 0 0 0 5px;
  color: #000;
  font-size: 16px;
  font-weight: 200;
  line-height: 1.2;
}
.phone-link { display: inline-flex; align-items: center; gap: 15px; margin-top: 47px; color: #4b4b4b; font-size: 14.611px; line-height: 1; }
.phone-link .phone-icon { color: var(--gold); }
.phone-link .phone-icon svg { width: 30px; height: 30px; stroke-width: 1.6; }
.phone-link strong { color: #4b4b4b; font-size: 16.896px; font-weight: 400; }

.holiday-home { display: grid; grid-template-columns: 1fr; grid-auto-flow: row; }
.holiday-home > .section-kicker { grid-row: 1; padding-bottom: 17px; }
.holiday-home > img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; grid-column: 1; grid-row: 2; object-fit: cover; }
.stay-summary {
  position: relative;
  z-index: 1;
  display: grid;
  grid-column: 1;
  grid-row: 2;
  grid-template-columns: 44.45% minmax(0, 1fr);
  gap: 34px 80px;
  width: 100%;
  margin-top: calc(50vw - 130px);
  padding: 50px 58px 20px;
  background: linear-gradient(90deg, white 0 48.8%, transparent 48.8%);
}
.summary-copy { grid-row: span 2; }
.summary-copy h2 {
  margin: 20px 0 49px;
  font-size: 43px;
  font-weight: 200;
  line-height: 1.07;
  text-transform: uppercase;
}
.summary-copy > p:not(.eyebrow) { margin: 0 0 18px; color: #000; font-size: 16px; font-weight: 200; line-height: 19.2px; }
.summary-copy strong { color: #000; font-weight: 500; }
.metrics { display: grid; grid-template-columns: 38.4% 37.7% minmax(0, 1fr); align-items: start; padding-top: 148px; }
.metrics div { display: flex; flex-direction: column; gap: 3px; }
.metrics strong { color: var(--gold); font-size: 75.75px; font-weight: 400; line-height: 0.84; }
.metrics span { font-size: 20px; font-weight: 200; line-height: 1.2; white-space: nowrap; }
.property-request {
  align-self: end;
  color: var(--gold);
  font-size: 13.197px;
  text-transform: uppercase;
}
.property-request span { padding-left: 8px; }
.property-feature { display: grid; width: min(100% - 36px, 1297px); grid-template: 1fr / 1fr; margin-top: 32px; overflow: hidden; }
.stay-summary + .property-feature { margin-top: 6px; }
.property-feature > img { display: block; width: 100%; height: 478px; grid-area: 1 / 1; object-fit: cover; }
.property-label {
  z-index: 2;
  grid-area: 1 / 1;
  align-self: end;
  margin-bottom: 28px;
  padding: 15px 34px;
  background: rgba(10, 13, 7, 0.7);
  color: white;
  font-size: 36px;
  font-family: var(--font-fahkwang-italic), Arial, Helvetica, sans-serif;
  font-style: italic;
  font-weight: 300;
}
.property-label-left { justify-self: start; }
.property-label-right { justify-self: end; }
.feature-booking { z-index: 3; width: 420px; grid-area: 1 / 1; align-self: center; justify-self: start; }
.feature-booking-right { margin-left: 777px; }
.feature-booking-left { margin-left: 77px; }
.booking-widget { width: 100%; min-height: 225px; }
.feature-booking .booking-widget { min-height: 300px; }
.feature-booking .elloha-widget iframe { min-height: 300px; }
.stay-card .elloha-widget iframe { min-height: 225px; }

.cards-section { padding-bottom: 17px; text-align: center; }
.cards-section.page-shell { width: min(100% - 12px, 1297px); }
.cards-section > .section-kicker { padding: 140px 0 20px; }
.cards-section h2 {
  margin: 0;
  color: #171717;
  font-size: 31.244px;
  font-weight: 400;
  line-height: 1.4;
}
.section-lede { margin: 28px auto 64px; color: #000; font-size: 16px; font-weight: 400; line-height: 1.2; }
.stay-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; text-align: left; }
.room-carousel { display: flex; overflow: visible; scroll-snap-type: none; scrollbar-width: none; }
.room-carousel::-webkit-scrollbar { display: none; }
.room-carousel .stay-card { flex: 0 0 calc((100% - 68px) / 3); scroll-snap-align: start; }
.stay-card { display: flex; min-width: 0; flex-direction: column; }
.stay-card > img { display: block; width: 100%; height: auto; aspect-ratio: 1.075; object-fit: cover; }
.stay-card-copy { min-height: 150px; padding: 22px 12px 12px; }
.stay-card h3 { margin: 0 0 14px; font-size: 24px; font-weight: 200; line-height: 1.2; }
.stay-card p { margin: 0; color: #000; font-size: 16px; font-weight: 200; line-height: 1.2; }
.stay-card .booking-widget { margin-top: auto; }
.apartment-section { padding-bottom: 86px; }
.apartment-section > .section-kicker { padding: 156px 0 16px; }

.experiences { padding-top: 10px; }
.experience-hero { position: relative; }
.experience-hero img { display: block; width: 100%; height: 585px; object-fit: cover; }
.experience-hero::after { position: absolute; inset: 0; background: rgba(4, 12, 5, 0.16); content: ''; }
.experience-hero h2 {
  position: absolute;
  z-index: 1;
  top: 50px;
  right: 24px;
  left: 24px;
  margin: 0;
  color: white;
  font-size: 43px;
  font-weight: 400;
  text-align: center;
}
.experience-grid { display: grid; width: min(100% - 12px, 1297px); grid-template-columns: repeat(3, 1fr); grid-template-rows: minmax(420px, auto) 327px; gap: 30px; padding-block: 50px 123px; }
.experience-copy { padding: 8px 30px 0 0; }
.experience-copy h3 { margin: 30px 0 28px; color: #171717; font-size: 40px; font-weight: 400; line-height: 1.1; }
.experience-copy > p:not(.eyebrow) { margin: 0 0 33px; color: #000; font-size: 16px; font-weight: 200; line-height: 1.2; }
.experience-copy > a { display: inline-grid; min-height: 52px; place-items: center; border: 1px solid var(--gold); padding-inline: 26px; color: var(--gold); font-size: 16px; font-weight: 200; text-transform: uppercase; }
.experience-card { position: relative; min-height: 325px; overflow: hidden; }
.experience-card::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.56)); content: ''; }
.experience-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 450ms ease; }
.experience-card:hover img { transform: scale(1.035); }
.experience-card span { position: absolute; right: 25px; bottom: 24px; left: 25px; z-index: 1; color: white; font-size: 20px; font-weight: 400; line-height: 1.2; }

.contact .section-kicker { padding-top: 21px; padding-bottom: 34px; }
.map { display: block; width: 100%; height: 357px; border: 0; filter: grayscale(1) contrast(0.84); }
.contact-grid {
  display: grid;
  width: calc(100% - 78px);
  max-width: 1219px;
  grid-template-columns: 645px minmax(0, 1fr);
  gap: 16px;
  margin-right: 30px;
  margin-left: 48px;
  padding-block: 77px 80px;
}
.contact-copy { padding-left: 10px; }
.contact-copy h2 { margin: 18px 0 21px; font-size: 40px; font-weight: 400; }
.contact-copy > p:not(.eyebrow) { margin: 0; font-size: 16px; line-height: 1.2; }
.contact-copy address { display: flex; flex-direction: column; gap: 37px; margin-top: 56px; font-style: normal; }
.contact-copy address a { display: flex; align-items: center; gap: 20px; font-size: 20px; line-height: 1.2; }
.contact-copy address .contact-icon { display: grid; width: 30px; place-items: center; color: var(--gold); }
.contact-copy address .contact-icon svg { width: 28px; height: 28px; stroke-width: 1.35; }
.contact-copy address small { display: block; margin-bottom: 3px; color: #000; font-size: 16px; line-height: 1.2; }
.contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 10px;
  row-gap: 24px;
  align-self: start;
  padding-top: 0;
}
.contact-form label { display: block; line-height: 0; }
.contact-form label > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.contact-form input, .contact-form textarea {
  width: 100%;
  border: 1px solid #868686;
  border-radius: 0;
  background: white;
  height: 46px;
  padding: 11px 14px;
  color: #161616;
  font: inherit;
  font-size: 16px;
  outline: none;
}
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold); }
.message-field { grid-column: 1 / -1; }
.contact-form textarea { height: 242px; min-height: 242px; resize: vertical; }
.contact-form button {
  width: max-content;
  min-height: 37px;
  border: 0;
  background: #080808;
  padding-inline: 24px;
  color: white;
  font: inherit;
  font-size: 16px;
  cursor: pointer;
}
.contact-form button:disabled { cursor: wait; opacity: 0.7; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; }
.form-status { min-height: 20px; grid-column: 1 / -1; margin: 0; font-size: 13px; line-height: 1.4; }
.form-status-success { color: #2f6339; }
.form-status-error { color: #8e2f2f; }

.site-footer { background: #050505; padding: 33px 8px 15px; color: white; text-align: center; }
.site-footer > img { width: 260px; height: auto; margin-inline: auto; }
.site-footer nav {
  display: flex;
  width: 946px;
  justify-content: space-between;
  margin: 43px 0 45px 196px;
  font-size: 15px;
  font-weight: 200;
}
.footer-address { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; color: #b7b7b7; font-size: 13.598px; font-weight: 200; }
.footer-address span { height: 1px; background: rgba(255,255,255,0.58); }

@media (max-width: 1050px) {
  .estate-intro { grid-template-columns: 0.95fr 1fr; }
  .intro-aside { grid-column: 1 / -1; display: grid; width: auto; grid-template-columns: 0.65fr 1fr 1.3fr; align-items: center; gap: 30px; margin-left: 0; padding-top: 0; }
  .intro-aside blockquote, .intro-aside > p, .intro-aside .phone-link { margin: 0; }
  .holiday-home { display: block; }
  .stay-summary { grid-template-columns: minmax(0, 1fr); margin-top: 0; background: white; }
  .summary-copy { grid-row: auto; }
  .metrics { padding-top: 8px; }
  .feature-booking { width: 38%; }
  .feature-booking-right { justify-self: end; margin-right: 35px; margin-left: 0; }
  .feature-booking-left { margin-left: 35px; }
  .experience-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: auto; }
  .experience-copy { grid-row: auto; }
  .contact-grid { width: min(100% - 30px, 1297px); margin-inline: auto; }
  .site-footer nav { width: auto; justify-content: center; gap: clamp(26px, 5vw, 74px); margin: 45px 0 53px; }
}

@media (max-width: 900px) {
  .stay-card-grid,
  .room-carousel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 54px 24px;
    overflow: visible;
    padding: 0;
  }
  .room-carousel .stay-card { min-width: 0; }
  .stay-card-copy { min-height: 168px; }
  .stay-card .elloha-widget,
  .room-carousel .elloha-widget,
  .apartment-section .elloha-widget { width: 100%; min-width: 0; max-width: none; }
}

@media (max-width: 900px) {
  .search-widget-shell { margin-left: 0; }
  .mobile-menu { position: relative; display: block; justify-self: end; }
  .mobile-menu summary { display: grid; min-width: 92px; min-height: 48px; place-items: center; border: 1px solid var(--gold-soft); padding-inline: 18px; color: var(--gold-soft); cursor: pointer; list-style: none; text-transform: uppercase; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu-panel { position: absolute; z-index: 30; top: calc(100% + 12px); right: 0; display: grid; width: min(300px, calc(100vw - 30px)); background: rgba(5,8,3,0.98); box-shadow: 0 18px 40px rgba(0,0,0,0.3); }
  .mobile-menu nav { display: flex; flex-direction: column; }
  .mobile-menu nav a { min-height: 46px; padding: 14px 20px; border-bottom: 1px solid rgba(255,255,255,0.1); font-size: 12px; }
  .mobile-languages { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(201,179,129,0.55); padding: 8px; }
  .mobile-languages .language-option { min-height: 44px; font-size: 12px; }
  .estate-intro { grid-template-columns: 1fr 1fr; gap: 40px; padding-block: 90px 105px; }
  .intro-copy h2 { margin-top: 30px; }
  .intro-aside { width: auto; margin-left: 0; padding-top: 0; grid-template-columns: 1fr 1fr; }
  .intro-aside .phone-link { grid-column: 1 / -1; }
  .stay-summary { width: min(100% - 30px, 1297px); padding: 45px 32px; }
  .property-feature { display: grid; width: min(100% - 30px, 1297px); grid-template-columns: minmax(0, 1fr); overflow: visible; margin-bottom: 36px; }
  .property-feature > img { height: 330px; }
  .feature-booking { width: 100%; grid-area: 2 / 1; margin: 0; background: white; padding: 22px 0 0; }
  .property-label { position: relative; grid-area: 1 / 1; align-self: end; margin-bottom: 0; font-size: 24px; }
  .property-label-right { justify-self: end; }
  .experience-grid { grid-template-rows: auto; gap: 18px; }
  .contact-grid { width: min(100% - 30px, 1297px); grid-template-columns: 1fr; gap: 65px; }
  .contact-copy { padding-left: 0; }
  .site-footer nav { flex-wrap: wrap; }
}

@media (max-width: 650px) {
  .section-kicker { padding-block: 66px 32px; }
  .cards-section > .section-kicker,
  .apartment-section > .section-kicker { padding: 72px 0 30px; }
  .estate-intro { grid-template-columns: minmax(0, 1fr); gap: 34px; padding-block: 68px 80px; }
  .intro-copy h2 { font-size: clamp(34px, 10.5vw, 43px); line-height: 1.02; }
  .intro-copy > p:not(.eyebrow, .signature, .owner),
  .intro-aside > p { font-size: 15px; line-height: 1.35; }
  .intro-image { max-height: 640px; }
  .intro-aside { display: block; }
  .intro-aside blockquote { margin: 35px 0 20px; }
  .intro-aside > p { margin-bottom: 30px; }
  .stay-summary { grid-template-columns: minmax(0, 1fr); margin-top: 0; padding: 40px 22px; }
  .summary-copy h2 { margin: 18px 0 32px; font-size: clamp(33px, 10vw, 43px); }
  .summary-copy > p:not(.eyebrow) { font-size: 15px; line-height: 1.35; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 18px; padding-top: 14px; }
  .metrics strong { font-size: clamp(58px, 18vw, 72px); }
  .metrics span { font-size: clamp(15px, 4.3vw, 18px); white-space: normal; }
  .metrics div:last-child { grid-column: 1 / -1; }
  .property-request { font-size: 12px; line-height: 1.4; }
  .property-feature > img { height: 270px; }
  .holiday-home > img { height: clamp(270px, 75vw, 340px); }
  .property-label { max-width: calc(100% - 24px); padding: 12px 20px; font-size: 21px; }
  .stay-card-grid,
  .room-carousel { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr); gap: 62px; margin: 0; overflow: visible; padding: 0; }
  .stay-card { width: 100%; min-width: 0; }
  .stay-card-copy { min-height: 0; padding: 20px 4px 24px; }
  .stay-card h3 { font-size: clamp(22px, 6.2vw, 26px); }
  .stay-card p { font-size: 15px; line-height: 1.35; }
  .stay-card .booking-widget { min-height: 0; }
  .stay-card .elloha-widget > [id^='elloha_'],
  .stay-card .elloha-widget iframe { width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
  .cards-section { overflow: visible; text-align: center; }
  .cards-section h2 br, .section-lede br { display: none; }
  .cards-section h2 { font-size: clamp(25px, 7.4vw, 31.244px); line-height: 1.3; }
  .section-lede { margin: 22px auto 44px; font-size: 15px; line-height: 1.35; }
  .experience-hero img { height: clamp(330px, 110vw, 430px); }
  .experience-hero h2 { top: 48px; font-size: clamp(32px, 9vw, 43px); }
  .experience-grid { grid-template-columns: minmax(0, 1fr); padding-bottom: 85px; }
  .experience-copy { grid-row: auto; padding-right: 0; }
  .experience-copy h3 { font-size: clamp(32px, 9vw, 40px); }
  .experience-card { min-height: 310px; }
  .map { height: 340px; }
  .contact-grid { padding-block: 62px 80px; }
  .contact-copy h2 { font-size: clamp(33px, 9.5vw, 40px); line-height: 1.12; }
  .contact-copy > p:not(.eyebrow) { font-size: 15px; line-height: 1.35; }
  .contact-copy address a { align-items: flex-start; font-size: 17px; }
  .contact-form { grid-template-columns: 1fr; }
  .message-field { grid-column: auto; }
  .site-footer { padding-top: 45px; }
  .site-footer > img { width: 230px; }
  .site-footer nav { gap: 16px 28px; margin-block: 38px; font-size: 14px; }
  .footer-address { grid-template-columns: 1fr; gap: 14px; }
  .footer-address span { width: 100%; }
}

@media (max-width: 360px) {
  .header-topline { width: calc(100% - 24px); }
  .header-main { width: calc(100% - 24px); }
  .socials { gap: 3px; }
  .socials a, .social-placeholder { width: 30px; }
  .mobile-menu summary { min-width: 82px; padding-inline: 13px; }
  .hero-content.page-shell { width: calc(100% - 24px); }
  .stay-summary { width: calc(100% - 24px); padding-inline: 18px; }
  .metrics { gap: 24px 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero { background: #111 url('/assets/img/islemarie3-1600.webp') center / cover no-repeat; }
  .hero-video { display: none; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}
