:root {
  --sand: #fcfaf6;
  --white: #faf7f1;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --type-display: "Cormorant Garamond", Georgia, serif;
  --type-text: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --type-hero: clamp(50px, 8vw, 96px);
  --type-heading: clamp(34px, 4vw, 54px);
  --type-feature: clamp(24px, 2.7vw, 34px);
  --type-body: 16px;
  --type-small: 13px;
  --type-regular: 400;
  --type-medium: 500;
}

body {
  font-family: var(--type-text);
  font-size: var(--type-body);
  font-weight: var(--type-regular);
  line-height: 1.6;
}
h1 {font-size: var(--type-hero)}
h2 {font-size: var(--type-heading)}
h1, h2, h3 {line-height: 1.08}
h1, h2, h3, .brand b, .stat strong, .number, .nearby strong,
.developer-stats strong, .developer-cards strong {
  font-family: var(--type-display);
  font-weight: var(--type-medium);
}
h3, .plan-key h3, .tour-header h3, .brand b, .stat strong, .number,
.nearby strong, .developer-stats strong, .developer-cards strong {
  font-size: var(--type-feature);
  letter-spacing: -.015em;
}
.stat strong, .number {white-space: normal}
.hero p, .faq details p, .visit-form input, .visit-form textarea {font-size: var(--type-body)}
.kicker, .meta, .nav a, .button, .brand small, .facts span, .stat span, dt, dd,
.gallery-rooms button, .gallery-nav button, .plan figcaption, .plan-key dt, .plan-key dd,
.plan-dot, .zone-list button, .tour-film, .nearby span, .developer-stats span,
.source-note, .visit-form label, .language-picker, .hero-video-toggle, .developer-video-toggle {
  font-size: var(--type-small);
}
.kicker, .meta, .nav a, .button {letter-spacing: .065em}
.brand b {letter-spacing: .06em}
.brand small {letter-spacing: .09em}
.stat span {line-height: 1.4}
.kicker, .meta, .nav a, .button, .facts span, dd, .faq summary, .plan-dot,
.review-grid strong, .zone-list b, .language-picker, .language-picker a[aria-current=page] {
  font-family: var(--type-text);
  font-weight: var(--type-medium);
}

.masthead {
  border: 0;
  background: #fcfaf6ed;
  box-shadow: 0 6px 30px #25232208;
}

.facts, .facts span + span, .facts span:nth-child(n+3),
.stats, .stat + .stat, .plan, .plan-layout, .location,
.tour-preview, .nearby div, .developer-stats div, .developer-cards div,
.review-grid article, .faq details, dl div, .visit {
  border: 0;
}

.overview, .architecture, .masterplan, .plan, .location,
.investment, .faq, .developer, .reviews, .visit {
  padding-block: clamp(52px, 8vw, 116px);
}

.facts {background: transparent}
.facts span {padding-block: 19px}
.presentation-entry {text-align:center}
.villa-engineering {padding-block:clamp(52px, 8vw, 116px)}
.villa-feature-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(18px, 4vw, 50px);
  margin-block:22px 30px;
}
.villa-engineering .villa-feature-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
.villa-feature-grid p {margin-top:8px;color:var(--muted)}
.villa-engineering .source-note {max-width:66ch}
.investment-photo {aspect-ratio:4/3;object-fit:cover;object-position:50% 58%}
.stats {gap: 12px}
.stat {padding-inline: 0}
.actions {gap: 12px; margin-top: 25px}
.overview-grid, .split {row-gap: 26px}
.plan-layout {background: transparent; padding: 0; margin-top: 30px}
.tour-preview {padding-top: 20px}
.nearby div, .investment .nearby div, .review-grid article {
  background: transparent;
  padding-inline: 0;
}
.review-grid {gap: clamp(20px, 4vw, 54px)}
.faq details {max-width: 72ch}
.faq details[open] p {animation: villa-appear .32s var(--ease-out) both}
.developer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #ece7db;
  color: #26332e;
}
.developer-backdrop, .developer::before {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.developer-backdrop {z-index: -2; object-fit: cover; object-position: 50% 60%}
.developer-video {opacity: 0; transition: opacity .6s ease}
.developer-video.is-playing {opacity: 1}
.developer::before {
  content: "";
  z-index: -1;
  background: linear-gradient(105deg, #fffcf2ed 0%, #f9f7ecc9 48%, #f8f5ebde 100%);
}
.developer .split {align-items: start}
.developer .kicker, .developer-stats strong, .developer-cards strong {color: #394b3f}
.developer .split p, .developer-stats span, .developer .source-note {color: #35433d}
.developer-stats, .developer-cards {gap: clamp(16px, 3vw, 38px)}
.developer-stats {margin-block: 30px 24px}
.developer-stats div, .developer-cards div {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}
.developer-cards strong {line-height: 1.1; margin-bottom: 5px}
.developer-cards div {max-width: 45ch}
.developer-video-toggle {
  position: absolute;
  inset-inline-end: max(18px, calc((100% - 1240px) / 2));
  bottom: 10px;
  min-height: 44px;
  border: 0;
  padding: 0 10px;
  background: transparent;
  color: inherit;
  font-family: inherit;
  cursor: pointer;
}
.visit-form {gap: 16px}
.visit-contacts {display:flex; flex-wrap:wrap; gap:8px; margin-top:16px}
.contact-symbols {position:absolute}
.visit-contacts .button {justify-content:flex-start; gap:8px}
.visit-contacts svg {
  flex:none;
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
html[lang="ru"] [data-international-contact] {display:none}
.visit-form input, .visit-form textarea {
  border: 0;
  border-radius: 14px;
  background: #fff;
  padding: 12px 15px;
}

.button, .gallery-rooms button, .gallery-nav button, .zone-list button,
.tour-film, .hero-video-toggle {
  border: 0;
  border-radius: 0;
  transition: color .25s, transform .3s var(--ease-out);
}
.button, .button.primary, .button:hover, .button:not(.primary),
.gallery-rooms button, .gallery-nav button, .zone-list button, .tour-film {
  background: transparent;
  color: var(--ink);
}
a, summary, .button {text-decoration:none}
.button.primary, main a:not(.button) {font-weight:var(--type-medium)}
:is(a, summary, button) {
  --glass-light: #ffffffa6;
  --glass-shade: #d4e4df4d;
  --glass-edge: #ffffffb0;
  --glass-shadow: #14234320;
}
.hero :is(a, button) {
  --glass-light: #ffffff42;
  --glass-shade: #ffffff12;
  --glass-edge: #ffffff65;
}
:is(a, summary, button:enabled):is(:focus-visible, :active) {
  border-radius:8px;
  background-image:linear-gradient(135deg, var(--glass-light), var(--glass-shade));
  box-shadow:inset 0 0 0 1px var(--glass-edge), 0 4px 12px var(--glass-shadow);
}
@media (hover:hover) {
  :is(a, summary, button:enabled):hover {
    border-radius:8px;
    background-image:linear-gradient(135deg, var(--glass-light), var(--glass-shade));
    box-shadow:inset 0 0 0 1px var(--glass-edge), 0 4px 12px var(--glass-shadow);
  }
}
.plan-dot:is(:hover,:focus-visible,:active) {border-radius:50%}
.hero .button.primary, .hero .button:not(.primary), .hero-video-toggle {
  background: transparent;
  color: white;
}
.gallery-rooms button {white-space: normal; overflow-wrap: anywhere}
.gallery-rooms button[aria-pressed=true], .zone-list button[aria-pressed=true] {
  color: var(--gold);
  background: transparent;
  font-weight: var(--type-medium);
}
.gallery-track {background: transparent; border-radius: 20px; scrollbar-width: none}
.gallery-track img, .tour-media img, .masterplan-image, .location-map img {border-radius: 20px}
.gallery-track figcaption strong {display:block; color:var(--ink); font-weight:var(--type-medium)}
.plan-dot.plan-bath {background:#fcfaf6; color:var(--ink); border-color:var(--ink)}
.plan-dot.plan-bath[aria-pressed=true] {background:var(--accent)}
.zone-bath {display:block; color:var(--muted); margin-inline-start:1em}
.masterplan-image {overflow: hidden}
.hero-video {transition: opacity .6s ease}

body {isolation: isolate}
.villa-depth {
  position: fixed;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  perspective: 1050px;
  background:
    radial-gradient(ellipse at 14% 17%, #fffdf7 8%, transparent 59%),
    radial-gradient(ellipse at 94% 78%, #dbeae5, transparent 55%),
    linear-gradient(134deg, #f6f0e6, #f8f8f0 78%);
}
.depth-scene {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  transform: rotateX(var(--depth-pitch, 0deg)) rotateY(var(--depth-yaw, 0deg));
  transition: transform .9s var(--ease-out);
}
.depth-pane {
  position: absolute;
  border-radius: clamp(16px, 3vw, 44px);
  background: linear-gradient(141deg, #ffffff6e, #fff1 47%, #9cbeb718 74%, #fffdf365);
  box-shadow: 12px 32px 74px #46534513, inset 1px 1px 0 #ffffff94, inset -1px -1px 0 #759f941c;
}
.depth-left {
  inset: 8% 69% 23% -15%;
  transform: translateZ(-90px) rotateY(32deg) rotateZ(-7deg);
}
.depth-back {
  inset: -7% -14% 29% 57%;
  transform: translateZ(-175px) rotateY(-32deg) rotateZ(7deg);
}
.depth-front {
  inset: 27% -18% 4% 73%;
  transform: translateZ(65px) rotateY(-23deg) rotateZ(6deg);
}
.depth-floor {
  inset: 62% 4% -28% 4%;
  transform: translateZ(-80px) rotateX(59deg) rotateZ(-9deg);
  background: linear-gradient(145deg, #fff5, #c3dbd31c);
}
.plan, .location, .investment, .visit {
  background: linear-gradient(115deg, #fffcf5ca, #fff9);
}

@keyframes villa-appear {
  from {opacity: .45; transform: translateY(15px)}
  to {opacity: 1; transform: none}
}
@media (prefers-reduced-motion: no-preference) {
  .hero-copy {animation: villa-appear .75s var(--ease-out) both}
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .button:hover, .gallery-rooms button:hover, .gallery-nav button:not(:disabled):hover {
    transform: translateY(-2px);
  }
  .button span {transition: transform .3s var(--ease-out)}
  .button:hover span {transform: translateY(2px)}
}
@media (max-width: 650px) {
  :root {
    --type-hero:44px;
    --type-heading:34px;
    --type-feature:25px;
    --type-body:16px;
    --type-small:13px;
  }
  .shell {width:calc(100% - 40px)}
  .masthead .shell {min-height:60px}
  .brand b {font-size:21px;white-space:nowrap}
  .brand small {display:none}
  .masthead .nav a {font-size:11px;letter-spacing:.03em}
  .masthead .nav a:first-child {display:none}
  .overview, .architecture, .plan, .villa-engineering, .masterplan,
  .location, .investment, .faq, .developer, .reviews, .visit {padding-block:36px}
  .stats {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .stat:first-child {grid-column:1/-1}
  .stat {padding:0}
  .stat strong {white-space:nowrap}
  .facts {padding:12px 20px;gap:8px}
  .facts span {padding:0;font-weight:400}
  .presentation-entry {padding-top:8px}
  .architecture-head {margin-bottom:16px}
  .villa-feature-grid {gap:0;margin-block:16px}
  .villa-feature-grid summary {padding-block:12px;min-height:48px}
  .villa-feature-grid summary h3 {display:inline;font-family:var(--type-text);font-size:16px;font-weight:500}
  .villa-feature-grid details p {padding-bottom:18px;font-size:16px}
  .gallery-rooms {flex-wrap:nowrap;overflow-x:auto;gap:5px;margin-bottom:10px;scrollbar-width:thin}
  .gallery-rooms button {flex:none;white-space:nowrap;font-size:13px;padding-inline:10px}
  .gallery-track img, .tour-media img, .investment-photo {
    width:100%;height:auto;aspect-ratio:4/3;max-height:none;object-fit:cover;object-position:center;border-radius:10px;
  }
  .gallery-track figcaption {min-height:70px;font-size:13px;padding:10px 0}
  .gallery-track {border-radius:10px}
  .gallery-nav {margin-top:0}
  .gallery-nav button {padding-inline:8px}
  .architecture .actions {gap:4px}
  .plan figcaption {font-size:12px}
  .zone-list {gap:8px}
  .location .nearby, .developer-stats {gap:16px}
  .nearby div {padding:8px 0}
  .developer-cards {gap:22px}
  .visit-contacts {gap:4px}
  .review-grid {gap:20px}
  .review-grid article {padding-block:0}
  .villa-feature-grid, .villa-engineering .villa-feature-grid {grid-template-columns:1fr}
  .masthead, main {overflow-wrap:anywhere}
  .split > *, .overview-grid > * {min-width:0}
  .developer::before {background: #faf7eee5}
  .masthead .nav {flex-wrap: wrap; column-gap: 9px; row-gap: 0; min-width: 0}
  .masthead .nav a {padding-block: 4px}
  .depth-left {inset-inline: -37% 62%}
  .depth-front {inset-inline: 63% -37%}
  .plan-layout {gap: 22px}
  .stats {gap: 8px}
}
@media (prefers-reduced-motion: reduce) {
  .depth-scene {transform: none; transition: none}
  .faq details[open] p {animation: none}
  .button, .gallery-rooms button, .gallery-nav button, .zone-list button,
  .tour-film, .hero-video-toggle, .hero-video, .developer-video {transition: none}
}

/* Shared spatial system for the landing page. */
html {scroll-padding-top:96px}
body {--section-space:clamp(56px,7vw,96px)}
.shell {width:min(1240px,calc(100% - 96px))}
.masthead {z-index:10;background:#fcfaf6fa;box-shadow:none}
.masthead .shell {min-height:76px;gap:24px}
.brand b {font-size:27px;letter-spacing:.1em}
.brand small {font-size:10px}
.nav {gap:clamp(12px,2vw,28px);margin-inline-start:auto}
.nav a {font-size:12px;letter-spacing:.04em;min-height:44px;display:flex;align-items:center}
.nav-toggle {display:none}
.language-picker summary {min-width:48px;min-height:44px;display:flex;align-items:center;justify-content:center;list-style:none}
.language-picker summary::-webkit-details-marker {display:none}
.language-picker nav {border:0;border-radius:8px;box-shadow:0 16px 48px #1423431f}
.hero {min-height:min(780px,calc(100svh - 76px));text-align:start;place-items:end start;padding:80px 0 64px}
.hero::after {background:linear-gradient(90deg,#142820b8 0%,#14282030 75%),linear-gradient(0deg,#10241caa,transparent 65%)}
.hero-copy {max-width:none}
.hero h1 {max-width:12ch;font-size:clamp(58px,7.2vw,100px);margin-block:16px}
.hero p {margin:0;max-width:42ch;line-height:1.6}
.hero .kicker {font-size:12px;font-weight:400;letter-spacing:.15em;color:#fff5dc}
.hero-footer {display:flex;align-items:end;gap:64px;margin-top:36px}
.hero-price {display:grid;gap:2px}
.hero-price span {font-size:12px;color:#eeeadd}
.hero-price strong {font:500 38px/1.15 var(--type-display)}
.hero .actions {justify-content:start;margin:0;gap:12px}
.hero .button {font-weight:400;letter-spacing:.045em;text-transform:none;font-size:15px;min-height:48px}
.hero .button.primary {background:#ffffff16;backdrop-filter:blur(8px);border-radius:4px}
.hero-video-toggle {font-size:12px}
.property-strip {display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:20px}
.facts {display:flex;flex-wrap:wrap;gap:24px;flex:1}
.facts span {padding:0;text-align:start;font-weight:400;font-size:14px}
.presentation-entry .button {text-transform:none;letter-spacing:0;font-size:14px;padding-inline:8px}
.overview,.architecture,.plan,.villa-engineering,.masterplan,.location,.investment,.faq,.developer,.reviews,.visit {padding-block:var(--section-space)}
.overview {padding-bottom:20px}
.overview-grid {align-items:center;grid-template-columns:1fr 1fr;gap:clamp(24px,6vw,90px);margin-top:12px}
.overview-grid p {max-width:47ch}
.architecture-head {display:flex;align-items:baseline;gap:22px;margin-bottom:24px}
.architecture-head .kicker {order:1}
.architecture-head h2 {margin:0}
.gallery-rooms {flex-wrap:nowrap;overflow-x:auto;gap:4px;scrollbar-width:thin;margin:0 0 16px;padding:0 0 6px}
.gallery-rooms button {flex:none;white-space:nowrap;overflow-wrap:normal;font-size:14px;padding-inline:12px}
.gallery-rooms button[aria-pressed=true] {color:#294e42;background:#ffffff80;border-radius:4px}
.gallery-track {border-radius:8px;align-items:stretch}
.gallery-track img {width:100%;height:clamp(280px,52vw,640px);object-fit:cover;object-position:center;max-height:none;border-radius:8px}
.gallery-track figcaption {font-size:13px;padding:12px 0;min-height:64px}
.gallery-nav {margin-top:0}
.gallery-nav button {font-size:13px}
.architecture .actions {margin-top:12px}
.architecture-details {margin-top:26px}
.architecture-details .villa-feature-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:12px 0 0;align-items:start}
.feature-heading {display:flex;align-items:center;justify-content:space-between;gap:12px}
.feature-heading h3 {font-size:28px}
.feature-heading .button {font-size:13px;text-transform:none;letter-spacing:0;padding-inline:0}
.feature-photo-link {display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 10px;font-size:13px;margin-bottom:8px}
.villa-feature-grid details {min-width:0}
.villa-feature-grid details[open] {background:#ffffff4d;border-radius:6px}
.villa-feature-grid summary {border-radius:6px;transition:background .2s ease}
.villa-feature-grid summary:hover {background:#ffffff80}
.villa-feature-grid summary:focus-visible {outline:2px solid var(--gold);outline-offset:3px}
.villa-feature-grid details p {padding:0 10px 14px;margin-top:0}
.villa-feature-grid summary {list-style:none;min-height:52px;display:flex;gap:18px;align-items:center;justify-content:space-between;padding:12px 10px}
.villa-feature-grid summary::-webkit-details-marker {display:none}
.villa-feature-grid summary::after {content:"+";font:400 24px/1 var(--type-text);flex:none}
.villa-feature-grid details[open] summary::after {content:"−"}
.villa-feature-grid h3 {font-family:var(--type-text);font-size:16px;font-weight:500;line-height:1.45}
.villa-feature-grid p {font-size:15px;line-height:1.7}
.plan-layout {grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-areas:"map preview" "key key";gap:40px;align-items:start}
.tour-preview {padding:0;position:sticky;top:100px}
.tour-header h3 {font-size:28px}
.tour-media img {width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.tour-media video {max-height:420px}
.plan-key h3 {display:none}
.plan-key dl {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0}
.plan-key dl div {display:flex;flex-direction:column;gap:8px;padding:0}
.plan-key dt {color:var(--muted)}
.plan-key dd {font-size:16px;font-weight:500;white-space:normal}
.plan-dot {width:32px;height:32px;font-size:12px;min-height:0}
.plan figcaption {font-size:12px;line-height:1.6}
.zone-list {gap:4px 12px}
.zone-list button {font-size:13px;min-height:48px}
.plan .tour-hint {font-size:14px}
.masterplan figure {max-width:980px}
.masterplan figcaption {max-width:70ch;font-size:13px;color:var(--muted)}
.location .split {grid-template-columns:1.15fr .85fr;gap:64px}
.location-map {display:block;width:100%;max-width:360px}
.location-map img {border-radius:8px}
.nearby {gap:24px}
.nearby div {padding:12px 0}
.investment .split {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,84px)}
.investment-photo {height:auto;aspect-ratio:4/5;object-position:center;border-radius:8px}
.investment .nearby {gap:24px}
.investment .nearby strong {font-size:36px}
.investment details {padding-block:12px}
.investment summary,.faq summary {min-height:48px;padding-block:12px}
.investment dl {padding-top:16px}
.developer .split {grid-template-columns:1fr 1fr;gap:clamp(32px,7vw,100px)}
.developer-cards {gap:24px}
.developer-cards strong {font-family:var(--type-text);font-size:16px;font-weight:500}
.developer-cards div {font-size:15px;line-height:1.7}
.developer-stats {gap:24px}
.developer-stats strong {font-size:32px}
.reviews {padding-bottom:24px}
.review-grid p {font-size:15px}
.faq {display:grid;grid-template-columns:1fr 1.35fr;column-gap:80px;align-items:start}
.faq h2 {grid-column:1;grid-row:1 / span 5}
.faq details {grid-column:2;padding:0}
.faq summary {display:flex;gap:16px;justify-content:space-between;list-style:none}
.faq summary::-webkit-details-marker {display:none}
.faq summary::after {content:"+";font-weight:400;flex:none}
.faq details[open] summary::after {content:"−"}
.faq details p {padding-bottom:16px;font-size:15px}
.visit .split {grid-template-columns:1fr 1fr;gap:clamp(32px,7vw,100px)}
.visit-form {gap:20px}
.visit-form label {font-size:13px;gap:8px}
.visit-form input,.visit-form textarea {border-radius:5px;background:#ffffffa8;padding:14px 16px;font-size:16px;line-height:1.5}
.visit-form button {min-height:48px;text-transform:none;font-size:15px;letter-spacing:0}
.visit-contacts {gap:8px}
.visit-contacts a {text-transform:none;letter-spacing:0;font-size:14px}
.source-note {line-height:1.6}
.depth-scene {opacity:.5}
.mobile-contact {display:none}
.property-strip {padding-block:18px}
.property-strip + .architecture {padding-top:20px}
.villa-engineering {padding-block:32px}
.villa-engineering h2 {font-size:28px}
.villa-engineering .villa-feature-grid {margin:12px 0 0;gap:0 40px;align-items:start}
@media (max-width:1000px) {
  .shell {width:calc(100% - 48px)}
  .nav a {font-size:11px}
  .nav {gap:8px}
  .brand b {font-size:24px}
}
@media (max-width:900px) {
  html {scroll-padding-top:88px}
  .shell {width:calc(100% - 40px)}
  .masthead .shell {min-height:64px;gap:12px;position:relative}
  .brand {margin-inline-end:auto}
  .brand b {font-size:23px}
  .brand small {display:none}
  .nav-toggle {display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:transparent;border:0;color:var(--ink);order:2}
  .language-picker {order:1}
  .masthead .nav {display:none;position:absolute;top:100%;inset-inline:0;margin:0;padding:16px;background:#fcfaf6;box-shadow:0 20px 28px #14234318;border-radius:0 0 8px 8px}
  .masthead .nav.is-open {display:grid;gap:2px}
  .masthead .nav a,.masthead .nav a:first-child {display:flex;font-size:15px;min-height:48px;padding:10px;text-transform:none;letter-spacing:0}
  .hero {min-height:580px;min-height:min(680px,calc(100svh - 64px));padding-block:68px 40px}
  .hero h1 {font-size:clamp(48px,8vw,70px)}
  .hero-footer {gap:24px;align-items:start;flex-direction:column;margin-top:24px}
  .hero-price strong {font-size:34px}
  .hero .actions {gap:4px}
  .hero p {max-width:35ch;font-size:16px}
  .hero::after {background:linear-gradient(0deg,#12271ee8 0%,#12271e40 85%)}
  .hero-copy {width:calc(100% - 40px)}
  .property-strip {display:block;padding-block:16px 12px}
  .facts {display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;padding:0}
  .facts span {font-size:13px}
  .presentation-entry {text-align:start;padding-top:12px}
  .presentation-entry .button {padding-inline:0;font-size:13px}
  body {--section-space:48px}
  .overview {padding-top:24px;padding-bottom:0}
  .overview-grid {grid-template-columns:1fr;gap:16px}
  .overview-grid p {font-size:15px;line-height:1.7}
  .architecture-head {display:block;margin-bottom:16px}
  .architecture-head .kicker {display:block;margin-bottom:8px}
  .villa-feature-grid,.villa-engineering .villa-feature-grid {grid-template-columns:1fr;gap:0}
  .architecture-details {margin-top:20px}
  .architecture-details .villa-feature-grid {grid-template-columns:1fr;gap:0;margin-top:10px}
  .feature-heading {align-items:start;flex-direction:column;gap:0}
  .feature-heading h3 {font-size:28px}
  .feature-heading .button {min-height:40px;padding-block:6px}
  .property-strip + .architecture {padding-top:12px}
  .villa-engineering {padding-block:24px}
  .gallery-rooms button {font-size:13px}
  .gallery-track img {height:auto;aspect-ratio:4/3;max-height:none}
  .gallery-track figcaption {min-height:64px}
  .architecture .actions {display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .architecture .actions .button {font-size:12px;letter-spacing:0;text-transform:none;padding:8px 0;justify-content:start}
  .plan-layout {grid-template-columns:1fr;grid-template-areas:"map" "preview" "key";gap:24px;margin-top:20px}
  .tour-preview {position:static}
  .plan-map {overflow:visible}
  .plan-dot {width:28px;height:28px;min-height:0;font-size:11px;border-width:1px}
  .plan-key dl {grid-template-columns:1fr 1fr;gap:20px}
  .plan-key dd {font-size:15px}
  .location .split,.investment .split,.developer .split,.visit .split {grid-template-columns:1fr;gap:28px}
  .location-map {max-width:280px}
  .location .nearby {gap:16px}
  .investment-photo {aspect-ratio:4/3}
  .investment .split > div {grid-row:1}
  .investment .nearby strong {font-size:30px}
  .investment .nearby span {font-size:12px}
  .investment dl div {grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .investment dt,.investment dd {font-size:13px}
  .developer-cards {display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}
  .developer-cards strong {font-size:15px}
  .developer-cards div {font-size:14px}
  .review-grid {grid-template-columns:1fr;gap:24px}
  .faq {display:block}
  .faq h2 {margin-bottom:20px}
  .faq summary {font-size:15px}
  .visit-form {gap:16px}
  .visit-contacts a {font-size:14px}
  .depth-scene {opacity:.3}
  body {padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .mobile-contact:not([hidden]) {display:block;position:fixed;inset-inline:0;bottom:0;z-index:9;padding:8px 20px calc(8px + env(safe-area-inset-bottom));background:#fcfaf6f2;backdrop-filter:blur(14px);box-shadow:0 -6px 30px #1423430c}
  .mobile-contact a {display:flex;align-items:center;gap:16px;min-height:44px;font-size:14px}
  .mobile-contact-price {font:500 26px/1.15 var(--type-display);margin-inline-end:auto;white-space:nowrap}
}
@media (max-width:359px) {
  .shell,.hero-copy {width:calc(100% - 32px)}
  .hero h1 {font-size:44px}
  .developer-cards {grid-template-columns:1fr}
}


/* A stable viewing area keeps swipes calm while preserving the full photograph. */
.gallery-track {align-items:stretch;overflow-y:hidden;background:transparent}
.gallery-track img {
  display:block;width:100%;height:min(72svh,760px);max-width:100%;max-height:none;
  aspect-ratio:auto;object-fit:contain;object-position:center;margin:0;
  background:transparent;
}
.gallery-track figcaption {min-height:44px}
@media(max-width:700px) {
  .gallery-track img {height:min(68svh,calc((100vw - 40px) * 4 / 3))}
}
