/*
 * ПланДом — библиотека оригинальных real-estate дизайн-систем.
 * Функциональный HTML общий: визуальный сценарий выбирается через
 * body[data-design-template]. Все цвета продолжают поступать из настроек ЖК.
 */

body[data-design-template] {
  --design-ease: cubic-bezier(.22, 1, .36, 1);
  --design-radius: 0;
}

body[data-design-template] :is(.hero__content, .hero2__inner, .section-head, .story__body, .about__body) {
  animation: design-reveal .9s var(--design-ease) both;
}

body[data-design-template] :is(.adv-card, .gallery__item, .ag-item, .document-card, .srow) {
  transition: transform .55s var(--design-ease), border-color .35s ease, box-shadow .55s var(--design-ease);
}

body[data-design-template] :is(.adv-card, .gallery__item, .ag-item, .document-card, .srow):hover {
  transform: translateY(-5px);
}

.amen__card--text {
  grid-template-columns: 1fr;
  min-height: clamp(280px, 25vw, 350px);
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 88% 8%, var(--brass-glow), transparent 34%),
    var(--surface);
  transition: transform .45s var(--design-ease), border-color .35s ease, background .35s ease;
}

.amen__card--text::after {
  position: absolute;
  right: -36px;
  bottom: -52px;
  z-index: -1;
  width: 150px;
  height: 150px;
  border: 1px solid var(--line-soft);
  border-radius: 50%;
  content: "";
  transition: transform .55s var(--design-ease), border-color .35s ease;
}

.amen__card--text:hover {
  transform: translateY(-5px);
  background:
    radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--brass) 15%, transparent), transparent 40%),
    var(--surface-2);
}

.amen__card--text:hover::after {
  transform: translate(-14px, -10px) scale(1.08);
  border-color: var(--brass-deep);
}

.amen__card--text .amen__txt {
  min-height: 100%;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: clamp(24px, 3vw, 38px);
  padding: clamp(28px, 3vw, 42px);
}

.amen__top,
.adv-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.amen__top .num {
  margin: 0;
  font-size: 20px;
  letter-spacing: .04em;
}

.amen__icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--brass);
  transition: border-color .35s ease, background .35s ease, transform .45s var(--design-ease);
}

.amen__icon svg,
.adv-card__ic svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.amen__icon-char {
  font-size: 22px;
  line-height: 1;
}

.amen__card--text:hover .amen__icon {
  transform: rotate(-3deg);
  border-color: var(--brass-deep);
  background: var(--brass-glow);
}

.amen__body {
  align-self: end;
}

.amen__card--text .amen__body h3 {
  max-width: 520px;
  margin-bottom: 14px;
  font-size: clamp(24px, 2.25vw, 32px);
  line-height: 1.08;
}

.amen__card--text .amen__body p {
  max-width: 560px;
  margin: 0;
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.7;
}

.amen__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 17px;
  border-top: 1px solid var(--line-soft);
  color: var(--brass);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.amen__meta i {
  width: 34px;
  height: 1px;
  background: var(--brass-deep);
  transition: width .35s ease;
}

.amen__card--text:hover .amen__meta i {
  width: 52px;
}

.adv-card__index {
  color: var(--gray-400);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .15em;
}

.adv-card p {
  min-height: 4.6em;
  line-height: 1.55;
}

.adv-card__meta {
  display: inline-flex;
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid var(--gray-200);
  color: var(--sea-700);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

@media (min-width: 901px) {
  .amen__grid > .amen__card--text:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    min-height: 250px;
  }

  .amen__grid > .amen__card--text:last-child:nth-child(odd) .amen__txt {
    grid-template-columns: 120px minmax(0, 1fr) minmax(180px, .42fr);
    grid-template-rows: auto;
    align-items: center;
  }

  .amen__grid > .amen__card--text:last-child:nth-child(odd) .amen__body {
    align-self: center;
  }

  .amen__grid > .amen__card--text:last-child:nth-child(odd) .amen__meta {
    min-height: 72px;
    padding: 0 0 0 28px;
    border-top: 0;
    border-left: 1px solid var(--line-soft);
  }
}

@media (max-width: 720px) {
  .amen__card--text {
    min-height: auto;
  }

  .amen__card--text .amen__txt {
    gap: 22px;
    padding: 26px 24px;
  }

  .amen__icon {
    width: 46px;
    height: 46px;
  }

  .amen__card--text .amen__body h3 {
    font-size: 25px;
  }
}

@keyframes design-reveal {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}

/* Manifest motion profiles: shared mechanics, distinct rhythm per template. */
body[data-motion-view] {
  --template-motion-name: residential-fade-up;
  --template-motion-duration: 360ms;
  --template-motion-ease: cubic-bezier(.22, 1, .36, 1);
  --template-motion-distance: 18px;
}

body[data-motion-view="slow-curtain"] { --template-motion-name: residential-curtain; --template-motion-duration: 680ms; --template-motion-distance: 30px; }
body[data-motion-view="page-turn"] { --template-motion-name: residential-page-turn; --template-motion-duration: 520ms; --template-motion-distance: 26px; }
body[data-motion-view="grid-snap"] { --template-motion-name: residential-grid-snap; --template-motion-duration: 220ms; --template-motion-ease: steps(4, end); --template-motion-distance: 12px; }
body[data-motion-view="horizontal-drift"] { --template-motion-name: residential-drift; --template-motion-duration: 560ms; --template-motion-distance: 34px; }
body[data-motion-view="gallery-hang"] { --template-motion-name: residential-gallery-hang; --template-motion-duration: 580ms; --template-motion-distance: 12px; }
body[data-motion-view="warm-breeze"] { --template-motion-name: residential-warm-scale; --template-motion-duration: 440ms; --template-motion-distance: 10px; }
body[data-motion-view="light-up"] { --template-motion-name: residential-light-up; --template-motion-duration: 720ms; --template-motion-distance: 14px; }
body[data-motion-view="archive-reveal"] { --template-motion-name: residential-archive; --template-motion-duration: 540ms; --template-motion-distance: 16px; }
body[data-motion-view="scene-scroll"] { --template-motion-name: residential-scene; --template-motion-duration: 620ms; --template-motion-distance: 26px; }
body[data-motion-view="fast-track"] { --template-motion-name: residential-fast-track; --template-motion-duration: 190ms; --template-motion-distance: 22px; }
body[data-motion-view="organic-grow"] { --template-motion-name: residential-organic-grow; --template-motion-duration: 460ms; --template-motion-distance: 10px; }

@media (prefers-reduced-motion: no-preference) {
  body[data-motion-view] :is(.section-head, .adv-card, .gallery__item, .ag-item, .document-card, .srow) {
    animation-name: var(--template-motion-name);
    animation-duration: var(--template-motion-duration);
    animation-timing-function: var(--template-motion-ease);
    animation-fill-mode: both;
  }

  body[data-motion-view] :is(.adv-card, .gallery__item, .ag-item, .document-card, .srow):nth-child(even) { animation-delay: 70ms; }
}

@keyframes residential-fade-up { from { opacity: 0; transform: translateY(var(--template-motion-distance)); } }
@keyframes residential-curtain { from { opacity: 0; clip-path: inset(0 0 100% 0); transform: translateY(var(--template-motion-distance)); } }
@keyframes residential-page-turn { from { opacity: 0; transform: translateX(calc(var(--template-motion-distance) * -1)); } }
@keyframes residential-grid-snap { from { opacity: 0; clip-path: inset(0 100% 0 0); } }
@keyframes residential-drift { from { opacity: 0; transform: translateX(var(--template-motion-distance)); } }
@keyframes residential-gallery-hang { from { opacity: 0; transform: translateY(calc(var(--template-motion-distance) * -1)) scale(.985); } }
@keyframes residential-warm-scale { from { opacity: 0; transform: translateY(var(--template-motion-distance)) scale(.97); } }
@keyframes residential-light-up { from { opacity: 0; filter: brightness(.62); transform: translateY(var(--template-motion-distance)); } }
@keyframes residential-archive { from { opacity: 0; filter: sepia(.28); transform: translateY(var(--template-motion-distance)); } }
@keyframes residential-scene { from { opacity: 0; clip-path: inset(0 0 0 18%); transform: translateX(var(--template-motion-distance)); } }
@keyframes residential-fast-track { from { opacity: 0; transform: translateX(calc(var(--template-motion-distance) * -1)); } }
@keyframes residential-organic-grow { from { opacity: 0; transform: translateY(var(--template-motion-distance)) scale(.94); border-radius: 42%; } }

.mortgage { padding-block: clamp(56px, 7vw, 104px); background: color-mix(in srgb, var(--theme-brand) 6%, #fff); }
.mortgage__card { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(420px,.8fr); gap: clamp(28px,4vw,68px); align-items: center; padding: clamp(30px,4vw,56px); border: 1px solid color-mix(in srgb,var(--theme-brand) 18%,transparent); border-radius: 32px; background: var(--surface,#fff); }
.mortgage__facts,.mortgage2__facts { display: grid; min-width: 0; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; }
.mortgage__facts div,.mortgage2__facts div { display: grid; min-width: 0; align-content: center; container-type: inline-size; }
.mortgage__facts div { padding: clamp(14px,2vw,24px); border-left: 1px solid var(--gray-200); }
.mortgage__facts dt,.mortgage2__facts dt { display: block; max-width: 100%; margin: 0; color: var(--theme-cta); font: 600 clamp(22px,3.1vw,48px)/1.08 var(--font-display,Georgia,serif); font-size: clamp(22px,13cqi,48px); overflow-wrap: anywhere; text-wrap: balance; white-space: normal; }
.mortgage__facts dd,.mortgage2__facts dd { max-width: 100%; margin: 8px 0 0; font-size: 11px; font-weight: 700; letter-spacing: .08em; overflow-wrap: anywhere; text-transform: uppercase; opacity: .65; }
.mortgage2 { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); gap: clamp(40px,8vw,130px); align-items: end; padding: clamp(72px,9vw,150px) clamp(28px,7vw,120px); border-top: 1px solid var(--line); background: var(--bg-2); }
.mortgage2__facts div { padding: clamp(16px,2vw,22px); border: 1px solid var(--line); }

.nav__quick-action-mark,
.rail__channel-mark {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font: 700 10px/1 var(--font-body, Arial, sans-serif);
  font-style: normal;
  letter-spacing: -.02em;
}

.contact-channel-icon {
  display: block;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

:is(.contact-fab__panel, .contact2__panel) > :is(a, button) > i {
  display: grid;
  place-items: center;
}

.contact2__panel > :is(a, button) > i {
  width: 32px;
  height: 32px;
  border: 1px solid color-mix(in srgb, var(--theme-cta) 42%, var(--line));
  border-radius: 50%;
  letter-spacing: 0;
}

.nav__quick-action-mark .contact-channel-icon,
.rail__channel-mark .contact-channel-icon { width: 17px; height: 17px; }

.rail__channels { display: none; }

@media (max-width: 980px) {
  .mortgage__card,.mortgage2 { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .mortgage__card,.mortgage2 { grid-template-columns: 1fr; }
  .mortgage__facts,.mortgage2__facts { grid-template-columns: 1fr 1fr; }
  .mortgage__facts div:first-child { border-left: 0; }
  .mortgage__facts dt,.mortgage2__facts dt { font-size: clamp(28px, 9vw, 42px); }
}

@media (max-width: 440px) {
  .mortgage__facts,.mortgage2__facts { grid-template-columns: 1fr; }
  .mortgage__facts div { border-top: 1px solid var(--gray-200); border-left: 0; }
}

.adv-card__ic { color: #fff; text-shadow: 0 1px 2px color-mix(in srgb, var(--theme-brand) 42%, transparent); }
.documents__grid { gap: 8px; }
.documents__grid .document-card {
  min-width: 0;
  min-height: 64px;
  grid-template-columns: 36px minmax(0,1fr) auto;
  gap: 12px;
  padding: 12px 14px;
}
.documents__grid .document-card:hover { transform: translateY(-2px); }
.documents__grid .document-card > i {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid color-mix(in srgb,var(--theme-cta) 18%,transparent);
  border-radius: 9px;
  font-size: 9px;
  letter-spacing: .06em;
}
.documents__grid .document-card > span { min-width: 0; gap: 2px; }
.documents__grid .document-card strong {
  max-width: 100%;
  font-size: clamp(14px,1.15vw,17px);
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.documents__grid .document-card small { font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
.documents__grid .document-card > b,
.documents2__list a > b {
  display: inline-flex;
  min-width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 10px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: var(--font-body,var(--font,Arial,sans-serif));
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.documents__grid .document-card > b::before,
.documents2__list a > b::before { content: "Скачать"; font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.documents__grid .document-card--presentation :is(strong, small, b) { color: #fff; }

.documents2__list { display: grid; gap: 8px; border-top: 0; }
.documents2__list a {
  min-width: 0;
  min-height: 64px;
  grid-template-columns: 36px minmax(0,1fr) auto;
  gap: 14px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  background: color-mix(in srgb,var(--surface) 54%,transparent);
  transition: border-color .22s ease,background .22s ease,color .22s ease,transform .22s ease;
}
.documents2__list a:hover {
  padding-left: 14px;
  border-color: color-mix(in srgb,var(--theme-cta) 55%,var(--line));
  background: color-mix(in srgb,var(--theme-cta) 9%,var(--surface));
  color: var(--theme-cta);
  transform: translateX(3px);
}
.documents2__list a > i {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid var(--line);
  font-size: 9px;
  letter-spacing: .08em;
}
.documents2__list a > span { min-width: 0; gap: 1px; }
.documents2__list a strong {
  max-width: 100%;
  font-size: clamp(16px,1.25vw,19px);
  line-height: 1.18;
  overflow-wrap: anywhere;
}
.documents2__list a small { font-size: 10px; line-height: 1.35; letter-spacing: .025em; overflow-wrap: anywhere; }

@media (max-width: 720px) {
  .documents__grid { grid-template-columns: 1fr; }
  .documents__grid .document-card--presentation { grid-column: auto; }
}

@media (max-width: 440px) {
  .documents__grid .document-card,
  .documents2__list a { grid-template-columns: 32px minmax(0,1fr) 34px; gap: 10px; padding: 10px; }
  .documents__grid .document-card > i,
  .documents2__list a > i { width: 32px; height: 32px; }
  .documents__grid .document-card > b,
  .documents2__list a > b { width: 34px; min-width: 34px; padding: 0; }
  .documents__grid .document-card > b::before,
  .documents2__list a > b::before { content: none; }
}

/* 01 — ATELIER: editorial split layout */
body[data-design-template="atelier"] {
  --design-paper: color-mix(in srgb, var(--theme-accent) 5%, #f1efe8);
  background: var(--design-paper);
  color: var(--ink-900);
}

body[data-design-template="atelier"] .header {
  border-bottom: 1px solid color-mix(in srgb, var(--theme-brand) 24%, transparent);
  background: color-mix(in srgb, var(--design-paper) 92%, transparent);
  backdrop-filter: blur(18px);
}

body[data-design-template="atelier"] .header__inner { max-width: 100%; padding-inline: clamp(22px, 4vw, 76px); }
body[data-design-template="atelier"] .logo__text,
body[data-design-template="atelier"] .hero__title,
body[data-design-template="atelier"] .section-title { font-family: "Playfair Display", Georgia, serif; }
body[data-design-template="atelier"] .nav__link { letter-spacing: .02em; }

body[data-design-template="atelier"] .hero {
  min-height: 860px;
  padding-top: 88px;
  background: var(--design-paper);
  color: var(--ink-900);
}

body[data-design-template="atelier"] .hero__bg {
  inset: 112px 3vw 54px 49%;
  z-index: 0;
  border-radius: 0 0 0 110px;
  overflow: hidden;
}

body[data-design-template="atelier"] .hero__overlay {
  background: linear-gradient(90deg, rgba(8, 20, 18, .06), rgba(8, 20, 18, .18));
}

body[data-design-template="atelier"] .hero__content {
  min-height: 748px;
  justify-content: center;
  align-items: flex-start;
  max-width: 100%;
  padding: 90px 56% 90px clamp(28px, 7vw, 132px);
}

body[data-design-template="atelier"] .hero__badge { color: var(--theme-brand); border-color: color-mix(in srgb, var(--theme-brand) 34%, transparent); background: transparent; }
body[data-design-template="atelier"] .hero__title { max-width: 720px; color: var(--ink-900); font-size: clamp(58px, 6.2vw, 112px); line-height: .91; letter-spacing: -.065em; }
body[data-design-template="atelier"] .hero__title em { color: var(--theme-cta); font-weight: 500; }
body[data-design-template="atelier"] .hero__subtitle { max-width: 560px; color: var(--ink-700); }
body[data-design-template="atelier"] .hero__actions .btn--ghost-light { border-color: var(--theme-brand); color: var(--theme-brand); }
body[data-design-template="atelier"] .hero__stats { left: clamp(28px, 7vw, 132px); right: 54%; bottom: 56px; border-top: 1px solid color-mix(in srgb, var(--theme-brand) 24%, transparent); background: transparent; box-shadow: none; }
body[data-design-template="atelier"] .hero__stat { color: var(--ink-900); border-color: color-mix(in srgb, var(--theme-brand) 18%, transparent); }
body[data-design-template="atelier"] .hero__scroll { color: var(--theme-brand); }
body[data-design-template="atelier"] :is(.about, .advantages, .gallery, .documents, .developer) { background: var(--design-paper); }
body[data-design-template="atelier"] .about__grid { grid-template-columns: 1.2fr .8fr; gap: clamp(42px, 8vw, 140px); }
body[data-design-template="atelier"] .adv-card { border: 0; border-top: 1px solid var(--gray-300); border-radius: 0; background: transparent; box-shadow: none; }

/* 02 — HORIZON: panoramic calm */
body[data-design-template="horizon"] { background: color-mix(in srgb, var(--theme-brand) 4%, #f6fafb); }
body[data-design-template="horizon"] .header { background: rgba(248, 252, 253, .83); backdrop-filter: blur(22px); box-shadow: none; }
body[data-design-template="horizon"] .header__inner { max-width: 1560px; }
body[data-design-template="horizon"] .hero { min-height: 940px; }
body[data-design-template="horizon"] .hero__overlay { background: linear-gradient(180deg, rgba(4, 22, 27, .15), rgba(4, 31, 40, .6)); }
body[data-design-template="horizon"] .hero__content { align-items: center; justify-content: flex-end; padding-bottom: 230px; text-align: center; }
body[data-design-template="horizon"] .hero__badge { border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.12); backdrop-filter: blur(12px); }
body[data-design-template="horizon"] .hero__title { max-width: 1200px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(64px, 7.5vw, 132px); font-weight: 500; line-height: .9; }
body[data-design-template="horizon"] .hero__title em { color: var(--gold-soft); }
body[data-design-template="horizon"] .hero__subtitle { max-width: 720px; }
body[data-design-template="horizon"] .hero__stats { left: 50%; right: auto; bottom: 44px; width: min(1160px, calc(100% - 64px)); transform: translateX(-50%); border: 1px solid rgba(255,255,255,.26); border-radius: 999px; background: rgba(5, 41, 51, .42); backdrop-filter: blur(22px); }
body[data-design-template="horizon"] .hero__stat { border-color: rgba(255,255,255,.17); }
body[data-design-template="horizon"] .section-head { max-width: 900px; margin-inline: auto; text-align: center; }
body[data-design-template="horizon"] .section-title { font-family: "Playfair Display", Georgia, serif; font-weight: 500; }
body[data-design-template="horizon"] .about__media,
body[data-design-template="horizon"] .catalog-gateway__card { border-radius: 48px; overflow: hidden; }

/* 03 — GALLERY: curated image frames */
body[data-design-template="gallery"] { background: #ece9e2; }
body[data-design-template="gallery"] .header { background: #f7f5ef; border-bottom: 1px solid #d8d2c8; box-shadow: none; }
body[data-design-template="gallery"] .header__inner { max-width: 1720px; }
body[data-design-template="gallery"] .hero { width: calc(100% - 48px); min-height: 850px; margin: 24px; margin-top: 92px; border-radius: 2px; overflow: hidden; }
body[data-design-template="gallery"] .hero__content { justify-content: flex-end; align-items: flex-start; padding: 80px clamp(30px, 6vw, 112px) 210px; }
body[data-design-template="gallery"] .hero__overlay { background: linear-gradient(90deg, rgba(15, 18, 17, .74), rgba(15, 18, 17, .05) 68%); }
body[data-design-template="gallery"] .hero__title { max-width: 880px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(60px, 7vw, 124px); font-weight: 500; line-height: .92; }
body[data-design-template="gallery"] .hero__stats { left: clamp(30px, 6vw, 112px); right: clamp(30px, 6vw, 112px); bottom: 42px; border: 1px solid rgba(255,255,255,.34); border-radius: 0; background: rgba(18, 20, 19, .42); backdrop-filter: blur(20px); }
body[data-design-template="gallery"] .section { padding-block: clamp(92px, 11vw, 180px); }
body[data-design-template="gallery"] .section-title { font-family: "Playfair Display", Georgia, serif; font-weight: 500; font-size: clamp(48px, 6vw, 100px); }
body[data-design-template="gallery"] .gallery__grid { gap: clamp(18px, 3vw, 52px); }
body[data-design-template="gallery"] .gallery__item { padding: 12px; border: 1px solid #cfc8bc; border-radius: 0; background: #f7f5ef; }
body[data-design-template="gallery"] .adv-card { border-radius: 0; border-color: #d2ccc1; background: transparent; box-shadow: none; }

/* 04 — TERRACE: warm resort cards */
body[data-design-template="terrace"] { background: color-mix(in srgb, var(--theme-accent) 9%, #fffaf2); }
body[data-design-template="terrace"] .header { background: color-mix(in srgb, var(--theme-accent) 8%, #fffaf4); box-shadow: none; }
body[data-design-template="terrace"] .header__inner { max-width: 1580px; }
body[data-design-template="terrace"] .hero { min-height: 900px; margin: 0 20px 20px; border-radius: 44px; overflow: hidden; }
body[data-design-template="terrace"] .hero__overlay { background: linear-gradient(90deg, rgba(53, 31, 20, .72), rgba(53, 31, 20, .08)); }
body[data-design-template="terrace"] .hero__content { width: 100%; max-width: none; box-sizing: border-box; justify-content: center; padding-left: clamp(30px, 8vw, 150px); padding-right: 48%; padding-bottom: 170px; }
body[data-design-template="terrace"] .hero__title { font-family: "Playfair Display", Georgia, serif; font-size: clamp(62px, 6.4vw, 112px); font-weight: 500; line-height: .94; }
body[data-design-template="terrace"] .hero__stats { left: clamp(30px, 8vw, 150px); right: 49%; bottom: 40px; border-radius: 24px; background: rgba(255,250,242,.92); color: var(--ink-900); }
body[data-design-template="terrace"] .hero__stat { color: var(--ink-900); border-color: color-mix(in srgb, var(--theme-brand) 15%, transparent); }
body[data-design-template="terrace"] .hero__stat .num { color: var(--theme-cta); }
body[data-design-template="terrace"] :is(.about__media, .adv-card, .gallery__item, .catalog-gateway__card, .developer__card) { border-radius: 34px; }
body[data-design-template="terrace"] .adv-card { background: color-mix(in srgb, var(--theme-accent) 6%, #fff); box-shadow: 0 24px 70px rgba(78, 50, 32, .08); }
body[data-design-template="terrace"] .section-title { font-family: "Playfair Display", Georgia, serif; font-weight: 500; }

/* 05 — HERITAGE: contemporary classic */
body[data-design-template="heritage"] { background: #f2eadc; }
body[data-design-template="heritage"] .header { border-bottom: 1px solid color-mix(in srgb, var(--theme-brand) 28%, transparent); background: #f6efe3; box-shadow: none; }
body[data-design-template="heritage"] .header__inner { max-width: 100%; padding-inline: clamp(26px, 5vw, 96px); }
body[data-design-template="heritage"] :is(.logo__text, .hero__title, .section-title, .about__lead) { font-family: "Playfair Display", Georgia, serif; }
body[data-design-template="heritage"] .nav__link { font-size: 12px; letter-spacing: .09em; text-transform: uppercase; }
body[data-design-template="heritage"] .hero { min-height: 920px; background: #f2eadc; color: var(--ink-900); }
body[data-design-template="heritage"] .hero__bg { inset: 124px clamp(26px, 5vw, 96px) 52px 42%; z-index: 0; border: 1px solid color-mix(in srgb, var(--theme-brand) 36%, transparent); }
body[data-design-template="heritage"] .hero__overlay { background: linear-gradient(90deg, rgba(54,38,29,.16), transparent); }
body[data-design-template="heritage"] .hero__content { width: 100%; max-width: none; min-height: 900px; box-sizing: border-box; justify-content: center; align-items: flex-start; padding: 110px 62% 170px clamp(28px, 7vw, 132px); }
body[data-design-template="heritage"] .hero__badge { background: transparent; border-color: var(--theme-accent); color: var(--theme-brand); border-radius: 0; }
body[data-design-template="heritage"] .hero__title { color: var(--ink-900); font-size: clamp(58px, 6vw, 106px); font-weight: 500; line-height: .9; }
body[data-design-template="heritage"] .hero__title em { color: var(--theme-cta); }
body[data-design-template="heritage"] .hero__subtitle { color: var(--ink-700); }
body[data-design-template="heritage"] .hero__actions .btn--ghost-light { border-color: var(--theme-brand); color: var(--theme-brand); }
body[data-design-template="heritage"] .hero__stats { left: clamp(28px, 7vw, 132px); right: 61%; bottom: 62px; background: transparent; box-shadow: none; border-top: 1px solid var(--theme-accent); border-radius: 0; }
body[data-design-template="heritage"] .hero__stat { color: var(--ink-900); border-color: color-mix(in srgb, var(--theme-brand) 20%, transparent); }
body[data-design-template="heritage"] .section-title { font-weight: 500; }
body[data-design-template="heritage"] .adv-card { border-radius: 0; border: 1px solid color-mix(in srgb, var(--theme-brand) 24%, transparent); background: transparent; box-shadow: none; }

/* 06 — PANORAMA: transparent technology */
body[data-design-template="panorama"] { background: color-mix(in srgb, var(--theme-brand) 5%, #eef8fb); }
body[data-design-template="panorama"] .header { background: rgba(242, 250, 252, .74); backdrop-filter: blur(24px) saturate(140%); border-bottom: 1px solid rgba(255,255,255,.58); box-shadow: none; }
body[data-design-template="panorama"] .hero { min-height: 940px; }
body[data-design-template="panorama"] .hero__overlay { background: linear-gradient(135deg, rgba(0, 43, 58, .62), rgba(0, 85, 110, .16)); }
body[data-design-template="panorama"] .hero__content { width: 100%; max-width: none; box-sizing: border-box; justify-content: center; align-items: flex-start; padding-left: clamp(32px, 8vw, 150px); padding-right: 43%; padding-bottom: 190px; }
body[data-design-template="panorama"] .hero__badge { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.42); backdrop-filter: blur(12px); }
body[data-design-template="panorama"] .hero__title { font-size: clamp(66px, 7vw, 128px); letter-spacing: -.065em; }
body[data-design-template="panorama"] .hero__stats { left: clamp(32px, 8vw, 150px); right: clamp(32px, 8vw, 150px); bottom: 44px; border: 1px solid rgba(255,255,255,.3); border-radius: 28px; background: rgba(4, 62, 78, .38); backdrop-filter: blur(24px) saturate(140%); }
body[data-design-template="panorama"] :is(.adv-card, .catalog-gateway__card, .document-card) { border: 1px solid rgba(255,255,255,.7); border-radius: 24px; background: rgba(255,255,255,.64); backdrop-filter: blur(20px); box-shadow: 0 24px 80px color-mix(in srgb, var(--theme-brand) 12%, transparent); }
body[data-design-template="panorama"] .section-title { letter-spacing: -.055em; }

/* 07 — BOTANICA: organic landscape */
body[data-design-template="botanica"] { background: color-mix(in srgb, var(--theme-accent) 12%, #f5f7ed); }
body[data-design-template="botanica"] .header { margin: 14px auto 0; width: min(1480px, calc(100% - 28px)); border: 1px solid color-mix(in srgb, var(--theme-brand) 18%, transparent); border-radius: 999px; background: rgba(250,252,244,.9); backdrop-filter: blur(20px); }
body[data-design-template="botanica"] .hero { min-height: 930px; margin-top: -76px; border-radius: 0 0 90px 90px; overflow: hidden; }
body[data-design-template="botanica"] .hero__overlay { background: linear-gradient(90deg, rgba(18, 54, 39, .73), rgba(18, 54, 39, .08)); }
body[data-design-template="botanica"] .hero__content { width: 100%; max-width: none; box-sizing: border-box; justify-content: center; padding-left: clamp(28px, 8vw, 150px); padding-right: 48%; padding-top: 154px; padding-bottom: 190px; }
body[data-design-template="botanica"] .hero__title { font-family: "Playfair Display", Georgia, serif; font-size: clamp(62px, 6.4vw, 116px); font-weight: 500; line-height: .92; }
body[data-design-template="botanica"] .hero__stats { left: clamp(28px, 8vw, 150px); right: 51%; bottom: 46px; border-radius: 999px; background: rgba(244,248,235,.9); }
body[data-design-template="botanica"] .hero__stat { color: var(--ink-900); border-color: color-mix(in srgb, var(--theme-brand) 17%, transparent); }
body[data-design-template="botanica"] .hero__stat .num { color: var(--theme-brand); }
body[data-design-template="botanica"] :is(.about__media, .adv-card, .gallery__item, .catalog-gateway__card, .document-card) { border-radius: 44px; }
body[data-design-template="botanica"] .adv-card { border: 0; background: color-mix(in srgb, var(--theme-accent) 13%, #fff); box-shadow: none; }
body[data-design-template="botanica"] .section-title { font-family: "Playfair Display", Georgia, serif; font-weight: 500; }

/* 08 — MONOLITH: brutalist grid on the dark renderer */
body[data-design-template="monolith"] { --ink: #f2f3ed; --ink-soft: #c8cbc2; background: #101211; }
body[data-design-template="monolith"] .rail { inset: 0 0 auto 0; width: auto; height: 86px; padding: 0 32px; display: flex; flex-direction: row; align-items: center; border-right: 0; border-bottom: 1px solid var(--line); background: #121413; }
body[data-design-template="monolith"] .rail__logo { min-width: 250px; margin-bottom: 0; }
body[data-design-template="monolith"] .rail__mark { border-radius: 0; background: var(--brass); color: #101211; }
body[data-design-template="monolith"] .rail__nav { flex: 1; display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 2px; }
body[data-design-template="monolith"] .rail__link { min-height: 42px; padding: 0 15px; align-items: center; border: 1px solid transparent; }
body[data-design-template="monolith"] .rail__link:hover { border-color: var(--brass); }
body[data-design-template="monolith"] .rail__num { display: none; }
body[data-design-template="monolith"] .rail__foot { display: flex; flex-direction: row; align-items: center; gap: 18px; padding-top: 0; border-top: 0; }
body[data-design-template="monolith"] .page { margin-left: 0; padding-top: 86px; }
body[data-design-template="monolith"] .hero2 { min-height: 870px; padding: 0; }
body[data-design-template="monolith"] .hero2__veil { background: linear-gradient(90deg, rgba(8,10,9,.88), rgba(8,10,9,.06)); }
body[data-design-template="monolith"] .hero2__inner { width: 100%; max-width: none; min-height: 870px; box-sizing: border-box; padding: 90px 8vw 190px; align-items: flex-start; justify-content: center; }
body[data-design-template="monolith"] .hero2__title { max-width: 1100px; font-family: "Jost", Arial, sans-serif; font-size: clamp(70px, 8vw, 150px); font-weight: 600; line-height: .79; letter-spacing: -.075em; text-transform: uppercase; }
body[data-design-template="monolith"] .hero2__title em { color: var(--brass); font-family: inherit; font-style: normal; }
body[data-design-template="monolith"] .hero2__lead { max-width: 620px; margin-left: 42%; }
body[data-design-template="monolith"] .hero2__cta { margin-left: 42%; }
body[data-design-template="monolith"] .hero2__strip { left: 8vw; right: 8vw; bottom: 0; border: 1px solid var(--line); background: #121413; }
body[data-design-template="monolith"] :is(.story, .catalog-gateway2, .amenities2, .gallery2, .developer2, .documents2) { border-top: 1px solid var(--line); }
body[data-design-template="monolith"] .h-display { font-family: "Jost", Arial, sans-serif; font-weight: 600; letter-spacing: -.055em; text-transform: uppercase; }
body[data-design-template="monolith"] :is(.srow, .catalog-gateway2__steps li, .amenity2) { border-radius: 0; }

/* 09 — NOCTURNE: cinematic blue night */
body[data-design-template="nocturne"] { background: #08101f; }
body[data-design-template="nocturne"] .rail { width: 230px; background: rgba(6, 13, 28, .92); backdrop-filter: blur(18px); }
body[data-design-template="nocturne"] .page { margin-left: 230px; }
body[data-design-template="nocturne"] .rail__mark { border-radius: 50%; border-color: var(--brass); box-shadow: 0 0 34px color-mix(in srgb, var(--brass) 32%, transparent); }
body[data-design-template="nocturne"] .hero2 { min-height: 1000px; }
body[data-design-template="nocturne"] .hero2__veil { background: radial-gradient(circle at 68% 35%, rgba(75, 128, 210, .08), transparent 34%), linear-gradient(180deg, rgba(4,9,20,.28), rgba(4,9,20,.86)); }
body[data-design-template="nocturne"] .hero2__inner { align-items: center; justify-content: center; padding-bottom: 230px; text-align: center; }
body[data-design-template="nocturne"] .hero2__title { max-width: 1220px; font-size: clamp(76px, 8.6vw, 154px); font-weight: 400; line-height: .85; }
body[data-design-template="nocturne"] .hero2__lead { max-width: 720px; }
body[data-design-template="nocturne"] .hero2__cta { justify-content: center; }
body[data-design-template="nocturne"] .hero2__strip { left: 50%; right: auto; bottom: 48px; width: min(1080px, calc(100% - 72px)); transform: translateX(-50%); border: 1px solid color-mix(in srgb, var(--brass) 32%, transparent); border-radius: 999px; background: rgba(7, 17, 34, .58); backdrop-filter: blur(24px); }
body[data-design-template="nocturne"] .h-display { font-weight: 400; }
body[data-design-template="nocturne"] :is(.story__media, .ag-item, .catalog-gateway2) { box-shadow: 0 30px 100px rgba(0,0,0,.38); }

/* 10 — KINETIC: bold city rhythm */
body[data-design-template="kinetic"] { background: #111; }
body[data-design-template="kinetic"] .rail { inset: 0 0 auto 0; width: auto; height: 82px; padding: 0 28px; display: flex; flex-direction: row; align-items: center; border: 0; border-bottom: 1px solid #333; background: #111; }
body[data-design-template="kinetic"] .rail__logo { min-width: 240px; margin-bottom: 0; }
body[data-design-template="kinetic"] .rail__mark { border: 0; border-radius: 999px; background: var(--brass); color: #111; }
body[data-design-template="kinetic"] .rail__nav { flex: 1; display: flex; flex-direction: row; align-items: center; justify-content: center; }
body[data-design-template="kinetic"] .rail__link { padding: 12px 13px; border: 0; font-weight: 600; text-transform: uppercase; }
body[data-design-template="kinetic"] .rail__num { display: none; }
body[data-design-template="kinetic"] .rail__foot { display: flex; flex-direction: row; align-items: center; gap: 16px; padding-top: 0; border-top: 0; }
body[data-design-template="kinetic"] .page { margin-left: 0; padding-top: 82px; }
body[data-design-template="kinetic"] .hero2 { min-height: 900px; padding: 0; overflow: hidden; }
body[data-design-template="kinetic"] .hero2::after { content: "АРХИТЕКТУРА • ГОРОД • ДВИЖЕНИЕ •"; position: absolute; left: -2vw; right: -2vw; bottom: 22px; z-index: 4; overflow: hidden; white-space: nowrap; color: var(--brass); font: 600 clamp(28px, 4vw, 72px)/1 "Jost", sans-serif; letter-spacing: -.04em; opacity: .9; }
body[data-design-template="kinetic"] .hero2__veil { background: linear-gradient(100deg, rgba(8,8,8,.88), rgba(8,8,8,.06)); }
body[data-design-template="kinetic"] .hero2__inner { width: 100%; max-width: none; min-height: 900px; box-sizing: border-box; justify-content: center; padding: 72px 6vw 210px; }
body[data-design-template="kinetic"] .hero2__kicker { color: var(--brass); font: 600 13px/1 "Jost", sans-serif; text-transform: uppercase; }
body[data-design-template="kinetic"] .hero2__title { max-width: 1250px; font-family: "Jost", Arial, sans-serif; font-size: clamp(76px, 9.5vw, 170px); font-weight: 600; line-height: .76; letter-spacing: -.085em; text-transform: uppercase; }
body[data-design-template="kinetic"] .hero2__title .line:nth-child(2) { margin-left: 11vw; }
body[data-design-template="kinetic"] .hero2__title em { color: var(--brass); font-family: inherit; font-style: italic; }
body[data-design-template="kinetic"] .hero2__lead { max-width: 620px; margin-left: 36vw; }
body[data-design-template="kinetic"] .hero2__cta { margin-left: 36vw; }
body[data-design-template="kinetic"] .hero2__strip { top: 34px; right: 3vw; bottom: auto; left: auto; width: min(480px, 42vw); border: 1px solid #555; background: rgba(15,15,15,.7); backdrop-filter: blur(18px); }
body[data-design-template="kinetic"] .h-display { font-family: "Jost", Arial, sans-serif; font-weight: 600; letter-spacing: -.065em; text-transform: uppercase; }
body[data-design-template="kinetic"] .marquee { background: var(--brass); color: #111; }

/* Manifest-driven global states. The data contract comes from the same
   template manifest as generated catalogue and unit routes. */
body[data-cookie-view] :is(.legal-notice, .legal2, .template-cookie) {
  box-sizing: border-box;
  max-height: min(58dvh, 420px);
  overflow: auto;
}

body[data-cookie-view] .template-cookie[hidden] {
  display: none;
}

body:is(
  [data-cookie-view="city-bar"],
  [data-cookie-view="system-strip"],
  [data-cookie-view="ticker-consent"]
) :is(.legal-notice, .legal2) {
  right: 24px;
  left: 24px;
  width: auto;
  max-width: none;
  grid-template-columns: minmax(0, 1fr) auto;
  border-radius: 0;
  padding: 15px 58px 15px 20px;
}

body:is(
  [data-cookie-view="horizon-line"],
  [data-cookie-view="caption-line"]
) :is(.legal-notice, .legal2) {
  right: 4vw;
  bottom: 18px;
  left: 4vw;
  width: auto;
  max-width: none;
  grid-template-columns: minmax(0, 1fr) auto;
  border-width: 1px 0;
  border-radius: 999px;
  padding: 12px 54px 12px 22px;
  background: color-mix(in srgb, var(--theme-brand) 76%, transparent);
  backdrop-filter: blur(22px) saturate(145%);
}

body:is(
  [data-cookie-view="editor-note"],
  [data-cookie-view="museum-label"],
  [data-cookie-view="paper-notice"]
) :is(.legal-notice, .legal2) {
  right: auto;
  bottom: 34px;
  left: clamp(22px, 6vw, 110px);
  width: min(410px, calc(100vw - 44px));
  grid-template-columns: 1fr;
  border-radius: 0;
  padding: 32px 28px 24px;
  box-shadow: 12px 12px 0 color-mix(in srgb, var(--theme-accent) 34%, transparent);
}

body:is(
  [data-cookie-view="soft-note"],
  [data-cookie-view="leaf-note"]
) :is(.legal-notice, .legal2) {
  border-radius: 30px 12px 34px 18px;
}

body:is(
  [data-contact-view="signal-block"],
  [data-contact-view="curator-modal"],
  [data-contact-view="estate-form"]
) :is(.contact-fab__panel, .contact2__panel) {
  position: fixed;
  inset: 50% auto auto 50%;
  width: min(720px, calc(100vw - 40px));
  max-height: min(720px, calc(100dvh - 40px));
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: auto;
  padding: clamp(22px, 4vw, 42px);
  border-radius: 0;
  transform: translate(-50%, calc(-50% + 18px));
  transform-origin: center;
}

body:is(
  [data-contact-view="signal-block"],
  [data-contact-view="curator-modal"],
  [data-contact-view="estate-form"]
) :is(.contact-fab__panel, .contact2__panel)[aria-hidden="false"] {
  transform: translate(-50%, -50%);
}

body:is(
  [data-contact-view="signal-block"],
  [data-contact-view="curator-modal"],
  [data-contact-view="estate-form"]
) :is(.contact-fab__head, .contact2__head) {
  grid-column: 1 / -1;
}

body[data-contact-view="bottom-sheet"] :is(.contact-fab__panel, .contact2__panel) {
  position: fixed;
  right: 20px;
  bottom: 20px;
  left: 20px;
  width: auto;
  max-height: min(72dvh, 680px);
  grid-template-columns: repeat(5, minmax(0, 1fr));
  overflow: auto;
  border-radius: 28px;
  padding: 22px;
  transform: translateY(calc(100% + 48px));
}

body[data-contact-view="bottom-sheet"] :is(.contact-fab__panel, .contact2__panel)[aria-hidden="false"] {
  transform: none;
}

body[data-contact-view="bottom-sheet"] :is(.contact-fab__head, .contact2__head) {
  grid-column: 1 / -1;
}

body:is([data-contact-view="concierge-panel"], [data-contact-view="atelier-note"], [data-contact-view="glass-console"]) :is(.contact-fab__panel, .contact2__panel) {
  width: min(460px, calc(100vw - 32px));
  padding: 22px;
}

body:is([data-modal-view="hard-dialog"], [data-modal-view="white-cube"], [data-modal-view="module-dialog"]) :is(.modal__dialog, .modal2__dialog) {
  border-radius: 0;
  box-shadow: 14px 14px 0 color-mix(in srgb, var(--theme-accent) 30%, transparent);
}

body:is([data-modal-view="editorial-spread"], [data-modal-view="residence-dialog"], [data-modal-view="paper-dialog"]) :is(.modal__dialog, .modal2__dialog) {
  width: min(1120px, calc(100vw - 42px));
  border-radius: 0;
  padding: clamp(28px, 5vw, 72px);
}

body:is([data-modal-view="editorial-spread"], [data-modal-view="residence-dialog"], [data-modal-view="paper-dialog"]) :is(.modal__dialog--sm, .modal2__dialog--sm) {
  width: min(520px, calc(100vw - 32px));
  max-width: 520px;
  padding: 0;
}

body:is([data-modal-view="glass-dialog"], [data-modal-view="scene-overlay"]) :is(.modal__dialog, .modal2__dialog) {
  border: 1px solid color-mix(in srgb, #fff 42%, transparent);
  background: color-mix(in srgb, var(--theme-brand) 72%, transparent);
  box-shadow: 0 42px 120px rgba(0,0,0,.38);
  backdrop-filter: blur(28px) saturate(145%);
}

/* Shared responsive model for all split / horizontal variants. */
@media (max-width: 1180px) {
  body[data-design-template="monolith"] .rail__foot,
  body[data-design-template="kinetic"] .rail__foot { display: none; }
  body[data-design-template="monolith"] .rail__logo,
  body[data-design-template="kinetic"] .rail__logo { min-width: 190px; }
  body[data-design-template="monolith"] .rail__link,
  body[data-design-template="kinetic"] .rail__link { padding-inline: 9px; font-size: 11px; }
}

@media (max-width: 900px) {
  body[data-design-template="atelier"] .hero,
  body[data-design-template="heritage"] .hero { min-height: 900px; color: #fff; }
  body[data-design-template="atelier"] .hero__bg,
  body[data-design-template="heritage"] .hero__bg { inset: 0; border: 0; border-radius: 0; }
  body[data-design-template="atelier"] .hero__overlay,
  body[data-design-template="heritage"] .hero__overlay { background: linear-gradient(180deg, rgba(8,20,18,.32), rgba(8,20,18,.82)); }
  body[data-design-template="atelier"] .hero__content,
  body[data-design-template="heritage"] .hero__content { min-height: 900px; padding: 150px 28px 230px; justify-content: flex-end; color: #fff; }
  body[data-design-template="atelier"] .hero__title,
  body[data-design-template="heritage"] .hero__title,
  body[data-design-template="atelier"] .hero__subtitle,
  body[data-design-template="heritage"] .hero__subtitle { color: #fff; }
  body[data-design-template="atelier"] .hero__actions .btn--ghost-light,
  body[data-design-template="heritage"] .hero__actions .btn--ghost-light { color: #fff; border-color: rgba(255,255,255,.55); }
  body[data-design-template="atelier"] .hero__stats,
  body[data-design-template="heritage"] .hero__stats { left: 22px; right: 22px; bottom: 42px; background: rgba(9,22,19,.52); color: #fff; }
  body[data-design-template="atelier"] .hero__stat,
  body[data-design-template="heritage"] .hero__stat { color: #fff; }

  body[data-design-template="terrace"] .hero__content,
  body[data-design-template="botanica"] .hero__content,
  body[data-design-template="panorama"] .hero__content { padding-right: 28px; }
  body[data-design-template="terrace"] .hero__stats,
  body[data-design-template="botanica"] .hero__stats,
  body[data-design-template="panorama"] .hero__stats { left: 24px; right: 24px; }

  body[data-design-template="monolith"] .rail,
  body[data-design-template="kinetic"] .rail {
    inset: 0 auto 0 0;
    width: 260px;
    height: 100dvh;
    padding: 40px 32px;
    flex-direction: column;
    align-items: stretch;
    border-right: 1px solid var(--line);
    border-bottom: 0;
  }
  body[data-design-template="monolith"] .rail__logo,
  body[data-design-template="kinetic"] .rail__logo { min-width: 0; margin-bottom: 60px; }
  body[data-design-template="monolith"] .rail__nav,
  body[data-design-template="kinetic"] .rail__nav { flex-direction: column; align-items: stretch; justify-content: flex-start; }
  body[data-design-template="monolith"] .rail__link,
  body[data-design-template="kinetic"] .rail__link { padding: 12px 0; border: 0; border-bottom: 1px solid var(--line-soft); }
  body[data-design-template="monolith"] .rail__foot,
  body[data-design-template="kinetic"] .rail__foot { display: flex; flex-direction: column; align-items: stretch; padding-top: 24px; border-top: 1px solid var(--line); }
  body[data-design-template="monolith"] .page,
  body[data-design-template="kinetic"] .page { padding-top: 0; }
  body[data-design-template="nocturne"] .rail { width: 190px; }
  body[data-design-template="nocturne"] .page { margin-left: 190px; }
  body[data-design-template="monolith"] .hero2__lead,
  body[data-design-template="monolith"] .hero2__cta,
  body[data-design-template="kinetic"] .hero2__lead,
  body[data-design-template="kinetic"] .hero2__cta { margin-left: 0; }
}

@media (max-width: 1024px) {
  body[data-design-template="nocturne"] .page { margin-left: 0; }
  body[data-design-template="monolith"] .rail__foot,
  body[data-design-template="kinetic"] .rail__foot {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding-top: 24px;
    border-top: 1px solid var(--line);
  }
  .rail__channels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .rail__channel {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
    padding: 9px;
    border: 1px solid var(--line);
    color: var(--ink-soft);
    background: transparent;
    font: inherit;
    text-align: left;
  }
  .rail__channel span { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
}

@media (max-width: 720px) {
  body[data-design-template] :is(.hero__title, .hero2__title) { overflow-wrap: anywhere; }
  body[data-cookie-view] :is(.legal-notice, .legal2) {
    right: 10px;
    bottom: 10px;
    left: 10px;
    width: auto;
    max-height: min(54dvh, 390px);
    grid-template-columns: 1fr;
    border-radius: 18px;
    padding: 22px 18px 16px;
    box-shadow: 0 20px 58px rgba(0,0,0,.26);
  }
  body:is(
    [data-contact-view="signal-block"],
    [data-contact-view="curator-modal"],
    [data-contact-view="estate-form"],
    [data-contact-view="bottom-sheet"]
  ) :is(.contact-fab__panel, .contact2__panel) {
    inset: auto 8px 8px;
    width: auto;
    max-height: calc(100dvh - 16px);
    grid-template-columns: 1fr;
    border-radius: 20px;
    padding: 18px;
    transform: translateY(calc(100% + 32px));
  }
  body:is(
    [data-contact-view="signal-block"],
    [data-contact-view="curator-modal"],
    [data-contact-view="estate-form"],
    [data-contact-view="bottom-sheet"]
  ) :is(.contact-fab__panel, .contact2__panel)[aria-hidden="false"] {
    transform: none;
  }
  body[data-design-template="gallery"] .hero { width: calc(100% - 20px); min-height: 780px; margin: 10px; margin-top: 76px; }
  body[data-design-template="gallery"] .hero__content { padding: 120px 20px 235px; }
  body[data-design-template="gallery"] .section-title {
    max-width: 100%;
    font-size: clamp(36px, 11vw, 48px);
    overflow-wrap: anywhere;
  }
  body[data-design-template="horizon"] .hero__content { padding: 128px 20px 250px; }
  body[data-design-template="terrace"] .hero { min-height: 820px; margin-inline: 8px; border-radius: 28px; }
  body[data-design-template="botanica"] .header { margin-top: 8px; width: calc(100% - 16px); }
  body[data-design-template="botanica"] .hero { min-height: 850px; margin-top: -68px; border-radius: 0 0 44px 44px; }
  body[data-design-template="panorama"] .hero { min-height: 850px; }

  body[data-design-template="horizon"] .hero__stats,
  body[data-design-template="gallery"] .hero__stats,
  body[data-design-template="terrace"] .hero__stats,
  body[data-design-template="botanica"] .hero__stats,
  body[data-design-template="panorama"] .hero__stats,
  body[data-design-template="atelier"] .hero__stats,
  body[data-design-template="heritage"] .hero__stats { display: grid; grid-template-columns: repeat(2, 1fr); width: auto; transform: none; border-radius: 24px; }
  body[data-design-template="horizon"] .hero__stats { left: 16px; right: 16px; }
  body[data-design-template="horizon"] .hero__stat,
  body[data-design-template="gallery"] .hero__stat,
  body[data-design-template="terrace"] .hero__stat,
  body[data-design-template="botanica"] .hero__stat,
  body[data-design-template="panorama"] .hero__stat { min-height: 76px; }

  body[data-design-template="nocturne"] .hero2 { min-height: 880px; }
  body[data-design-template="nocturne"] .hero2__inner { padding: 120px 20px 250px; }
  body[data-design-template="nocturne"] .hero2__strip,
  body[data-design-template="monolith"] .hero2__strip,
  body[data-design-template="kinetic"] .hero2__strip { left: 14px; right: 14px; bottom: 70px; top: auto; width: auto; transform: none; border-radius: 0; grid-template-columns: repeat(2, 1fr); }
  body[data-design-template="kinetic"] .hero2__inner,
  body[data-design-template="monolith"] .hero2__inner { padding: 118px 20px 280px; }
  body[data-design-template="kinetic"] .hero2__title .line:nth-child(2) { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-design-template] *,
  body[data-design-template] *::before,
  body[data-design-template] *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* The site home and the unified catalogue share one compact cookie-card shape. */
body[data-cookie-view] :is(.legal-notice, .legal2, .template-cookie) {
  right: auto;
  bottom: 16px;
  left: 16px;
  width: min(35rem, calc(100vw - 32px));
  max-width: 35rem;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 20px;
  border-radius: 16px;
  padding: 20px 48px 20px 20px;
  box-shadow: 0 24px 70px rgba(10, 31, 37, .22);
}

@media (max-width: 639px) {
  body[data-cookie-view] :is(.legal-notice, .legal2, .template-cookie) {
    right: auto;
    bottom: 16px;
    left: 16px;
    width: calc(100vw - 32px);
    max-height: min(58dvh, 420px);
    grid-template-columns: 1fr;
    gap: 12px;
    border-radius: 16px;
    padding: 16px 40px 16px 16px;
  }
}
