/* ================================================================
   Праздничное освещение — дополнительные блоки страницы
   services/prazdnichnoe-osveshchenie.html (подключается только там).
   Сдержанная, «журнальная» подача: тонкие линии, много воздуха,
   золото только в акцентах. Только CSS, без JS.
================================================================ */

/* ---------- общие заголовки блоков ---------- */
.pz-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(34px, 3.4vw, 54px);
  line-height: 1.1;
  color: var(--ivory);
  margin: 26px 0 0;
}
.pz-title em { font-style: italic; color: var(--gold-soft); }
.pz-sub {
  max-width: 460px;
  font-size: 16px;
  line-height: 1.9;
  color: rgba(244, 239, 231, .6);
}

/* ---------- Как это работает: линия времени ---------- */
.pz-process { background: var(--forest-2); padding: 130px 0 140px; }
.pz-process-head {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: end;
  margin-bottom: 84px;
}
.pz-timeline {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0 40px;
}
.pz-step { position: relative; padding-top: 34px; }
.pz-step::before {                       /* тонкая линия + золотая точка */
  content: "";
  position: absolute;
  left: 0; right: -40px; top: 0;
  height: 1px;
  background: rgba(244, 239, 231, .16);
}
.pz-step:last-child::before { right: 0; }
.pz-step::after {
  content: "";
  position: absolute;
  left: 0; top: -3px;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--gold);
}
.pz-step-num {
  display: block;
  font-size: 12px;
  letter-spacing: .34em;
  color: var(--gold-soft);
  margin-bottom: 22px;
}
.pz-step h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(22px, 1.7vw, 27px);
  line-height: 1.2;
  color: var(--ivory);
  margin-bottom: 14px;
}
.pz-step p { font-size: 14.5px; line-height: 1.8; color: rgba(244, 239, 231, .58); }

/* ---------- галерея: журнальная «ступенька» ---------- */
.svc-gallery-grid.is-stagger {
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 32px;
  align-items: start;
}
.svc-gallery-grid.is-stagger a:nth-child(n) { grid-column: span 1; }
.svc-gallery-grid.is-stagger a:nth-child(3n+2) { margin-top: 72px; }
.svc-gallery-grid.is-stagger a:nth-child(n) .img-frame { aspect-ratio: 4 / 5; position: relative; }

/* ---------- визуализация (включается раскомментированием в HTML) ---------- */
.pz-viz { background: #111b13; padding: 130px 0; }
.pz-viz-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 56px;
}
.pz-viz-fig { position: relative; margin: 0; }
.pz-viz-fig .img-frame { aspect-ratio: 4 / 3; }
.pz-viz-fig figcaption {
  margin-top: 16px;
  font-size: 13px;
  letter-spacing: .08em;
  color: rgba(244, 239, 231, .55);
}
.pz-badge {
  position: absolute;
  left: 18px; top: 18px;
  z-index: 2;
  padding: 7px 14px;
  font-size: 11px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--forest);
  background: var(--gold-soft);
}
.pz-badge.is-plain { background: rgba(21, 33, 22, .8); color: var(--ivory); border: 1px solid rgba(244,239,231,.3); }
.pz-viz-note { margin-top: 30px; max-width: 640px; font-size: 15px; line-height: 1.85; color: rgba(244, 239, 231, .58); }

/* ---------- вопросы и ответы ---------- */
.pz-faq { background: var(--forest); padding: 130px 0 140px; }
.pz-faq-grid {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 90px;
  align-items: start;
}
.pz-faq-head { position: sticky; top: 120px; }
.pz-faq-head .pz-sub { margin-top: 26px; }
.pz-faq details { border-top: 1px solid rgba(244, 239, 231, .14); }
.pz-faq details:last-child { border-bottom: 1px solid rgba(244, 239, 231, .14); }
.pz-faq summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 28px 52px 28px 0;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(21px, 1.7vw, 25px);
  line-height: 1.3;
  color: var(--ivory);
  transition: color .3s ease;
}
.pz-faq summary::-webkit-details-marker { display: none; }
.pz-faq summary::after {
  content: "";
  position: absolute;
  right: 4px; top: 50%;
  width: 14px; height: 14px;
  margin-top: -7px;
  background:
    linear-gradient(var(--gold-soft), var(--gold-soft)) center / 100% 1px no-repeat,
    linear-gradient(var(--gold-soft), var(--gold-soft)) center / 1px 100% no-repeat;
  transition: transform .35s var(--ease-out);
}
.pz-faq details[open] summary::after { transform: rotate(90deg); background: linear-gradient(var(--gold-soft), var(--gold-soft)) center / 100% 1px no-repeat; }
.pz-faq summary:hover { color: var(--gold-soft); }
.pz-faq summary:focus-visible { outline: 1px solid var(--gold-soft); outline-offset: 4px; }
.pz-faq-answer { padding: 0 52px 30px 0; max-width: 640px; font-size: 16px; line-height: 1.9; color: rgba(244, 239, 231, .66); }

/* ---------- CTA: пояснение под кнопкой ---------- */
.pz-cta-hint { margin-top: 30px; font-size: 14.5px; letter-spacing: .04em; color: rgba(244, 239, 231, .68); }

/* ---------- адаптив ---------- */
@media (max-width: 1200px) {
  .pz-timeline { grid-template-columns: repeat(3, 1fr); gap: 56px 40px; }
  .pz-step:nth-child(3)::before { right: 0; }
}
@media (max-width: 1024px) {
  .pz-process-head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 60px; }
  .pz-faq-grid { grid-template-columns: 1fr; gap: 40px; }
  .pz-faq-head { position: static; }
  .pz-viz-grid { grid-template-columns: 1fr; }
  .svc-gallery-grid.is-stagger { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
  .svc-gallery-grid.is-stagger a:nth-child(3n+2) { margin-top: 0; }
  .svc-gallery-grid.is-stagger a:nth-child(2n) { margin-top: 44px; }
}
@media (max-width: 640px) {
  .pz-process, .pz-faq, .pz-viz { padding: 88px 0; }
  .pz-timeline { grid-template-columns: 1fr; gap: 0; border-left: 1px solid rgba(244, 239, 231, .16); margin-left: 3px; }
  .pz-step { padding: 0 0 38px 28px; }
  .pz-step::before { display: none; }
  .pz-step::after { left: -4px; top: 6px; }
  .pz-step:last-child { padding-bottom: 0; }
  .svc-gallery-grid.is-stagger { gap: 20px 12px; }
  .svc-gallery-grid.is-stagger a:nth-child(2n) { margin-top: 28px; }
    .pz-faq summary { padding-right: 36px; }
  .pz-faq-answer { padding-right: 0; }
}

/* ================================================================
   Праздничное настроение — ненавязчиво: свет «включается» при открытии
   страницы, над фото медленно парят мягкие тёплые блики (боке).
   Без снега и гирлянд, всё очень тихо.
================================================================ */
.subpage-hero-media { animation: pzLightsOn 3.6s cubic-bezier(.22, .61, .21, 1) .1s both; }
@keyframes pzLightsOn {
  from { filter: brightness(.6) saturate(.75); }
  to   { filter: brightness(1) saturate(1); }
}
.subpage-hero .subpage-title em { animation: pzGlowIn 3.2s ease-out 1.1s both; }
@keyframes pzGlowIn {
  from { text-shadow: 0 0 0 rgba(255, 196, 110, 0), 0 0 0 rgba(255, 180, 90, 0); }
  to   { text-shadow: 0 0 26px rgba(255, 196, 110, .28), 0 0 64px rgba(255, 180, 90, .13); }
}

.pz-glow {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  mix-blend-mode: screen;
}
.pz-glow i {
  position: absolute;
  left: var(--x); top: var(--y);
  width: var(--s); height: var(--s);
  margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
  border-radius: 50%;
  background: radial-gradient(circle,
    rgba(255, 224, 168, .55) 0%,
    rgba(255, 206, 132, .22) 42%,
    rgba(255, 200, 120, 0) 68%);
  opacity: 0;
  will-change: transform, opacity;
  animation:
    pzBokehIn 2.8s ease-out var(--d) forwards,
    pzBokehFloat var(--t) ease-in-out var(--d) infinite alternate;
}
@keyframes pzBokehIn    { to { opacity: calc(var(--o, .5) * 1.5); } }
@keyframes pzBokehFloat {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(var(--dx, 12px), var(--dy, -16px), 0) scale(1.12); }
}
.pz-glow--cta { z-index: 1; }

@media (max-width: 640px) {
  .pz-glow i:nth-child(n+7) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .subpage-hero-media, .subpage-hero .subpage-title em { animation: none; }
  .pz-glow i { animation: none; opacity: calc(var(--o, .5) * 1.5); }
}

/* ================================================================
   Цены: визуализация справа
================================================================ */
.pz-prices-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .78fr);
  gap: 96px;
  align-items: start;
}
.pz-price-viz { position: relative; margin: 0; }
.pz-price-viz .pz-badge { left: 16px; top: 16px; }
.pz-price-viz-img {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  /* если файла ещё нет, слой с картинкой просто не рисуется и виден тёмный фон-заглушка */
  background:
    url("../img/visual.jpg") center / cover no-repeat,
    radial-gradient(ellipse 60% 38% at 50% 72%, rgba(255, 200, 120, .16), rgba(255, 200, 120, 0) 70%),
    radial-gradient(ellipse 40% 26% at 50% 40%, rgba(255, 214, 150, .08), rgba(255, 214, 150, 0) 70%),
    linear-gradient(180deg, #0e160f 0%, #16241a 100%);
}
.pz-ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 14%;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 22px;
  line-height: 1.4;
  color: rgba(244, 239, 231, .5);
}
.pz-price-viz figcaption {
  margin-top: 16px;
  font-size: 13px;
  letter-spacing: .08em;
  color: rgba(244, 239, 231, .55);
}
@media (max-width: 1024px) {
  .pz-prices-grid { grid-template-columns: 1fr; gap: 56px; }
  .pz-price-viz-img { aspect-ratio: 4 / 3; }
}

/* первый экран: подзаголовок читается на светлых участках фото */
.subpage-lead { text-shadow: 0 1px 16px rgba(8, 14, 9, .6); }

/* ================================================================
   Вводный разворот: текст слева и фото справа — одной высоты,
   верх и низ колонок совпадают
================================================================ */
.pz-spread { background: var(--forest); padding: 0 0 120px; }
.pz-spread-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: 32px;
  align-items: stretch;
  padding-top: 100px;
}
.pz-spread-text {
  grid-column: 1 / span 6;
  display: flex;
  flex-direction: column;
  justify-content: center;     /* заголовок и текст — по вертикальному центру фото */
  gap: 44px;
}
.pz-lead {
  max-width: 700px;
  font-size: clamp(30px, 2.9vw, 46px);
  line-height: 1.28;
}
.pz-spread-copy { max-width: 600px; }
.pz-spread-copy .section-eyebrow { margin-bottom: 28px; }
.pz-spread-copy p {
  font-size: 16.5px;
  line-height: 1.95;
  color: rgba(244, 239, 231, .74);
  margin-bottom: 18px;
}
.pz-spread-copy p:last-child { margin-bottom: 0; }
.pz-spread-media { grid-column: 8 / span 5; position: relative; }
.pz-spread-media .img-frame { aspect-ratio: 1732 / 2310; }   /* пропорции самого фото — без обрезки */
.pz-spread-media .img-frame img { width: 100%; height: 100%; object-fit: cover; }

/* ================================================================
   Что можно оформить: плотная журнальная подборка (4 визуализации)
================================================================ */
.pz-services { background: #111b13; padding: 110px 0 120px; }
.pz-services .section-eyebrow { margin-bottom: 36px; }
.pz-services-note { margin: 20px 0 56px; }
.pz-svc-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: 28px;
  row-gap: 52px;
  align-items: start;
}
.pz-svc { display: block; }
.pz-svc-1 { grid-column: 1 / span 7; }
.pz-svc-2 { grid-column: 8 / span 5; }
.pz-svc-3 { grid-column: 1 / span 5; }
.pz-svc-4 { grid-column: 6 / span 7; }

/* у карточек в одном ряду одинаковая высота кадра, ширина разная */
.pz-svc-img {
  position: relative;
  width: 100%;
  height: clamp(300px, 34vw, 500px);
  overflow: hidden;
}
.pz-svc-img .pz-badge { left: 22px; top: 22px; }

.pz-svc-body {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 6px 0;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(244, 239, 231, .14);
}
.pz-svc-num { grid-row: 1 / span 2; font-family: var(--font-display); font-style: italic; font-size: 20px; color: var(--gold-soft); line-height: 1.5; }
.pz-svc-body h3 { font-family: var(--font-display); font-weight: 500; font-size: clamp(24px, 2vw, 32px); line-height: 1.15; color: var(--ivory); }
.pz-svc-body p { font-size: 14.5px; line-height: 1.75; color: rgba(244, 239, 231, .62); max-width: 460px; }

/* Строка под подборкой: управление светом и демонтаж — словами, без карточек */
.pz-svc-outro {
  max-width: 720px;
  margin: 72px 0 0;
  padding-left: 28px;
  border-left: 1px solid rgba(216, 188, 147, .45);
  font-family: var(--font-display);
  font-size: clamp(20px, 1.7vw, 25px);
  line-height: 1.6;
  color: rgba(244, 239, 231, .78);
}

/* ================================================================
   Галерея реальных фотографий: один крупный кадр + шесть небольших
================================================================ */
.pz-gallery { padding: 110px 0 130px; }
.pz-gallery .section-eyebrow { margin-bottom: 48px; }
.pz-gal-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 2fr;
  gap: 16px;
}
.pz-gal-item { margin: 0; position: relative; }
.pz-gal-item .img-frame { position: relative; aspect-ratio: 3 / 4; }
/* два крупных кадра по краям, два небольших друг над другом посередине */
.pz-gal-l { grid-column: 1; }
.pz-gal-r { grid-column: 3; }
.pz-gal-item:not(.pz-gal-big) { grid-column: 2; }
.pz-gal-big { grid-row: 1 / span 2; display: flex; }
.pz-gal-big .img-frame { flex: 1; aspect-ratio: auto; }
.pz-gal-big .img-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ================================================================
   Адаптив новых блоков
================================================================ */
@media (max-width: 1024px) {
  .pz-spread-grid { padding-top: 64px; }
  .pz-spread-text { grid-column: 1 / -1; gap: 44px; }
  .pz-spread-media { grid-column: 3 / span 8; margin-top: 56px; }
  .pz-svc-grid { row-gap: 44px; }
  .pz-svc-1, .pz-svc-2, .pz-svc-3, .pz-svc-4 { grid-column: span 6; }
  .pz-svc-img { height: auto; aspect-ratio: 4 / 5; }
  .pz-gal-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  /* планшет и телефон: сетка 2×2, все кадры 3:4 */
  .pz-gal-l, .pz-gal-r, .pz-gal-big { grid-column: auto; grid-row: auto; display: block; }
  .pz-gal-item:not(.pz-gal-big) { grid-column: auto; }
  .pz-gal-big .img-frame { aspect-ratio: 3 / 4; flex: none; }
}
@media (max-width: 640px) {
  .pz-spread { padding-bottom: 84px; }
  .pz-spread-grid { padding-top: 48px; column-gap: 0; }
  .pz-spread-media { grid-column: 1 / -1; margin-top: 44px; }
  .pz-services { padding: 80px 0 90px; }
  .pz-services-note { margin-bottom: 40px; }
  .pz-svc-outro { margin-top: 48px; padding-left: 20px; font-size: 19px; }
  .pz-svc-grid { row-gap: 40px; }
  .pz-svc-1, .pz-svc-2, .pz-svc-3, .pz-svc-4 { grid-column: 1 / -1; }
  .pz-svc-img { aspect-ratio: 4 / 3; }
  .pz-svc-body { grid-template-columns: 44px 1fr; }
  .pz-gallery { padding: 80px 0 90px; }
  .pz-gallery .section-eyebrow { margin-bottom: 36px; }
  .pz-gal-grid { gap: 10px; }
  .pz-gal-big .img-frame { aspect-ratio: 3 / 4; }
  /* первый экран: подпись над заголовком не должна ломаться и упираться в шапку */
  .subpage-hero { min-height: 76vh; }
  .subpage-hero-inner { padding-bottom: 64px; }
  .subpage-hero .section-eyebrow { gap: 14px; margin-bottom: 28px; }
  .subpage-hero .eyebrow-rule { display: none; }
  .subpage-hero .eyebrow-text { letter-spacing: .2em; font-size: 11px; }
}

/* ===== ВИЗУАЛИЗАЦИИ УСЛУГ (generated) ===== */
.pz-svc-img.is-01 {
  background:
    url("../img/projects/prazdnik/svc-01-eskiz.webp") 68% center / cover no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120' fill='none' stroke='%23D8BC93' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14H110V106H10Z' opacity='.5'/%3E%3Cpath d='M24 64L60 34L96 64M30 58V92H90V58'/%3E%3Cpath d='M18 64L60 29L102 64' stroke-dasharray='3 4' opacity='.7'/%3E%3C/svg%3E") center 46% / 26% auto no-repeat,
    radial-gradient(ellipse 60% 40% at 50% 70%, rgba(255, 200, 120, .14), rgba(255, 200, 120, 0) 70%),
    linear-gradient(180deg, #0e160f 0%, #16241a 100%);
}
.pz-svc-img.is-02 {
  background:
    url("../img/projects/prazdnik/svc-02-fasad.webp") center / cover no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120' fill='none' stroke='%23D8BC93' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 64L60 34L96 64M30 58V92H90V58'/%3E%3Ccircle cx='24' cy='64' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='33' cy='57' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='42' cy='49' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='51' cy='42' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='60' cy='34' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='69' cy='42' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='78' cy='49' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='87' cy='57' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='96' cy='64' r='2.2' fill='%23D8BC93' stroke='none'/%3E%3Cpath d='M44 72H56V84H44ZM64 72H76V84H64Z' opacity='.6'/%3E%3C/svg%3E") center 46% / 26% auto no-repeat,
    radial-gradient(ellipse 60% 40% at 50% 70%, rgba(255, 200, 120, .14), rgba(255, 200, 120, 0) 70%),
    linear-gradient(180deg, #0e160f 0%, #16241a 100%);
}
.pz-svc-img.is-03 {
  background:
    url("../img/projects/prazdnik/svc-03-derevya.webp") center / cover no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120' fill='none' stroke='%23D8BC93' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M60 16L38 50H49L30 82H90L71 50H82Z'/%3E%3Cpath d='M60 82V100'/%3E%3Ccircle cx='60' cy='28' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='52' cy='44' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='68' cy='44' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='46' cy='64' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='60' cy='60' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='74' cy='64' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='40' cy='78' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='60' cy='74' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='80' cy='78' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3C/svg%3E") center 46% / 26% auto no-repeat,
    radial-gradient(ellipse 60% 40% at 50% 70%, rgba(255, 200, 120, .14), rgba(255, 200, 120, 0) 70%),
    linear-gradient(180deg, #0e160f 0%, #16241a 100%);
}
.pz-svc-img.is-04 {
  background:
    url("../img/projects/prazdnik/svc-04-vhod.webp") center / cover no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120' fill='none' stroke='%23D8BC93' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M44 42H76V102H44Z'/%3E%3Cpath d='M36 102V38Q60 14 84 38V102' opacity='.8'/%3E%3Ccircle cx='60' cy='66' r='9'/%3E%3Ccircle cx='44' cy='42' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='76' cy='42' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3Ccircle cx='60' cy='22' r='1.9' fill='%23D8BC93' stroke='none'/%3E%3C/svg%3E") center 46% / 26% auto no-repeat,
    radial-gradient(ellipse 60% 40% at 50% 70%, rgba(255, 200, 120, .14), rgba(255, 200, 120, 0) 70%),
    linear-gradient(180deg, #0e160f 0%, #16241a 100%);
}

/* широкий первый кадр галереи (запасной вариант без JS; в слайдшоу не используется) */
.pz-gal-grid .pz-gal-wide { grid-column: 1 / -1; grid-row: auto; display: block; }
.pz-gal-grid .pz-gal-wide .img-frame { aspect-ratio: 3 / 2; }

/* ===== Переносы строк: без висячих слов и «рваных» заголовков (только эта страница) ===== */
h1, h2, h3, .cta-title, .pz-lead { text-wrap: balance; }
p, li, figcaption, summary, .price-row span { text-wrap: pretty; }
.price-val { white-space: nowrap; }   /* «1 300–2 900 ₽ / пог.м» не рвём посередине */
