html { scroll-behavior: smooth; }
body::before { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 9999; opacity: .022; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }
.hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 2; background: radial-gradient(circle at 67% 44%, transparent 0 24%, rgba(8,16,13,.15) 72%), linear-gradient(180deg, rgba(6,15,12,.16), transparent 42%, rgba(4,12,10,.32)); }
.hero-content, .discover-link, .hero-pagination { z-index: 3; }
.hero-image { transform: scale(1.07); transition: opacity 1.8s cubic-bezier(.22,1,.36,1), transform 9s cubic-bezier(.2,.65,.25,1); }
.hero-image.is-active { transform: scale(1); }
.hero-content h1 span { display: block; opacity: 0; transform: translateY(30px); animation: premium-title 1.1s cubic-bezier(.16,1,.3,1) forwards; }
.hero-content h1 span:nth-child(2) { animation-delay: .14s; }
.hero-content .eyebrow, .hero-facts, .hero-actions { opacity: 0; animation: premium-fade .9s ease forwards; }
.hero-content .eyebrow { animation-delay: .15s; }.hero-facts { animation-delay: .48s; }.hero-actions { animation-delay: .68s; }
@keyframes premium-title { to { opacity: 1; transform: none; } }
@keyframes premium-fade { to { opacity: 1; } }
.premium-reveal { opacity: 0; transform: translate3d(0,36px,0); transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
.premium-reveal.is-visible { opacity: 1; transform: none; }
.stat:nth-child(2), .gallery-tile:nth-child(2), .amenity:nth-child(2) { transition-delay: .08s; }
.stat:nth-child(3), .gallery-tile:nth-child(3), .amenity:nth-child(3) { transition-delay: .16s; }
.stat:nth-child(4), .gallery-tile:nth-child(4), .amenity:nth-child(4) { transition-delay: .24s; }
.gallery-tile, .intro-photo, .feature-photo { overflow: hidden; }
.gallery-tile img, .intro-photo img, .feature-photo img { transition: transform 1.2s cubic-bezier(.16,1,.3,1), filter .7s ease; }
.gallery-tile:hover img, .intro-photo:hover img, .feature-photo:hover img { transform: scale(1.045); filter: saturate(1.06) contrast(1.02); }
.button, .language-switcher button, .mobile-languages button { position: relative; overflow: hidden; transition: transform .35s cubic-bezier(.16,1,.3,1), background-color .35s ease, color .35s ease, border-color .35s ease; }
.button:hover { transform: translateY(-3px); }
.button::after { content: ''; position: absolute; top: -100%; left: -45%; width: 34%; height: 300%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.23), transparent); transform: rotate(20deg); transition: left .75s ease; }
.button:hover::after { left: 125%; }
.premium-lightbox { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; visibility: hidden; opacity: 0; background: rgba(5,12,10,.96); backdrop-filter: blur(18px); transition: opacity .45s ease, visibility .45s; }
.premium-lightbox.is-open { visibility: visible; opacity: 1; }
.premium-lightbox figure { margin: 0; width: min(88vw, 1450px); height: min(84vh, 940px); display: grid; place-items: center; position: relative; }
.premium-lightbox img { width: 100%; height: 100%; object-fit: contain; opacity: 0; transform: scale(.975); animation: lightbox-in .5s ease forwards; }
.premium-lightbox figcaption { position: absolute; bottom: -34px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.72); letter-spacing: .18em; font-size: .75rem; }
.premium-lightbox button { position: absolute; z-index: 2; border: 1px solid rgba(255,255,255,.28); color: white; background: rgba(255,255,255,.06); backdrop-filter: blur(9px); cursor: pointer; transition: background .3s ease, transform .3s ease; }
.premium-lightbox button:hover { background: rgba(255,255,255,.15); transform: scale(1.05); }
.premium-lightbox-close { top: 28px; right: 28px; width: 48px; height: 48px; border-radius: 50%; font-size: 2rem; font-weight: 200; line-height: 1; }
.premium-lightbox-arrow { top: 50%; width: 54px; height: 70px; transform: translateY(-50%); font-size: 2.5rem; font-weight: 200; }
.premium-lightbox-arrow:hover { transform: translateY(-50%) scale(1.05) !important; }
.premium-lightbox-arrow.previous { left: 25px; }.premium-lightbox-arrow.next { right: 25px; }
@keyframes lightbox-in { to { opacity: 1; transform: none; } }
body.lightbox-open { overflow: hidden; }
@media (max-width: 760px) { .premium-lightbox figure { width: 100vw; height: 78vh; }.premium-lightbox-arrow { width: 44px; height: 58px; }.premium-lightbox-arrow.previous { left: 8px; }.premium-lightbox-arrow.next { right: 8px; }.premium-lightbox-close { top: 16px; right: 16px; }.premium-reveal { transform: translate3d(0,22px,0); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.hero-image, .premium-reveal, .gallery-tile img, .intro-photo img, .feature-photo img, .button { animation: none !important; transition-duration: .01ms !important; }.premium-reveal, .hero-content h1 span, .hero-content .eyebrow, .hero-facts, .hero-actions { opacity: 1; transform: none; } }

/* V1.5 — cinematic YouTube tour. */
.video-section {
  position: relative;
  overflow: hidden;
  padding: clamp(105px, 12vw, 190px) 0;
  background:
    radial-gradient(circle at 82% 15%, rgba(215, 168, 77, .16), transparent 31%),
    linear-gradient(145deg, #111813 0%, #17221c 48%, #0b110e 100%);
  color: #fff;
}
.video-section::before {
  content: "";
  position: absolute;
  inset: 34px;
  border: 1px solid rgba(239, 201, 116, .2);
  pointer-events: none;
}
.video-section-glow {
  position: absolute;
  top: -46%;
  right: -18%;
  width: min(64vw, 940px);
  height: min(64vw, 940px);
  border-radius: 50%;
  background: rgba(215, 168, 77, .08);
  filter: blur(80px);
  pointer-events: none;
}
.video-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(250px, .42fr) minmax(620px, 1.58fr);
  gap: clamp(48px, 7vw, 118px);
  align-items: center;
}
.video-heading h2 {
  margin: 20px 0 28px;
  font-family: var(--serif);
  font-size: clamp(52px, 5.6vw, 88px);
  font-weight: 430;
  line-height: .92;
  letter-spacing: -.035em;
}
.video-heading h2 span { display: block; }
.video-heading > p:last-of-type {
  max-width: 430px;
  margin: 0;
  color: rgba(255, 255, 255, .68);
  font-size: 16px;
  line-height: 1.8;
}
.video-external-link {
  width: fit-content;
  margin-top: 38px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(239, 201, 116, .58);
  color: var(--sand-light);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: gap .24s ease, color .24s ease;
}
.video-external-link:hover,
.video-external-link:focus-visible { gap: 20px; color: #fff; }
.video-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(239, 201, 116, .45);
  background: #050806;
  box-shadow: 0 44px 110px rgba(0, 0, 0, .46), 0 0 0 10px rgba(255, 255, 255, .018);
}
.video-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .12);
  pointer-events: none;
}
.video-frame iframe { width: 100%; height: 100%; display: block; border: 0; }
@media (max-width: 1120px) {
  .video-layout { grid-template-columns: 1fr; }
  .video-heading { max-width: 720px; }
}
@media (max-width: 820px) {
  .video-section::before { inset: 16px; }
  .video-layout { gap: 38px; }
}
@media (max-width: 540px) {
  .video-section { padding: 92px 0; }
  .video-section::before { inset: 9px; }
  .video-heading h2 { font-size: clamp(48px, 15vw, 68px); }
  .gallery-tile-2 img { object-position: 62% center; }
}

/* V1.3 — reliable languages and a more editorial apartment introduction. */
.language-switcher a {
  border: 0;
  padding: 8px 4px;
  background: transparent;
  color: rgba(255,255,255,.62);
  cursor: pointer;
  font: 500 13px/1 var(--sans);
  letter-spacing: .08em;
}
.language-switcher a:not(:last-child)::after {
  content: " /";
  padding-left: 7px;
  color: rgba(255,255,255,.38);
}
.language-switcher a.active { color: var(--sand-light); }
.intro-copy {
  grid-template-columns: minmax(270px,.58fr) minmax(520px,1.42fr);
  grid-template-areas: "kicker title" "body image";
  column-gap: clamp(48px,7vw,130px);
  row-gap: clamp(48px,5vw,82px);
  align-items: start;
}
.intro-copy > .eyebrow {
  grid-area: kicker;
  padding-top: 15px;
}
.intro-copy > h2 { grid-area: title; }
.intro-paragraphs {
  grid-area: body;
  grid-template-columns: 1fr;
  gap: 28px;
}
.intro-feature-photo {
  position: relative;
  grid-area: image;
  height: clamp(460px,38vw,650px);
  margin: 0;
  overflow: hidden;
  background: #d8cfc1;
  box-shadow: 0 34px 80px rgba(49,38,26,.12);
}
.intro-feature-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,transparent 55%,rgba(12,9,6,.54)),linear-gradient(90deg,rgba(255,255,255,.08),transparent 28%);
  pointer-events: none;
}
.intro-feature-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.4s cubic-bezier(.16,1,.3,1);
}
.intro-feature-photo:hover img { transform: scale(1.025); }
.intro-feature-photo figcaption {
  position: absolute;
  z-index: 1;
  right: clamp(22px,3vw,44px);
  bottom: clamp(22px,3vw,40px);
  left: clamp(22px,3vw,44px);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  color: #fff;
}
.intro-feature-photo figcaption span {
  font-family: var(--serif);
  font-size: clamp(28px,3vw,46px);
  letter-spacing: .06em;
}
.intro-feature-photo figcaption small {
  padding-bottom: 6px;
  color: rgba(255,255,255,.76);
  font-size: 10px;
  letter-spacing: .18em;
  text-align: right;
  text-transform: uppercase;
}
.location-marker { display: none !important; }

@media (max-width:1120px) {
  .mobile-languages a {
    min-width: 54px;
    height: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 3px;
    background: transparent;
    color: rgba(255,255,255,.65);
    font: 600 11px/1 var(--sans);
    letter-spacing: .1em;
  }
  .mobile-languages a.active {
    border-color: var(--sand-light);
    color: var(--sand-light);
  }
  .mobile-languages a:last-child { margin-bottom: 0; }
}
@media (max-width:820px) {
  .intro-copy {
    grid-template-columns: 1fr;
    grid-template-areas: "kicker" "title" "body" "image";
    gap: 40px;
  }
  .intro-copy > .eyebrow { padding-top: 0; }
  .intro-feature-photo {
    height: min(78vw,610px);
    margin-top: 8px;
  }
}
@media (max-width:540px) {
  .intro-feature-photo { height: 330px; }
  .intro-feature-photo figcaption {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }
  .intro-feature-photo figcaption small {
    padding-bottom: 0;
    text-align: left;
  }
}

/* V1.4 — SEO & IA Authority, with a visible premium information layer. */
.hero-seo-subtitle {
  margin: 18px 0 0;
  color: rgba(255, 255, 255, .78);
  font-size: 11px;
  font-weight: 560;
  letter-spacing: .2em;
  line-height: 1.4;
  text-transform: uppercase;
}

.faq-section {
  padding: clamp(100px, 11vw, 170px) 0;
  background:
    radial-gradient(circle at 14% 16%, rgba(194, 164, 121, .13), transparent 30%),
    #f4f0e8;
  color: #1c2c27;
}

.faq-layout {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(520px, 1.22fr);
  gap: clamp(55px, 9vw, 150px);
  align-items: start;
}

.faq-heading {
  position: sticky;
  top: 130px;
}

.faq-heading h2 {
  margin: 22px 0 30px;
  font-family: var(--serif);
  font-size: clamp(52px, 6vw, 94px);
  font-weight: 400;
  line-height: .91;
  letter-spacing: -.035em;
}

.faq-heading h2 span {
  display: block;
}

.faq-heading > p:last-child {
  max-width: 470px;
  color: rgba(28, 44, 39, .68);
  font-size: 16px;
  line-height: 1.8;
}

.faq-list {
  border-top: 1px solid rgba(28, 44, 39, .18);
}

.faq-list details {
  border-bottom: 1px solid rgba(28, 44, 39, .18);
}

.faq-list summary {
  position: relative;
  padding: 29px 58px 29px 0;
  cursor: pointer;
  list-style: none;
  font-family: var(--serif);
  font-size: clamp(25px, 2.3vw, 36px);
  line-height: 1.12;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 8px;
  color: #a8875d;
  font-family: var(--sans);
  font-size: 29px;
  font-weight: 300;
  transform: translateY(-50%);
  transition: transform .35s ease;
}

.faq-list details[open] summary::after {
  transform: translateY(-50%) rotate(45deg);
}

.faq-list details p {
  max-width: 760px;
  margin: -7px 0 31px;
  padding-right: 42px;
  color: rgba(28, 44, 39, .72);
  font-size: 16px;
  line-height: 1.75;
}

@media (max-width:900px) {
  .faq-layout {
    grid-template-columns: 1fr;
  }

  .faq-heading {
    position: static;
  }
}

@media (max-width:540px) {
  .hero-seo-subtitle {
    max-width: 270px;
    font-size: 9px;
    letter-spacing: .14em;
  }

  .faq-list summary {
    padding: 24px 46px 24px 0;
  }

  .faq-list details p {
    padding-right: 0;
  }
}
