.stays-hero { position: relative; min-height: 82svh; display: grid; align-items: end; padding: clamp(78px, 8vw, 120px) clamp(20px, 8vw, 130px); overflow: hidden; color: #fff; isolation: isolate; }
.stays-hero > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.stays-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5,24,18,.76), rgba(5,24,18,.28) 67%, rgba(5,24,18,.08)), linear-gradient(0deg, rgba(4,18,14,.56), transparent 63%); }
.stays-hero__copy { max-width: 720px; }.stays-hero .eyebrow { font-size: 12px; letter-spacing: .16em; }.stays-hero h1 { margin: 0; font: 500 clamp(62px, 7.9vw, 125px)/.87 var(--serif); letter-spacing: -.055em; }.stays-hero__copy > p:last-child { max-width: 420px; margin: 24px 0 0; font-size: 17px; line-height: 1.5; text-wrap: pretty; }

.stay-choice { padding: clamp(72px, 8vw, 118px) clamp(20px, 8vw, 130px) clamp(76px, 8vw, 118px); background: var(--paper); }.stay-choice h2, .stay-chapter h2 { margin: 0; font: 500 clamp(55px, 6.7vw, 102px)/.9 var(--serif); letter-spacing: -.05em; }.stay-choice__heading { max-width: 765px; }.stay-choice__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 2vw, 28px); margin-top: clamp(38px, 4.5vw, 62px); }.stay-choice__card { overflow: hidden; background: #e9e2d6; }.stay-choice__card img { display: block; width: 100%; aspect-ratio: 1.13 / 1; object-fit: cover; object-position: center; }.stay-choice__card:first-child img { object-position: 50% 58%; }.stay-choice__card > div { padding: clamp(27px, 3.5vw, 46px); }.stay-choice__card h3 { margin: 0; font: 500 clamp(40px, 4.2vw, 66px)/.9 var(--serif); letter-spacing: -.045em; }.stay-choice__card > div > p:last-child { max-width: 390px; margin: 18px 0 0; color: #466157; font-size: 14px; line-height: 1.65; }.stay-choice__rate { display: block; margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(24,51,44,.18); color: #244b40; font: 600 10px/1.4 var(--sans); letter-spacing: .09em; text-transform: uppercase; }.stay-choice__booking { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr); gap: clamp(28px, 5vw, 82px); align-items: end; margin-top: clamp(14px, 2vw, 28px); padding: clamp(30px, 4vw, 50px) 0 0; border-top: 1px solid rgba(24,51,44,.22); }.stay-choice__booking > div > p:last-child { max-width: 340px; margin: 0; color: #466157; font-size: 13px; line-height: 1.55; }.stay-choice__booking .availability-bar { position: static; left: auto; bottom: auto; width: 100%; box-shadow: none; }

.villa-list { padding: 0 clamp(20px, 6vw, 110px) clamp(110px, 12vw, 175px); background: var(--paper); }.villa-profile { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(370px, .85fr); gap: clamp(34px, 6vw, 95px); padding: clamp(58px, 8vw, 105px) 0; border-top: 1px solid rgba(24,51,44,.22); }.villa-profile--bougan { grid-template-columns: minmax(370px, .85fr) minmax(0, 1.15fr); }.villa-profile--bougan .villa-gallery { order: 2; }.villa-gallery { min-width: 0; }.villa-gallery__main { display: block; width: 100%; height: min(43vw, 620px); min-height: 440px; object-fit: cover; object-position: 55% 50%; background: #d5d4ca; }.villa-profile--bougan .villa-gallery__main { object-position: 50% 50%; }.villa-gallery__thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; margin-top: 8px; }.villa-gallery__thumbs button { height: 78px; padding: 0; overflow: hidden; border: 1px solid transparent; background: #d3d1c8; opacity: .67; transition: opacity .2s, border-color .2s; }.villa-gallery__thumbs button.is-selected { border-color: var(--forest); opacity: 1; }.villa-gallery__thumbs img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 50%; }.villa-profile__content { align-self: start; max-width: 510px; }.villa-profile__headline { display: grid; gap: 21px; padding-bottom: 25px; border-bottom: 1px solid rgba(24,51,44,.18); }.villa-profile h2 { margin: 0; font: 500 clamp(48px, 4.7vw, 73px)/.9 var(--serif); letter-spacing: -.05em; }.from-price { margin: 0; color: #35564b; font-size: 13px; }.from-price strong { display: block; margin-bottom: 4px; color: var(--forest); font: 500 30px/1 var(--serif); letter-spacing: -.02em; }.from-price span { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }.villa-profile__summary { margin: 25px 0; font-size: 15px; line-height: 1.65; }.villa-profile .stay-specs { margin-bottom: 22px; }.villa-profile .stay-specs div { grid-template-columns: 116px 1fr; }.amenity-list { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 24px; }.amenity-list span { padding: 7px 9px; border: 1px solid rgba(24,51,44,.22); color: #3c5f53; font-size: 10px; line-height: 1; }.rate-row { margin: 0 0 27px; padding: 15px 0; border-top: 1px solid rgba(24,51,44,.2); border-bottom: 1px solid rgba(24,51,44,.2); }.rate-row span { display: block; margin-bottom: 6px; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.rate-row p { margin: 0; color: #39594e; font-size: 12px; line-height: 1.55; }

.stay-essentials { padding: clamp(90px, 11vw, 145px) clamp(20px, 8vw, 130px); background: #f8f5ef; }.stay-essentials h2 { margin: 0; max-width: 720px; font: 500 clamp(52px, 5.8vw, 88px)/.9 var(--serif); letter-spacing: -.05em; }.stay-essentials > p { max-width: 520px; margin: 25px 0 0; font-size: 14px; line-height: 1.65; }.stay-essentials dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; max-width: 1000px; margin: 48px 0 0; }.stay-essentials dl div { padding: 19px 25px 19px 0; border-top: 1px solid rgba(24,51,44,.2); }.stay-essentials dt { margin-bottom: 8px; font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }.stay-essentials dd { max-width: 230px; margin: 0; color: #456358; font-size: 13px; line-height: 1.55; }

.stay-chapter { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); min-height: 840px; background: #e8dfd0; }.stay-chapter--bougan { grid-template-columns: minmax(340px, .9fr) minmax(0, 1.1fr); background: #eef0e8; }.stay-chapter__image { min-height: 100%; overflow: hidden; }.stay-chapter__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }.stay-chapter--zen .stay-chapter__image img { object-position: 58% 50%; }.stay-chapter--bougan .stay-chapter__image { order: 2; }.stay-chapter__content { align-self: center; max-width: 570px; padding: clamp(65px, 8vw, 135px); }.stay-chapter h2 { margin-bottom: 25px; font-size: clamp(58px, 5.4vw, 84px); }.stay-chapter__summary { max-width: 405px; margin: 0 0 36px; font-size: 15px; line-height: 1.7; }.stay-specs { display: grid; margin: 0 0 32px; }.stay-specs div { display: grid; grid-template-columns: 122px 1fr; gap: 10px; padding: 13px 0; border-top: 1px solid rgba(24,51,44,.18); }.stay-specs div:last-child { border-bottom: 1px solid rgba(24,51,44,.18); }.stay-specs dt { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.stay-specs dd { margin: 0; font-size: 13px; line-height: 1.45; color: #4c665c; }.text-action { padding: 0 0 5px; border: 0; border-bottom: 1px solid var(--forest); background: none; color: var(--forest); font: 700 11px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }

.stay-detail { display: grid; grid-template-columns: 1.2fr .8fr; min-height: 580px; background: var(--paper); }.stay-detail img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 50%; }.stay-detail--zen img { object-position: 50% 56%; }.stay-detail--bougan { grid-template-columns: .8fr 1.2fr; background: #123d34; color: #f7f4ed; }.stay-detail--bougan img { order: 2; object-position: 50% 50%; }.stay-detail__note { align-self: center; max-width: 390px; padding: clamp(50px, 8vw, 125px); }.stay-detail__note > p:last-child { margin: 0; font: 500 clamp(40px, 4.3vw, 66px)/.94 var(--serif); letter-spacing: -.04em; }.stay-detail--bougan .eyebrow { color: #c8d4c6; }


@media (max-width: 700px), (max-aspect-ratio: 3/4) {
  .stays-hero { min-height: 92svh; padding: 82px 20px 68px; }.stays-hero > img { object-position: 55% 50%; }.stays-hero__shade { background: linear-gradient(0deg, rgba(4,18,14,.78), rgba(4,18,14,.2) 69%, rgba(4,18,14,.08)); }.stays-hero .eyebrow { font-size: 11px; letter-spacing: .15em; }.stays-hero h1 { font-size: clamp(59px, 16vw, 78px); }.stays-hero__copy > p:last-child { margin-top: 17px; font-size: 16px; line-height: 1.5; text-wrap: pretty; }
  .stay-choice { padding: 88px 20px 76px; }.stay-choice h2, .stay-chapter h2 { font-size: clamp(47px, 13vw, 61px); }.stay-choice__cards { grid-template-columns: 1fr; gap: 12px; margin-top: 40px; }.stay-choice__card img { aspect-ratio: 1.16 / 1; }.stay-choice__card:first-child img { object-position: 50% 61%; }.stay-choice__card > div { padding: 30px 24px 32px; }.stay-choice__card h3 { font-size: clamp(43px, 12vw, 58px); }.stay-choice__card > div > p:last-child { margin-top: 14px; font-size: 13px; }.stay-choice__booking { grid-template-columns: 1fr; gap: 18px; margin-top: 12px; padding-top: 30px; }.stay-choice__booking .availability-bar { display: grid; grid-template-columns: 1fr; width: 100%; background: rgba(247,244,237,.96); }.stay-choice__booking .availability-bar label { min-height: 67px; padding: 12px 16px; border-right: 0; border-bottom: 1px solid #dfd1c0; }.stay-choice__booking .availability-bar button { min-height: 51px; margin: 10px; }
  .villa-list { padding: 0 20px 75px; }.villa-profile, .villa-profile--bougan { display: flex; flex-direction: column; gap: 34px; padding: 64px 0; }.villa-profile--bougan .villa-gallery { order: 0; }.villa-gallery__main { height: 105vw; min-height: 0; max-height: 590px; }.villa-gallery__thumbs { gap: 5px; margin-top: 6px; }.villa-gallery__thumbs button { height: 59px; }.villa-profile h2 { font-size: clamp(47px, 13vw, 62px); }.villa-profile__headline { gap: 17px; padding-bottom: 20px; }.villa-profile__summary { margin: 20px 0; font-size: 14px; }.villa-profile .stay-specs div { grid-template-columns: 96px 1fr; }.villa-profile .stay-specs dd { font-size: 12px; }.from-price strong { font-size: 29px; }.amenity-list { gap: 6px; }.amenity-list span { padding: 7px 8px; font-size: 9px; }.rate-row p { font-size: 11px; }
  .stay-essentials { padding: 76px 20px; }.stay-essentials h2 { font-size: clamp(47px, 13vw, 61px); }.stay-essentials > p { margin-top: 19px; font-size: 13px; }.stay-essentials dl { grid-template-columns: 1fr; margin-top: 34px; }.stay-essentials dl div { padding: 16px 0; }
  .stay-chapter, .stay-chapter--bougan { display: flex; flex-direction: column; min-height: 0; }.stay-chapter__image, .stay-chapter--bougan .stay-chapter__image { order: 0; min-height: 111vw; max-height: 620px; }.stay-chapter--zen .stay-chapter__image img { object-position: 61% 50%; }.stay-chapter--bougan .stay-chapter__image img { object-position: 57% 50%; }.stay-chapter__content { max-width: none; padding: 72px 20px 76px; }.stay-chapter h2 { margin-bottom: 18px; }.stay-chapter__summary { margin-bottom: 27px; font-size: 14px; }.stay-specs div { grid-template-columns: 96px 1fr; }.stay-specs dd { font-size: 12px; }
  .stay-detail, .stay-detail--bougan { display: flex; flex-direction: column; min-height: 0; }.stay-detail img, .stay-detail--bougan img { order: 0; min-height: 108vw; max-height: 580px; }.stay-detail--bougan img { object-position: 58% 50%; }.stay-detail__note { max-width: none; padding: 59px 20px 63px; }.stay-detail__note > p:last-child { font-size: 49px; }
}

.villa-list { padding-bottom: clamp(28px, 4vw, 54px); }
.villa-list + .stay-essentials { padding-top: clamp(62px, 7vw, 92px); }
.villa-mobility-note { display: grid; grid-template-columns: minmax(190px, .9fr) minmax(260px, 1.6fr) auto; gap: 18px 32px; align-items: center; margin: -18px auto 0; padding: 25px 30px; max-width: 1160px; border: 1px solid rgba(27, 66, 54, .18); border-radius: 4px; color: #1b4236; background: #f5f7ef; font-size: 14px; line-height: 1.55; }
.villa-mobility-note strong { font-family: Georgia, serif; font-size: 20px; line-height: 1.2; }
.villa-mobility-note span { color: #53695f; }
.villa-mobility-note a { justify-self: end; color: #1b4236; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 4px; white-space: nowrap; }
@media (max-width: 760px) { .villa-list { padding-bottom: 34px; }.villa-list + .stay-essentials { padding-top: 58px; }.villa-mobility-note { grid-template-columns: 1fr; gap: 8px; margin: -30px 20px 0; padding: 22px 20px; }.villa-mobility-note strong { font-size: 18px; }.villa-mobility-note a { justify-self: start; margin-top: 4px; } }
