@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/bodoni-moda-italic-400.ttf") format('truetype');
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/bodoni-moda-normal-400.ttf") format('truetype');
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/bodoni-moda-normal-500.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/manrope-400.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/manrope-500.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/manrope-600.ttf") format('truetype');
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/manrope-700.ttf") format('truetype');
}

@font-face {
  font-family: 'Prata';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/prata.ttf") format('truetype');
}

*,*::before,*::after {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}

body {
  margin:0;
  --paper:#F5F2EC;
  --soft:#EBE4D8;
  --stone:#D6CCBD;
  --ink:#22272A;
  --muted:#646a6b;
  --line:#d6cfc3;
  --accent:#8A5A36;
  --dark:#383E42;
  --card:#fcfaf7;
  background:var(--paper);
  color:var(--ink);
  font-family:Manrope,Arial,sans-serif;
  font-size:15px;
  line-height:1.65;
}

body[data-theme=dark] {
  --paper:#202629;
  --soft:#2c3335;
  --stone:#515856;
  --ink:#f1e9dc;
  --muted:#b7bcb8;
  --line:#49504e;
  --accent:#d4a47d;
  --dark:#151c1f;
  --card:#282f32;
}

a {
  color:inherit;
  text-decoration:none;
}

button,input,select,textarea {
  font:inherit;
}

button,a,input,select,textarea {
  touch-action:manipulation;
}

button {
  cursor:pointer;
}

button:disabled {
  cursor:default;
  opacity:.45;
}

img {
  max-width:100%;
  display:block;
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px;
}

button {
  color:inherit;
}

h1,h2,h3,p {
  margin-top:0;
}

h1,h2,h3,.serif,.unit-id {
  font-family:'Bodoni Moda',Georgia,serif;
  font-weight:400;
  line-height:1.1;
}

h1 {
  font-size:clamp(3.4rem,7vw,7.6rem);
  letter-spacing:-.055em;
  margin-bottom:1.8rem;
}

h2 {
  font-size:clamp(2.6rem,4.6vw,5rem);
  letter-spacing:-.045em;
  margin-bottom:1.5rem;
}

h3 {
  font-size:2rem;
  letter-spacing:-.025em;
}

p {
  max-width:65ch;
}

.muted,.small {
  color:var(--muted);
}

.small {
  font-size:.76rem;
  line-height:1.6;
}

.eyebrow {
  font-size:.67rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--accent);
  margin-bottom:1.3rem;
}

.section {
  padding:clamp(4rem,8vw,8rem) max(5vw,20px);
}

.wrap {
  max-width:1380px;
  margin:auto;
}

.narrow {
  max-width:850px;
}

.section-head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:2rem;
  margin-bottom:3rem;
}

.section-head p {
  max-width:420px;
}

.lead {
  font-size:clamp(1.05rem,1.6vw,1.25rem);
  color:var(--muted);
  line-height:1.8;
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:1.3rem;
  min-height:48px;
  padding:12px 23px;
  border:1px solid var(--accent);
  background:var(--accent);
  color:var(--paper);
  font-size:.77rem;
  font-weight:600;
  text-align:center;
  line-height:1.5;
}

.btn:hover {
  filter:brightness(.93);
}

.btn.line {
  background:transparent;
  color:var(--ink);
  border-color:var(--line);
}

.link {
  display:inline-block;
  border-bottom:1px solid var(--accent);
  padding:10px 0;
  color:var(--accent);
  font-weight:600;
  font-size:.8rem;
}

.actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}

.icon {
  background:none;
  border:1px solid var(--line);
  min-height:44px;
  min-width:44px;
  display:inline-grid;
  place-items:center;
  padding:8px;
  font-size:1.1rem;
}

.icon.active {
  background:var(--accent);
  color:var(--paper);
  border-color:var(--accent);
}

.site-header {
  height:90px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5vw;
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:sticky;
  top:0;
  z-index:30;
  gap:20px;
}

.brand {
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
}

.brand img {
  height:46px;
  width:auto;
  max-width:140px;
  object-fit:contain;
}

.brand-name {
  font-size:1.05rem;
  letter-spacing:.22em;
  line-height:1.3;
}

.brand-name small {
  display:block;
  font-size:.45rem;
  letter-spacing:.3em;
}

.site-nav {
  display:flex;
  align-items:center;
  gap:clamp(14px,1.8vw,28px);
  font-size:.72rem;
}

.site-nav a[aria-current=page] {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:7px;
}

.header-tools {
  display:flex;
  gap:9px;
  align-items:center;
}

.menu-btn {
  display:none;
}

.skip {
  position:absolute;
  top:-100px;
  left:20px;
  z-index:90;
  background:var(--paper);
  padding:15px;
}

.skip:focus {
  top:10px;
}

.hero {
  min-height:720px;
  display:grid;
  grid-template-columns:40% 60%;
  position:relative;
}

.hero-copy {
  padding:6vw 0 5vw 5vw;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}

.hero h1 {
  width:130%;
  pointer-events:none;
  font-size:clamp(4rem,6.9vw,8.1rem);
  text-shadow:0 1px 12px var(--paper);
}

.hero h1 em {
  font-weight:400;
  color:var(--accent);
}

.hero-copy p {
  max-width:320px;
}

.hero-media {
  position:relative;
  min-height:680px;
}

.hero-media img {
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:58% center;
}

.hero-label {
  position:absolute;
  right:28px;
  bottom:22px;
  color:#fff;
  font-size:.64rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-shadow:0 1px 8px #222;
}

.rhythm {
  display:flex;
  gap:8px;
  height:45px;
  align-items:end;
  margin-bottom:30px;
}

.rhythm i {
  display:block;
  width:1px;
  height:100%;
  background:var(--accent);
}

.rhythm i:nth-child(2) {
  height:75%;
}

.rhythm i:nth-child(3) {
  height:50%;
}

.facts {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:2.5rem 5vw;
  background:var(--soft);
  gap:1.5rem;
}

.fact {
  border-left:1px solid var(--line);
  padding-left:2rem;
}

.fact strong {
  display:block;
  font-family:'Bodoni Moda',Georgia,serif;
  font-size:2.4rem;
  font-weight:400;
  line-height:1.2;
}

.fact span {
  font-size:.7rem;
  color:var(--muted);
}

.split {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(2rem,6vw,7rem);
  align-items:center;
}

.split.reverse {
  grid-template-columns:.9fr 1.1fr;
}

.split-media {
  position:relative;
}

.split-media img {
  width:100%;
  aspect-ratio:1.16;
  object-fit:cover;
}

.split-media .small {
  margin:10px 0 0;
}

.number {
  font-family:'Bodoni Moda',Georgia,serif;
  color:var(--accent);
  font-size:1.5rem;
  margin-bottom:1.3rem;
}

.dark-band {
  background:var(--dark);
  color:#F5F2EC;
}

.dark-band .lead,.dark-band .small {
  color:#c6cbc7;
}

.dark-band .eyebrow {
  color:#d1a780;
}

.quick-search {
  background:var(--soft);
  padding:2rem;
  display:grid;
  grid-template-columns:1fr 1fr 1fr auto;
  gap:20px;
  align-items:end;
}

.field {
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
}

.field label,.label {
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.055em;
}

.field input,.field select,.field textarea {
  width:100%;
  min-height:46px;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
  border-radius:0;
  padding:10px 12px;
  font-variant-numeric:tabular-nums;
}

.field textarea {
  min-height:130px;
  resize:vertical;
}

.benefit-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2rem;
}

.benefit img {
  width:100%;
  aspect-ratio:1.35;
  object-fit:cover;
  margin-bottom:1.7rem;
}

.benefit p {
  font-size:.87rem;
  color:var(--muted);
}

.benefit h3 {
  font-size:1.85rem;
}

.full-image {
  height:60vw;
  max-height:660px;
  min-height:340px;
  width:100%;
  object-fit:cover;
}

.cta {
  background:var(--soft);
}

.cta h2 {
  max-width:850px;
}

.faq details {
  border-top:1px solid var(--line);
  padding:20px 0;
}

.faq details:last-child {
  border-bottom:1px solid var(--line);
}

summary {
  cursor:pointer;
  font-size:1rem;
  font-weight:600;
}

details p {
  margin:1rem 0 0;
  color:var(--muted);
  font-size:.9rem;
}

.page-top {
  padding:4.5rem 5vw 2.5rem;
}

.page-top h1 {
  font-size:clamp(3rem,6vw,6rem);
  max-width:1000px;
}

.page-top .lead {
  max-width:650px;
}

.breadcrumb {
  margin-bottom:2rem;
  font-size:.68rem;
  color:var(--muted);
}

.snapshot {
  font-size:.7rem;
  border-left:2px solid var(--accent);
  padding:8px 14px;
  color:var(--muted);
  margin:20px 0;
}

.catalog-layout {
  display:grid;
  grid-template-columns:220px 1fr;
  gap:3.5rem;
}

.filters {
  display:flex;
  flex-direction:column;
  gap:18px;
  position:sticky;
  top:118px;
  align-self:start;
}

.filters .field input {
  min-height:42px;
}

.range-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.check {
  display:flex;
  gap:8px;
  align-items:center;
  font-size:.76rem;
  cursor:pointer;
}

.check input {
  accent-color:var(--accent);
  width:17px;
  height:17px;
}

.catalog-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding-bottom:1.5rem;
  border-bottom:1px solid var(--line);
  margin-bottom:2rem;
  flex-wrap:wrap;
}

.segmented {
  display:flex;
  border:1px solid var(--line);
}

.segmented button {
  padding:9px 13px;
  background:none;
  border:0;
  font-size:.7rem;
  min-height:40px;
}

.segmented button[aria-pressed=true] {
  background:var(--ink);
  color:var(--paper);
}

.unit-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2.5rem 1.4rem;
}

.unit-card {
  border-bottom:1px solid var(--line);
  position:relative;
  min-width:0;
}

.unit-plan-link {
  background:#fff;
  display:block;
  position:relative;
  overflow:hidden;
}

.unit-plan-link img {
  width:100%;
  height:220px;
  object-fit:contain;
  padding:20px;
  transition:transform .25s;
}

.unit-plan-link:hover img {
  transform:scale(1.035);
}

.unit-card .badge {
  position:absolute;
  left:10px;
  top:10px;
}

.badge {
  display:inline-block;
  font-size:.55rem;
  letter-spacing:.06em;
  background:var(--paper);
  padding:4px 7px;
  text-transform:uppercase;
  color:var(--accent);
}

.unit-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin:15px 0 4px;
}

.unit-id {
  font-size:2.2rem;
  letter-spacing:-.04em;
}

.unit-row strong {
  font-variant-numeric:tabular-nums;
  font-weight:500;
  white-space:nowrap;
}

.unit-meta {
  font-size:.71rem;
  color:var(--muted);
  margin-bottom:12px;
}

.unit-tools {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 0 15px;
  gap:6px;
}

.unit-tools .icon {
  border:0;
  min-height:36px;
  min-width:36px;
}

.unit-tools .link {
  padding:4px 0;
  font-size:.7rem;
}

.table-scroll {
  overflow:auto;
}

.unit-table {
  border-collapse:collapse;
  width:100%;
  font-size:.8rem;
  font-variant-numeric:tabular-nums;
}

.unit-table th,.unit-table td {
  padding:15px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
  white-space:nowrap;
}

.unit-table th {
  font-size:.6rem;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--muted);
}

.unit-table td:first-child {
  font-family:'Bodoni Moda',Georgia,serif;
  font-size:1.4rem;
}

.floor-list {
  min-width:500px;
}

.floor {
  display:flex;
  gap:4px;
  margin-bottom:5px;
  align-items:stretch;
}

.floor-label {
  width:65px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  font-size:.65rem;
}

.floor a {
  flex-basis:0;
  min-width:55px;
  background:var(--soft);
  border:1px solid var(--line);
  padding:15px 4px;
  text-align:center;
  font-size:.72rem;
  line-height:1.4;
}

.floor a small {
  display:block;
  font-size:.55rem;
}

.floor a.match {
  background:var(--accent);
  color:var(--paper);
  border-color:var(--accent);
}

.floor a.miss {
  opacity:.4;
}

.schema-title {
  margin:30px 0 20px;
  font-size:1.5rem;
}

.empty {
  padding:4rem 1rem;
  text-align:center;
}

.empty p {
  margin-left:auto;
  margin-right:auto;
}

.empty h3 {
  font-size:2.4rem;
}

.comparison-bar {
  position:fixed;
  bottom:18px;
  left:50%;
  transform:translateX(-50%);
  background:var(--ink);
  color:var(--paper);
  display:flex;
  gap:22px;
  padding:13px 20px;
  align-items:center;
  z-index:35;
  box-shadow:0 6px 30px #0003;
  max-width:calc(100vw - 30px);
  font-size:.75rem;
}

.comparison-bar .btn {
  color:var(--paper);
  background:var(--accent);
  border-color:var(--accent);
  padding:8px 15px;
  min-height:40px;
}

.comparison-bar button.icon {
  border-color:#ffffff55;
  font-size:.8rem;
}

.apartment-hero {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:5vw;
  align-items:start;
}

.plan-stage {
  background:#fff;
  position:relative;
  padding:30px;
  display:grid;
  place-items:center;
  min-height:500px;
}

.plan-stage img {
  max-height:580px;
  object-fit:contain;
}

.plan-stage button {
  position:absolute;
  right:15px;
  bottom:15px;
  background:#f5f2ec;
  color:#22272a;
}

.unit-title {
  font-size:clamp(5rem,9vw,10rem);
  line-height:.9;
  margin:10px 0 25px;
}

.unit-area {
  font-size:2rem;
  font-family:'Bodoni Moda',Georgia,serif;
}

.data-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 25px;
  margin:25px 0;
}

.data-item {
  border-top:1px solid var(--line);
  padding:13px 0;
}

.data-item dt {
  font-size:.62rem;
  color:var(--muted);
}

.data-item dd {
  margin:4px 0 0;
  font-size:.9rem;
  font-variant-numeric:tabular-nums;
}

.rooms {
  border-collapse:collapse;
  width:100%;
  font-size:.82rem;
}

.rooms td {
  border-bottom:1px solid var(--line);
  padding:12px 0;
}

.rooms td:last-child {
  text-align:right;
  font-variant-numeric:tabular-nums;
}

.rooms tfoot {
  font-weight:700;
}

.gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}

.gallery-item {
  padding:0;
  cursor:zoom-in;
  border:0;
  background:transparent;
  text-align:left;
}

.gallery-item img {
  width:100%;
  aspect-ratio:1.5;
  object-fit:cover;
}

.gallery-item span {
  display:block;
  font-size:.7rem;
  padding:10px 0;
  color:var(--muted);
}

.gallery-grid.editorial .gallery-item:nth-child(7n+1) {
  grid-column:span 2;
}

.gallery-grid.editorial .gallery-item:nth-child(7n+1) img {
  aspect-ratio:2.1;
}

.chips {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:25px;
}

.chips button {
  padding:9px 17px;
  background:none;
  color:var(--ink);
  border:1px solid var(--line);
  font-size:.73rem;
  min-height:40px;
}

.chips button[aria-pressed=true] {
  background:var(--ink);
  color:var(--paper);
}

.place-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem 2.5rem;
}

.place img {
  aspect-ratio:1.776;
  object-fit:cover;
  width:100%;
}

.credit {
  color:var(--muted);
  font-size:.6rem;
  line-height:1.5;
  margin:8px 0 25px;
}

.credit a {
  text-decoration:underline;
  text-underline-offset:2px;
}

.place h3 {
  font-size:2.4rem;
}

.place .description {
  font-size:.9rem;
  color:var(--muted);
}

.place address {
  font-size:.8rem;
  font-style:normal;
  border-top:1px solid var(--line);
  padding-top:15px;
}

.place address a {
  text-decoration:underline;
  text-underline-offset:4px;
}

.contact-layout {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:8vw;
}

.contact-form {
  background:var(--soft);
  padding:clamp(20px,4vw,45px);
}

.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.form-wide {
  grid-column:1/-1;
}

.contact-info {
  padding:30px 0;
}

.contact-info h3 {
  font-size:2.2rem;
}

.contact-info a {
  display:block;
  margin-bottom:8px;
}

.contact-info address {
  font-style:normal;
  font-size:.9rem;
}

.feedback {
  padding:15px;
  border:1px solid var(--accent);
  margin-top:20px;
  font-size:.84rem;
}

.contact-form .small {
  margin:12px 0 20px;
}

.error {
  color:#ac4228;
}

.site-footer {
  background:var(--dark);
  color:#e7e2da;
  padding:4rem 5vw 2rem;
}

.footer-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:3rem;
}

.site-footer h3 {
  font-family:Manrope,Arial,sans-serif;
  font-size:1rem;
  letter-spacing:.12em;
}

.site-footer p,.site-footer a {
  font-size:.74rem;
  line-height:1.9;
}

.footer-nav {
  display:flex;
  flex-direction:column;
  gap:7px;
}

.footer-bottom {
  border-top:1px solid #ffffff25;
  margin-top:3rem;
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  font-size:.65rem;
}

.footer-bottom a {
  font-size:.65rem;
}

.notes-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}

.notes-grid article {
  border-top:1px solid var(--line);
  padding-top:25px;
}

.notes-grid li {
  margin-bottom:12px;
  font-size:.85rem;
  color:var(--muted);
}

.notes-grid h3 {
  font-size:2rem;
}

.compare-table {
  border-collapse:collapse;
  width:100%;
  font-size:.8rem;
}

.compare-table td,.compare-table th {
  border-bottom:1px solid var(--line);
  padding:18px;
  text-align:left;
  min-width:180px;
}

.compare-table th:first-child,.compare-table td:first-child {
  min-width:150px;
  color:var(--muted);
}

.compare-table img {
  width:180px;
  height:180px;
  object-fit:contain;
  background:#fff;
  margin:20px 0;
}

.compare-table h3 {
  font-size:2.8rem;
  margin-bottom:15px;
}

.toast {
  position:fixed;
  bottom:100px;
  left:50%;
  transform:translateX(-50%);
  padding:12px 22px;
  background:var(--ink);
  color:var(--paper);
  font-size:.8rem;
  z-index:100;
  box-shadow:0 5px 30px #0003;
  text-align:center;
  max-width:90vw;
}

dialog {
  background:var(--paper);
  color:var(--ink);
  border:1px solid var(--line);
  padding:35px;
  width:min(780px,calc(100vw - 30px));
  max-height:90vh;
  overflow:auto;
}

dialog::backdrop {
  background:#151b1ed9;
}

.dialog-close {
  position:absolute;
  top:12px;
  right:12px;
}

.lightbox {
  width:min(1200px,calc(100vw - 30px));
  padding:50px 20px 20px;
}

.lightbox img {
  max-height:75vh;
  margin:auto;
  object-fit:contain;
}

.lightbox .caption {
  text-align:center;
  font-size:.75rem;
  margin:14px 0 0;
}

.wizard-progress {
  display:flex;
  gap:7px;
  margin-bottom:30px;
}

.wizard-progress i {
  height:2px;
  flex:1;
  background:var(--line);
}

.wizard-progress i.done {
  background:var(--accent);
}

.wizard-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.wizard-options button {
  padding:18px;
  border:1px solid var(--line);
  background:transparent;
  text-align:left;
  min-height:60px;
}

.wizard-options button[aria-pressed=true] {
  border-color:var(--accent);
  background:var(--soft);
}

.wizard-actions {
  display:flex;
  justify-content:space-between;
  margin-top:30px;
  gap:10px;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.no-motion * {
  scroll-behavior:auto;
}

#app {
  min-height:65vh;
}

.legal-note {
  color:var(--muted);
  font-size:.7rem;
  max-width:none;
}

.mobile-only {
  display:none;
}

[hidden] {
  display:none!important;
}

@media(min-width:1600px) {
  .hero {
    min-height:820px;
  }
  .hero-media {
    min-height:820px;
  }
}

@media(max-width:1100px) {
  .site-nav {
    gap:12px;
  }
  .site-nav a {
    font-size:.66rem;
  }
  .header-tools .btn {
    display:none;
  }
  .unit-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .catalog-layout {
    gap:2rem;
    grid-template-columns:190px 1fr;
  }
  .hero {
    min-height:620px;
  }
  .hero-media {
    min-height:620px;
  }
  .fact {
    padding-left:1rem;
  }
  .plan-stage {
    min-height:400px;
  }
  .footer-grid {
    grid-template-columns:1.4fr 1fr;
  }
  .footer-nav:last-child {
    grid-column:2;
  }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:760px) {
  html {
    scroll-padding-top:75px;
  }
  .site-header {
    height:74px;
    padding:0 20px;
  }
  .brand img {
    height:38px;
    max-width:115px;
  }
  .brand-name {
    font-size:.85rem;
  }
  .site-nav {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:74px;
    padding:25px 20px;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:start;
    gap:18px;
  }
  .site-nav.open {
    display:flex;
  }
  .site-nav a {
    font-size:1rem;
  }
  .menu-btn {
    display:inline-grid;
  }
  .hero {
    display:flex;
    flex-direction:column;
  }
  .hero-copy {
    padding:50px 20px 40px;
  }
  .hero h1 {
    width:auto;
    font-size:clamp(3.7rem,12vw,5.5rem);
    text-shadow:none;
    margin-bottom:25px;
  }
  .hero-copy p {
    max-width:430px;
  }
  .hero-media {
    min-height:0;
    height:67vw;
    max-height:450px;
  }
  .hero-media img {
    object-position:center;
  }
  .rhythm {
    height:30px;
    margin-bottom:20px;
  }
  .hero-label {
    font-size:.54rem;
    right:15px;
    bottom:15px;
  }
  .facts {
    grid-template-columns:1fr 1fr;
    padding:30px 20px;
    gap:28px 15px;
  }
  .fact strong {
    font-size:2rem;
  }
  .section {
    padding:65px 20px;
  }
  .section-head {
    display:block;
    margin-bottom:30px;
  }
  .section-head h2 {
    margin-bottom:20px;
  }
  .split,.split.reverse,.apartment-hero,.contact-layout {
    grid-template-columns:1fr;
    gap:35px;
  }
  .split.reverse .split-media {
    order:2;
  }
  .split-media img {
    aspect-ratio:1.3;
  }
  .quick-search {
    grid-template-columns:1fr 1fr;
    padding:20px;
    gap:15px;
  }
  .quick-search .btn {
    width:100%;
  }
  .benefit-grid {
    grid-template-columns:1fr;
    gap:45px;
  }
  .benefit img {
    aspect-ratio:1.5;
  }
  .full-image {
    min-height:250px;
  }
  .page-top {
    padding:40px 20px 25px;
  }
  .page-top h1 {
    font-size:3.8rem;
  }
  .catalog-layout {
    grid-template-columns:1fr;
    gap:30px;
  }
  .filters {
    position:static;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
  }
  .filters>h3 {
    grid-column:1/-1;
    font-size:1.7rem;
    margin-bottom:0;
  }
  .filters .actions {
    grid-column:1/-1;
  }
  .unit-grid {
    gap:26px 14px;
  }
  .unit-plan-link img {
    height:190px;
    padding:12px;
  }
  .unit-id {
    font-size:2rem;
  }
  .unit-row {
    align-items:baseline;
    flex-wrap:wrap;
    gap:3px;
  }
  .unit-row strong {
    font-size:.85rem;
  }
  .unit-tools {
    flex-wrap:wrap;
  }
  .unit-meta {
    font-size:.62rem;
  }
  .unit-tools .link {
    font-size:.65rem;
  }
  .catalog-toolbar {
    margin-bottom:25px;
  }
  .plan-stage {
    min-height:340px;
    padding:20px;
  }
  .plan-stage img {
    max-height:440px;
  }
  .unit-title {
    font-size:6.5rem;
  }
  .gallery-grid,.place-grid,.notes-grid {
    grid-template-columns:1fr;
    gap:35px;
  }
  .gallery-grid.editorial .gallery-item:nth-child(7n+1) {
    grid-column:auto;
  }
  .gallery-grid.editorial .gallery-item:nth-child(7n+1) img {
    aspect-ratio:1.5;
  }
  .form-grid {
    grid-template-columns:1fr;
  }
  .form-wide {
    grid-column:auto;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px;
  }
  .footer-grid>div:first-child {
    grid-column:1/-1;
  }
  .footer-nav:last-child {
    grid-column:auto;
  }
  .site-footer {
    padding:50px 20px 120px;
  }
  .comparison-bar {
    gap:12px;
    padding:10px 12px;
    bottom:12px;
    width:calc(100vw - 24px);
    justify-content:space-between;
  }
  .comparison-bar .btn {
    font-size:.66rem;
    padding:8px 10px;
  }
  .comparison-bar .names {
    display:none;
  }
  .wizard-options {
    grid-template-columns:1fr;
  }
  dialog {
    padding:45px 22px 25px;
  }
  .lightbox {
    padding:50px 10px 15px;
  }
  .mobile-only {
    display:block;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  * {
    animation:none!important;
    transition:none!important;
  }
}

/* V2: clear columns, bounded controls and consistent page gutters. */
:root {
  --page-gutter:clamp(20px,5vw,80px);
}

body {
  font-size:15px;
}

.wrap {
  width:100%;
  max-width:1320px;
  min-width:0;
}

.header-shell {
  position:sticky;
  top:0;
  z-index:40;
  background:var(--paper);
}

.contact-strip {
  border-bottom:1px solid var(--line);
  font-size:.72rem;
  background:var(--soft);
}

.contact-strip__inner {
  display:flex;
  justify-content:flex-end;
  gap:28px;
  padding:6px var(--page-gutter);
  max-width:none;
  min-height:36px;
  align-items:center;
}

.contact-strip a {
  white-space:nowrap;
  line-height:1.5;
}

.site-header {
  position:relative;
  top:auto;
  padding-inline:var(--page-gutter);
  height:86px;
  gap:24px;
  z-index:auto;
}

.site-nav {
  gap:clamp(16px,1.6vw,25px);
}

.site-nav a {
  font-size:.73rem;
  white-space:nowrap;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}

.header-tools {
  gap:10px;
  flex-shrink:0;
}

.header-find {
  min-height:44px;
  padding:10px 16px;
  font-size:.7rem;
}

.language-control select {
  width:65px;
  min-height:44px;
  padding:8px 7px;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--paper);
  color:var(--ink);
  font-size:.73rem;
}

.brand {
  min-width:125px;
  gap:10px;
}

.brand img {
  height:54px;
  width:42px;
  max-width:42px;
}

.brand-name {
  font-size:.9rem;
  letter-spacing:.2em;
}

.brand-name small {
  font-size:.43rem;
}

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

.section {
  padding-inline:var(--page-gutter);
}

.page-top {
  padding-inline:var(--page-gutter);
}

.hero {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.15fr);
  min-height:0;
  align-items:stretch;
}

.hero-copy {
  min-width:0;
  padding:clamp(50px,6vw,90px) clamp(28px,3vw,48px) clamp(50px,6vw,90px) var(--page-gutter);
  overflow:hidden;
  justify-content:center;
}

.hero h1 {
  width:100%;
  max-width:100%;
  font-size:clamp(3.4rem,5.4vw,6rem);
  line-height:1.1;
  margin:0 0 26px;
  text-shadow:none;
  letter-spacing:-.045em;
  overflow-wrap:normal;
}

.hero h1 span,.hero h1 em {
  display:block;
  max-width:100%;
  white-space:normal;
}

.hero .lead {
  max-width:36ch;
  margin-bottom:28px;
  font-size:clamp(1rem,1.5vw,1.18rem);
}

.hero-media {
  min-width:0;
  min-height:0;
  position:static;
  display:flex;
  flex-direction:column;
}

.hero-photo-link {
  display:block;
  flex:1;
  min-height:520px;
  overflow:hidden;
}

.hero-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:58% center;
  min-height:0;
}

.hero-label {
  display:none;
}

.map-link {
  position:static;
  background:var(--soft);
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:18px;
  padding:20px clamp(20px,3vw,40px);
  border-top:1px solid var(--line);
  min-height:95px;
}

.map-link__symbol {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  flex:0 0 48px;
  border:1px solid var(--accent);
  font-size:.9rem;
  color:var(--accent);
}

.map-link__copy {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
  line-height:1.5;
}

.map-link strong {
  font-size:.84rem;
  font-weight:600;
}

.map-link small {
  font-size:.7rem;
  color:var(--muted);
}

.map-link__arrow {
  margin-left:auto;
  flex:0 0 18px;
  color:var(--accent);
  font-size:1.2rem;
}

.btn {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  min-width:0;
  max-width:100%;
  min-height:50px;
  padding:14px 20px;
  line-height:1.35;
  text-align:center;
  white-space:normal;
  overflow-wrap:anywhere;
}

.btn__label {
  display:block;
  min-width:0;
  text-align:center;
  line-height:1.4;
}

.btn__arrow {
  display:block;
  flex:0 0 16px;
  width:16px;
  text-align:center;
  line-height:1;
  align-self:center;
}

.plain-button {
  border-width:0 0 1px;
  background:transparent;
  padding-inline:0;
}

.search-section {
  padding-block:55px 30px;
}

.search-layout {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  align-items:center;
  gap:clamp(30px,5vw,75px);
}

.quick-search {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  padding:clamp(22px,3vw,38px);
  gap:24px 20px;
  align-items:end;
  min-width:0;
}

.quick-search .btn {
  width:100%;
  margin:0;
  min-height:48px;
}

.quick-search .field {
  min-width:0;
}

.field select,.field input,.field textarea {
  min-width:0;
  max-width:100%;
  line-height:1.4;
}

.field select {
  padding-right:28px;
}

.field option {
  background:var(--paper);
  color:var(--ink);
  font-size:1rem;
}

.search-copy {
  min-width:0;
}

.search-copy h2 {
  font-size:clamp(2rem,3.4vw,3.4rem);
  line-height:1.13;
  margin-bottom:20px;
}

.search-copy .eyebrow {
  margin-bottom:14px;
}

.search-copy p {
  font-size:.87rem;
}

.search-section .snapshot {
  margin-top:22px;
  font-size:.7rem;
  max-width:none;
}

.facts {
  padding:32px var(--page-gutter);
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  background:var(--soft);
}

.fact {
  min-width:0;
}

.fact strong {
  font-size:clamp(1.8rem,3vw,3rem);
  font-variant-numeric:tabular-nums;
}

.fact span {
  display:block;
  margin-top:7px;
  font-size:.74rem;
  line-height:1.6;
}

.section-head {
  align-items:start;
  gap:50px;
}

.section-head>div {
  flex:1;
  min-width:0;
}

.section-head h2 {
  max-width:900px;
}

.section-head>p {
  flex:0 1 350px;
  margin-top:35px;
  font-size:.95rem;
}

.benefit-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:42px 30px;
}

.benefit {
  min-width:0;
}

.benefit h3 {
  font-size:clamp(1.6rem,2.5vw,2.2rem);
  line-height:1.18;
}

.benefit p {
  font-size:.87rem;
}

.amenities-note {
  margin-top:32px;
  max-width:none;
}

.specs-section {
  background:var(--soft);
}

.spec-table {
  width:100%;
  border-collapse:collapse;
  border:1px solid var(--line);
  background:var(--paper);
  table-layout:fixed;
}

.spec-table th,.spec-table td {
  text-align:left;
  padding:22px 24px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  line-height:1.65;
  font-size:.88rem;
}

.spec-table thead th {
  font-size:.65rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--muted);
}

.spec-table th:first-child {
  width:32%;
}

.spec-table tbody th {
  font-weight:600;
}

.specs-note {
  margin-top:18px;
  max-width:none;
}

.city-hero {
  display:block;
  overflow:hidden;
}

.city-hero img {
  width:100%;
  height:auto;
  aspect-ratio:2.15;
  object-fit:cover;
  object-position:center 55%;
}

.city-caption {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-top:22px;
}

.city-caption .credit {
  margin:0;
  max-width:75ch;
}

.city-caption .btn {
  flex-shrink:0;
}

.home-faq {
  background:var(--soft);
}

.home-faq .split {
  align-items:start;
}

.faq-wrap {
  max-width:1000px;
}

.faq-list details {
  padding-block:22px;
}

.faq-list summary {
  font-size:1rem;
  line-height:1.55;
  padding-right:10px;
}

.faq-list p {
  font-size:.92rem;
  max-width:none;
}

.faq-contact {
  margin-top:65px;
  border-top:1px solid var(--line);
  padding-top:40px;
}

.location-contact {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:25px;
  font-size:.9rem;
}

.complex-hero {
  padding-inline:var(--page-gutter);
}

.complex-hero .full-image {
  max-height:680px;
  height:auto;
  aspect-ratio:2.1;
  min-height:0;
  object-fit:cover;
}

.page-top h1 {
  max-width:1100px;
  font-size:clamp(3rem,5.7vw,6.1rem);
  line-height:1.1;
  overflow-wrap:break-word;
}

.unit-title {
  max-width:100%;
}

.catalog-layout {
  grid-template-columns:220px minmax(0,1fr);
}

.catalog-toolbar {
  align-items:center;
  gap:16px;
}

.catalog-toolbar>* {
  max-width:100%;
}

.unit-plan-link img {
  height:240px;
}

.unit-card {
  min-width:0;
}

.unit-tools .link {
  font-size:.72rem;
}

.unit-meta {
  line-height:1.8;
}

.contact-form {
  min-width:0;
}

.form-grid {
  min-width:0;
}

.contact-form .check {
  align-items:start;
}

.contact-form .check input {
  flex-shrink:0;
}

.contact-form .btn {
  min-width:170px;
}

.site-footer .footer-nav a {
  min-height:28px;
}

.comparison-bar {
  max-width:calc(100vw - 40px);
}

html[lang=ru] h1,html[lang=ru] h2,html[lang=ru] h3,html[lang=ru] .serif,html[lang=ru] .unit-id {
  font-family:'Prata',Georgia,serif;
  letter-spacing:-.035em;
}

html[lang=ru] .hero h1 {
  font-size:clamp(3rem,4.3vw,5rem);
}

@media(max-width:1200px) {
  .header-find {
    display:none;
  }
  .site-nav {
    gap:17px;
  }
  .hero-photo-link {
    min-height:500px;
  }
  .hero h1 {
    font-size:clamp(3.25rem,5.4vw,5rem);
  }
}

@media(max-width:1000px) {
  .site-nav {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:86px;
    padding:25px var(--page-gutter);
    background:var(--paper);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }
  .site-nav.open {
    display:flex;
  }
  .site-nav a {
    font-size:1rem;
    min-height:44px;
    width:100%;
    padding:4px 0;
  }
  .menu-btn {
    display:inline-grid;
  }
  .site-header {
    gap:18px;
  }
  .hero-copy {
    padding-right:28px;
  }
  .hero h1 {
    font-size:clamp(2.9rem,5.8vw,4.3rem);
  }
  .hero-photo-link {
    min-height:470px;
  }
  .search-layout {
    grid-template-columns:minmax(0,1fr) minmax(0,.9fr);
    gap:30px;
  }
  .quick-search {
    padding:22px;
    gap:20px 16px;
  }
  .benefit-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .section-head {
    gap:30px;
  }
  .section-head>p {
    flex-basis:280px;
  }
  .catalog-layout {
    grid-template-columns:190px minmax(0,1fr);
    gap:28px;
  }
  .unit-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .hero .eyebrow {
    letter-spacing:.12em;
    font-size:.61rem;
  }
}

@media(max-width:760px) {
  html {
    scroll-padding-top:128px;
  }
  .contact-strip__inner {
    justify-content:space-between;
    gap:12px;
    padding:6px 20px;
    min-height:35px;
    font-size:.65rem;
  }
  .site-header {
    height:74px;
    padding-inline:20px;
    gap:12px;
  }
  .brand {
    min-width:110px;
    gap:7px;
  }
  .brand img {
    height:43px;
    width:34px;
    max-width:34px;
  }
  .brand-name {
    font-size:.77rem;
  }
  .brand-name small {
    font-size:.37rem;
  }
  .header-tools {
    gap:7px;
  }
  .header-tools .icon {
    width:38px;
    min-width:38px;
    min-height:40px;
  }
  .language-control select {
    width:58px;
    min-height:40px;
    padding:7px 4px;
    font-size:.7rem;
  }
  .site-nav {
    top:74px;
    padding-inline:20px;
  }
  .hero {
    display:flex;
    flex-direction:column;
  }
  .hero-copy {
    padding:40px 20px 38px;
    overflow:visible;
    align-items:flex-start;
  }
  .hero h1 {
    font-size:clamp(2.9rem,11.8vw,4.3rem);
    width:100%;
    max-width:100%;
    line-height:1.13;
    letter-spacing:-.04em;
  }
  .hero .lead {
    font-size:1rem;
    max-width:35ch;
    line-height:1.75;
  }
  .hero .eyebrow {
    font-size:.64rem;
    letter-spacing:.12em;
  }
  .hero-copy .btn {
    min-width:200px;
  }
  .hero-media {
    height:auto;
    max-height:none;
    display:block;
  }
  .hero-photo-link {
    min-height:0;
    height:70vw;
    max-height:430px;
  }
  .hero-media img {
    object-position:62% center;
  }
  .map-link {
    min-height:91px;
    padding:18px 20px;
    gap:14px;
  }
  .map-link strong {
    font-size:.8rem;
  }
  .map-link small {
    font-size:.66rem;
  }
  .map-link__symbol {
    width:42px;
    height:42px;
    flex-basis:42px;
  }
  .search-section {
    padding-block:35px 20px;
  }
  .search-layout {
    grid-template-columns:1fr;
    gap:28px;
  }
  .quick-search {
    order:1;
    padding:22px 18px;
    gap:20px 14px;
  }
  .search-copy {
    order:0;
  }
  .search-copy h2 {
    font-size:2.45rem;
  }
  .search-copy .eyebrow {
    margin-bottom:10px;
  }
  .quick-search .field label {
    font-size:.66rem;
  }
  .quick-search .field select {
    padding:10px 25px 10px 9px;
    font-size:.8rem;
    min-height:46px;
  }
  .quick-search .btn {
    font-size:.72rem;
    min-height:46px;
    padding:10px;
    gap:8px;
  }
  .quick-search .btn__arrow {
    flex-basis:12px;
    width:12px;
  }
  .facts {
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:28px 20px;
    gap:25px 16px;
  }
  .fact {
    padding-left:15px;
  }
  .fact strong {
    font-size:2.25rem;
  }
  .fact span {
    font-size:.68rem;
  }
  .section {
    padding-block:55px;
  }
  .section-head {
    display:block;
    margin-bottom:28px;
  }
  .section-head h2 {
    font-size:2.55rem;
    line-height:1.12;
  }
  .section-head>p {
    margin-top:20px;
    font-size:.9rem;
  }
  .benefit-grid {
    grid-template-columns:1fr;
    gap:32px;
  }
  .benefit img {
    margin-bottom:20px;
    aspect-ratio:1.6;
  }
  .benefit h3 {
    font-size:2rem;
    margin-bottom:14px;
  }
  .amenities-note {
    margin-top:25px;
  }
  .spec-table {
    table-layout:auto;
  }
  .spec-table thead {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
  }
  .spec-table tr {
    display:block;
    padding:18px 20px;
    border-bottom:1px solid var(--line);
  }
  .spec-table tr:last-child {
    border-bottom:0;
  }
  .spec-table th,.spec-table td {
    display:block;
    width:100%!important;
    padding:0;
    border:0;
    font-size:.85rem;
  }
  .spec-table tbody th {
    margin-bottom:7px;
  }
  .specs-note {
    font-size:.68rem;
  }
  .city-hero img {
    aspect-ratio:1.45;
    object-position:47% center;
  }
  .city-caption {
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
    margin-top:15px;
  }
  .city-caption .credit {
    font-size:.59rem;
  }
  .home-faq .split {
    gap:30px;
  }
  .faq-contact h2 {
    font-size:2.6rem;
  }
  .faq-contact {
    margin-top:40px;
  }
  .faq-list summary {
    font-size:.93rem;
  }
  .faq-list p {
    font-size:.86rem;
  }
  .complex-hero {
    padding-inline:20px;
  }
  .complex-hero .full-image {
    aspect-ratio:1.45;
  }
  .page-top {
    padding-top:35px;
  }
  .page-top h1 {
    font-size:clamp(2.8rem,11vw,4rem);
    line-height:1.12;
  }
  .catalog-layout {
    display:block;
  }
  .filters {
    position:static;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-bottom:32px;
    gap:16px;
  }
  .catalog-toolbar {
    gap:15px;
    margin-bottom:25px;
  }
  .catalog-toolbar .segmented {
    width:100%;
    justify-content:space-between;
  }
  .segmented button {
    flex:1;
    padding-inline:10px;
    min-height:44px;
  }
  .unit-grid {
    gap:26px 16px;
  }
  .unit-plan-link img {
    height:190px;
    padding:10px;
  }
  .unit-id {
    font-size:2.15rem;
  }
  .unit-row strong {
    font-size:.78rem;
  }
  .unit-meta {
    font-size:.63rem;
  }
  .unit-tools {
    align-items:flex-start;
  }
  .unit-tools>div {
    display:flex;
    justify-content:flex-end;
    gap:2px;
  }
  .unit-tools .link {
    font-size:.64rem;
  }
  .unit-tools .icon {
    min-width:34px;
    width:34px;
    min-height:34px;
  }
  .unit-title {
    font-size:6rem;
  }
  .place-grid {
    gap:45px;
  }
  .place h3 {
    font-size:2.2rem;
  }
  .place .description {
    font-size:.89rem;
  }
  .place address {
    font-size:.8rem;
  }
  .contact-layout {
    gap:35px;
  }
  .contact-form {
    padding:25px 20px;
  }
  .comparison-bar {
    max-width:calc(100vw - 24px);
  }
  .comparison-bar .btn {
    min-height:42px;
  }
  .header-tools .header-find {
    display:none;
  }
  .footer-bottom {
    line-height:1.7;
  }
  html[lang=ru] .hero h1 {
    font-size:clamp(2.55rem,9.6vw,3.7rem);
  }
  html[lang=ru] .page-top h1 {
    font-size:clamp(2.35rem,9vw,3.6rem);
  }
  html[lang=ru] .section-head h2 {
    font-size:2.2rem;
  }
}

@media(max-width:370px) {
  .contact-strip__inner {
    font-size:.59rem;
    gap:7px;
  }
  .brand-name {
    font-size:.7rem;
  }
  .brand {
    min-width:100px;
  }
  .header-tools {
    gap:5px;
  }
  .hero h1 {
    font-size:2.8rem;
  }
  .quick-search {
    grid-template-columns:1fr;
  }
  .unit-grid {
    grid-template-columns:1fr;
  }
  .unit-plan-link img {
    height:250px;
  }
  .unit-meta {
    font-size:.75rem;
  }
  .unit-row strong {
    font-size:.95rem;
  }
}

.hero-media.video-hero {
  align-self:center;
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
  background:var(--soft);
}

.hero-video-stage {
  width:100%;
  aspect-ratio:1916/1080;
  background:var(--soft);
  overflow:hidden;
}

.hero-media .hero-video-stage video {
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  aspect-ratio:1916/1080;
  object-fit:contain;
}

.hero-video-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding:18px 28px;
  border-bottom:1px solid var(--line);
}

.video-action {
  font:inherit;
  color:var(--ink);
  background:transparent;
  border:1px solid var(--line);
  padding:11px 15px;
  min-height:44px;
  cursor:pointer;
  text-align:center;
}

.video-action:hover {
  border-color:var(--accent);
  color:var(--accent);
}

.video-action:focus-visible,.film-open:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px;
}

.video-action--text {
  border:0;
  padding-inline:0;
  text-decoration:underline;
  text-underline-offset:5px;
}

.video-hero .map-link {
  border:0;
}

.film-section {
  padding-top:0;
}

.film-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:32px;
}

.film-card {
  min-width:0;
  background:var(--soft);
  border:1px solid var(--line);
}

.film-poster {
  display:block;
  width:100%;
  aspect-ratio:1916/1080;
  object-fit:cover;
}

.film-content {
  padding:26px 28px 30px;
}

.film-content h3 {
  margin:8px 0 12px;
  font-size:clamp(1.7rem,2.4vw,2.5rem);
  line-height:1.15;
}

.film-content p {
  margin:0 0 20px;
}

.film-open {
  font:inherit;
  cursor:pointer;
}

.film-feature {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
  align-items:center;
  background:var(--soft);
  border:1px solid var(--line);
}

.film-feature .film-content {
  padding:32px 38px;
}

.film-feature h2 {
  font-size:clamp(2rem,3.4vw,3.4rem);
  line-height:1.07;
  margin:12px 0 20px;
}

.skyline-film-dialog {
  padding:0;
  width:min(1120px,calc(100vw - 40px));
  max-width:none;
  max-height:calc(100svh - 40px);
  overflow:auto;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
}

.skyline-film-dialog::backdrop {
  background:rgba(15,20,22,.83);
}

.skyline-film-dialog__head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
}

.skyline-film-dialog__head h2 {
  font-family:inherit;
  font-size:1rem;
  line-height:1.4;
  margin:0;
}

.skyline-film-dialog__video {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1916/1080;
  max-height:calc(100svh - 150px);
  object-fit:contain;
  background:#101416;
}

.skyline-film-dialog__note {
  padding:14px 22px;
  margin:0;
  font-size:.8rem;
  color:var(--muted);
}

@media(max-width:760px) {
  .hero-media.video-hero {
    width:100%;
    align-self:stretch;
  }
  .hero-video-actions {
    gap:8px;
    padding:14px 20px;
  }
  .hero-video-actions .video-action {
    font-size:.79rem;
  }
  .film-grid {
    grid-template-columns:1fr;
    gap:24px;
  }
  .film-content {
    padding:22px;
  }
  .film-feature {
    grid-template-columns:1fr;
  }
  .film-feature .film-content {
    padding:24px;
  }
  .skyline-film-dialog {
    width:calc(100vw - 20px);
    max-height:calc(100svh - 20px);
  }
  .skyline-film-dialog__head {
    padding:14px;
  }
  .skyline-film-dialog__head h2 {
    font-size:.9rem;
  }
}

@media(prefers-reduced-motion:reduce) {
  .hero-video-stage video {
    scroll-behavior:auto;
  }
}

/* Explicit frames prevent HTML width/height attributes from stretching photos. */
.amenities-grid {
  align-items:stretch;
}

.amenities-grid .benefit {
  min-width:0;
  display:flex;
}

.amenity-card {
  display:flex;
  flex-direction:column;
  width:100%;
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid var(--line);
  transition:border-color .18s ease;
}

.amenity-card:hover {
  border-color:var(--accent);
}

.amenity-card:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:6px;
}

.amenity-image {
  display:block;
  aspect-ratio:16/9;
  width:100%;
  overflow:hidden;
  background:var(--soft);
}

.amenities-section .amenity-image img {
  display:block;
  width:100%;
  height:100%;
  max-height:100%;
  aspect-ratio:auto;
  object-fit:contain;
  margin:0;
}

.amenity-copy {
  display:flex;
  flex-direction:column;
  flex:1;
  padding:22px 0 20px;
}

.amenity-copy h3 {
  margin:0 0 15px;
}

.amenity-copy>p {
  margin:0 0 22px;
  line-height:1.8;
}

.amenity-card__footer {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  margin-top:auto;
}

.amenity-cta {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:44px;
  font-size:.8rem;
  font-weight:600;
  color:var(--accent);
}

.amenity-count {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  font-size:.68rem;
  color:var(--muted);
}

.gallery-navigation-section {
  padding-top:0;
  padding-bottom:38px;
}

.gallery-space-nav {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 20px;
}

.gallery-space-tab {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 16px;
  border:1px solid var(--line);
  font-size:.77rem;
  line-height:1.5;
  text-align:center;
}

.gallery-space-tab[aria-current=page] {
  background:var(--accent);
  border-color:var(--accent);
  color:var(--paper);
}

.gallery-space-tab:focus-visible,.gallery-category-nav a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:3px;
}

.gallery-category-nav {
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
}

.gallery-category-nav a {
  font-size:.77rem;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  border-bottom:1px solid transparent;
}

.gallery-category-nav a[aria-current=page] {
  color:var(--accent);
  border-bottom-color:var(--accent);
}

.gallery-photo-section {
  padding-top:0;
}

.gallery-film-section {
  padding-bottom:55px;
}

.film-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px;
}

.film-grid:has(>.film-card:nth-child(2):last-child) {
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.film-grid--single {
  grid-template-columns:minmax(0,1fr);
  max-width:720px;
}

.film-card {
  display:flex;
  flex-direction:column;
}

.film-card .film-content {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  flex:1;
  padding:24px;
}

.film-card .film-open {
  margin-top:auto;
}

.film-poster-frame {
  display:block;
  width:100%;
  aspect-ratio:16/9;
  padding:0;
  border:0;
  overflow:hidden;
  background:var(--soft);
  cursor:pointer;
}

.film-poster-frame:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:-4px;
}

.film-card .film-poster-frame img {
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:contain;
}

.film-feature>.film-poster {
  height:auto;
  aspect-ratio:16/9;
  object-fit:contain;
}

.space-gallery-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}

.space-gallery-grid .gallery-item {
  display:flex;
  flex-direction:column;
  min-width:0;
  align-self:start;
  max-width:100%;
}

.space-gallery-grid .gallery-item .gallery-image-frame {
  display:block;
  aspect-ratio:16/9;
  width:100%;
  padding:0;
  overflow:hidden;
  background:var(--soft);
}

.space-gallery-grid .gallery-image-frame img {
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:contain;
}

.space-gallery-grid .gallery-item .gallery-caption {
  display:block;
  width:100%;
  padding:12px 0;
  margin:0;
  font-size:.74rem;
  line-height:1.6;
}

#sadrzaji {
  scroll-margin-top:120px;
}

@media(max-width:1000px) {
  .film-grid,.space-gallery-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:760px) {
  .amenities-grid {
    grid-template-columns:minmax(0,1fr);
    gap:32px;
  }
  .amenity-copy {
    padding-top:20px;
    padding-bottom:18px;
  }
  .amenity-copy h3 {
    font-size:2rem;
  }
  .amenity-copy>p {
    font-size:.88rem;
    margin-bottom:16px;
  }
  .gallery-space-nav {
    gap:8px;
  }
  .gallery-space-tab {
    padding:9px 12px;
    font-size:.75rem;
  }
  .gallery-category-nav {
    gap:6px 18px;
  }
  .gallery-navigation-section {
    padding-bottom:30px;
  }
  .film-grid,.film-grid:has(>.film-card:nth-child(2):last-child),.space-gallery-grid {
    grid-template-columns:minmax(0,1fr);
    gap:26px;
  }
  .film-card .film-content {
    padding:22px;
  }
  .gallery-film-section {
    padding-bottom:40px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .amenity-card {
    transition:none;
  }
}

/* The supplied logo already includes the Skyline wordmark. */
.site-header {
  height:104px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:28px;
}

.site-header .brand {
  min-width:0;
  gap:36px;
  max-width:100%;
  justify-self:start;
  align-items:center;
}

.site-header .brand img {
  display:block;
  height:72px;
  width:auto;
  max-width:none;
  object-fit:contain;
  flex:0 0 auto;
}

.brand-tagline {
  display:block;
  min-width:0;
  max-width:200px;
  font-family:'Bodoni Moda',Georgia,serif;
  font-size:28px;
  font-weight:400;
  line-height:1.18;
  letter-spacing:-.025em;
  text-transform:none;
  text-wrap:balance;
}

html[lang=ru] .brand-tagline {
  font-family:'Prata',Georgia,serif;
  font-size:24px;
  letter-spacing:-.03em;
}

.site-nav {
  display:flex;
  gap:clamp(22px,1.7vw,32px);
  flex-shrink:0;
}

.site-nav a {
  font-size:17px;
  font-weight:500;
  letter-spacing:-.015em;
  min-height:48px;
  line-height:1.4;
  padding:8px 0;
  position:relative;
  text-decoration:none;
}

.site-nav a[aria-current=page] {
  text-decoration:none;
}

.site-nav a[aria-current=page]::after {
  content:"";
  height:1px;
  position:absolute;
  left:0;
  right:0;
  bottom:5px;
  background:var(--accent);
}

.header-tools {
  gap:10px;
  justify-self:end;
  align-items:center;
}

.header-tools .icon {
  min-width:44px;
  min-height:44px;
}

.language-control select {
  font-size:13px;
  min-height:44px;
}

.contact-strip__inner {
  font-size:12px;
}

@media(max-width:1600px) {
  .header-tools .header-find {
    display:none;
  }
}

@media(max-width:1240px) {
  .site-header {
    grid-template-columns:minmax(0,1fr) auto;
    gap:20px;
  }
  .site-nav {
    display:none;
    position:absolute;
    top:104px;
    left:0;
    right:0;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    padding:24px var(--page-gutter) 30px;
    gap:8px 30px;
    z-index:45;
    box-shadow:0 18px 30px #00000008;
  }
  .site-nav.open {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:start;
  }
  .site-nav a {
    font-size:18px;
    width:100%;
    min-height:48px;
    align-items:center;
  }
  .site-nav a[aria-current=page]::after {
    right:auto;
    width:32px;
  }
  .header-tools .menu-btn {
    display:inline-grid;
  }
}

@media(max-width:760px) {
  .site-header {
    height:88px;
    padding-inline:20px;
    gap:12px;
  }
  .site-header .brand {
    gap:20px;
    max-width:100%;
  }
  .site-header .brand img {
    height:58px;
    width:auto;
  }
  .brand-tagline {
    font-size:21px;
    line-height:1.15;
    letter-spacing:-.025em;
    max-width:150px;
  }
  html[lang=ru] .brand-tagline {
    font-size:18px;
    line-height:1.25;
  }
  .header-tools {
    gap:6px;
  }
  .header-tools .icon {
    width:40px;
    min-width:40px;
    min-height:44px;
  }
  .language-control select {
    width:52px;
    min-height:44px;
    padding-inline:4px;
    font-size:12px;
  }
  .site-nav {
    top:88px;
    padding:18px 20px 25px;
  }
  .site-nav.open {
    display:flex;
    flex-direction:column;
    gap:2px;
  }
  .site-nav a {
    font-size:19px;
    min-height:48px;
    padding:10px 0;
  }
  .contact-strip__inner {
    min-height:34px;
    font-size:11px;
    gap:12px;
  }
  html[lang=ru] .cta h2 {
    font-size:clamp(1.9rem,8.2vw,2.6rem);
  }
}

@media(max-width:360px) {
  .site-header {
    padding-inline:16px;
    gap:10px;
  }
  .site-header .brand {
    gap:16px;
    max-width:100%;
  }
  .brand-tagline {
    font-size:18.5px;
    letter-spacing:-.03em;
  }
  html[lang=ru] .brand-tagline {
    font-size:16.5px;
  }
  .header-tools .icon {
    width:36px;
    min-width:36px;
  }
  .language-control select {
    width:48px;
  }
  .contact-strip__inner {
    padding-inline:16px;
    font-size:10.5px;
    gap:8px;
  }
}

.premium-footer {
  --footer-ink:#f5f2ec;
  --footer-muted:#c4c5bd;
  --footer-bronze:#d6ae87;
  --footer-line:#ffffff26;
  background:#22292c;
  color:var(--footer-ink);
  padding:64px var(--page-gutter) 30px;
  border-top:1px solid #8a5a3655;
}

.premium-footer__intro {
  display:flex;
  align-items:center;
  gap:44px;
  padding-bottom:44px;
  border-bottom:1px solid var(--footer-line);
}

.premium-footer__brand {
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
}

.premium-footer .premium-footer__logo {
  display:block;
  width:80px;
  height:104px;
  max-width:none;
  object-fit:contain;
}

.premium-footer__signature {
  min-width:0;
}

.premium-footer .premium-footer__signature h2 {
  font-size:clamp(38px,4.4vw,60px);
  line-height:1.12;
  letter-spacing:-.03em;
  margin:0 0 12px;
  color:var(--footer-ink);
}

.premium-footer .premium-footer__signature p {
  font-size:15px;
  line-height:1.6;
  color:var(--footer-muted);
  margin:0;
}

.premium-footer .premium-footer__cta {
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  min-height:52px;
  padding:14px 20px;
  border:1px solid #d6ae8790;
  color:var(--footer-ink);
  font-size:14px;
  line-height:1.5;
  flex:0 0 auto;
}

.premium-footer__cta span:last-child {
  color:var(--footer-bronze);
  font-size:20px;
}

.premium-footer__cta:hover {
  border-color:var(--footer-bronze);
  background:#ffffff06;
}

.premium-footer__grid {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(0,1.1fr) minmax(0,1fr);
  gap:clamp(30px,5vw,76px);
  padding:42px 0 38px;
}

.premium-footer__grid>* {
  min-width:0;
}

.premium-footer .premium-footer__label,.premium-footer h3 {
  font-family:Manrope,Arial,sans-serif;
  font-size:12px;
  font-weight:500;
  letter-spacing:.08em;
  line-height:1.65;
  color:var(--footer-muted);
  margin:0 0 18px;
}

.premium-footer h3 {
  text-transform:uppercase;
}

.premium-footer__contact a {
  display:table;
}

.premium-footer .premium-footer__phone {
  font-size:clamp(23px,2.3vw,33px);
  font-weight:400;
  line-height:1.35;
  letter-spacing:-.035em;
  margin:0 0 14px;
  min-height:44px;
  white-space:nowrap;
}

.premium-footer .premium-footer__email {
  font-size:17px;
  line-height:1.6;
  min-height:44px;
}

.premium-footer__links {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0 24px;
}

.premium-footer .premium-footer__links a {
  font-size:16px;
  line-height:1.5;
  min-height:40px;
  display:flex;
  align-items:flex-start;
  padding:5px 0;
}

.premium-footer address {
  font-style:normal;
}

.premium-footer .premium-footer__location address {
  font-size:17px;
  line-height:1.75;
  margin:0 0 10px;
}

.premium-footer .premium-footer__location address a {
  font-size:inherit;
  line-height:inherit;
}

.premium-footer .premium-footer__location-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  color:var(--footer-bronze);
  font-size:13px;
  min-height:44px;
}

.premium-footer__legal {
  border-top:1px solid var(--footer-line);
  padding-top:26px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}

.premium-footer .premium-footer__company p,.premium-footer .premium-footer__company address {
  font-size:11px;
  line-height:1.8;
  letter-spacing:.025em;
  color:var(--footer-muted);
  margin:0;
}

.premium-footer .premium-footer__company p:first-child {
  font-size:12px;
  color:var(--footer-ink);
  margin-bottom:5px;
}

.premium-footer__register {
  display:flex;
  gap:22px;
  flex-wrap:wrap;
}

.premium-footer__policies {
  display:flex;
  gap:24px;
  flex-wrap:wrap;
}

.premium-footer .premium-footer__policies a {
  font-size:12px;
  min-height:44px;
  display:inline-flex;
  align-items:flex-start;
  line-height:1.6;
  color:var(--footer-muted);
  padding-top:1px;
}

.premium-footer__copyright {
  font-size:11px;
  line-height:1.8;
  color:var(--footer-muted);
  white-space:nowrap;
}

.premium-footer a:focus-visible {
  outline-color:var(--footer-bronze);
}

.premium-footer__links a:hover,.premium-footer__email:hover,.premium-footer__policies a:hover {
  color:var(--footer-bronze);
}

html[lang=ru] .premium-footer h3 {
  font-family:Manrope,Arial,sans-serif;
  letter-spacing:.06em;
}

@media(max-width:1100px) {
  .premium-footer__grid {
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
    gap:30px 50px;
  }
  .premium-footer__contact {
    grid-column:1/-1;
  }
  .premium-footer__contact .premium-footer__phone {
    font-size:32px;
  }
  .premium-footer__intro {
    gap:36px;
  }
}

@media(max-width:760px) {
  .premium-footer {
    padding:46px 20px 30px;
  }
  .premium-footer__intro {
    display:grid;
    grid-template-columns:55px minmax(0,1fr);
    gap:28px;
    align-items:center;
    padding-bottom:30px;
  }
  .premium-footer .premium-footer__logo {
    width:55px;
    height:auto;
    max-height:78px;
  }
  .premium-footer .premium-footer__signature h2 {
    font-size:36px;
    line-height:1.14;
    margin-bottom:10px;
  }
  .premium-footer .premium-footer__signature p {
    font-size:12px;
    line-height:1.65;
  }
  .premium-footer .premium-footer__cta {
    grid-column:1/-1;
    width:100%;
    margin:4px 0 0;
    font-size:14px;
  }
  .premium-footer__grid {
    grid-template-columns:minmax(0,1fr);
    gap:30px;
    padding:30px 0;
  }
  .premium-footer__contact {
    grid-column:auto;
  }
  .premium-footer .premium-footer__label,.premium-footer h3 {
    font-size:12px;
    margin-bottom:14px;
  }
  .premium-footer .premium-footer__phone {
    font-size:30px;
    margin-bottom:7px;
    min-height:44px;
  }
  .premium-footer .premium-footer__email {
    font-size:17px;
  }
  .premium-footer .premium-footer__links a {
    font-size:17px;
    min-height:44px;
  }
  .premium-footer__location address {
    margin-bottom:2px;
  }
  .premium-footer__legal {
    display:flex;
    flex-direction:column;
    gap:20px;
    padding-top:24px;
  }
  .premium-footer__policies {
    gap:10px 22px;
  }
  .premium-footer .premium-footer__policies a {
    min-height:34px;
  }
  .premium-footer .premium-footer__company p:first-child {
    font-size:11px;
  }
  .premium-footer .premium-footer__company p,.premium-footer .premium-footer__company address {
    font-size:11px;
  }
}

@media(max-width:360px) {
  .premium-footer .premium-footer__signature h2 {
    font-size:32px;
  }
  .premium-footer .premium-footer__phone {
    font-size:27px;
  }
}

/* Declarations formerly attached to individual template elements. */
:is(#skyline-inline-priority, [data-layout="section-flush"]) {
  padding-top:0;
}

:is(#skyline-inline-priority, [data-layout="link-button"]) {
  background:none;
  border-width:0 0 1px;
}

:is(#skyline-inline-priority, [data-layout="dark-band-link"]) {
  color:#F5F2EC;
  border-color:#a2a7a5;
}

:is(#skyline-inline-priority, [data-layout="section-soft"]) {
  background:var(--soft);
}

:is(#skyline-inline-priority, [data-layout="apartment-top"]) {
  padding-top:35px;
}

:is(#skyline-inline-priority, [data-layout="note-spacing"]) {
  margin-top:40px;
}

:is(#skyline-inline-priority, [data-layout="panel-spacing"]) {
  margin-bottom:25px;
}

:is(#skyline-inline-priority, [data-layout="wizard-result"]) {
  border-top:1px solid var(--line);
  padding:18px 0;
}

:is(#skyline-inline-priority, [data-layout="wizard-result-title"]) {
  margin:0 0 10px;
}

:is(#skyline-inline-priority, [data-layout="contact-payload"]) {
  white-space:pre-wrap;
  word-break:break-word;
  font-size:.7rem;
}

[data-layout="unit-area-scale"] {
  flex-grow: var(--unit-area);
}

/* Contact delivery state and spam guard. */
.contact-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-form .btn:disabled{opacity:.55;cursor:not-allowed}
.contact-verification{margin:20px 0;max-width:100%;min-height:65px}
.contact-form[aria-busy="true"]{cursor:progress}
