@font-face {
  font-family: "Cormorant Garamond";
  src: url("assets/fonts/cormorant-garamond-500.woff") format("woff");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond";
  src: url("assets/fonts/cormorant-garamond-600.woff") format("woff");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
:root {
  --purple: #4e3b63;
  --indigo: #211c53;
  --plum: #573651;
  --ivory: #faf1e7;
  --white: #fff;
  --ink: #231f20;
  --gold: #c9a051;
  --muted: #70656e;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --radius: 26px;
  --page: min(100% - 32px, 1320px);
  --shadow: 0 22px 60px rgba(50, 35, 65, .12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }
svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 10px 14px; background: var(--white); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.site-header {
  width: var(--page);
  height: 78px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 14px;
}
.broker-mark {
  width: max-content;
  height: 54px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  text-decoration: none;
}
.broker-mark img { width: 42px; height: 42px; object-fit: contain; }
.broker-mark span { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; letter-spacing: .02em; }
.header-label { color: var(--purple); font-size: .7rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.icon-link { width: 42px; height: 42px; border: 1px solid rgba(78, 59, 99, .22); border-radius: 50%; display: grid; place-items: center; color: var(--purple); }
.icon-link svg { width: 18px; }
.hero {
  position: relative;
  width: var(--page);
  min-height: min(790px, calc(100svh - 94px));
  margin: 0 auto;
  border-radius: 30px;
  overflow: hidden;
  color: var(--white);
  background: var(--indigo);
  isolation: isolate;
}
.hero picture, .hero-image, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image { object-fit: cover; object-position: 38% center; }
.hero-shade {
  z-index: 1;
  background: linear-gradient(90deg, rgba(18, 13, 42, .9) 0%, rgba(29, 22, 53, .62) 44%, rgba(29, 22, 53, .04) 76%), linear-gradient(0deg, rgba(18, 13, 42, .62) 0%, transparent 42%);
}
.hero-content {
  position: relative;
  z-index: 2;
  min-height: inherit;
  max-width: 670px;
  padding: clamp(40px, 7vw, 90px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.vyomora-mark { width: 145px; height: auto; margin: 0 0 10px -8px; filter: brightness(0) invert(1); }
.eyebrow { margin: 0 0 14px; color: var(--purple); font-size: .7rem; font-weight: 700; letter-spacing: .17em; line-height: 1.4; text-transform: uppercase; }
.eyebrow.light { color: rgba(255, 255, 255, .76); }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: .96; }
h1 { margin: 0; max-width: 620px; font-size: clamp(3.35rem, 6.2vw, 6.5rem); letter-spacing: -.035em; }
.hero-title-mobile { display: none; }
.hero-price { margin: 24px 0 2px; font-size: clamp(1rem, 1.6vw, 1.24rem); }
.hero-price strong { color: #ffe5c0; font-weight: 700; }
sup { font-size: .6em; }
.developer { margin: 4px 0 24px; color: rgba(255,255,255,.68); font-size: .76rem; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.button {
  min-height: 52px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .01em;
  text-decoration: none;
  transition: transform .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button:focus-visible, .icon-link:focus-visible, .mobile-cta a:focus-visible { outline: 3px solid #ffd698; outline-offset: 3px; }
.button-primary { background: var(--white); color: var(--purple); }
.button-ghost { border-color: rgba(255,255,255,.5); color: var(--white); backdrop-filter: blur(8px); }
.rera-line { margin: 24px 0 0; color: rgba(255,255,255,.66); font-size: .68rem; letter-spacing: .05em; }
.section { position: relative; width: var(--page); margin: 90px auto 0; }
.intro { padding: 80px 40px 30px; overflow: hidden; }
.section-heading { position: relative; z-index: 1; max-width: 600px; }
.section-heading.centered { margin: auto; text-align: center; }
h2 { margin: 0; color: var(--purple); font-size: clamp(3rem, 6vw, 5.4rem); letter-spacing: -.025em; }
.section-heading > p:last-child { max-width: 500px; margin: 22px auto 0; color: var(--muted); }
.cloud { position: absolute; width: 520px; height: 230px; border-radius: 50%; background: radial-gradient(ellipse at center, rgba(255,255,255,.98), rgba(255,255,255,0) 68%); filter: blur(2px); }
.cloud-one { top: -40px; left: 50%; transform: translateX(-50%); }
.stat-grid { position: relative; z-index: 1; max-width: 1120px; margin: 62px auto 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.stat-card { min-height: 148px; padding: 26px 14px; border: 1px solid rgba(78, 59, 99, .1); border-radius: 22px; display: flex; flex-direction: column; justify-content: center; background: rgba(255,255,255,.55); text-align: center; }
.stat-card strong { color: var(--purple); font-family: var(--serif); font-size: clamp(2.4rem, 3.5vw, 3.2rem); font-weight: 500; line-height: 1; }
.stat-card span { margin-top: 8px; color: var(--muted); font-size: .75rem; }
.why { padding: clamp(48px, 7vw, 92px); border-radius: var(--radius); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(45px, 8vw, 120px); background: linear-gradient(145deg, rgba(255,255,255,.6), rgba(241,229,242,.68)); }
.why-heading { max-width: 510px; }
.why-heading h2 { font-size: clamp(2.8rem, 5vw, 4.7rem); }
.why-heading > p:last-child { margin: 24px 0 0; color: var(--muted); }
.reason-grid { margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 34px 38px; list-style: none; align-content: center; }
.reason-grid li { min-width: 0; }
.reason-grid strong { display: block; color: var(--purple); font-family: var(--serif); font-size: 1.5rem; font-weight: 600; line-height: 1.05; }
.reason-grid span { display: block; margin-top: 8px; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.story-heading { max-width: 690px; margin-bottom: 42px; }
.story-heading > p:last-child { max-width: 540px; margin: 22px 0 0; color: var(--muted); }
.story-rail { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.story-panel { min-width: 0; border: 1px solid rgba(78,59,99,.1); border-radius: var(--radius); overflow: hidden; background: rgba(255,255,255,.58); box-shadow: 0 16px 44px rgba(50,35,65,.08); }
.story-vision { grid-column: span 7; }
.story-highlights { grid-column: span 5; margin-top: 74px; }
.story-trust { grid-column: 2 / span 10; display: grid; grid-template-columns: .85fr 1.15fr; align-items: stretch; }
.story-panel > img { width: 100%; height: clamp(270px, 31vw, 430px); object-fit: cover; }
.story-highlights > img { object-position: 58% center; }
.story-trust > img { height: 100%; min-height: 380px; object-position: center; }
.story-copy { padding: clamp(24px, 3.2vw, 42px); }
.story-kicker { display: block; margin-bottom: 12px; color: var(--purple); font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.story-copy h3 { margin: 0; color: var(--purple); font-size: clamp(2rem, 3.5vw, 3.5rem); letter-spacing: -.02em; }
.story-copy p { max-width: 480px; margin: 18px 0 0; color: var(--muted); font-size: .88rem; }
.rera-link { display: inline-block; margin-top: 24px; color: var(--purple); font-size: .78rem; font-weight: 700; text-underline-offset: 5px; }
.story-note { margin: 20px 0 0; color: var(--muted); font-size: .68rem; }
.section-plum {
  padding: clamp(42px, 7vw, 90px);
  border-radius: var(--radius);
  overflow: hidden;
  background: radial-gradient(circle at 82% 0%, rgba(232, 196, 212, .2), transparent 38%), var(--plum);
  color: var(--white);
  box-shadow: var(--shadow);
}
.homes-intro { max-width: 640px; }
.homes-intro h2 { color: var(--white); }
.homes-intro > p:last-child { max-width: 520px; margin: 22px 0 0; color: rgba(255,255,255,.68); }
.text-link { display: inline-block; margin-top: 18px; font-weight: 600; text-underline-offset: 5px; }
.text-link.light { color: var(--white); }
.home-cards { margin-top: 46px; display: grid; grid-template-columns: 1fr 1.08fr .92fr; gap: 12px; }
.home-cards article { min-width: 0; padding: 28px; border: 1px solid rgba(255,255,255,.15); border-radius: 18px; background: rgba(255,255,255,.08); backdrop-filter: blur(10px); }
.home-cards h3 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.5rem); }
.home-cards p { margin: 8px 0 22px; color: rgba(255,255,255,.62); font-size: .76rem; }
.home-cards strong { color: #ffe5c0; font-size: .9rem; }
.pricing-details { margin-top: 18px; border: 1px solid rgba(255,255,255,.15); border-radius: 18px; background: rgba(34,20,43,.18); }
.pricing-details summary { min-height: 60px; padding: 0 22px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; font-size: .82rem; font-weight: 700; list-style: none; }
.pricing-details summary::-webkit-details-marker { display: none; }
.pricing-details summary span { font-family: var(--serif); font-size: 1.5rem; font-weight: 500; transition: transform .2s ease; }
.pricing-details[open] summary span { transform: rotate(45deg); }
.pricing-table-wrap { padding: 0 22px 22px; overflow-x: auto; }
.pricing-table-wrap table { width: 100%; border-collapse: collapse; font-size: .76rem; }
.pricing-table-wrap th, .pricing-table-wrap td { padding: 13px 10px; border-bottom: 1px solid rgba(255,255,255,.11); text-align: left; white-space: nowrap; }
.pricing-table-wrap thead th { color: rgba(255,255,255,.55); font-size: .66rem; letter-spacing: .05em; text-transform: uppercase; }
.pricing-table-wrap tbody th { font-weight: 600; }
.pricing-table-wrap tbody tr:last-child th, .pricing-table-wrap tbody tr:last-child td { border-bottom: 0; }
.pricing-footer { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.pricing-footer p { margin: 16px 0 0; color: rgba(255,255,255,.6); font-size: .7rem; }
.amenities-heading { max-width: 680px; margin-bottom: 42px; }
.amenity-mosaic { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: auto auto; gap: 12px; }
.amenity-image { min-width: 0; margin: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 8px; }
.amenity-image img { width: 100%; height: 100%; border-radius: var(--radius); object-fit: cover; }
.amenity-image figcaption { color: var(--purple); font-size: .72rem; font-weight: 700; }
.amenity-pool { min-height: 430px; grid-row: 1 / span 2; }
.amenity-play { min-height: 245px; }
.amenity-list { margin: 0; padding: 28px; border-radius: var(--radius); display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; align-content: center; background: linear-gradient(145deg, rgba(255,255,255,.72), rgba(238,225,234,.8)); list-style: none; }
.amenity-list li { color: var(--purple); font-family: var(--serif); font-size: 1.25rem; font-weight: 600; line-height: 1.05; }
.gallery-heading { max-width: 650px; margin-bottom: 40px; }
.gallery-heading > p { max-width: 510px; margin: 20px 0 0; color: var(--muted); }
.media-showcase { overflow: hidden; }
.media-rail {
  display: flex;
  gap: 12px;
  padding: 0 max(0px, calc((100vw - min(100vw - 32px, 1320px)) / 2)) 16px 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}
.media-rail::-webkit-scrollbar { display: none; }
.media-card {
  flex: 0 0 min(31vw, 410px);
  min-width: 280px;
  margin: 0;
  padding: 0;
  border: 0;
  scroll-snap-align: start;
  background: transparent;
  color: var(--purple);
  text-align: left;
}
.media-card.media-wide { flex-basis: min(46vw, 610px); }
.media-frame { position: relative; height: clamp(330px, 37vw, 500px); border-radius: var(--radius); display: block; overflow: hidden; background: #e7dce7; }
.media-frame img, .media-frame video { width: 100%; height: 100%; object-fit: cover; }
.media-portrait .media-frame video { object-position: center; }
.media-card > p, .media-caption { display: block; margin: 10px 0 0 4px; padding: 0; color: var(--purple); font-size: .72rem; font-weight: 700; }
.media-image { cursor: zoom-in; }
.media-image img { transition: transform .35s ease; }
.media-image:hover img { transform: scale(1.025); }
.media-image:focus-visible { outline: 3px solid var(--purple); outline-offset: 4px; }
.media-toggle {
  position: absolute;
  right: 12px;
  bottom: 12px;
  min-width: 66px;
  min-height: 40px;
  padding: 0 15px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 999px;
  background: rgba(33,28,83,.78);
  color: var(--white);
  font: 700 .7rem/1 var(--sans);
  backdrop-filter: blur(10px);
  cursor: pointer;
}
.media-toggle:focus-visible { outline: 3px solid #ffd698; outline-offset: 3px; }
.motion-ready [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .65s ease, transform .65s cubic-bezier(.16,1,.3,1); }
.motion-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.gallery-note { margin: 14px 0 0; color: var(--muted); font-size: .68rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.location-intro { max-width: 680px; }
.location-intro > p:last-child { max-width: 520px; margin: 22px 0 0; color: var(--muted); }
.location-layout { margin-top: 42px; display: grid; grid-template-columns: minmax(250px, .56fr) minmax(0, 1.44fr); gap: 14px; align-items: stretch; }
.location-benefits { padding: clamp(28px, 4vw, 48px); border-radius: var(--radius); display: grid; align-content: center; background: linear-gradient(145deg, rgba(255,255,255,.72), rgba(238,225,234,.82)); }
.location-benefits article { padding: 22px 0; border-bottom: 1px solid rgba(78,59,99,.12); }
.location-benefits article:first-child { padding-top: 0; }
.location-benefits article:last-child { padding-bottom: 0; border-bottom: 0; }
.location-benefits strong { display: block; color: var(--purple); font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 600; line-height: 1; }
.location-benefits span { display: block; margin-top: 8px; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.map-figure { min-width: 0; margin: 0; }
.map-scroll { height: 100%; min-height: 500px; border: 1px solid rgba(78,59,99,.1); border-radius: var(--radius); overflow: hidden; background: #f8eee8; }
.map-scroll:focus-visible { outline: 3px solid var(--purple); outline-offset: 4px; }
.map-scroll img { width: 100%; height: 100%; object-fit: cover; }
.map-figure figcaption { margin: 9px 0 0 4px; color: var(--muted); font-size: .68rem; }
.trust { padding: clamp(44px, 7vw, 82px); border-radius: var(--radius); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(38px, 7vw, 100px); background: rgba(255,255,255,.56); }
.trust-heading h2 { font-size: clamp(2.8rem, 5vw, 4.8rem); }
.trust-heading p { max-width: 430px; margin: 22px 0 0; color: var(--muted); }
.trust-list { margin: 0; align-self: center; }
.trust-list > div { padding: 20px 0; display: grid; grid-template-columns: .8fr 1.2fr; gap: 22px; border-bottom: 1px solid rgba(78,59,99,.12); }
.trust-list > div:first-child { padding-top: 0; }
.trust-list > div:last-child { border-bottom: 0; }
.trust-list dt { color: var(--muted); font-size: .7rem; font-weight: 700; }
.trust-list dd { margin: 0; color: var(--purple); font-family: var(--serif); font-size: 1.25rem; font-weight: 600; line-height: 1.18; }
.trust-list dd a { text-underline-offset: 4px; }
.trust-list small { color: var(--muted); font-family: var(--sans); font-size: .62rem; font-weight: 500; }
.broker-note { grid-column: 1 / -1; margin: -10px 0 0; padding-top: 18px; border-top: 1px solid rgba(78,59,99,.12); color: var(--muted); font-size: .7rem; }
.final-cta { width: 100%; margin-top: 90px; padding: 110px 24px; background: radial-gradient(circle at 20% 10%, rgba(255,255,255,.1), transparent 30%), var(--indigo); color: var(--white); text-align: center; }
.final-inner { max-width: 760px; margin: auto; }
.final-cta h2 { color: var(--white); }
.final-cta .final-inner > p:not(.eyebrow) { max-width: 540px; margin: 24px auto; color: rgba(255,255,255,.68); }
.final-actions { justify-content: center; margin-top: 32px; }
.button-ivory { background: var(--ivory); color: var(--indigo); }
.button-outline { border-color: rgba(255,255,255,.45); color: var(--white); }
.lightbox { width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(20,14,33,.96); color: var(--white); }
.lightbox::backdrop { background: rgba(20,14,33,.96); }
.lightbox-shell { width: 100%; min-height: 100%; padding: 18px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 14px; }
.lightbox-close { justify-self: end; padding: 10px 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; background: transparent; color: var(--white); cursor: pointer; }
.lightbox-stage { position: relative; min-height: 0; display: grid; place-items: center; }
.lightbox-stage img { max-width: 100%; max-height: calc(100dvh - 150px); border-radius: 14px; opacity: 0; transition: opacity .2s ease; }
.lightbox-stage img.loaded { opacity: 1; }
.lightbox-status { position: absolute; margin: 0; color: rgba(255,255,255,.72); font-size: .78rem; }
.lightbox-status[hidden] { display: none; }
.lightbox-controls { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; }
.lightbox-controls p { margin: 0; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; font-size: .76rem; }
.lightbox-controls button { min-height: 42px; padding: 0 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; background: transparent; color: var(--white); cursor: pointer; }
.lightbox button:focus-visible { outline: 3px solid #ffd698; outline-offset: 3px; }
body.lightbox-open { overflow: hidden; }
.site-footer { width: var(--page); margin: 0 auto; padding: 55px 0 105px; color: var(--muted); font-size: .7rem; }
.footer-top { display: flex; justify-content: space-between; gap: 40px; }
.footer-brand { display: flex; align-items: center; gap: 20px; }
.footer-brand img { width: 100px; height: auto; }
.footer-brand p { margin: 0; }
.footer-brand a { color: var(--ink); font-weight: 700; text-decoration: none; }
.footer-legal-summary { text-align: right; }
.footer-legal-summary p { margin: 3px 0; }
.footer-legal-summary a { text-underline-offset: 3px; }
.legal-copy { max-width: 1160px; margin-top: 32px; padding-top: 24px; border-top: 1px solid rgba(78,59,99,.14); font-size: .7rem; line-height: 1.7; }
.legal-copy p { margin: 0 0 9px; }
.legal-copy a { color: var(--purple); text-underline-offset: 3px; }
.mobile-cta { position: fixed; z-index: 20; left: 12px; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); min-height: 58px; padding: 5px; border: 1px solid rgba(78,59,99,.15); border-radius: 18px; display: none; grid-template-columns: 1fr 1.25fr; gap: 5px; background: rgba(255,255,255,.94); box-shadow: 0 12px 40px rgba(33,28,83,.2); backdrop-filter: blur(14px); transform: translateY(130%); transition: transform .28s ease; }
.mobile-cta.visible { transform: translateY(0); }
.mobile-cta a { border-radius: 13px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--purple); font-size: .8rem; font-weight: 700; text-decoration: none; }
.mobile-cta a.whatsapp { background: var(--purple); color: var(--white); }
@media (max-width: 767px) {
  :root { --page: calc(100% - 20px); --radius: 22px; }
  body { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
  .site-header { height: 68px; gap: 8px; }
  .broker-mark { height: 46px; gap: 7px; }
  .broker-mark img { width: 35px; height: 35px; }
  .broker-mark span { font-size: .98rem; }
  .header-label { display: none; }
  .icon-link { width: 38px; height: 38px; }
  .hero { min-height: calc(100svh - 78px); max-height: 780px; border-radius: 22px; }
  .hero-image { object-position: 31% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(20,14,42,.94) 0%, rgba(25,18,47,.58) 65%, rgba(25,18,47,.12) 100%); }
  .hero-content { padding: 30px 20px 34px; justify-content: flex-end; }
  .vyomora-mark { width: 118px; margin-bottom: 6px; }
  .hero-content .eyebrow { margin-bottom: 8px; }
  .hero-title-desktop { display: none; }
  .hero-title-mobile { display: block; }
  h1 { max-width: 100%; font-size: clamp(2.3rem, 11.5vw, 3.1rem); line-height: .94; }
  .hero-price { margin-top: 16px; }
  .developer { margin-bottom: 18px; }
  .hero-actions { width: 100%; }
  .hero-actions .button { flex: 1 1 100%; }
  .button { min-height: 49px; }
  .rera-line { margin-top: 14px; }
  .section { margin-top: 62px; }
  .intro { padding: 48px 10px 10px; }
  h2 { font-size: clamp(2.75rem, 13vw, 4rem); }
  .stat-grid { grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 38px; }
  .stat-card { min-height: 122px; padding: 18px 8px; }
  .stat-card strong { font-size: 2.55rem; }
  .why { padding: 42px 20px; grid-template-columns: 1fr; gap: 38px; }
  .reason-grid { gap: 28px 16px; }
  .reason-grid strong { font-size: 1.3rem; }
  .story { width: 100%; overflow: hidden; }
  .story-heading { width: var(--page); margin-right: auto; margin-left: auto; }
  .story-rail { display: flex; gap: 10px; padding: 0 10px 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 10px; overscroll-behavior-inline: contain; scrollbar-width: none; }
  .story-rail::-webkit-scrollbar { display: none; }
  .story-panel, .story-trust { flex: 0 0 min(86vw, 390px); margin-top: 0; display: block; scroll-snap-align: start; }
  .story-panel > img, .story-trust > img { height: 260px; min-height: 0; }
  .story-copy { padding: 25px 22px 28px; }
  .story-copy h3 { font-size: 2.3rem; }
  .story-note { width: var(--page); margin-right: auto; margin-left: auto; }
  .section-plum { padding: 44px 20px 24px; }
  .home-cards { margin-top: 32px; grid-template-columns: 1fr; }
  .home-cards article { padding: 22px; }
  .home-cards p { margin-bottom: 14px; }
  .pricing-details { margin-top: 12px; }
  .pricing-table-wrap { padding: 0; overflow: visible; }
  .pricing-table-wrap thead { display: none; }
  .pricing-table-wrap table, .pricing-table-wrap tbody, .pricing-table-wrap tr, .pricing-table-wrap th, .pricing-table-wrap td { display: block; width: 100%; }
  .pricing-table-wrap tr { padding: 16px 20px; border-top: 1px solid rgba(255,255,255,.11); }
  .pricing-table-wrap th, .pricing-table-wrap td { padding: 0; border: 0; white-space: normal; }
  .pricing-table-wrap th { margin-bottom: 8px; }
  .pricing-table-wrap td { display: flex; justify-content: space-between; gap: 14px; color: rgba(255,255,255,.82); }
  .pricing-table-wrap td + td { margin-top: 4px; }
  .pricing-table-wrap td::before { content: attr(data-label); color: rgba(255,255,255,.5); }
  .pricing-footer { align-items: flex-start; flex-direction: column; gap: 0; }
  .amenities-heading { width: 100%; }
  .amenity-mosaic { grid-template-columns: 1fr; grid-template-rows: none; }
  .amenity-pool { min-height: 310px; grid-row: auto; }
  .amenity-list { padding: 26px 20px; gap: 22px 16px; }
  .amenity-list li { font-size: 1.1rem; }
  .amenity-play { min-height: 230px; }
  .media-showcase { width: 100%; }
  .gallery-heading, .gallery-note { width: var(--page); margin-right: auto; margin-left: auto; }
  .media-rail { gap: 10px; padding: 0 10px 12px; scroll-padding-inline: 10px; }
  .media-card, .media-card.media-wide { flex: 0 0 min(84vw, 380px); min-width: 0; }
  .media-frame { height: 410px; }
  .media-wide .media-frame { height: 330px; }
  .media-portrait .media-frame { height: 480px; }
  .lightbox-shell { padding: 12px; }
  .lightbox-controls { gap: 8px; }
  .lightbox-controls p { font-size: .68rem; }
  .location-layout { grid-template-columns: 1fr; margin-top: 32px; }
  .location-benefits { padding: 28px 20px; }
  .map-scroll { min-height: 0; overflow-x: auto; overscroll-behavior-inline: contain; }
  .map-scroll img { width: 980px; max-width: none; height: auto; }
  .trust { padding: 42px 20px; grid-template-columns: 1fr; gap: 36px; }
  .trust-list > div { grid-template-columns: 1fr; gap: 6px; }
  .broker-note { margin-top: -4px; }
  .final-cta { margin-top: 62px; padding: 78px 20px; }
  .site-footer { padding: 42px 2px 30px; }
  .footer-top { flex-direction: column; }
  .footer-legal-summary { text-align: left; }
  .legal-copy { margin-top: 26px; }
  .mobile-cta { display: grid; }
}
@media (min-width: 768px) and (max-width: 1050px) {
  .stat-grid { grid-template-columns: repeat(3, 1fr); }
  .why { grid-template-columns: 1fr; }
  .location-layout, .trust { grid-template-columns: 1fr; }
  .map-scroll { min-height: 440px; }
  .home-cards { grid-template-columns: 1fr 1fr; }
  .home-cards article:last-child { grid-column: 1 / -1; }
  .amenity-mosaic { grid-template-columns: 1fr 1fr; }
  .amenity-pool { grid-column: 1 / -1; grid-row: auto; min-height: 400px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
  .motion-ready [data-reveal] { opacity: 1; transform: none; }
}
