:root {
  --v3-deep: #07150f;
  --v3-forest: #10291d;
  --v3-moss: #2d5c43;
  --v3-gold: #e7bd70;
  --v3-paper: #f4efe3;
}

html {
  scroll-padding-top: 84px;
}

.hero-v3 {
  min-height: 100svh;
  background: var(--v3-deep);
}

.hero-v3 .hero__poster img {
  object-position: 48% center;
  filter: saturate(.94) contrast(1.04);
  transform: scale(1.015);
}

.hero-v3 .hero__veil {
  background:
    linear-gradient(90deg, rgba(4, 14, 9, .92) 0%, rgba(4, 14, 9, .76) 40%, rgba(4, 14, 9, .22) 71%),
    linear-gradient(180deg, rgba(3, 12, 8, .2) 0%, transparent 34%, rgba(3, 12, 8, .88) 100%);
}

.hero-v3 .hero__content {
  width: min(660px, calc(100% - 48px));
}

.hero-v3 h1 {
  font-size: clamp(4rem, 7.5vw, 8rem);
}

.hero-v3__media {
  position: absolute;
  z-index: 1;
  top: clamp(112px, 15vh, 156px);
  right: clamp(26px, 5vw, 92px);
  width: min(43vw, 670px);
  height: min(69vh, 720px);
  pointer-events: none;
}

.hero-v3__spa-card {
  position: absolute;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 248, 232, .2);
  background: #0b2016;
  box-shadow: 0 32px 90px rgba(0, 0, 0, .38);
}

.hero-v3__spa-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(4, 14, 9, .72));
}

.hero-v3__spa-card img,
.hero-v3__spa-card video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.hero-v3__spa-card figcaption {
  position: absolute;
  z-index: 2;
  right: 18px;
  bottom: 16px;
  left: 18px;
  color: rgba(255, 248, 232, .9);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hero-v3__spa-card--day {
  top: 0;
  right: 0;
  width: 76%;
  height: 60%;
  transform: rotate(1.6deg);
}

.hero-v3__spa-card--dusk {
  bottom: 0;
  left: 0;
  width: 58%;
  height: 51%;
  transform: rotate(-2.2deg);
}

.reel-panel--garden img { object-position: center 56%; }
.reel-panel--spa img { object-position: center; }
.reel-panel--dusk img { object-position: center; }
.reel-panel--night img { object-position: center; }

.august-availability {
  position: relative;
  padding: clamp(110px, 12vw, 180px) clamp(22px, 6vw, 96px);
  color: #14231b;
  background:
    radial-gradient(circle at 94% 7%, rgba(231, 189, 112, .22), transparent 25%),
    linear-gradient(180deg, #f7f1e7, #ece5d8);
  overflow: hidden;
}

.august-availability::before {
  content: "AOÛT";
  position: absolute;
  top: 26px;
  right: -1vw;
  color: rgba(16, 41, 29, .05);
  font: 400 clamp(7rem, 18vw, 19rem)/1 Georgia, serif;
  letter-spacing: -.08em;
}

.august-availability__heading {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin: 0 auto 64px;
}

.august-availability h2,
.spa-story h2 {
  margin: 0;
  font: 400 clamp(3rem, 6vw, 7rem)/.94 Georgia, serif;
  letter-spacing: -.045em;
}

.august-availability h2 em {
  color: #795a28;
  font-weight: 400;
}

.august-availability__heading > p:not(.eyebrow) {
  max-width: 68ch;
  margin: 28px 0 0 auto;
  color: #54635a;
  line-height: 1.7;
}

.availability-gate {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  gap: 10px 14px;
  margin-top: 34px;
  padding: 18px 22px;
  border: 1px solid rgba(121, 90, 40, .22);
  background: rgba(255, 255, 255, .65);
  box-shadow: 0 18px 44px rgba(22, 38, 29, .08);
}

.availability-gate__dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #9b6d1f;
  box-shadow: 0 0 0 5px rgba(155, 109, 31, .13);
}

.availability-gate strong {
  color: #6a4912;
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.availability-gate > span:last-child {
  color: #56635b;
  font-size: .88rem;
}

.availability-gate.is-fresh .availability-gate__dot {
  background: #2f7c4d;
  box-shadow: 0 0 0 5px rgba(47, 124, 77, .13);
}

.cottage-gallery {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 22px;
  max-width: 1500px;
  margin: 0 auto;
}

.cottage-card {
  grid-column: span 4;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(16, 41, 29, .13);
  border-radius: 3px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 24px 70px rgba(18, 35, 26, .12);
  transition: transform .35s ease, box-shadow .35s ease;
}

.cottage-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 32px 82px rgba(18, 35, 26, .18);
}

.cottage-card img {
  width: 100%;
  height: clamp(240px, 25vw, 390px);
  display: block;
  object-fit: cover;
  background: #d7ddd7;
}

.cottage-card picture {
  display: block;
  overflow: hidden;
  background: #d7ddd7;
}

.cottage-card:nth-child(1) img,
.cottage-card:nth-child(5) img,
.cottage-card:nth-child(8) img { object-position: center 58%; }

.cottage-card__body {
  padding: 22px 22px 24px;
}

.cottage-card__kicker {
  margin: 0 0 7px;
  color: #80622f;
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.cottage-card h3 {
  margin: 0;
  color: #13231b;
  font: 400 clamp(1.55rem, 2.2vw, 2.25rem)/1.02 Georgia, serif;
  letter-spacing: -.025em;
}

.cottage-card h3 small {
  display: block;
  margin-top: 7px;
  color: #6b766f;
  font: 750 .68rem/1.2 Arial, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cottage-card__media-note {
  margin: 10px 0 0;
  color: #68726c;
  font-size: .72rem;
  font-style: italic;
  line-height: 1.35;
}

.cottage-card__status {
  position: relative;
  margin: 18px 0 0;
  padding: 12px 14px 12px 34px;
  color: #684b1c;
  border: 1px solid rgba(139, 96, 30, .18);
  background: rgba(231, 189, 112, .14);
  font-size: .79rem;
  font-weight: 720;
  line-height: 1.35;
}

.cottage-card__status::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 14px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #a87524;
  transform: translateY(-50%);
}

.cottage-card[data-availability-status="FULL"] .cottage-card__status {
  color: #71362e;
  background: rgba(151, 63, 48, .1);
  border-color: rgba(151, 63, 48, .2);
}

.cottage-card[data-availability-status="FULL"] .cottage-card__status::before {
  background: #973f30;
}

.cottage-card[data-availability-status="AVAILABLE"] .cottage-card__status {
  color: #1d653d;
  background: rgba(45, 124, 77, .1);
  border-color: rgba(45, 124, 77, .2);
}

.cottage-card[data-availability-status="OWNER_CONFIRMED_AVAILABLE"] .cottage-card__status {
  color: #1d653d;
  background: rgba(45, 124, 77, .1);
  border-color: rgba(45, 124, 77, .2);
}

.cottage-card[data-availability-status="AVAILABLE"] .cottage-card__status::before {
  background: #2d7c4d;
}

.cottage-card[data-availability-status="OWNER_CONFIRMED_AVAILABLE"] .cottage-card__status::before {
  background: #2d7c4d;
}

.cottage-card__dates {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.cottage-card__dates li {
  padding: 7px 9px;
  color: #173d29;
  border: 1px solid rgba(45, 124, 77, .22);
  background: rgba(45, 124, 77, .08);
  font-size: .72rem;
  font-weight: 800;
}

.august-availability__notice {
  max-width: 930px;
  margin: 38px auto 0;
  color: #59675f;
  text-align: center;
  line-height: 1.65;
}

.spa-story {
  position: relative;
  min-height: 980px;
  display: grid;
  grid-template-columns: minmax(310px, .74fr) minmax(560px, 1.26fr);
  align-items: center;
  gap: clamp(44px, 7vw, 110px);
  padding: clamp(100px, 10vw, 160px) clamp(24px, 7vw, 110px);
  color: #f6f1e7;
  background:
    radial-gradient(circle at 18% 25%, rgba(71, 123, 88, .3), transparent 32%),
    linear-gradient(135deg, #10291d, #06120d 65%);
  overflow: hidden;
}

.spa-story h2 em {
  color: var(--v3-gold);
  font-weight: 400;
}

.spa-story__copy > p:not(.eyebrow) {
  max-width: 50ch;
  margin: 28px 0 0;
  color: rgba(246, 241, 231, .74);
  line-height: 1.75;
}

.spa-story__media {
  position: relative;
  min-height: 700px;
}

.spa-story__film {
  position: absolute;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(246, 241, 231, .15);
  background: #06120d;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .38);
}

.spa-story__film video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.spa-story__film figcaption {
  position: absolute;
  right: 16px;
  bottom: 15px;
  left: 16px;
  padding: 8px 10px;
  color: #fff8e8;
  background: rgba(5, 18, 12, .62);
  backdrop-filter: blur(8px);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.spa-story__film--wide {
  top: 0;
  left: 0;
  width: 74%;
  height: 52%;
  transform: rotate(-1.4deg);
}

.spa-story__film--portrait {
  top: 16%;
  right: 0;
  width: 39%;
  height: 62%;
  transform: rotate(1.8deg);
}

.spa-story__night {
  position: absolute;
  right: 8%;
  bottom: 0;
  width: 72%;
  height: 36%;
  object-fit: cover;
  border: 1px solid rgba(246, 241, 231, .15);
  box-shadow: 0 30px 90px rgba(0, 0, 0, .4);
  transform: rotate(-.6deg);
}

@media (max-width: 1120px) {
  .hero-v3__media {
    right: 28px;
    width: 44vw;
    opacity: .84;
  }

  .hero-v3 .hero__content {
    width: min(610px, calc(100% - 48px));
  }

  .cottage-card { grid-column: span 6; }

  .spa-story {
    grid-template-columns: 1fr;
  }

  .spa-story__copy { max-width: 760px; }
  .spa-story__media { width: min(900px, 100%); margin: 0 auto; }
}

@media (max-width: 720px) {
  html { scroll-padding-top: 68px; }

  .hero-v3 {
    min-height: 980px;
    align-items: end;
  }

  .hero-v3 .hero__poster img {
    object-position: 48% top;
  }

  .hero-v3 .hero__veil {
    background:
      linear-gradient(180deg, rgba(4, 14, 9, .14), rgba(4, 14, 9, .34) 40%, rgba(4, 14, 9, .96) 76%),
      linear-gradient(90deg, rgba(4, 14, 9, .36), rgba(4, 14, 9, .04));
  }

  .hero-v3__media {
    top: 94px;
    right: 14px;
    left: 14px;
    width: auto;
    height: 430px;
  }

  .hero-v3__spa-card--day {
    width: 82%;
    height: 67%;
  }

  .hero-v3__spa-card--dusk {
    width: 61%;
    height: 48%;
  }

  .hero-v3 .hero__content {
    width: calc(100% - 40px);
    margin: 0 20px 142px;
  }

  .hero-v3 h1 {
    max-width: 11ch;
    font-size: clamp(3.5rem, 17vw, 5.1rem);
  }

  .hero-v3 .hero__lead {
    margin-top: 24px;
    font-size: .97rem;
  }

  .hero-v3 .hero__actions {
    align-items: flex-start;
    gap: 14px;
  }

  .hero-v3 .hero__trust {
    max-width: 100%;
    flex-wrap: wrap;
  }

  .availability-gate {
    grid-template-columns: auto 1fr;
  }

  .availability-gate > span:last-child {
    grid-column: 1 / -1;
  }

  .cottage-gallery {
    display: flex;
    gap: 14px;
    margin-right: -22px;
    padding-right: 22px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
  }

  .cottage-card {
    flex: 0 0 min(84vw, 390px);
    scroll-snap-align: start;
  }

  .cottage-card img {
    height: 315px;
  }

  .spa-story {
    min-height: auto;
    display: block;
    padding: 104px 20px 84px;
  }

  .spa-story__media {
    min-height: 670px;
    margin-top: 58px;
  }

  .spa-story__film--wide {
    width: 82%;
    height: 38%;
  }

  .spa-story__film--portrait {
    top: 24%;
    width: 48%;
    height: 49%;
  }

  .spa-story__night {
    right: 4%;
    width: 82%;
    height: 31%;
  }
}

@media (max-width: 470px) {
  .hero-v3 {
    min-height: 1020px;
  }

  .hero-v3__media {
    height: 390px;
  }

  .hero-v3 .hero__actions {
    display: grid;
  }

  .cottage-card {
    flex-basis: 88vw;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-v3__spa-card,
  .spa-story__film,
  .spa-story__night {
    transform: none;
  }

  .cottage-card {
    transition: none;
  }

  .cottage-card:hover {
    transform: none;
  }
}
