/* NOVA ESTATES — design system + layout
   Layout: a fixed 3D stage behind the page; opaque sections slide over it, transparent ones reveal it.
   Everything is scoped to :is(#nova-page, .nova-scope) (the root Elementor container) so the kit and theme stay untouched. */

:root {
  --nv-ink: #1C1D1B;
  --nv-ink-2: #272825;
  --nv-white: #F6F3ED;
  --nv-paper: #ECE6DB;
  --nv-stone: #D5CEC2;
  --nv-sand: #B8A98F;
  --nv-bronze: #A9865C;
  --nv-bronze-soft: #C9AD86;
  --nv-line: rgba(28, 29, 27, 0.16);
  --nv-line-light: rgba(246, 243, 237, 0.22);
  --nv-display: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --nv-body: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;
  --nv-gutter: clamp(20px, 4.6vw, 76px);
  --nv-max: 1480px;
  --nv-nav-h: 78px;
  --nv-ease: cubic-bezier(0.2, 0.7, 0.1, 1);
  --nv-vh: 100vh;
}
@supports (height: 100svh) { :root { --nv-vh: 100svh; } }

html.nova-js { scroll-behavior: auto; }
html.nova-loading, html.nova-menu-open { overflow: hidden; }
body:has(#nova-page) { margin: 0; background: var(--nv-ink); overflow-x: clip; }

/* ---------- 3D stage ---------- */
.nova-canvas { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; display: block; opacity: 0; transition: opacity 1.2s ease; touch-action: pan-y; }
.nova-3d-ready .nova-canvas { opacity: 1; }
@media (hover: none), (pointer: coarse) {
  .nova-canvas { bottom: auto; height: 100vh; transition: opacity 0.6s ease; }
  @supports (height: 100lvh) { .nova-canvas { height: 100lvh; } }
  html.nova-scrolled :is(#nova-page, .nova-scope) #nova-nav { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(28, 29, 27, 0.94); }
  :is(#nova-page, .nova-scope) .nova-tabs, :is(#nova-page, .nova-scope) .nova-mp__side { -webkit-backdrop-filter: none; backdrop-filter: none; }
  :is(#nova-page, .nova-scope) .nova-life__img { will-change: clip-path; }
}

:is(#nova-page, .nova-scope) [hidden] { display: none !important; }
:is(#nova-page, .nova-scope) { position: relative; z-index: 1; overflow-x: clip; background: transparent; font-family: var(--nv-body); font-size: 17px; line-height: 1.7; color: var(--nv-ink); -webkit-font-smoothing: antialiased; }
:is(#nova-page, .nova-scope) *, :is(#nova-page, .nova-scope) *::before, :is(#nova-page, .nova-scope) *::after { box-sizing: border-box; }
:is(#nova-page, .nova-scope) img { display: block; max-width: 100%; height: auto; border-radius: 0; }
:is(#nova-page, .nova-scope) a { color: inherit; }
:is(#nova-page, .nova-scope) p { margin: 0; }
:is(#nova-page, .nova-scope) .elementor-widget:not(:last-child) { margin-bottom: 0; }
:is(#nova-page, .nova-scope) .elementor-widget-text-editor { color: inherit; font-family: inherit; font-weight: inherit; }
:is(#nova-page, .nova-scope) .e-con { transition: none; }

:is(#nova-page, .nova-scope) .nova-light { background: var(--nv-white); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-paper { background: var(--nv-paper); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-dark { background: var(--nv-ink); color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-3d { background: transparent; color: var(--nv-white); }
html.nova-no3d :is(#nova-page, .nova-scope) .nova-3d { background: var(--nv-ink); }

:is(#nova-page, .nova-scope) .nova-container { width: 100%; max-width: var(--nv-max); margin-inline: auto; padding-inline: var(--nv-gutter); }
:is(#nova-page, .nova-scope) .nova-row { flex-direction: row; flex-wrap: wrap; gap: 14px; align-items: center; }
:is(#nova-page, .nova-scope) .nova-sticky { position: sticky; top: 0; height: var(--nv-vh); width: 100%; overflow: hidden; }

/* ---------- type ---------- */
:is(#nova-page, .nova-scope) .nova-heading .elementor-heading-title, :is(#nova-page, .nova-scope) .nova-hd { font-family: var(--nv-display); font-weight: 300; text-transform: uppercase; letter-spacing: 0.012em; line-height: 1.05; margin: 0; color: inherit; text-wrap: balance; }
:is(#nova-page, .nova-scope) .nova-h1 .elementor-heading-title { font-size: clamp(2.5rem, 6.3vw, 6.6rem); letter-spacing: 0; line-height: 1; }
:is(#nova-page, .nova-scope) .nova-h2 .elementor-heading-title, :is(#nova-page, .nova-scope) .nova-hd--2 { font-size: clamp(2rem, 4.5vw, 4.4rem); }
:is(#nova-page, .nova-scope) .nova-h3 .elementor-heading-title, :is(#nova-page, .nova-scope) .nova-hd--3 { font-size: clamp(1.3rem, 2vw, 1.95rem); font-weight: 400; line-height: 1.16; letter-spacing: 0.02em; }
:is(#nova-page, .nova-scope) .nova-h4 .elementor-heading-title, :is(#nova-page, .nova-scope) .nova-hd--4 { font-size: 0.82rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.4; }
:is(#nova-page, .nova-scope) .nova-label, :is(#nova-page, .nova-scope) .nova-label p { font-family: var(--nv-display); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; line-height: 1.4; color: var(--nv-bronze); }
:is(#nova-page, .nova-scope) .nova-dark .nova-label, :is(#nova-page, .nova-scope) .nova-dark .nova-label p, :is(#nova-page, .nova-scope) .nova-3d .nova-label, :is(#nova-page, .nova-scope) .nova-3d .nova-label p { color: var(--nv-bronze-soft); }
:is(#nova-page, .nova-scope) .nova-text, :is(#nova-page, .nova-scope) .nova-text p { font-size: 1.0625rem; line-height: 1.75; max-width: 60ch; opacity: 0.82; }
:is(#nova-page, .nova-scope) .nova-lead, :is(#nova-page, .nova-scope) .nova-lead p { font-family: var(--nv-display); font-weight: 400; font-size: clamp(1.15rem, 1.65vw, 1.5rem); line-height: 1.5; max-width: 34ch; opacity: 1; }
:is(#nova-page, .nova-scope) .nova-note { font-size: 0.8rem; line-height: 1.5; opacity: 0.6; max-width: 62ch; }

/* ---------- buttons ---------- */
:is(#nova-page, .nova-scope) .nova-button .elementor-button, :is(#nova-page, .nova-scope) .nova-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.8em; min-height: 52px; padding: 0 1.9em; font-family: var(--nv-display); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1; text-decoration: none; white-space: nowrap; border: 1px solid currentColor; border-radius: 0; background: transparent; color: inherit; fill: currentColor; cursor: pointer; transition: background-color 0.35s var(--nv-ease), color 0.35s var(--nv-ease), border-color 0.35s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-button .elementor-button:hover, :is(#nova-page, .nova-scope) .nova-btn:hover { background: var(--nv-white); border-color: var(--nv-white); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-light .nova-button .elementor-button:hover, :is(#nova-page, .nova-scope) .nova-paper .nova-button .elementor-button:hover, :is(#nova-page, .nova-scope) .nova-light .nova-btn:hover, :is(#nova-page, .nova-scope) .nova-paper .nova-btn:hover { background: var(--nv-ink); border-color: var(--nv-ink); color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-button--solid .elementor-button, :is(#nova-page, .nova-scope) .nova-btn--solid { background: var(--nv-bronze); border-color: var(--nv-bronze); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-button--light .elementor-button, :is(#nova-page, .nova-scope) .nova-btn--light { background: var(--nv-white); border-color: var(--nv-white); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-button--light .elementor-button:hover, :is(#nova-page, .nova-scope) .nova-btn--light:hover { background: var(--nv-bronze); border-color: var(--nv-bronze); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-btn--small { min-height: 42px; padding: 0 1.3em; font-size: 0.66rem; }
:is(#nova-page, .nova-scope) .nova-btn[disabled], :is(#nova-page, .nova-scope) .nova-btn[aria-disabled="true"] { opacity: 0.35; pointer-events: none; }
:is(#nova-page, .nova-scope) a:focus-visible, :is(#nova-page, .nova-scope) button:focus-visible, :is(#nova-page, .nova-scope) [tabindex]:focus-visible, :is(#nova-page, .nova-scope) input:focus-visible, :is(#nova-page, .nova-scope) select:focus-visible, :is(#nova-page, .nova-scope) textarea:focus-visible { outline: 2px solid var(--nv-bronze-soft); outline-offset: 3px; box-shadow: none; }
:is(#nova-page, .nova-scope) button { font: inherit; }

/* ---------- loader ---------- */
.nova-loader { position: fixed; inset: 0; z-index: 200; display: none; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 24px; background: var(--nv-ink); color: var(--nv-white); text-align: center; }
html.nova-js .nova-loader { display: flex; }
html.nova-js .nova-loader.is-done { clip-path: inset(0 0 100% 0); transition: clip-path 1.1s var(--nv-ease) 0.15s; pointer-events: none; }
.nova-loader__mark { color: var(--nv-white); width: 54px; height: 54px; }
.nova-loader__mark svg { width: 100%; height: 100%; }
.nova-loader__brand { font-family: var(--nv-display); font-size: 0.82rem; font-weight: 500; letter-spacing: 0.42em; text-transform: uppercase; padding-left: 0.42em; }
.nova-loader__steps { list-style: none; margin: 14px 0 0; padding: 0; display: flex; gap: clamp(14px, 3vw, 34px); counter-reset: nvstep; font-family: var(--nv-display); font-size: 0.64rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; }
.nova-loader__steps li { counter-increment: nvstep; opacity: 0.28; transition: opacity 0.5s ease; }
.nova-loader__steps li::before { content: counter(nvstep, decimal-leading-zero) ' '; color: var(--nv-bronze-soft); }
.nova-loader__steps li.is-on { opacity: 1; }
.nova-loader__bar { width: min(340px, 70vw); height: 1px; background: var(--nv-line-light); overflow: hidden; }
.nova-loader__bar span { display: block; height: 100%; background: var(--nv-bronze-soft); transform: scaleX(0); transform-origin: left; transition: transform 0.7s var(--nv-ease); }
.nova-loader__label { font-family: var(--nv-display); font-size: 0.66rem; font-weight: 500; letter-spacing: 0.3em; text-transform: uppercase; opacity: 0.7; min-height: 1.4em; }

/* ---------- navigation ---------- */
:is(#nova-page, .nova-scope) #nova-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 60; height: var(--nv-nav-h); padding-inline: var(--nv-gutter); flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 24px; color: var(--nv-white); background: transparent; transition: background-color 0.5s ease, transform 0.6s var(--nv-ease); }
body.admin-bar :is(#nova-page, .nova-scope) #nova-nav { top: 32px; }
:is(#nova-page, .nova-scope) #nova-nav::before { content: ''; position: absolute; inset: 0 0 -60px 0; background: linear-gradient(to bottom, rgba(20, 21, 19, 0.5), rgba(20, 21, 19, 0)); pointer-events: none; z-index: -1; transition: opacity 0.5s ease; }
html.nova-scrolled :is(#nova-page, .nova-scope) #nova-nav { background: rgba(28, 29, 27, 0.78); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
html.nova-scrolled :is(#nova-page, .nova-scope) #nova-nav::before { opacity: 0; }
:is(#nova-page, .nova-scope) #nova-nav > .elementor-element { width: auto; flex: 0 0 auto; }
:is(#nova-page, .nova-scope) .nova-logo { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; }
:is(#nova-page, .nova-scope) .nova-logo svg { width: 34px; height: 34px; flex: none; }
:is(#nova-page, .nova-scope) .nova-logo .nv-sun { stroke: var(--nv-bronze-soft); }
:is(#nova-page, .nova-scope) .nova-logo__word { font-family: var(--nv-display); font-size: 0.8rem; font-weight: 500; letter-spacing: 0.36em; text-transform: uppercase; white-space: nowrap; }
:is(#nova-page, .nova-scope) .nova-nav-menu .elementor-nav-menu { display: flex; flex-wrap: nowrap; gap: clamp(16px, 2.2vw, 38px); margin: 0; padding: 0; list-style: none; }
:is(#nova-page, .nova-scope) .nova-nav-menu .elementor-item { position: relative; padding: 10px 0; font-family: var(--nv-display); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; line-height: 1; color: var(--nv-white); fill: var(--nv-white); background: none; text-decoration: none; white-space: nowrap; }
:is(#nova-page, .nova-scope) .nova-nav-menu .elementor-item::after { content: ''; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: var(--nv-bronze-soft); opacity: 1; transform: scaleX(0); transform-origin: left; transition: transform 0.45s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-nav-menu .elementor-item:hover::after, :is(#nova-page, .nova-scope) .nova-nav-menu .elementor-item.is-current::after { transform: scaleX(1); }
:is(#nova-page, .nova-scope) .nova-nav-menu .elementor-menu-toggle, :is(#nova-page, .nova-scope) .nova-nav-menu .elementor-nav-menu--dropdown { display: none; }
:is(#nova-page, .nova-scope) .nova-nav-cta .elementor-button { min-height: 44px; padding: 0 1.4em; font-size: 0.66rem; }
:is(#nova-page, .nova-scope) .nova-burger { display: none; width: 46px; height: 46px; padding: 0; border: 1px solid var(--nv-line-light); background: transparent; color: var(--nv-white); cursor: pointer; align-items: center; justify-content: center; }
:is(#nova-page, .nova-scope) .nova-burger span { position: relative; display: block; width: 18px; height: 1px; background: currentColor; }
:is(#nova-page, .nova-scope) .nova-burger span::before, :is(#nova-page, .nova-scope) .nova-burger span::after { content: ''; position: absolute; left: 0; width: 18px; height: 1px; background: currentColor; transition: transform 0.4s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-burger span::before { top: -6px; } :is(#nova-page, .nova-scope) .nova-burger span::after { top: 6px; }
html.nova-menu-open :is(#nova-page, .nova-scope) .nova-burger span { background: transparent; }
html.nova-menu-open :is(#nova-page, .nova-scope) .nova-burger span::before { transform: translateY(6px) rotate(45deg); }
html.nova-menu-open :is(#nova-page, .nova-scope) .nova-burger span::after { transform: translateY(-6px) rotate(-45deg); }
:is(#nova-page, .nova-scope) .nova-menu { position: fixed; inset: 0; z-index: 55; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: calc(var(--nv-nav-h) + 20px) var(--nv-gutter) 40px; background: var(--nv-ink); color: var(--nv-white); opacity: 0; visibility: hidden; transition: opacity 0.45s ease, visibility 0s linear 0.45s; }
html.nova-menu-open :is(#nova-page, .nova-scope) .nova-menu { opacity: 1; visibility: visible; transition: opacity 0.45s ease; }
:is(#nova-page, .nova-scope) .nova-menu a { font-family: var(--nv-display); font-weight: 300; font-size: clamp(1.7rem, 7.4vw, 2.6rem); text-transform: uppercase; text-decoration: none; line-height: 1.3; }
:is(#nova-page, .nova-scope) .nova-menu .nova-btn { font-size: 0.72rem; margin-top: 26px; align-self: flex-start; }

/* ---------- hero ---------- */
:is(#nova-page, .nova-scope) #nova-hero { height: 260vh; }
:is(#nova-page, .nova-scope) .nova-3d-mount { position: absolute; inset: 0; width: 100%; height: 100%; }
:is(#nova-page, .nova-scope) .nova-3d-mount img { width: 100%; height: 100%; object-fit: cover; }
:is(#nova-page, .nova-scope) .nova-3d-mount img { will-change: opacity; }
:is(#nova-page, .nova-scope) .nova-hero__stage::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, rgba(20, 21, 19, 0.5) 0%, rgba(20, 21, 19, 0) 46%), linear-gradient(to right, rgba(20, 21, 19, 0.46) 0%, rgba(20, 21, 19, 0) 58%); opacity: var(--nv-hero-scrim, 1); }
:is(#nova-page, .nova-scope) .nova-hero__content .nova-label, :is(#nova-page, .nova-scope) .nova-hero__content .nova-label p { color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-hero__content { position: absolute; z-index: 2; left: var(--nv-gutter); right: var(--nv-gutter); bottom: clamp(36px, 8vh, 96px); width: auto; max-width: 980px; gap: 22px; align-items: flex-start; }
:is(#nova-page, .nova-scope) .nova-hero__sub, :is(#nova-page, .nova-scope) .nova-hero__sub p { max-width: 40ch; opacity: 0.94; }
:is(#nova-page, .nova-scope) .nova-hero__content .nova-row { margin-top: 10px; }
:is(#nova-page, .nova-scope) .nova-hero__content > .elementor-element { width: auto; max-width: 100%; }

/* ---------- development ---------- */
:is(#nova-page, .nova-scope) #nova-development { padding-block: clamp(96px, 13vw, 210px) clamp(80px, 10vw, 160px); gap: clamp(56px, 7vw, 110px); }
:is(#nova-page, .nova-scope) .nova-dev__grid { flex-direction: row; align-items: flex-start; gap: clamp(32px, 6vw, 110px); }
:is(#nova-page, .nova-scope) .nova-dev__copy { flex: 1 1 36%; gap: 26px; padding-top: clamp(0px, 5vw, 80px); }
:is(#nova-page, .nova-scope) .nova-dev__media { flex: 1 1 64%; position: relative; padding-bottom: clamp(60px, 9vw, 150px); margin-right: calc(-1 * var(--nv-gutter)); }
:is(#nova-page, .nova-scope) .nova-dev__img1 img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
:is(#nova-page, .nova-scope) .nova-dev__img2 { position: absolute; left: clamp(-90px, -6vw, -30px); bottom: 0; width: 42%; }
:is(#nova-page, .nova-scope) .nova-dev__img2 img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border: 10px solid var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-stats { flex-direction: row; flex-wrap: wrap; border-top: 1px solid var(--nv-line); }
:is(#nova-page, .nova-scope) .nova-stat { flex: 1 1 200px; padding: 30px 24px 6px 0; gap: 8px; }
:is(#nova-page, .nova-scope) .nova-stat__n .elementor-heading-title { font-family: var(--nv-display); font-weight: 300; font-size: clamp(2.6rem, 5vw, 4.6rem); line-height: 1; letter-spacing: -0.01em; text-transform: none; color: var(--nv-ink); font-variant-numeric: tabular-nums; }
:is(#nova-page, .nova-scope) .nova-stat__l, :is(#nova-page, .nova-scope) .nova-stat__l p { font-size: 0.88rem; line-height: 1.45; opacity: 0.7; max-width: 22ch; }
:is(#nova-page, .nova-scope) .nova-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(28px, 5vw, 90px); row-gap: 0; }
:is(#nova-page, .nova-scope) .nova-fact { width: auto; padding: 26px 0 30px; border-top: 1px solid var(--nv-line); gap: 12px; }
:is(#nova-page, .nova-scope) .nova-fact .nova-text, :is(#nova-page, .nova-scope) .nova-fact .nova-text p { font-size: 0.97rem; line-height: 1.65; }

/* ---------- masterplan ---------- */
:is(#nova-page, .nova-scope) #nova-masterplan { height: 620vh; }
:is(#nova-page, .nova-scope) .nova-mp__stage { pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-mp__stage::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(20, 21, 19, 0.3), rgba(20, 21, 19, 0) 24%); pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-mp__side { position: absolute; z-index: 3; left: var(--nv-gutter); top: calc(var(--nv-nav-h) + clamp(16px, 4vh, 44px)); width: min(400px, 78vw); gap: 14px; justify-content: flex-start; pointer-events: auto; padding: 28px 28px 30px; background: rgba(28, 29, 27, 0.8); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
:is(#nova-page, .nova-scope) .nova-mp__side .nova-h2 .elementor-heading-title { font-size: clamp(1.6rem, 2.4vw, 2.3rem); }
:is(#nova-page, .nova-scope) .nova-mp__side > .elementor-element { width: 100%; }
:is(#nova-page, .nova-scope) .nova-mp__zones { list-style: none; margin: 6px 0 0; padding: 0; border-top: 1px solid var(--nv-line-light); }
:is(#nova-page, .nova-scope) .nova-mp__zones button { display: flex; align-items: baseline; gap: 18px; width: 100%; padding: 13px 0; border: 0; border-bottom: 1px solid var(--nv-line-light); border-radius: 0; background: none; color: var(--nv-white); font-family: var(--nv-display); font-size: 0.8rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; text-align: left; cursor: pointer; opacity: 0.6; transition: opacity 0.35s ease, padding-left 0.45s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-mp__zones button span { font-size: 0.68rem; color: var(--nv-bronze-soft); font-variant-numeric: tabular-nums; }
:is(#nova-page, .nova-scope) .nova-mp__zones button:hover { opacity: 1; }
:is(#nova-page, .nova-scope) .nova-mp__zones button.is-on { opacity: 1; padding-left: 14px; }
:is(#nova-page, .nova-scope) .nova-mp__panel { padding-top: 20px; }
:is(#nova-page, .nova-scope) .nova-mp__panel h3 { margin: 0 0 10px; font-family: var(--nv-display); font-size: 1.08rem; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1.3; color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-mp__panel p { font-size: 0.93rem; line-height: 1.6; opacity: 0.85; }
:is(#nova-page, .nova-scope) .nova-mp-ui { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-mp__hit { position: absolute; inset: 0; pointer-events: auto; }
:is(#nova-page, .nova-scope) .nova-mp__pins { position: absolute; inset: 0; pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-pin { position: absolute; left: 0; top: 0; width: 30px; height: 30px; margin: -30px 0 0 -15px; padding: 0; border: 1px solid rgba(255, 255, 255, 0.9); border-radius: 50%; background: rgba(28, 29, 27, 0.72); color: var(--nv-white); font-family: var(--nv-display); font-size: 0.6rem; font-weight: 600; letter-spacing: 0.02em; line-height: 28px; text-align: center; cursor: pointer; pointer-events: auto; will-change: transform; transition: background-color 0.3s ease, border-color 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-pin.is-reserved { border-color: rgba(255, 255, 255, 0.4); color: rgba(255, 255, 255, 0.6); }
:is(#nova-page, .nova-scope) .nova-pin:hover, :is(#nova-page, .nova-scope) .nova-pin.is-on { background: var(--nv-bronze); border-color: var(--nv-bronze); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-mp__tip { position: absolute; left: 0; top: 0; z-index: 4; min-width: 220px; padding: 16px 18px 18px; background: var(--nv-white); color: var(--nv-ink); pointer-events: none; opacity: 0; transition: opacity 0.25s ease; will-change: transform; }
:is(#nova-page, .nova-scope) .nova-mp__tip.is-on { opacity: 1; }
:is(#nova-page, .nova-scope) .nova-mp__tip.is-pinned { pointer-events: auto; }
:is(#nova-page, .nova-scope) .nova-mp__tip strong { display: block; font-family: var(--nv-display); font-size: 0.86rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; }
:is(#nova-page, .nova-scope) .nova-mp__tip em { display: block; margin-top: 2px; font-style: normal; font-size: 0.86rem; opacity: 0.7; }
:is(#nova-page, .nova-scope) .nova-mp__tip ul { list-style: none; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--nv-line); font-family: var(--nv-display); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.9; }
:is(#nova-page, .nova-scope) .nova-mp__tip .nova-btn { margin-top: 14px; width: 100%; }
:is(#nova-page, .nova-scope) .nova-status { display: inline-block; font-family: var(--nv-display); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--nv-bronze); }
:is(#nova-page, .nova-scope) .nova-status.is-reserved { color: inherit; opacity: 0.5; }
:is(#nova-page, .nova-scope) .nova-mp__hint { position: absolute; right: var(--nv-gutter); bottom: clamp(24px, 6vh, 64px); font-family: var(--nv-display); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--nv-white); padding: 10px 14px; background: rgba(28, 29, 27, 0.6); }

/* ---------- featured properties (horizontal) ---------- */
:is(#nova-page, .nova-scope) #nova-properties { position: relative; }
:is(#nova-page, .nova-scope) .nova-hs__stage { display: flex; flex-direction: column; justify-content: center; gap: clamp(26px, 4vh, 48px); padding-top: var(--nv-nav-h); }
:is(#nova-page, .nova-scope) .nova-hs__head { flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 60px; }
:is(#nova-page, .nova-scope) .nova-hs__head > .elementor-element { width: auto; }
:is(#nova-page, .nova-scope) .nova-hs__head .nova-text, :is(#nova-page, .nova-scope) .nova-hs__head .nova-text p { max-width: 44ch; font-size: 0.98rem; }
:is(#nova-page, .nova-scope) .nova-hs__track { flex-direction: row; flex-wrap: nowrap; gap: clamp(18px, 2.4vw, 36px); width: max-content; padding-inline: var(--nv-gutter); will-change: transform; }
:is(#nova-page, .nova-scope) .nova-card { flex: 0 0 auto; width: clamp(280px, 30vw, 470px); gap: 10px; }
:is(#nova-page, .nova-scope) .nova-card .elementor-widget-image { overflow: hidden; margin-bottom: 12px; }
:is(#nova-page, .nova-scope) .nova-card img { width: 100%; aspect-ratio: 4 / 3; height: auto; max-height: 44vh; object-fit: cover; transition: transform 1.2s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-card:hover img { transform: scale(1.045); }
:is(#nova-page, .nova-scope) .nova-card__specs, :is(#nova-page, .nova-scope) .nova-card__specs p { font-size: 0.92rem; line-height: 1.55; opacity: 0.78; }
:is(#nova-page, .nova-scope) .nova-card .nova-button { margin-top: 10px; }
:is(#nova-page, .nova-scope) .nova-card--more { justify-content: center; gap: 26px; padding: 30px clamp(24px, 3vw, 48px); border: 1px solid var(--nv-line-light); min-height: 300px; }

/* ---------- viewer ---------- */
:is(#nova-page, .nova-scope) #nova-property-viewer { height: var(--nv-vh); min-height: 640px; }
:is(#nova-page, .nova-scope) #nova-property-viewer > .elementor-element, :is(#nova-page, .nova-scope) .nova-viewer { position: absolute; inset: 0; width: 100%; height: 100%; }
:is(#nova-page, .nova-scope) .nova-viewer::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to right, rgba(20, 21, 19, 0.62), rgba(20, 21, 19, 0) 44%), linear-gradient(to top, rgba(20, 21, 19, 0.5), rgba(20, 21, 19, 0) 26%); }
:is(#nova-page, .nova-scope) .nova-viewer__stage { position: absolute; inset: 0; cursor: grab; touch-action: pan-y; }
:is(#nova-page, .nova-scope) .nova-viewer__stage.is-drag { cursor: grabbing; }
:is(#nova-page, .nova-scope) .nova-viewer__info { position: absolute; z-index: 3; left: var(--nv-gutter); top: calc(var(--nv-nav-h) + clamp(14px, 4vh, 44px)); width: min(400px, 82vw); display: flex; flex-direction: column; gap: 14px; }
:is(#nova-page, .nova-scope) .nova-viewer__info .nova-hd { font-size: clamp(1.7rem, 3.1vw, 3rem); }
:is(#nova-page, .nova-scope) .nova-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; margin: 6px 0 0; padding: 0; border-top: 1px solid var(--nv-line-light); }
:is(#nova-page, .nova-scope) .nova-specs div { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--nv-line-light); }
:is(#nova-page, .nova-scope) .nova-specs dt { font-family: var(--nv-display); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.7; align-self: center; }
:is(#nova-page, .nova-scope) .nova-specs dd { margin: 0; font-family: var(--nv-display); font-size: 0.86rem; font-weight: 500; font-variant-numeric: tabular-nums; }
:is(#nova-page, .nova-scope) .nova-viewer__text { font-size: 0.93rem; line-height: 1.6; opacity: 0.88; }
:is(#nova-page, .nova-scope) .nova-viewer__info .nova-btn { align-self: flex-start; margin-top: 6px; }
:is(#nova-page, .nova-scope) .nova-viewer__switch { display: flex; gap: 8px; align-items: center; }
:is(#nova-page, .nova-scope) .nova-viewer__switch button { width: 38px; height: 38px; border: 1px solid var(--nv-line-light); border-radius: 0; background: rgba(28, 29, 27, 0.5); color: var(--nv-white); cursor: pointer; font-size: 0.9rem; line-height: 1; padding: 0; }
:is(#nova-page, .nova-scope) .nova-viewer__switch button:hover { background: var(--nv-white); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-viewer__bar { position: absolute; z-index: 3; left: var(--nv-gutter); right: var(--nv-gutter); bottom: clamp(20px, 4.5vh, 48px); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 24px; pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-viewer__bar > * { pointer-events: auto; min-width: 0; max-width: 100%; }
:is(#nova-page, .nova-scope) .nova-tabs { display: flex; flex-wrap: wrap; gap: 0; background: rgba(28, 29, 27, 0.78); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
:is(#nova-page, .nova-scope) .nova-tabs button { min-height: 46px; padding: 0 18px; border: 0; border-radius: 0; background: transparent; color: var(--nv-white); font-family: var(--nv-display); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; cursor: pointer; opacity: 0.66; transition: opacity 0.3s ease, background-color 0.3s ease, color 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-tabs button:hover { opacity: 1; }
:is(#nova-page, .nova-scope) .nova-tabs button[aria-selected="true"], :is(#nova-page, .nova-scope) .nova-tabs button.is-on { opacity: 1; background: var(--nv-white); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-tabs button[disabled] { opacity: 0.25; cursor: default; }
:is(#nova-page, .nova-scope) .nova-viewer__sub { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
:is(#nova-page, .nova-scope) .nova-viewer__note { font-size: 0.78rem; line-height: 1.4; opacity: 0.85; max-width: 46ch; text-align: right; padding: 8px 12px; background: rgba(28, 29, 27, 0.6); }
:is(#nova-page, .nova-scope) .nova-viewer__note:empty { display: none; }
:is(#nova-page, .nova-scope) .nova-viewer__zoom { position: absolute; z-index: 3; right: var(--nv-gutter); top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; background: rgba(28, 29, 27, 0.78); }
:is(#nova-page, .nova-scope) .nova-viewer__zoom button { width: 44px; height: 44px; border: 0; border-radius: 0; background: transparent; color: var(--nv-white); font-size: 1.2rem; line-height: 1; cursor: pointer; padding: 0; }
:is(#nova-page, .nova-scope) .nova-viewer__zoom button:hover { background: var(--nv-white); color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-viewer__gallery { position: absolute; z-index: 2; inset: 0; display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; padding: calc(var(--nv-nav-h) + 28px) var(--nv-gutter) 110px calc(var(--nv-gutter) + min(400px, 82vw) + clamp(40px, 5vw, 90px)); background: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-viewer__gallery[hidden] { display: none; }
:is(#nova-page, .nova-scope) .nova-viewer__gallery img { width: 100%; height: 100%; object-fit: cover; }
:is(#nova-page, .nova-scope) .nova-viewer__gallery img:first-child { grid-row: span 2; }

/* ---------- floor plan ---------- */
:is(#nova-page, .nova-scope) #nova-floorplan { padding-block: clamp(90px, 11vw, 180px); }
:is(#nova-page, .nova-scope) .nova-fp__wrap { gap: clamp(36px, 5vw, 70px); }
:is(#nova-page, .nova-scope) .nova-fp__head { gap: 18px; max-width: 760px; }
:is(#nova-page, .nova-scope) .nova-fp { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 90px); align-items: start; }
:is(#nova-page, .nova-scope) .nova-fp__plan { min-width: 0; }
:is(#nova-page, .nova-scope) .nova-fp__tabs { display: inline-flex; margin-bottom: 22px; border: 1px solid var(--nv-line); }
:is(#nova-page, .nova-scope) .nova-fp__tabs button { min-height: 44px; padding: 0 20px; border: 0; border-radius: 0; background: transparent; color: var(--nv-ink); font-family: var(--nv-display); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; cursor: pointer; }
:is(#nova-page, .nova-scope) .nova-fp__tabs button.is-on { background: var(--nv-ink); color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-fp svg { display: block; width: 100%; height: auto; }
:is(#nova-page, .nova-scope) .nova-fp .nv-room { fill: transparent; stroke: var(--nv-ink); stroke-width: 1.2; cursor: pointer; transition: fill 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-fp .nv-room.is-out { stroke-dasharray: 5 5; stroke-width: 1; }
:is(#nova-page, .nova-scope) .nova-fp .nv-room.is-water { fill: rgba(79, 198, 196, 0.22); }
:is(#nova-page, .nova-scope) .nova-fp .nv-room:hover { fill: rgba(169, 134, 92, 0.16); }
:is(#nova-page, .nova-scope) .nova-fp .nv-room.is-on { fill: rgba(169, 134, 92, 0.34); }
:is(#nova-page, .nova-scope) .nova-fp .nv-shell { fill: none; stroke: var(--nv-ink); stroke-width: 4; pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-fp text { font-family: var(--nv-display); fill: var(--nv-ink); pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-fp .nv-rn { font-size: 10.5px; font-weight: 600; letter-spacing: 1.6px; text-transform: uppercase; }
:is(#nova-page, .nova-scope) .nova-fp .nv-ra { font-size: 10px; font-weight: 500; opacity: 0.6; }
:is(#nova-page, .nova-scope) .nova-fp .nv-meta { font-size: 9px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; opacity: 0.55; }
:is(#nova-page, .nova-scope) .nova-fp__detail { position: sticky; top: calc(var(--nv-nav-h) + 24px); display: flex; flex-direction: column; gap: 14px; min-width: 0; }
:is(#nova-page, .nova-scope) .nova-fp__detail img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
:is(#nova-page, .nova-scope) .nova-fp__detail .nova-hd { margin-top: 8px; }
:is(#nova-page, .nova-scope) .nova-fp__dim { font-family: var(--nv-display); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
:is(#nova-page, .nova-scope) .nova-fp__detail .nova-btn { align-self: flex-start; margin-top: 8px; }

/* ---------- lifestyle ---------- */
:is(#nova-page, .nova-scope) #nova-lifestyle { height: 440vh; }
:is(#nova-page, .nova-scope) .nova-life__stage { background: var(--nv-white); color: var(--nv-ink); transition: background-color 0.9s ease, color 0.9s ease; }
:is(#nova-page, .nova-scope) .nova-life__stage.is-night { background: var(--nv-ink); color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-life__title { position: absolute; z-index: 3; left: var(--nv-gutter); top: calc(var(--nv-nav-h) + clamp(18px, 5vh, 60px)); width: auto; }
:is(#nova-page, .nova-scope) .nova-life { position: absolute; inset: 0; width: 100%; height: 100%; flex-direction: row; pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-life.is-on { pointer-events: auto; }
:is(#nova-page, .nova-scope) .nova-life__copy { position: absolute; left: var(--nv-gutter); bottom: clamp(40px, 10vh, 120px); width: min(440px, 36vw); gap: 16px; opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.9s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-life.is-on .nova-life__copy { opacity: 1; transform: none; }
:is(#nova-page, .nova-scope) .nova-life__img { position: absolute; top: 0; right: 0; bottom: 0; left: 46%; width: auto; overflow: hidden; clip-path: inset(100% 0 0 0); }
:is(#nova-page, .nova-scope) .nova-life__title + .nova-life .nova-life__img, html:not(.nova-js) :is(#nova-page, .nova-scope) .nova-life__img { clip-path: none; }
:is(#nova-page, .nova-scope) .nova-life__copy .nova-h2 .elementor-heading-title { font-size: clamp(1.8rem, 3.3vw, 3.2rem); }
:is(#nova-page, .nova-scope) .nova-life__img img { width: 100%; height: 100%; object-fit: cover; }
:is(#nova-page, .nova-scope) .nova-life__stage.is-night .nova-label, :is(#nova-page, .nova-scope) .nova-life__stage.is-night .nova-label p { color: var(--nv-bronze-soft); }
:is(#nova-page, .nova-scope) .nova-life__count { position: absolute; z-index: 3; left: var(--nv-gutter); bottom: clamp(20px, 4vh, 44px); display: flex; gap: 8px; }
:is(#nova-page, .nova-scope) .nova-life__count i { display: block; width: 34px; height: 2px; background: currentColor; opacity: 0.22; transition: opacity 0.4s ease; }
:is(#nova-page, .nova-scope) .nova-life__count i.is-on { opacity: 1; }

/* ---------- amenities ---------- */
:is(#nova-page, .nova-scope) #nova-amenities { padding-block: clamp(90px, 11vw, 180px); }
:is(#nova-page, .nova-scope) .nova-am__wrap { gap: clamp(36px, 5vw, 70px); }
:is(#nova-page, .nova-scope) .nova-am { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 90px); align-items: stretch; }
:is(#nova-page, .nova-scope) .nova-am__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--nv-line-light); }
:is(#nova-page, .nova-scope) .nova-am__list button { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; padding: clamp(13px, 1.9vh, 20px) 0; border: 0; border-bottom: 1px solid var(--nv-line-light); border-radius: 0; background: none; color: var(--nv-white); font-family: var(--nv-display); font-weight: 300; font-size: clamp(1.25rem, 2.2vw, 2.1rem); text-transform: uppercase; letter-spacing: 0.01em; line-height: 1.15; text-align: left; cursor: pointer; opacity: 0.5; transition: opacity 0.35s ease, padding-left 0.5s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-am__list button::after { content: ''; flex: none; width: 34px; height: 1px; background: var(--nv-bronze-soft); transform: scaleX(0); transform-origin: right; transition: transform 0.5s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-am__list button.is-on { opacity: 1; padding-left: 16px; }
:is(#nova-page, .nova-scope) .nova-am__list button.is-on::after { transform: scaleX(1); }
:is(#nova-page, .nova-scope) .nova-am__view { position: relative; min-height: 420px; }
:is(#nova-page, .nova-scope) .nova-am__view img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity 0.7s ease, transform 1.4s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-am__view img.is-on { opacity: 1; transform: none; }
:is(#nova-page, .nova-scope) .nova-am__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 60px 26px 24px; background: linear-gradient(to top, rgba(20, 21, 19, 0.85), rgba(20, 21, 19, 0)); font-size: 0.98rem; line-height: 1.55; }

/* ---------- location ---------- */
:is(#nova-page, .nova-scope) #nova-location { padding-block: clamp(90px, 11vw, 180px); }
:is(#nova-page, .nova-scope) .nova-loc { flex-direction: row; align-items: center; gap: clamp(32px, 6vw, 110px); }
:is(#nova-page, .nova-scope) .nova-loc__copy { flex: 1 1 42%; gap: 24px; }
:is(#nova-page, .nova-scope) .nova-loc__map { flex: 1 1 58%; min-width: 0; }
:is(#nova-page, .nova-scope) .nova-map { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 50px); align-items: center; }
:is(#nova-page, .nova-scope) .nova-map svg { width: 100%; height: auto; overflow: visible; }
:is(#nova-page, .nova-scope) .nova-map .nv-isle { fill: #F8F5EF; stroke: var(--nv-ink); stroke-width: 0.9; stroke-linejoin: round; }
:is(#nova-page, .nova-scope) .nova-map .nv-reef { fill: none; stroke: rgba(79, 198, 196, 0.3); stroke-width: 18; stroke-linejoin: round; }
:is(#nova-page, .nova-scope) .nova-map text.nv-town { font-family: var(--nv-body); font-size: 10px; font-weight: 500; letter-spacing: 0; text-transform: none; opacity: 0.72; }
:is(#nova-page, .nova-scope) .nova-map text.nv-country { opacity: 0.3; letter-spacing: 6px; }
:is(#nova-page, .nova-scope) .nova-map .nv-town-dot { fill: var(--nv-ink); opacity: 0.6; }
:is(#nova-page, .nova-scope) .nova-map .nv-scale { fill: none; stroke: var(--nv-ink); stroke-width: 1.2; }
:is(#nova-page, .nova-scope) .nova-map .nv-dot { fill: var(--nv-ink); opacity: 0.45; transition: opacity 0.3s ease, r 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-map .nv-dot.is-on { fill: var(--nv-bronze); opacity: 1; }
:is(#nova-page, .nova-scope) .nova-map .nv-site { fill: var(--nv-bronze); }
:is(#nova-page, .nova-scope) .nova-map .nv-ring { fill: none; stroke: var(--nv-bronze); stroke-width: 1; }
:is(#nova-page, .nova-scope) .nova-map .nv-link { stroke: var(--nv-bronze); stroke-width: 1; stroke-dasharray: 3 4; opacity: 0; transition: opacity 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-map .nv-link.is-on { opacity: 1; }
:is(#nova-page, .nova-scope) .nova-map text { font-family: var(--nv-display); font-size: 11px; font-weight: 600; letter-spacing: 2.4px; text-transform: uppercase; fill: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-places { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--nv-line); }
:is(#nova-page, .nova-scope) .nova-places li { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--nv-line); font-family: var(--nv-display); font-size: 0.76rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; cursor: default; transition: color 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-places li span:last-child { font-variant-numeric: tabular-nums; opacity: 0.65; }
:is(#nova-page, .nova-scope) .nova-places li.is-on { color: var(--nv-bronze); }

/* ---------- real map (Leaflet) ---------- */
:is(#nova-page, .nova-scope) .nova-leaflet { position: relative; z-index: 0; height: clamp(380px, 58vh, 640px); background: var(--nv-stone); font-family: var(--nv-body); }
:is(#nova-page, .nova-scope) .nova-leaflet .leaflet-tile-pane { filter: sepia(0.28) saturate(0.8); }
:is(#nova-page, .nova-scope) .nova-leaflet img { max-width: none; }
:is(#nova-page, .nova-scope) .nova-mk { display: block; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--nv-ink); border: 2px solid var(--nv-white); opacity: 0.7; transition: transform 0.3s ease, background-color 0.3s ease, opacity 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-mk.is-on { background: var(--nv-bronze); opacity: 1; transform: scale(1.5); }
:is(#nova-page, .nova-scope) .nova-mk.is-site { width: 20px; height: 20px; margin: -10px 0 0 -10px; background: var(--nv-bronze); opacity: 1; box-shadow: 0 0 0 9px rgba(169, 134, 92, 0.28); }
:is(#nova-page, .nova-scope) .nova-leaflet .nova-tt { border: 0; border-radius: 0; padding: 7px 11px; background: var(--nv-ink); color: var(--nv-white); font-family: var(--nv-display); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; box-shadow: none; }
:is(#nova-page, .nova-scope) .nova-leaflet .nova-tt::before { display: none; }
:is(#nova-page, .nova-scope) .nova-leaflet .leaflet-bar a { border-radius: 0; color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-leaflet .leaflet-control-attribution { font-size: 10px; }
/* ---------- investment ---------- */
:is(#nova-page, .nova-scope) #nova-investment { padding-block: clamp(90px, 11vw, 180px); }
:is(#nova-page, .nova-scope) .nova-inv { gap: clamp(40px, 6vw, 90px); }
:is(#nova-page, .nova-scope) .nova-inv__head { gap: 26px; }
:is(#nova-page, .nova-scope) .nova-inv__body { flex-direction: row; align-items: flex-start; gap: clamp(32px, 6vw, 110px); }
:is(#nova-page, .nova-scope) .nova-inv__list { flex: 1 1 62%; }
:is(#nova-page, .nova-scope) .nova-inv__item { flex-direction: row; gap: clamp(16px, 3vw, 50px); padding: 24px 0; border-top: 1px solid var(--nv-line); }
:is(#nova-page, .nova-scope) .nova-inv__item > .elementor-widget-heading { flex: 0 0 34%; width: 34%; }
:is(#nova-page, .nova-scope) .nova-inv__item > .nova-text { flex: 1 1 auto; width: auto; }
:is(#nova-page, .nova-scope) .nova-inv__figs { flex: 1 1 38%; position: sticky; top: calc(var(--nv-nav-h) + 24px); padding: clamp(24px, 3vw, 42px); background: var(--nv-ink); color: var(--nv-white); gap: 6px; }
:is(#nova-page, .nova-scope) .nova-inv__figs .nova-label, :is(#nova-page, .nova-scope) .nova-inv__figs .nova-label p { color: var(--nv-bronze-soft); margin-bottom: 8px; }
:is(#nova-page, .nova-scope) .nova-fig { padding: 16px 0; border-top: 1px solid var(--nv-line-light); gap: 4px; }
:is(#nova-page, .nova-scope) .nova-fig__n .elementor-heading-title { font-family: var(--nv-display); font-weight: 300; font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.05; text-transform: none; color: var(--nv-white); font-variant-numeric: tabular-nums; }
:is(#nova-page, .nova-scope) .nova-fig__l, :is(#nova-page, .nova-scope) .nova-fig__l p { font-size: 0.86rem; opacity: 0.7; }

/* ---------- collection ---------- */
:is(#nova-page, .nova-scope) #nova-collection { padding-block: clamp(90px, 11vw, 180px); }
:is(#nova-page, .nova-scope) .nova-col { gap: clamp(30px, 4vw, 56px); }
:is(#nova-page, .nova-scope) .nova-col__head { gap: 18px; }
:is(#nova-page, .nova-scope) .nova-filters { display: flex; flex-wrap: wrap; gap: 14px 36px; align-items: flex-end; padding: 22px 0; border-top: 1px solid var(--nv-line); border-bottom: 1px solid var(--nv-line); }
:is(#nova-page, .nova-scope) .nova-filter { border: 0; margin: 0; padding: 0; min-width: 0; }
:is(#nova-page, .nova-scope) .nova-filter legend { padding: 0; margin-bottom: 10px; font-family: var(--nv-display); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.26em; text-transform: uppercase; opacity: 0.6; }
:is(#nova-page, .nova-scope) .nova-filter div { display: flex; flex-wrap: wrap; gap: 6px; }
:is(#nova-page, .nova-scope) .nova-chip { min-height: 38px; padding: 0 14px; border: 1px solid var(--nv-line); border-radius: 0; background: transparent; color: var(--nv-ink); font-family: var(--nv-display); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-chip:hover { border-color: var(--nv-ink); }
:is(#nova-page, .nova-scope) .nova-chip[aria-pressed="true"] { background: var(--nv-ink); border-color: var(--nv-ink); color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-filters__count { margin-left: auto; font-family: var(--nv-display); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
:is(#nova-page, .nova-scope) .nova-filters__reset { border: 0; background: none; padding: 0 0 2px; font-family: var(--nv-display); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nv-bronze); border-bottom: 1px solid currentColor; border-radius: 0; cursor: pointer; }
:is(#nova-page, .nova-scope) .nova-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: clamp(28px, 3vw, 46px) clamp(18px, 2.2vw, 34px); margin-top: clamp(30px, 4vw, 54px); }
:is(#nova-page, .nova-scope) .nova-prop { display: flex; flex-direction: column; min-width: 0; }
:is(#nova-page, .nova-scope) .nova-prop[hidden] { display: none; }
:is(#nova-page, .nova-scope) .nova-prop__img { position: relative; overflow: hidden; margin-bottom: 18px; }
:is(#nova-page, .nova-scope) .nova-prop__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-prop:hover .nova-prop__img img { transform: scale(1.045); }
:is(#nova-page, .nova-scope) .nova-prop.is-reserved .nova-prop__img img { filter: grayscale(0.55); opacity: 0.8; }
:is(#nova-page, .nova-scope) .nova-prop__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
:is(#nova-page, .nova-scope) .nova-prop__no { font-family: var(--nv-display); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.26em; text-transform: uppercase; color: var(--nv-bronze); }
:is(#nova-page, .nova-scope) .nova-prop h3 { margin: 6px 0 12px; }
:is(#nova-page, .nova-scope) .nova-prop__specs { list-style: none; margin: 0 0 18px; padding: 12px 0 0; border-top: 1px solid var(--nv-line); display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; font-size: 0.9rem; line-height: 1.5; }
:is(#nova-page, .nova-scope) .nova-prop__specs li { opacity: 0.8; }
:is(#nova-page, .nova-scope) .nova-prop__cta { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-top: auto; }
:is(#nova-page, .nova-scope) .nova-link { border: 0; background: none; padding: 0 0 2px; border-bottom: 1px solid currentColor; border-radius: 0; font-family: var(--nv-display); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none; color: inherit; cursor: pointer; }
:is(#nova-page, .nova-scope) .nova-grid__empty { grid-column: 1 / -1; padding: 40px 0; font-size: 1rem; opacity: 0.75; }

/* ---------- final ---------- */
:is(#nova-page, .nova-scope) #nova-final { height: var(--nv-vh); min-height: 620px; }
:is(#nova-page, .nova-scope) .nova-final__stage::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(20, 21, 19, 0.5), rgba(20, 21, 19, 0.28) 45%, rgba(20, 21, 19, 0.55)); pointer-events: none; }
:is(#nova-page, .nova-scope) .nova-final__content { position: absolute; inset: 0; width: 100%; height: 100%; align-items: center; justify-content: center; gap: 34px; padding: var(--nv-nav-h) var(--nv-gutter) 0; text-align: center; }
:is(#nova-page, .nova-scope) .nova-final__content > .elementor-element { width: auto; max-width: 1100px; }
:is(#nova-page, .nova-scope) .nova-final__content .nova-row { justify-content: center; }

/* ---------- contact ---------- */
:is(#nova-page, .nova-scope) #nova-contact { padding-block: clamp(90px, 11vw, 170px); }
:is(#nova-page, .nova-scope) .nova-contact { flex-direction: row; align-items: flex-start; gap: clamp(36px, 7vw, 130px); }
:is(#nova-page, .nova-scope) .nova-contact__copy { flex: 1 1 42%; gap: 26px; }
:is(#nova-page, .nova-scope) .nova-contact__form { flex: 1 1 58%; min-width: 0; }
:is(#nova-page, .nova-scope) .nova-advisor { display: flex; flex-direction: column; gap: 16px; padding-top: 26px; border-top: 1px solid var(--nv-line-light); }
:is(#nova-page, .nova-scope) .nova-advisor__mail { font-family: var(--nv-display); font-size: 1.05rem; letter-spacing: 0.02em; overflow-wrap: anywhere; }
:is(#nova-page, .nova-scope) .nova-advisor div { display: flex; flex-wrap: wrap; gap: 10px; }
:is(#nova-page, .nova-scope) .nova-form .elementor-form-fields-wrapper { margin: 0 -10px; row-gap: 22px; }
:is(#nova-page, .nova-scope) .nova-form .elementor-field-group { padding: 0 10px; margin-bottom: 0; }
:is(#nova-page, .nova-scope) .nova-form .elementor-field-label { margin-bottom: 8px; padding: 0; font-family: var(--nv-display); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--nv-white); opacity: 0.7; }
:is(#nova-page, .nova-scope) .nova-form .elementor-field-textual, :is(#nova-page, .nova-scope) .nova-form select { min-height: 52px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--nv-line-light); border-radius: 0; background-color: transparent; color: var(--nv-white); font-family: var(--nv-body); font-size: 1rem; box-shadow: none; }
:is(#nova-page, .nova-scope) .nova-form .elementor-field-textual::placeholder { color: rgba(246, 243, 237, 0.42); }
:is(#nova-page, .nova-scope) .nova-form .elementor-field-textual:focus, :is(#nova-page, .nova-scope) .nova-form select:focus { border-bottom-color: var(--nv-bronze-soft); outline: none; }
:is(#nova-page, .nova-scope) .nova-form select option { background: var(--nv-ink); color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-form .elementor-select-wrapper .select-caret-down-wrapper { color: var(--nv-white); fill: var(--nv-white); right: 2px; }
:is(#nova-page, .nova-scope) .nova-form .elementor-field-type-submit { margin-top: 10px; }
:is(#nova-page, .nova-scope) .nova-form .elementor-button { min-height: 56px; padding: 0 2.2em; border: 1px solid var(--nv-bronze); border-radius: 0; background: var(--nv-bronze); color: var(--nv-ink); font-family: var(--nv-display); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; transition: background-color 0.35s var(--nv-ease), border-color 0.35s var(--nv-ease); }
:is(#nova-page, .nova-scope) .nova-form .elementor-button:hover { background: var(--nv-white); border-color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-form .elementor-message { margin-top: 18px; font-size: 0.95rem; color: var(--nv-white); }
:is(#nova-page, .nova-scope) .nova-form .elementor-message.elementor-message-danger, :is(#nova-page, .nova-scope) .nova-form .elementor-error .elementor-field-label { color: #E9A089; }

/* ---------- footer ---------- */
:is(#nova-page, .nova-scope) #nova-footer { padding-block: clamp(50px, 6vw, 90px) 34px; border-top: 1px solid var(--nv-line-light); }
:is(#nova-page, .nova-scope) .nova-foot { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 40px clamp(24px, 4vw, 70px); }
:is(#nova-page, .nova-scope) .nova-foot__brand { display: flex; flex-direction: column; gap: 18px; }
:is(#nova-page, .nova-scope) .nova-foot__tag { font-family: var(--nv-display); font-weight: 300; font-size: clamp(1.3rem, 2.2vw, 2rem); text-transform: uppercase; line-height: 1.15; max-width: 14ch; }
:is(#nova-page, .nova-scope) .nova-foot h2 { margin: 0 0 16px; font-family: var(--nv-display); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.26em; text-transform: uppercase; color: var(--nv-bronze-soft); }
:is(#nova-page, .nova-scope) .nova-foot ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: 0.93rem; }
:is(#nova-page, .nova-scope) .nova-foot a { text-decoration: none; opacity: 0.8; transition: opacity 0.3s ease; }
:is(#nova-page, .nova-scope) .nova-foot a:hover { opacity: 1; }
:is(#nova-page, .nova-scope) .nova-foot address { font-style: normal; font-size: 0.93rem; line-height: 1.7; opacity: 0.8; }
:is(#nova-page, .nova-scope) .nova-foot__base { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 30px; margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--nv-line-light); font-size: 0.78rem; opacity: 0.62; }

/* ---------- reveal states (only once JS is running) ---------- */
html.nova-js :is(#nova-page, .nova-scope) .nova-reveal { overflow: hidden; }
html.nova-js :is(#nova-page, .nova-scope) .nova-reveal img { clip-path: inset(0 0 100% 0); transform: scale(1.12); transition: clip-path 1.3s var(--nv-ease), transform 1.8s var(--nv-ease); }
html.nova-js :is(#nova-page, .nova-scope) .nova-reveal.is-in img { clip-path: inset(0 0 0 0); transform: none; }
html.nova-js :is(#nova-page, .nova-scope) .nova-rise { opacity: 0; transform: translateY(26px); transition: opacity 0.9s ease, transform 1.1s var(--nv-ease); }
html.nova-js :is(#nova-page, .nova-scope) .nova-rise.is-in { opacity: 1; transform: none; }

/* ---------- cursor ---------- */
.nova-cursor { position: fixed; left: 0; top: 0; z-index: 150; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--nv-bronze); pointer-events: none; opacity: 0; display: flex; align-items: center; justify-content: center; transition: width 0.4s var(--nv-ease), height 0.4s var(--nv-ease), margin 0.4s var(--nv-ease), opacity 0.3s ease, background-color 0.3s ease; will-change: transform; }
.nova-cursor.is-live { opacity: 1; }
.nova-cursor span { font-family: var(--nv-display); font-size: 0.56rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--nv-ink); opacity: 0; transition: opacity 0.2s ease; white-space: nowrap; }
.nova-cursor.is-label { width: 70px; height: 70px; margin: -35px 0 0 -35px; background: var(--nv-bronze-soft); }
.nova-cursor.is-label span { opacity: 1; }
@media (hover: none), (pointer: coarse) { .nova-cursor { display: none; } }

/* ---------- simple mode: phones and reduced motion (no scroll-driven camera in the masterplan) ---------- */
html.nova-simple :is(#nova-page, .nova-scope) #nova-masterplan { height: auto; }
html.nova-simple :is(#nova-page, .nova-scope) .nova-mp__stage { position: relative; height: var(--nv-vh); min-height: 620px; }
html.nova-reduced :is(#nova-page, .nova-scope) #nova-hero, html.nova-reduced :is(#nova-page, .nova-scope) #nova-final { height: var(--nv-vh); }
html.nova-reduced :is(#nova-page, .nova-scope) #nova-lifestyle { height: auto; }
html.nova-reduced :is(#nova-page, .nova-scope) .nova-life__stage { position: relative; height: auto; overflow: visible; }
html.nova-reduced :is(#nova-page, .nova-scope) .nova-life { position: relative; height: 80vh; pointer-events: auto; }
html.nova-reduced :is(#nova-page, .nova-scope) .nova-life__img { clip-path: none; }
html.nova-reduced :is(#nova-page, .nova-scope) .nova-life__copy { opacity: 1; transform: none; }
html.nova-reduced :is(#nova-page, .nova-scope) .nova-life__count, html.nova-reduced :is(#nova-page, .nova-scope) .nova-life__title { display: none; }
html.nova-reduced :is(#nova-page, .nova-scope) .nova-hs__stage { position: relative; height: auto; overflow: visible; padding-block: 90px; }
html.nova-reduced :is(#nova-page, .nova-scope) .nova-hs__scroller { overflow-x: auto; }

/* ---------- tablet ---------- */
@media (max-width: 1100px) {
  :is(#nova-page, .nova-scope) .nova-nav-menu, :is(#nova-page, .nova-scope) .nova-nav-cta { display: none; }
  :is(#nova-page, .nova-scope) .nova-burger { display: inline-flex; }
  :is(#nova-page, .nova-scope) .nova-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(#nova-page, .nova-scope) .nova-foot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(#nova-page, .nova-scope) .nova-viewer__gallery { padding-left: var(--nv-gutter); padding-top: 46vh; grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 1fr; }
  :is(#nova-page, .nova-scope) .nova-viewer__gallery img:first-child { grid-row: auto; }
}

/* ---------- phone ---------- */
@media (max-width: 767px) {
  :root { --nv-nav-h: 64px; }
  :is(#nova-page, .nova-scope) { font-size: 16px; }
  body.admin-bar :is(#nova-page, .nova-scope) #nova-nav { top: 46px; }
  :is(#nova-page, .nova-scope) .nova-logo__word { font-size: 0.68rem; letter-spacing: 0.3em; }
  :is(#nova-page, .nova-scope) .nova-logo svg { width: 28px; height: 28px; }
  :is(#nova-page, .nova-scope) #nova-hero { height: 190vh; }
  :is(#nova-page, .nova-scope) .nova-hero__content .nova-button, :is(#nova-page, .nova-scope) .nova-hero__content .nova-button .elementor-button { width: 100%; }
  :is(#nova-page, .nova-scope) .nova-hero__content .nova-row { width: 100%; flex-direction: column; align-items: stretch; }
  :is(#nova-page, .nova-scope) .nova-dev__grid { flex-direction: column; }
  :is(#nova-page, .nova-scope) .nova-dev__media { width: 100%; margin-right: 0; padding-bottom: 70px; }
  :is(#nova-page, .nova-scope) .nova-dev__img2 { left: auto; right: 0; width: 48%; }
  :is(#nova-page, .nova-scope) .nova-stat { flex: 1 1 44%; padding-top: 22px; }
  :is(#nova-page, .nova-scope) .nova-facts { grid-template-columns: 1fr; }
  :is(#nova-page, .nova-scope) .nova-mp__stage::before { background: linear-gradient(to bottom, rgba(20, 21, 19, 0.55), rgba(20, 21, 19, 0) 34%, rgba(20, 21, 19, 0) 58%, rgba(20, 21, 19, 0.6)); }
  :is(#nova-page, .nova-scope) .nova-mp__side { left: var(--nv-gutter); right: var(--nv-gutter); width: auto; top: calc(var(--nv-nav-h) + 10px); bottom: 16px; gap: 10px; pointer-events: none; padding: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  :is(#nova-page, .nova-scope) .nova-mp__panel-w { margin-top: auto; }
  :is(#nova-page, .nova-scope) .nova-mp__side > * { pointer-events: auto; }
  :is(#nova-page, .nova-scope) .nova-mp__zones { display: flex; gap: 0; margin-top: 4px; overflow-x: auto; border-top: 0; scrollbar-width: none; }
  :is(#nova-page, .nova-scope) .nova-mp__zones::-webkit-scrollbar { display: none; }
  :is(#nova-page, .nova-scope) .nova-mp__zones li { flex: none; }
  :is(#nova-page, .nova-scope) .nova-mp__zones button { padding: 10px 14px 10px 0; border-bottom: 0; font-size: 0.68rem; white-space: nowrap; gap: 8px; }
  :is(#nova-page, .nova-scope) .nova-mp__zones button.is-on { padding-left: 0; color: var(--nv-bronze-soft); }
  :is(#nova-page, .nova-scope) .nova-mp__panel { padding: 16px 16px 18px; background: rgba(28, 29, 27, 0.8); }
  :is(#nova-page, .nova-scope) .nova-mp__hint { display: none; }
  :is(#nova-page, .nova-scope) .nova-mp__tip { left: var(--nv-gutter) !important; right: var(--nv-gutter); top: auto !important; bottom: 16px; transform: none !important; z-index: 6; }
  :is(#nova-page, .nova-scope) #nova-properties { padding-block: 80px 70px; }
  :is(#nova-page, .nova-scope) .nova-hs__stage { position: relative; height: auto; overflow: visible; padding-top: 0; }
  :is(#nova-page, .nova-scope) .nova-hs__scroller { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  :is(#nova-page, .nova-scope) .nova-hs__scroller::-webkit-scrollbar { display: none; }
  :is(#nova-page, .nova-scope) .nova-hs__track { transform: none !important; }
  :is(#nova-page, .nova-scope) .nova-card { width: 78vw; scroll-snap-align: center; }
  :is(#nova-page, .nova-scope) .nova-viewer::before { background: linear-gradient(to bottom, rgba(20, 21, 19, 0.7), rgba(20, 21, 19, 0) 40%, rgba(20, 21, 19, 0) 62%, rgba(20, 21, 19, 0.7)); }
  :is(#nova-page, .nova-scope) .nova-viewer__info { width: auto; right: var(--nv-gutter); top: calc(var(--nv-nav-h) + 6px); gap: 8px; }
  :is(#nova-page, .nova-scope) .nova-viewer__text, :is(#nova-page, .nova-scope) .nova-specs div:nth-child(n+5) { display: none; }
  :is(#nova-page, .nova-scope) .nova-viewer__info .nova-btn { min-height: 44px; }
  :is(#nova-page, .nova-scope) .nova-viewer__zoom { top: auto; bottom: 150px; transform: none; }
  :is(#nova-page, .nova-scope) .nova-viewer__bar { flex-direction: column-reverse; align-items: stretch; gap: 8px; bottom: 14px; }
  :is(#nova-page, .nova-scope) .nova-viewer__sub { align-items: stretch; }
  :is(#nova-page, .nova-scope) .nova-viewer__note { text-align: left; max-width: none; }
  :is(#nova-page, .nova-scope) .nova-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  :is(#nova-page, .nova-scope) .nova-tabs::-webkit-scrollbar { display: none; }
  :is(#nova-page, .nova-scope) .nova-tabs button { flex: none; padding: 0 14px; }
  :is(#nova-page, .nova-scope) .nova-viewer__gallery { padding: 44vh 12px 130px; grid-template-columns: 1fr 1fr; }
  :is(#nova-page, .nova-scope) .nova-viewer__gallery img:nth-child(n+3) { display: none; }
  :is(#nova-page, .nova-scope) .nova-fp, :is(#nova-page, .nova-scope) .nova-am, :is(#nova-page, .nova-scope) .nova-map { grid-template-columns: 1fr; }
  :is(#nova-page, .nova-scope) .nova-fp__detail { position: static; }
  :is(#nova-page, .nova-scope) .nova-fp .nv-rn { font-size: 15px; letter-spacing: 1px; }
  :is(#nova-page, .nova-scope) .nova-fp .nv-ra { display: none; }
  :is(#nova-page, .nova-scope) #nova-lifestyle { height: 400vh; }
  :is(#nova-page, .nova-scope) .nova-life__img { left: 0; bottom: 46%; }
  :is(#nova-page, .nova-scope) .nova-life__copy { width: auto; right: var(--nv-gutter); bottom: 56px; gap: 10px; }
  :is(#nova-page, .nova-scope) .nova-life__title { display: none; }
  html.nova-reduced :is(#nova-page, .nova-scope) .nova-life { height: auto; padding-bottom: 40px; }
  html.nova-reduced :is(#nova-page, .nova-scope) .nova-life__img { position: relative; left: 0; bottom: auto; height: 46vh; }
  html.nova-reduced :is(#nova-page, .nova-scope) .nova-life__copy { position: relative; left: 0; bottom: auto; padding: 24px var(--nv-gutter) 0; }
  :is(#nova-page, .nova-scope) .nova-am__view { min-height: 60vw; order: -1; }
  :is(#nova-page, .nova-scope) .nova-loc, :is(#nova-page, .nova-scope) .nova-inv__body, :is(#nova-page, .nova-scope) .nova-contact { flex-direction: column; }
  :is(#nova-page, .nova-scope) .nova-loc__copy, :is(#nova-page, .nova-scope) .nova-loc__map, :is(#nova-page, .nova-scope) .nova-inv__list, :is(#nova-page, .nova-scope) .nova-inv__figs, :is(#nova-page, .nova-scope) .nova-contact__copy, :is(#nova-page, .nova-scope) .nova-contact__form { width: 100%; flex-basis: auto; }
  :is(#nova-page, .nova-scope) .nova-inv__figs { position: static; }
  :is(#nova-page, .nova-scope) .nova-inv__item { flex-direction: column; gap: 8px; }
  :is(#nova-page, .nova-scope) .nova-inv__item > .elementor-widget-heading { width: 100%; flex-basis: auto; }
  :is(#nova-page, .nova-scope) .nova-filters__count { margin-left: 0; width: 100%; }
  :is(#nova-page, .nova-scope) .nova-final__content .nova-row { flex-direction: column; align-items: stretch; width: 100%; }
  :is(#nova-page, .nova-scope) .nova-final__content .nova-button .elementor-button { width: 100%; }
  :is(#nova-page, .nova-scope) .nova-foot { grid-template-columns: 1fr 1fr; }
  :is(#nova-page, .nova-scope) .nova-foot__brand { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  :is(#nova-page, .nova-scope) *, .nova-loader, .nova-canvas, .nova-cursor { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
  html.nova-js :is(#nova-page, .nova-scope) .nova-reveal, html.nova-js :is(#nova-page, .nova-scope) .nova-reveal img, html.nova-js :is(#nova-page, .nova-scope) .nova-rise { clip-path: none; transform: none; opacity: 1; }
}

/* ---------- Elementor editor: show everything flat, no fixed layers ---------- */
body.elementor-editor-active :is(#nova-page, .nova-scope) #nova-nav { position: relative; background: var(--nv-ink); }
body.elementor-editor-active :is(#nova-page, .nova-scope) #nova-hero, body.elementor-editor-active :is(#nova-page, .nova-scope) #nova-masterplan, body.elementor-editor-active :is(#nova-page, .nova-scope) #nova-final, body.elementor-editor-active :is(#nova-page, .nova-scope) #nova-lifestyle { height: auto; }
body.elementor-editor-active :is(#nova-page, .nova-scope) .nova-sticky { position: relative; }
body.elementor-editor-active :is(#nova-page, .nova-scope) .nova-3d { background: var(--nv-ink-2); }
body.elementor-editor-active :is(#nova-page, .nova-scope) .nova-life { position: relative; height: 70vh; }
body.elementor-editor-active :is(#nova-page, .nova-scope) .nova-life__img { clip-path: none; }
body.elementor-editor-active :is(#nova-page, .nova-scope) .nova-life__copy { opacity: 1; transform: none; }
body.elementor-editor-active .nova-loader, body.elementor-editor-active :is(#nova-page, .nova-scope) .nova-menu { display: none; }

/* ---------- Theme Builder header / footer wrappers ---------- */
:is(#nova-page, .nova-scope).nova-scope--top { z-index: 70; overflow: visible; }
:is(#nova-page, .nova-scope).nova-scope--foot { z-index: 1; }
body.elementor-editor-active :is(#nova-page, .nova-scope).nova-scope--top { z-index: auto; }
:is(#nova-page, .nova-scope) .nova-foot a.nova-credit { opacity: 1; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
