:root {
  /* Фирменная палитра JOIS (по jois.moscow): ультрамарин + тёмно-синий + бледно-голубой */
  --ink: #122744;
  --paper: #f4f6fa;
  --brand: #1e2b9e;
  --brand-deep: #0e145a;
  --night: #08114e;
  --mist: #dee8ff;
  --stage: #e4e9f2;
  --muted: #5d6784;
  --line: #d7ddea;
  --white: #fff;
  --display: Oswald, "Arial Narrow", Arial, sans-serif;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font:
    14px Inter,
    Arial,
    sans-serif;
}
button,
a,
input,
select {
  -webkit-tap-highlight-color: transparent;
}
button,
select {
  font: inherit;
}
button {
  cursor: pointer;
  border: 0;
  color: inherit;
  background: none;
}
button:focus-visible,
a:focus-visible,
select:focus-visible {
  outline: 2px solid #5c73a7;
  outline-offset: 4px;
}
button:hover {
  filter: brightness(0.92);
}
a {
  color: inherit;
}
button[disabled] {
  opacity: 0.3;
  cursor: not-allowed;
}
[hidden] {
  display: none !important;
}
header {
  height: 88px;
  display: flex;
  align-items: center;
  gap: 36px;
  padding: 0 42px;
  background: var(--paper);
  border-bottom: 1px solid #dce2f0;
  position: relative;
  z-index: 12;
}
.brand {
  font-family: var(--display);
  font-size: 42px;
  letter-spacing: 0.04em;
  line-height: 1;
  text-decoration: none;
  font-weight: 500;
  color: var(--brand-deep);
  display: flex;
  gap: 22px;
  align-items: center;
}
.brand span {
  font-family: Inter, Arial, sans-serif;
  letter-spacing: 1.5px;
  font-size: 9px;
  line-height: 1.6;
  max-width: 90px;
  font-weight: 600;
}
nav {
  display: flex;
  gap: 26px;
  margin-left: 50px;
  height: 100%;
  align-items: center;
}
.nav {
  height: 100%;
  position: relative;
  font-size: 12px;
}
.nav.active:after {
  content: "";
  height: 2px;
  background: var(--ink);
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}
.header-location {
  font-size: 9px;
  letter-spacing: 1.3px;
  margin-left: auto;
  color: var(--muted);
}
.page {
  display: none;
}
.page.active {
  display: block;
}
#explore {
  height: calc(100svh - 88px);
  min-height: 640px;
  position: relative;
  overflow: hidden;
  background: #dae1ee;
}
#scene-wrap,
#scene {
  position: absolute;
  inset: 0;
}
#scene canvas {
  width: 100%;
  height: 100%;
  display: block;
  touch-action: none;
}
#labels {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.building-label {
  position: absolute;
  transform: translate(-50%, -100%);
  pointer-events: auto;
  background: rgba(248, 249, 252, 0.94);
  backdrop-filter: blur(12px);
  border: 1px solid #fff9;
  border-radius: 5px;
  padding: 9px 15px;
  box-shadow: 0 6px 18px #12274415;
  min-width: 81px;
  text-align: left;
}
.building-label strong {
  font-size: 12px;
  font-weight: 700;
  display: block;
}
.building-label span {
  font-size: 9px;
  display: block;
  margin-top: 3px;
  color: #7c8393;
  white-space: nowrap;
}
.building-label:after {
  content: "";
  position: absolute;
  width: 1px;
  height: 20px;
  background: #788195;
  top: 100%;
  left: 50%;
}
.building-label.selected {
  background: #122744;
  color: white;
}
.building-label.selected span {
  color: #c6cfe4;
}
.amenity-label {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: auto;
  background: #122744e8;
  color: #fff;
  border-radius: 20px;
  padding: 7px 10px;
  font-size: 10px;
  white-space: nowrap;
}
.scene-top {
  position: absolute;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
}
.segmented {
  display: flex;
  padding: 4px;
  background: #f8f9fce8;
  border-radius: 30px;
  box-shadow: 0 5px 18px #30384b10;
}
.segmented > * {
  padding: 10px 19px;
  border-radius: 24px;
  font-size: 11px;
  white-space: nowrap;
  color: inherit;
  text-decoration: none;
}
.segmented button.active {
  background: var(--ink);
  color: white;
}
.round {
  width: 43px;
  height: 43px;
  border-radius: 50%;
  background: #f8f9fce8;
}
.eyebrow {
  font-size: 9px;
  letter-spacing: 1.8px;
  font-weight: 600;
  color: #7c8599;
}
#panel {
  position: absolute;
  top: 35px;
  left: 38px;
  width: 292px;
  z-index: 3;
  max-height: calc(100% - 145px);
  overflow-y: auto;
  scrollbar-width: thin;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1 {
  font-size: 45px;
  line-height: 1.12;
  letter-spacing: -2px;
  font-weight: 500;
  margin: 18px 0;
}
em {
  font-style: normal;
}
.intro {
  font-size: 12px;
  line-height: 1.8;
  color: #687081;
}
.select-hint {
  font-size: 9px;
  margin: 28px 0 13px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #687081;
}
.dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #606c87;
}
.building-list {
  background: #f7f8fbdc;
  border-radius: 8px;
  backdrop-filter: blur(14px);
  padding: 4px 14px;
}
.building-row {
  display: flex;
  width: 100%;
  align-items: center;
  text-align: left;
  padding: 13px 2px;
  border-bottom: 1px solid #d9e0ef;
}
.building-row:last-child {
  border-bottom: 0;
}
.building-row .initial {
  font-family: Oswald, Arial, sans-serif;
  font-size: 24px;
  margin-right: 14px;
  width: 26px;
  color: #737f9a;
}
.building-row strong {
  font-size: 12px;
  font-weight: 600;
}
.building-row small {
  font-size: 9px;
  display: block;
  color: #7d8597;
  margin-top: 2px;
}
.building-row .floors {
  margin-left: auto;
  font-size: 10px;
  color: #798193;
}
.building-row .arrow {
  margin-left: 12px;
  color: #737f9a;
}
.catalog-stat {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 20px;
  border-top: 1px solid #bbc4d7;
  padding-top: 17px;
}
.catalog-stat strong {
  font-size: 32px;
  font-weight: 400;
  letter-spacing: -1.5px;
}
.catalog-stat span {
  font-size: 9px;
  line-height: 1.7;
  color: #71798b;
}
.catalog-stat button {
  margin-left: auto;
  font-size: 23px;
  width: 42px;
  height: 42px;
  border: 1px solid #bec6d7;
  border-radius: 50%;
}
.scene-tools {
  position: absolute;
  bottom: 78px;
  right: 30px;
  display: flex;
  gap: 15px;
  align-items: center;
}
.view-controls {
  display: flex;
  border-radius: 30px;
  background: #f7f8fbed;
  padding: 4px;
}
.view-controls button {
  font-size: 10px;
  padding: 11px 17px;
  border-radius: 24px;
}
.view-controls button.active {
  background: #dce4f5;
}
.zoom-controls {
  display: flex;
  gap: 4px;
}
.zoom-controls button {
  background: #f7f8fbef;
  border-radius: 50%;
  width: 39px;
  height: 39px;
  font-size: 19px;
}
.scene-foot {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  min-height: 54px;
  padding: 14px 35px;
  display: flex;
  gap: 25px;
  align-items: center;
  background: #eceff5e8;
  backdrop-filter: blur(12px);
  border-top: 1px solid #fff8;
}
.model-notice {
  font-size: 9px;
  color: #737c90;
}
.scene-foot button {
  font-size: 10px;
  white-space: nowrap;
}
.scene-foot button span {
  margin-left: 5px;
  color: #7e8aa7;
}
.drag-hint {
  font-size: 9px;
  color: #838b9e;
  margin-left: auto;
  white-space: nowrap;
}
#loading {
  position: absolute;
  inset: 0;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  background: #dfe5f2;
  font-size: 12px;
  z-index: 1;
}
.spinner {
  height: 18px;
  width: 18px;
  border-radius: 50%;
  border: 1px solid #a8b0c2;
  border-top-color: #122744;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
#fallback,
#map-view {
  position: absolute;
  inset: 0;
  background: #0c294a;
  display: flex;
  align-items: center;
  justify-content: center;
}
#map-view img,
#fallback img {
  height: 100%;
  width: 100%;
  object-fit: contain;
}
#fallback p {
  position: absolute;
  bottom: 100px;
  background: white;
  padding: 16px;
  font-size: 12px;
}
.map-pin {
  position: absolute;
  background: #fff;
  color: #272f42;
  border: 2px solid #fff;
  border-radius: 30px;
  font-size: 12px;
  padding: 8px 16px;
  transform: translate(-50%, -50%);
}
#explore.map-mode #panel {
  background: #f5f6faee;
  border-radius: 10px;
  padding: 20px;
  top: 24px;
  width: 290px;
}
#explore.map-mode #panel h1 {
  font-size: 35px;
}
#explore.map-mode .scene-tools {
  display: none;
}
.back-button {
  font-size: 10px;
  color: #646e82;
  padding: 0;
  margin-bottom: 20px;
}
.detail-card {
  background: #f8f9fcef;
  border: 1px solid #fff9;
  padding: 25px;
  border-radius: 10px;
  backdrop-filter: blur(15px);
}
.detail-card h2 {
  font-family: var(--display);
  font-weight: 500;
  text-transform: uppercase;
  color: var(--brand-deep);
  font-size: 45px;
  line-height: 1.1;
  margin: 12px 0;
}
.detail-card .building-subtitle {
  color: #727b8f;
  font-size: 11px;
  line-height: 1.7;
}
.building-stats {
  display: flex;
  gap: 35px;
  margin: 23px 0;
  border-bottom: 1px solid #d6ddec;
  padding-bottom: 20px;
}
.building-stats strong {
  font-family: var(--display);
  font-size: 30px;
  font-weight: 400;
  color: var(--brand);
  display: block;
}
.building-stats small {
  font-size: 9px;
  color: #7a8295;
}
.floor-label {
  font-size: 10px;
  font-weight: 700;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}
.floor-picker {
  display: flex;
  gap: 6px;
}
.floor-picker button,
.floor-picker select {
  border: 1px solid #ccd5e6;
  background: #fff9;
  border-radius: 5px;
  height: 42px;
}
.floor-picker button {
  width: 38px;
  font-size: 20px;
}
.floor-picker select,
.floor-picker .ui-select-button {
  flex: 1;
  width: auto;
  min-width: 0;
  padding: 0 10px;
  font-size: 12px;
  color: #122744;
}
input[type="range"] {
  width: 100%;
  accent-color: #56627d;
  margin: 15px 0 6px;
}
.range-labels {
  display: flex;
  justify-content: space-between;
  color: #858ea1;
  font-size: 9px;
}
.primary {
  background: #122744;
  color: #fff;
  width: 100%;
  padding: 15px;
  margin-top: 20px;
  border-radius: 5px;
  font-size: 11px;
  display: flex;
  justify-content: space-between;
}
.detail-note {
  font-size: 9px;
  line-height: 1.7;
  color: #788195;
  margin-top: 14px;
}
.unavailable {
  margin-top: 20px;
  border-top: 1px solid #d6ddec;
  padding-top: 18px;
  font-size: 11px;
  line-height: 1.8;
  color: #6d778c;
}
.content-page {
  max-width: 1400px;
  margin: auto;
  padding: 65px 70px 40px;
}
.content-page h2 {
  font-size: 65px;
  line-height: 1.05;
  letter-spacing: -2.5px;
  font-weight: 400;
  margin: 16px 0 40px;
}
.section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.section-heading p {
  color: #838ca0;
  font-size: 12px;
  line-height: 1.8;
}
.gallery-grid,
#gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}
.gallery-card {
  position: relative;
  text-align: left;
  padding: 0;
  overflow: hidden;
}
.gallery-card:first-child {
  grid-column: span 2;
}
.gallery-card img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  display: block;
  transition: transform 0.5s;
}
.gallery-card:first-child img {
  height: 520px;
}
.gallery-card:hover img {
  transform: scale(1.02);
}
.gallery-card .caption {
  padding: 17px 0;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  font-size: 11px;
}
.gallery-card .caption span {
  font-size: 10px;
  color: #828ca1;
}
.gallery-note {
  margin: 30px 0;
  font-size: 10px;
  color: #848da0;
}
.source-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 45px;
  margin: 30px 0 60px;
}
.card-number {
  font-size: 12px;
  color: #97a1b7;
}
.source-grid h3 {
  font-size: 19px;
  font-weight: 500;
  margin: 20px 0;
}
.source-grid p,
.source-grid li {
  font-size: 12px;
  line-height: 1.9;
  color: #6e7789;
}
.source-grid p + p {
  margin-top: 12px;
}
.source-grid ul {
  padding-left: 16px;
}
.source-links {
  max-width: 700px;
}
.source-links h3 {
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 500;
}
.source-links a {
  padding: 17px 0;
  display: flex;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  font-size: 12px;
  text-decoration: none;
}
footer {
  font-size: 10px;
  color: #8991a3;
  line-height: 1.9;
  margin-top: 60px;
  padding-top: 25px;
  border-top: 1px solid var(--line);
}
.modal {
  position: fixed;
  inset: 0;
  z-index: 30;
  background: var(--paper);
}
.plan-header {
  height: 100px;
  display: flex;
  align-items: center;
  padding: 20px 32px;
  gap: 30px;
  border-bottom: 1px solid var(--line);
}
.plan-header h2 {
  font-size: 28px;
  font-weight: 500;
  letter-spacing: -1px;
  margin-top: 5px;
}
.plan-header .eyebrow {
  font-size: 8px;
}
.floor-navigation {
  display: flex;
  gap: 8px;
  margin-left: auto;
  align-items: center;
}
.floor-navigation button,
.floor-navigation select {
  border: 1px solid var(--line);
  border-radius: 5px;
  background: transparent;
  height: 40px;
  min-width: 40px;
  color: var(--ink);
  padding: 0 10px;
}
.floor-navigation select,
.floor-navigation .ui-select-button {
  font-size: 12px;
}
.close {
  font-size: 28px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #e2e9f8;
  margin-left: 10px;
}
.plan-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  height: calc(100% - 100px);
}
.plan-canvas-wrap {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: white;
}
.plan-toolbar {
  padding: 13px 22px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #eceff5;
  font-size: 9px;
  color: #828ba0;
  gap: 10px;
}
.plan-toolbar > div {
  display: flex;
  margin-left: auto;
  gap: 4px;
}
.plan-toolbar button {
  font-size: 11px;
  border: 1px solid #d8dff0;
  min-width: 32px;
  height: 30px;
  border-radius: 3px;
}
.plan-toolbar button#plan-reset {
  padding: 0 10px;
  font-size: 9px;
}
#plan-viewport {
  overflow: auto;
  flex: 1;
  display: grid;
  place-items: center;
  position: relative;
  min-height: 0;
  background: #fff;
  touch-action: pan-x pan-y;
}
#plan-transform {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transform-origin: center;
}
#floor-svg {
  width: 100%;
  height: 100%;
  min-width: 0;
  max-height: none;
  display: block;
  overflow: visible;
}
#floor-svg .unit-region {
  fill: #92adec04;
  stroke: transparent;
  stroke-width: 1;
  cursor: pointer;
  transition: fill 0.15s;
}
#floor-svg .unit-region:hover,
#floor-svg .unit-region:focus {
  fill: #92adec44;
  stroke: #546a9d;
  outline: none;
}
#floor-svg .unit-region.selected {
  fill: #83a4f25c;
  stroke: #3d507c;
  stroke-width: 1.3;
}
#floor-svg .unit-region.filtered {
  fill: #f4f6fabd;
  pointer-events: none;
}
.plan-caption {
  padding: 12px 22px;
  border-top: 1px solid #eceff5;
  font-size: 9px;
  color: #8992a5;
  display: flex;
  justify-content: space-between;
}
.unit-panel {
  border-left: 1px solid var(--line);
  padding: 22px;
  overflow: auto;
  display: flex;
  flex-direction: column;
}
.unit-panel h3 {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 18px;
  display: flex;
  justify-content: space-between;
}
.unit-panel h3 span {
  font-size: 12px;
  color: #8992a7;
}
.unit-filter {
  display: flex;
  gap: 5px;
  margin-bottom: 14px;
}
.unit-filter button {
  border: 1px solid #d2daeb;
  border-radius: 4px;
  height: 32px;
  min-width: 39px;
  padding: 0 11px;
  font-size: 10px;
}
.unit-filter .active {
  background: #122744;
  color: #fff;
  border-color: #122744;
}
.unit-row {
  display: flex;
  width: 100%;
  padding: 14px 0;
  border-bottom: 1px solid #dbe2f1;
  text-align: left;
  align-items: center;
  gap: 10px;
}
.unit-row strong {
  font-weight: 600;
  font-size: 11px;
}
.unit-row small {
  display: block;
  font-size: 9px;
  color: #848ea4;
  margin-top: 4px;
}
.unit-row .unit-area {
  margin-left: auto;
  font-size: 12px;
}
.unit-row .unit-arrow {
  margin-left: 8px;
  font-size: 15px;
  color: #8893aa;
}
.inventory-disclaimer {
  font-size: 9px;
  line-height: 1.7;
  color: #848da2;
  padding-top: 20px;
  margin-top: auto;
}
.unit-back {
  font-size: 10px;
  color: #6f7a90;
  padding: 0;
  margin-bottom: 22px;
}
.unit-detail-title {
  font-size: 28px !important;
  font-weight: 500 !important;
  letter-spacing: -1px;
  margin-bottom: 8px !important;
}
.unit-meta {
  font-size: 11px;
  line-height: 1.7;
  color: #737e95;
}
.unit-large-area {
  font-size: 40px;
  font-weight: 400;
  letter-spacing: -1.5px;
  margin: 24px 0 20px;
}
.unit-large-area span {
  font-size: 18px;
}
.unit-crop {
  background: #fff;
  border: 1px solid #d9e0f1;
  border-radius: 5px;
  margin: 15px 0;
  width: 100%;
  aspect-ratio: 1;
}
.unit-warning {
  font-size: 10px;
  background: #dfe8fa;
  color: #616d87;
  padding: 12px;
  line-height: 1.7;
  margin-top: 15px;
  border-radius: 3px;
}
.unit-detail-actions {
  display: flex;
  gap: 8px;
}
.unit-detail-actions button {
  font-size: 10px;
  border: 1px solid #c9d3e7;
  border-radius: 4px;
  padding: 10px;
  flex: 1;
}
.lightbox {
  background: #19202ff7;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 50px;
}
.lightbox > img {
  max-width: 100%;
  max-height: 85vh;
  object-fit: contain;
}
.lightbox .close {
  position: absolute;
  right: 20px;
  top: 20px;
  background: #ffffffe0;
}
.lightbox p {
  color: #c1c9da;
  font-size: 11px;
  margin: 20px;
}
.lightbox a {
  color: white;
}
#toast {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translate(-50%, 15px);
  padding: 13px 20px;
  border-radius: 8px;
  background: #122744f5;
  color: #fff;
  font-size: 12px;
  opacity: 0;
  pointer-events: none;
  z-index: 60;
  max-width: 90%;
  line-height: 1.6;
  transition: 0.25s;
}
#toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
}
@media (min-width: 1600px) {
  #panel {
    left: 55px;
    top: 55px;
    width: 310px;
  }
  h1 {
    font-size: 51px;
  }
  .building-row {
    padding: 17px 2px;
  }
  .select-hint {
    margin-top: 40px;
  }
  .catalog-stat {
    margin-top: 26px;
  }
}
@media (max-width: 1100px) {
  header {
    padding: 0 24px;
    gap: 18px;
  }
  nav {
    margin-left: 20px;
    gap: 20px;
  }
  .header-location {
    display: none;
  }
  #panel {
    width: 240px;
    left: 24px;
  }
  h1 {
    font-size: 37px;
  }
  .intro {
    font-size: 11px;
  }
  .scene-top {
    left: auto;
    right: 24px;
    transform: none;
  }
  .scene-foot {
    gap: 17px;
    padding: 15px 24px;
  }
  .drag-hint {
    display: none;
  }
  .model-notice {
    max-width: 230px;
  }
  .content-page {
    padding: 45px 35px;
  }
  .source-grid {
    gap: 25px;
  }
  .plan-layout {
    grid-template-columns: minmax(0, 1fr) 280px;
  }
  .unit-panel {
    padding: 18px;
  }
  .plan-caption span {
    display: none;
  }
}
@media (max-width: 700px) {
  header {
    height: 70px;
    padding: 0 20px;
    gap: 15px;
  }
  .brand {
    font-size: 34px;
    letter-spacing: -3px;
    gap: 14px;
  }
  .brand span {
    font-size: 7px;
    letter-spacing: 1.1px;
    max-width: 65px;
  }
  nav {
    gap: 15px;
    margin-left: auto;
  }
  .nav {
    font-size: 10px;
  }
  .header-location {
    display: none;
  }
  #explore {
    height: auto;
    min-height: calc(100svh - 70px);
    overflow: visible;
    display: none;
    padding-top: 60svh;
    padding-bottom: 60px;
  }
  #explore.active {
    display: block;
  }
  #scene-wrap {
    height: 60svh;
    min-height: 360px;
    bottom: auto;
  }
  #panel {
    position: relative;
    left: auto;
    top: auto !important;
    width: auto !important;
    max-height: none;
    overflow: visible;
    padding: 27px 22px;
    background: #f4f6fa;
    z-index: 2;
    border-radius: 18px 18px 0 0;
    margin-top: -13px;
  }
  #overview > .eyebrow {
    font-size: 8px;
  }
  h1 {
    font-size: 32px;
    letter-spacing: -1px;
    margin: 12px 0 9px;
  }
  h1 br {
    display: none;
  }
  h1 em {
    margin-left: 7px;
  }
  .intro {
    font-size: 10px;
  }
  .intro br {
    display: none;
  }
  .select-hint {
    margin-top: 20px;
    font-size: 9px;
  }
  .building-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 15px;
    background: #e6eefe;
    padding: 7px 14px;
  }
  .building-row {
    padding: 13px 0;
  }
  .building-row:nth-child(3) {
    border-bottom: 0;
  }
  .building-row .initial {
    font-size: 22px;
    margin-right: 8px;
    width: 20px;
  }
  .building-row strong {
    font-size: 11px;
  }
  .building-row .floors {
    display: none;
  }
  .building-row .arrow {
    margin-left: auto;
  }
  .building-row small {
    font-size: 8px;
  }
  .catalog-stat {
    margin-top: 17px;
    padding-top: 15px;
  }
  .catalog-stat strong {
    font-size: 29px;
  }
  .catalog-stat span {
    font-size: 9px;
  }
  .catalog-stat span br {
    display: none;
  }
  .scene-top {
    top: 16px;
    left: 20px;
    right: auto;
    transform: none;
  }
  .segmented > * {
    padding: 9px 15px;
    font-size: 10px;
  }
  .round {
    width: 40px;
    height: 40px;
  }
  .scene-tools {
    top: calc(60svh - 65px);
    bottom: auto;
    right: 16px;
    left: 16px;
    justify-content: space-between;
    z-index: 3;
  }
  .view-controls button {
    font-size: 9px;
    padding: 10px 13px;
  }
  .zoom-controls button {
    width: 34px;
    height: 34px;
    font-size: 17px;
  }
  .scene-foot {
    bottom: 0;
    padding: 13px 20px;
    flex-wrap: wrap;
    gap: 12px;
    position: absolute;
    font-size: 8px;
    min-height: 60px;
  }
  .scene-foot .model-notice {
    max-width: none;
    width: 100%;
    font-size: 8px;
  }
  .scene-foot button {
    font-size: 9px;
  }
  .scene-foot .drag-hint {
    display: none;
  }
  .building-label {
    min-width: 59px;
    padding: 6px 10px;
  }
  .building-label strong {
    font-size: 10px;
  }
  .building-label span {
    font-size: 8px;
  }
  .building-label:after {
    height: 12px;
  }
  .detail-card {
    padding: 0;
    background: none;
    border: 0;
  }
  .back-button {
    margin-bottom: 12px;
  }
  .detail-card h2 {
    font-size: 36px;
    display: inline-block;
    margin: 8px 15px 8px 0;
  }
  .building-subtitle {
    display: inline;
    font-size: 10px !important;
  }
  .building-stats {
    gap: 40px;
    margin: 10px 0 18px;
    padding-bottom: 13px;
  }
  .building-stats > div {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .building-stats strong {
    font-size: 22px;
  }
  .building-stats small {
    font-size: 9px;
  }
  .floor-picker select {
    flex: 1;
  }
  .primary {
    margin-top: 13px;
  }
  .detail-note {
    font-size: 9px;
  }
  .range-labels {
    display: none;
  }
  input[type="range"] {
    margin-bottom: 0;
  }
  .unavailable {
    margin-top: 12px;
    padding-top: 12px;
    font-size: 11px;
  }
  #explore.map-mode #panel {
    border-radius: 18px 18px 0 0;
    background: var(--paper);
    padding: 27px 22px;
  }
  #explore.map-mode #panel h1 {
    font-size: 32px;
  }
  #explore.map-mode .scene-tools {
    display: none;
  }
  .map-pin {
    font-size: 9px;
    padding: 6px 10px;
  }
  #map-view img {
    object-fit: cover;
    object-position: 55% center;
  }
  .content-page {
    padding: 35px 22px;
  }
  .content-page h2 {
    font-size: 43px;
    letter-spacing: -1.5px;
    margin-bottom: 24px;
  }
  .section-heading {
    display: block;
  }
  .section-heading p {
    margin: 0 0 25px;
    font-size: 11px;
  }
  #gallery-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .gallery-card:first-child {
    grid-column: auto;
  }
  .gallery-card img,
  .gallery-card:first-child img {
    height: 260px;
  }
  .source-grid {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-bottom: 35px;
  }
  .source-grid h3 {
    margin: 12px 0;
    font-size: 20px;
  }
  .source-grid article {
    border-bottom: 1px solid var(--line);
    padding-bottom: 22px;
  }
  .source-grid p,
  .source-grid li {
    font-size: 12px;
  }
  .plan-header {
    height: 86px;
    padding: 15px 16px;
    gap: 10px;
  }
  .plan-header h2 {
    font-size: 23px;
  }
  .floor-navigation {
    gap: 4px;
  }
  .floor-navigation button,
  .floor-navigation select {
    min-width: 32px;
    height: 36px;
    padding: 0 6px;
  }
  .floor-navigation select,
  .floor-navigation .ui-select-button {
    font-size: 11px;
    max-width: 92px;
  }
  .close {
    width: 34px;
    height: 34px;
    margin-left: 3px;
    font-size: 24px;
  }
  .plan-layout {
    display: flex;
    flex-direction: column;
    height: calc(100% - 86px);
    overflow: auto;
  }
  .plan-canvas-wrap {
    min-height: 54svh;
    height: 54svh;
    flex-shrink: 0;
  }
  .plan-toolbar {
    padding: 9px 12px;
    font-size: 8px;
  }
  .plan-caption {
    padding: 10px 12px;
    font-size: 8px;
  }
  .unit-panel {
    border-left: 0;
    border-top: 1px solid var(--line);
    overflow: visible;
    padding: 22px;
    flex: 1;
  }
  .unit-panel h3 {
    font-size: 15px;
  }
  .unit-filter button {
    height: 36px;
    min-width: 45px;
  }
  #unit-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 20px;
  }
  .unit-row {
    padding: 14px 0;
  }
  .unit-row .unit-area {
    font-size: 10px;
  }
  .unit-row .unit-arrow {
    display: none;
  }
  .unit-row strong {
    font-size: 10px;
  }
  .unit-row small {
    font-size: 8px;
  }
  .unit-crop {
    max-height: 320px;
  }
  .unit-detail-title {
    font-size: 27px !important;
  }
  .unit-large-area {
    margin: 15px 0;
    font-size: 33px;
  }
  .inventory-disclaimer {
    padding-top: 20px;
  }
  .lightbox {
    padding: 50px 15px;
  }
  .lightbox p {
    font-size: 10px;
  }
  .amenity-label {
    font-size: 8px;
    padding: 5px 7px;
  }
  #fallback p {
    bottom: 50px;
    font-size: 10px;
    max-width: 80%;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
  }
}
@media (max-width: 700px) {
  .nav {
    white-space: nowrap;
    font-size: 9px;
  }
  nav {
    gap: 12px;
  }
  .brand span {
    font-size: 6.5px;
    max-width: 57px;
  }
  .brand {
    gap: 10px;
  }
  #map-view img {
    object-fit: contain;
    object-position: center;
  }
  .unit-filter {
    gap: 4px;
  }
  .unit-filter button {
    min-width: 40px;
    padding: 0 9px;
  }
}
@media (min-width: 701px) {
  h1 {
    font-size: 38px;
    letter-spacing: -1.5px;
    margin: 14px 0;
  }
  .intro {
    font-size: 11px;
    line-height: 1.7;
  }
  .select-hint {
    margin-top: 22px;
  }
  .building-row {
    padding: 11px 2px;
  }
  .catalog-stat {
    margin-top: 15px;
    padding-top: 13px;
  }
  .scene-top {
    left: auto;
    right: 30px;
    transform: none;
  }
  #panel {
    top: 30px;
    max-height: calc(100% - 110px);
  }
}
@media (max-width: 700px) {
  .scene-top {
    left: auto;
    right: 16px;
  }
  h1 br {
    display: block;
  }
  h1 em {
    margin-left: 0;
  }
}
#render-view {
  position: absolute;
  inset: 0;
  background: #b4bdd1;
}
#render-view > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#render-view:after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, #232b3d38, transparent 40%);
}
.render-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  padding: 10px 15px;
  background: #f7f8fbe8;
  backdrop-filter: blur(8px);
  border-radius: 5px;
  z-index: 1;
  box-shadow: 0 4px 20px #0002;
  text-align: left;
}
.render-pin strong {
  font-size: 11px;
  display: block;
}
.render-pin span {
  font-size: 8px;
  color: #6b7386;
  display: block;
  margin-top: 3px;
}
.render-credit {
  position: absolute;
  bottom: 78px;
  right: 32px;
  background: #262e40ba;
  color: #fff;
  padding: 8px 12px;
  border-radius: 4px;
  z-index: 1;
  font-size: 9px;
  text-decoration: none;
}
.render-mode #panel {
  background: #f7f8fbeb;
  border-radius: 10px;
  padding: 22px;
  backdrop-filter: blur(12px);
}
.render-mode #panel h1 {
  font-size: 33px;
}
.render-mode .scene-tools {
  display: none;
}
.render-mode .scene-foot {
  background: #eceff5ef;
}
.render-mode .scene-foot #landscape-toggle,
.render-mode .scene-foot #context-toggle,
.render-mode .drag-hint {
  display: none;
}
@media (max-width: 700px) {
  .segmented > * {
    padding: 8px 12px;
    font-size: 9px;
  }
  .scene-top {
    right: 12px;
  }
  .render-mode #panel {
    padding: 27px 22px;
    border-radius: 18px 18px 0 0;
    background: var(--paper);
  }
  .render-mode #panel h1 {
    font-size: 32px;
  }
  #render-view > img {
    object-fit: contain;
  }
  .render-pin {
    padding: 6px 9px;
  }
  .render-pin strong {
    font-size: 9px;
  }
  .render-pin span {
    font-size: 7px;
  }
  .render-credit {
    bottom: 25px;
    right: 15px;
    font-size: 7px;
  }
}
.map-mode .scene-foot #landscape-toggle,
.map-mode .scene-foot #context-toggle,
.map-mode .drag-hint {
  display: none;
}
.arrow,
.catalog-stat button,
.unit-arrow {
  font-family: Arial, sans-serif;
}
.building-label {
  padding: 8px 12px;
  min-width: 73px;
}
.building-label strong {
  font-size: 11px;
}
.building-label span {
  font-size: 8px;
}
#mobile-select-button {
  display: none;
}
@media (max-width: 700px) {
  #mobile-select-button {
    display: block;
    background: #122744;
    color: #fff;
    font-weight: 600;
    padding: 10px 12px;
  }
  .view-controls [data-view="overview"] {
    display: none;
  }
  .view-controls button {
    font-size: 8px;
    padding: 10px;
  }
  .zoom-controls {
    gap: 3px;
  }
  .zoom-controls button {
    width: 30px;
    height: 34px;
  }
  .scene-tools {
    left: 12px;
    right: 12px;
    gap: 8px;
  }
}
.catalog-hint {
  font-size: 8px;
  line-height: 1.5;
  color: #7e889d;
  margin-top: 8px;
}
.render-credit {
  font-family: Inter, Arial, sans-serif;
}
.arrow,
.unit-arrow,
.primary > span,
.source-links a > span {
  font-size: 0 !important;
  display: inline-block;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  position: relative;
}
.arrow:after,
.unit-arrow:after,
.primary > span:after,
.source-links a > span:after {
  content: "";
  position: absolute;
  inset: 0;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E")
    center/contain no-repeat;
}
.catalog-stat button {
  font-size: 0;
  position: relative;
}
.catalog-stat button:after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 11px;
  top: 11px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E")
    center/contain no-repeat;
}
#render-view {
  background: #dae1ee;
}
@media (min-width: 1101px) {
  #render-view > img {
    width: calc(100% - 350px);
    margin-left: 350px;
  }
}
@media (min-width: 701px) and (max-width: 1100px) {
  #render-view > img {
    width: calc(100% - 290px);
    margin-left: 290px;
  }
}
.render-mode #building-details .detail-card,
.map-mode #building-details .detail-card {
  padding: 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
}
#baked-scene {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #dae1ee;
  touch-action: pan-y;
}
.rendered-content {
  position: absolute;
  inset: 0;
  transform-origin: center;
}
.rendered-model-image,
.rendered-overlay,
.rendered-labels {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.rendered-model-image {
  object-fit: cover;
}
.rendered-overlay {
  overflow: hidden;
}
.rendered-tower-hit {
  fill: transparent;
  stroke: transparent;
  cursor: inherit;
  transition:
    fill 0.15s,
    stroke 0.15s;
}
.rendered-tower-hit.hovered,
.rendered-tower-hit:focus-visible {
  fill: #ffffff10;
  stroke: #ebf2ff;
  stroke-width: 1.4;
  outline: none;
}
.rendered-tower-hit.selected {
  fill: #ffffff04;
  stroke: #d9e4fe4d;
  stroke-width: 0.8;
}
.rendered-floor-band {
  fill: #a4c0ff9c;
  stroke: #e9f0ff;
  stroke-width: 1.5;
  pointer-events: none;
}
.rendered-labels {
  pointer-events: none;
}
.rendered-labels button {
  pointer-events: auto;
}
.rendered-view-caption {
  position: absolute;
  bottom: 71px;
  left: 370px;
  color: #e5ecfb;
  font-size: 9px;
  display: flex;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 4px;
  background: #2830419c;
  backdrop-filter: blur(10px);
  pointer-events: none;
}
.rendered-view-name {
  font-weight: 600;
}
.loading-view:after {
  content: "Загружаем ракурс…";
  position: absolute;
  bottom: 76px;
  left: 50%;
  background: #f7f8fbed;
  padding: 10px 17px;
  border-radius: 20px;
  font-size: 10px;
  transform: translateX(-50%);
}
@media (max-width: 1100px) {
  .rendered-view-caption {
    left: 290px;
  }
}
@media (max-width: 700px) {
  .rendered-view-caption {
    left: 15px;
    bottom: 74px;
    font-size: 7px;
    padding: 6px 9px;
    display: block;
  }
  .rendered-view-caption > span {
    display: block;
    margin: 2px 0;
  }
  .rendered-overlay {
    touch-action: manipulation;
  }
}
@media (min-width: 1101px) {
  .rendered-content {
    left: 350px;
    width: calc(100% - 350px);
  }
}
@media (min-width: 701px) and (max-width: 1100px) {
  .rendered-content {
    left: 290px;
    width: calc(100% - 290px);
  }
}
.baked-mode #context-toggle,
.baked-mode .drag-hint {
  display: none;
}
.baked-mode #landscape-toggle {
  display: none;
}
/* Keep source and reconstruction caveats readable at normal viewing distance. */
.catalog-hint {
  font-size: 11px;
  line-height: 1.55;
}
.model-notice {
  font-size: 10px;
}
.detail-note {
  font-size: 10.5px;
  line-height: 1.7;
}
.inventory-disclaimer {
  font-size: 10px;
  line-height: 1.7;
}
@media (max-width: 700px) {
  .catalog-hint {
    font-size: 10px;
  }
  .scene-foot .model-notice {
    font-size: 10px;
  }
  .detail-note {
    font-size: 10px;
  }
  .inventory-disclaimer {
    font-size: 10px;
  }
  .segmented > * {
    padding: 8px 10px;
  }
}
.rendered-view-caption {
  font-size: 10px;
}
.plan-toolbar {
  font-size: 10px;
}
.plan-caption {
  font-size: 10px;
}
@media (max-width: 700px) {
  .rendered-view-caption {
    font-size: 9px;
  }
  .render-credit {
    font-size: 9px;
  }
  .plan-toolbar,
  .plan-caption {
    font-size: 9px;
  }
}
.baked-mode.has-amenities #landscape-toggle {
  display: block;
}
#mobile-view,#mobile-view + .ui-select-button{display:none}
@media(max-width:700px){.view-controls [data-view]{display:none!important}#mobile-view,#mobile-view + .ui-select-button{display:flex;max-width:112px;min-width:95px;min-height:0;border:0;background:transparent;color:var(--ink);font-size:12px;padding:8px 6px;border-radius:22px}.view-controls{gap:4px}#mobile-select-button{font-size:9px;padding:10px 11px}}
.amenity-leader{position:absolute;height:1px;background:#12274499;transform-origin:0 0;pointer-events:none;z-index:1}.amenity-marker{position:absolute;width:5px;height:5px;border-radius:50%;background:#122744;border:1px solid #f7f8fb;transform:translate(-50%,-50%);pointer-events:none;z-index:1}.rendered-labels .amenity-label{z-index:2}.rendered-labels .building-label{z-index:3}
@media(min-width:701px){.detail-card{padding:23px}.detail-card h2{margin:10px 0}.building-stats{margin:20px 0;padding-bottom:17px}}
@media(max-width:700px){.zoom-controls button{width:34px;height:38px}}
/* Secondary copy retains a muted tone while exceeding 4.5:1 on the scene background. */
.intro,.select-hint,.catalog-hint,.detail-note,.model-notice,.scene-foot .model-notice,.inventory-disclaimer,.unit-meta,.building-subtitle,.building-row small,.building-stats small,.source-grid p,.source-grid li,.gallery-note,footer{color:#545c6d}

.rendered-office-hit { fill: transparent; stroke: transparent; cursor: inherit; }
.rendered-office-hit.hovered,.rendered-office-hit:focus-visible { fill: #ffffff12; stroke: #e8edf0; stroke-width: 1.2; outline: none; }
.office-label { border-color: #838a9880; }

.context-dialog { display: grid; place-items: center; padding: 24px; background: #262d3eb8; }
.context-card { position: relative; width: min(100%, 460px); max-height: calc(100dvh - 48px); overflow: auto; border-radius: 18px; padding: 42px 38px 34px; background: var(--paper); box-shadow: 0 20px 90px #1b223155; }
#amenity-title { font-size: clamp(26px, 6vw, 40px); line-height: 1.12; overflow-wrap: anywhere; hyphens: auto; }
.context-card h2 { margin: 12px 0 4px; font-size: 44px; font-weight: 400; letter-spacing: -2px; }
.context-card p { font-size: 13px; line-height: 1.7; margin: 18px 0; }
.context-card .context-floor-count { color: var(--ink); font-size: 20px; margin-top: 0; }
.context-card a { display: inline-block; color: var(--ink); font-size: 12px; text-underline-offset: 4px; }
.context-card .close { position: absolute; right: 14px; top: 14px; }
@media(max-width:700px) { .context-card { padding: 35px 25px 28px; } }
@media (max-width:700px) {
  .rendered-view-caption { padding:5px 8px; bottom:70px; font-size:9px; }
  .rendered-view-caption > .rendered-view-name { display:none; }
  .rendered-view-caption > span { margin:0; }
}

#baked-scene[data-view="top"] .rendered-content { background:#adb7ba; }
@media(max-width:700px) {
  #baked-scene[data-view="top"] .building-label { min-width:0; padding:6px 8px; }
  #baked-scene[data-view="top"] .building-label span { display:none; }
  #baked-scene[data-view="top"] .building-label strong { font-size:10px; }
}
@media (max-width: 420px) {
  .rendered-labels .building-label:not(.office-label) { min-width:0; padding:5px 8px; }
  .rendered-labels .building-label:not(.office-label) strong { font-size:10px; line-height:1.4; }
  .rendered-labels .building-label:not(.office-label) span { display:none; }
}
@media (max-width: 380px) {
  header { padding-left:14px; padding-right:14px; gap:12px; }
  .brand span { display:none; }
  nav { gap:12px; }
  #mobile-select-button { white-space:nowrap; font-size:8px; padding:10px 7px; }
  #mobile-view,#mobile-view + .ui-select-button { min-width:60px; max-width:82px; font-size:11px; padding-left:3px; padding-right:3px; }
  .zoom-controls button { width:30px; }
}

/* First-person apartment experience. Static sizing and one GPU canvas prevent
   compositor clears between resize and redraw on mobile Safari. */
.apartment-open { margin-top:20px; }
.apartment-entry-note { color:#666d7d; font-size:11px; line-height:1.6; margin:8px 0 0; }
.apartment-dialog { background:var(--paper); display:flex; flex-direction:column; padding:0; z-index:120; height:100dvh; }
.apartment-header { display:flex; align-items:center; gap:30px; padding:20px 30px; flex:none; border-bottom:1px solid var(--line); }
.apartment-header h2 { font-size:22px; font-weight:500; letter-spacing:-.5px; margin:5px 0 0; }
.apartment-header .eyebrow { font-size:9px; }
.apartment-header .apartment-back { position:static; width:auto; height:42px; padding:0 15px; font-size:12px; white-space:nowrap; border:1px solid var(--line); border-radius:30px; }
.apartment-badge { margin-left:auto; border:1px solid #b1bed9; border-radius:20px; padding:6px 11px; color:#57627c; font-size:10px; }
.apartment-stage { position:relative; flex:1; min-height:220px; overflow:hidden; background:#d8e3e4; touch-action:none; }
.apartment-stage .apartment-live-scene { position:absolute!important; inset:0!important; width:100%!important; height:100%!important; z-index:0; }
.apartment-software { position:absolute; inset:0; width:100%; height:100%; display:block; }
.apartment-software[hidden] { display:none; }
.apartment-status { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; z-index:5; background:#e4e9f1; padding:30px; text-align:center; }
.apartment-status[hidden] { display:none; }
.apartment-status p { max-width:380px; line-height:1.8; }
.apartment-plan { position:absolute; right:20px; top:20px; width:140px; background:#fcfdffed; border:1px solid #fff; border-radius:10px; overflow:hidden; box-shadow:0 3px 15px #2a324512; pointer-events:none; }
.apartment-plan svg { width:100%; height:125px; display:block; }
.apartment-plan span { display:block; text-align:center; font-size:8px; color:#636b7d; padding:6px 2px; }
.apartment-view-caption { position:absolute; left:20px; right:20px; bottom:17px; display:flex; justify-content:space-between; gap:12px; color:#353d50; pointer-events:none; font-size:10px; }
.apartment-view-caption span { background:#fafbfdeb; padding:7px 11px; border-radius:20px; }
.apartment-controls { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:15px 30px; border-top:1px solid var(--line); flex:none; }
.apartment-controls button { min-height:42px; padding:10px 15px; border:1px solid #c7cfe1; border-radius:25px; font-size:11px; background:transparent; color:var(--ink); }
.apartment-controls .active { color:white; background:#48536b; border-color:#48536b; }
.apartment-sides,.apartment-look { display:flex; gap:6px; }
.apartment-sides { flex-wrap:wrap; }
.apartment-look { flex-shrink:0; }
.apartment-look button:not([data-look="reset"]) { font-size:16px; min-width:42px; padding:7px 12px; }
.apartment-notice { padding:0 30px max(18px,env(safe-area-inset-bottom)); color:#5b6272; line-height:1.6; font-size:11px; flex:none; }
.apartment-notice strong { color:#505b76; }
@media(max-width:700px) {
  .apartment-header { padding:12px 14px; gap:10px; flex-wrap:wrap; }
  .apartment-header .apartment-back { font-size:10px; padding:0 12px; height:36px; }
  .apartment-header>div { flex:1; min-width:150px; }
  .apartment-header h2 { font-size:16px; }
  .apartment-header .eyebrow { font-size:7px; letter-spacing:1px; }
  .apartment-badge { display:none; }
  .apartment-plan { width:90px; top:12px; right:12px; }
  .apartment-plan svg { height:85px; }
  .apartment-plan span { font-size:6px; }
  .apartment-stage { min-height:180px; }
  .apartment-view-caption { left:10px; right:10px; bottom:12px; font-size:8px; gap:6px; }
  .apartment-view-caption span { padding:5px 7px; }
  .apartment-controls { padding:10px 12px; flex-wrap:wrap; justify-content:center; gap:10px; }
  .apartment-sides { justify-content:center; }
  .apartment-controls button { font-size:10px; padding:8px 12px; }
  .apartment-notice { padding:0 14px max(12px,env(safe-area-inset-bottom)); font-size:9px; line-height:1.5; }
}
@media (max-height:500px) and (orientation:landscape) {
  .apartment-header { padding:7px 16px; }
  .apartment-header .eyebrow,.apartment-badge,.apartment-plan { display:none; }
  .apartment-header h2 { font-size:16px; }
  .apartment-stage { min-height:120px; }
  .apartment-controls { padding:7px 14px; }
  .apartment-notice { font-size:8px; line-height:1.3; padding:0 14px 7px; }
  .apartment-view-caption span:first-child::after { content:" · примерный ракурс, не вид из окна"; }
  .apartment-view-caption span:last-child { display:none; }
}

.apartment-specific-note { margin:4px 0 0; color:#59657f; }

/* Bounded entry to the single pre-rendered apartment pilot. */
.window-nav{font-size:11px;text-decoration:none;white-space:nowrap;margin-left:auto;border-bottom:1px solid #8793ac;padding-bottom:4px}.window-nav+.header-location{margin-left:0}.pilot-entry{display:flex;justify-content:space-between;align-items:center;text-decoration:none;border:1px solid #b9c2d7;border-radius:3px;background:#e4ebfa;padding:13px 15px;margin:22px 0 16px;gap:12px}.pilot-entry>span{display:flex;flex-direction:column;gap:5px}.pilot-entry small{font-size:7px;letter-spacing:1.1px;color:#6c768d}.pilot-entry strong{font-weight:500;font-size:17px}.pilot-entry span span{font-size:9px;color:#747c8e}.pilot-entry b{font-size:22px;font-weight:400}.pilot-entry:hover{background:#dae3f6}@media(max-width:1100px){.window-nav{display:none}}
