/* =========================================================================
   Central Property — страницы ЖК (этап 3): хаб /zhk/ и страницы комплексов /zhk/<slug>/.
   Макет: docs/preview/v2/complex.html (блоки 1–8), данные — tools/pages/zhk*.json (контейнеры Elementor + html/shortcode-виджеты).
   Зависимости: style.css (токены), css/cards.css (--cp-s1…s5, --cp-fs-*, --cp-tap, .cp-badge, .cp-card),
   css/sections.css (.cp-section, .cp-page-hero, .cp-grid, .cp-chips, .cp-stat(s), .cp-btn, .cp-cta, .cp-ccard, .cp-reveal),
   css/header-footer.css (--cp-header-h, --cp-header-h-m, --cp-night-line, --cp-z-header).
   Все величины — токены --cp-*; локальные переменные файла — с префиксом --cp-zhk-. Mobile-first: база 375 px.
   Движение — только transform/opacity (reveal из sections.css); prefers-reduced-motion выключает остатки.
   ========================================================================= */

:root{
  --cp-zhk-z-anchors:calc(var(--cp-z-header) - 5);  /* якорная панель — под шапкой, над содержимым */
  --cp-zhk-anchors-h:calc(var(--cp-tap) + var(--cp-s4));
  --cp-zhk-card-max:420px;                            /* ширина карточки квартиры в шапочном блоке */
  --cp-zhk-ring:3px;                                  /* кольцо фокуса поля «Как связаться» (как --cp-about-ring в about.css) */
}

/* ---------- 0. Общее для секций страниц ЖК ---------- */
/* Виджеты Elementor внутри секций — без штатного нижнего отступа: расстояния задают .cp-section__head/__note/__foot */
.cp-zhk-sec .elementor-widget:not(:last-child),.cp-zhk-hero .elementor-widget:not(:last-child){margin-block-end:0}
/* Якорные переходы — с учётом липкой шапки и панели разделов */
.cp-zhk-sec{scroll-margin-top:calc(var(--cp-header-h) + var(--cp-zhk-anchors-h) + var(--cp-s3))}
.cp-section__note a,.cp-zhk-plans__lead a{color:var(--cp-accent-text)}

/* ---------- 1. Шапочный блок ЖК ---------- */
/* Фон — фото объекта ЖК через [gallery] (wp_get_attachment_image по ID вложения): сбрасываем сетку галереи, растягиваем на блок; затемнение даёт .cp-page-hero__bg::after из sections.css */
.e-con > .elementor-widget.cp-zhk-hero__bg{position:absolute;inset:0;z-index:-1;margin:0;width:100%;pointer-events:none}
.cp-zhk-hero__bg .elementor-widget-container,.cp-zhk-hero__bg .elementor-shortcode,.cp-zhk-hero__bg .gallery,.cp-zhk-hero__bg .gallery-item,.cp-zhk-hero__bg .gallery-icon{height:100%;margin:0;padding:0}
.cp-zhk-hero__bg .gallery{display:block}
.cp-zhk-hero__bg .gallery-item{float:none;width:100%;text-align:left}
.cp-zhk-hero__bg img{display:block;width:100%;height:100%;border:0;object-fit:cover;object-position:center} /* прозрачность и luminosity — .cp-page-hero__bg img (sections.css) */
.cp-zhk-hero__bg br{display:none}

.cp-zhk-hero__badges{display:flex;flex-wrap:wrap;gap:var(--cp-s2);margin-bottom:var(--cp-s3)}
.cp-zhk-hero__main .cp-page-hero__eyebrow{margin:0 0 var(--cp-s2)}
/* Три ключевые цифры в ряд уже на телефоне (макет .cx-key) */
.cp-zhk-hero__stats.cp-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--cp-s2)}
.cp-zhk-hero__stats .cp-stat{padding:var(--cp-s3)}
.cp-zhk-hero__stats .cp-stat b{font-size:var(--cp-fs-h4);line-height:1.15;overflow-wrap:anywhere}
.cp-zhk-hero__stats .cp-stat span{font-size:var(--cp-fs-xs)}
@media (max-width:359.98px){.cp-zhk-hero__stats.cp-stats{grid-template-columns:minmax(0,1fr)}}
/* Правая колонка: карточка квартиры ЖК (cp-card) или панель «квартир пока нет» */
.cp-zhk-hero__aside{align-self:center}
.cp-zhk-hero__card .cp-objects{max-width:var(--cp-zhk-card-max);margin-inline:auto}
.cp-zhk-hero__cap{margin:var(--cp-s3) auto 0;max-width:var(--cp-zhk-card-max);font-size:var(--cp-fs-xs);line-height:1.4;color:var(--cp-on-night-muted)}
.cp-zhk-hero__panel{display:flex;flex-direction:column;gap:var(--cp-s3);align-items:flex-start;padding:var(--cp-s5);border:1px solid var(--cp-night-line);border-radius:var(--cp-r-lg);background:color-mix(in srgb,var(--cp-on-night) 6%,transparent)}
.cp-zhk-hero__panel .cp-eyebrow{margin:0}
.cp-zhk-hero__panel-title{margin:0;font-family:var(--cp-font-head);font-size:var(--cp-fs-h3);font-weight:600;line-height:1.2;color:var(--cp-on-night)}
.cp-zhk-hero__panel p{margin:0;font-size:var(--cp-fs-sm);line-height:1.5;color:var(--cp-on-night-muted)}
.cp-zhk-hero .cp-page-hero__credit{position:static;margin:var(--cp-s3) 0 0;text-align:right}
@media (min-width:768px){
  .cp-zhk-hero__stats.cp-stats{gap:var(--cp-s3)}
  .cp-zhk-hero__stats .cp-stat b{font-size:var(--cp-fs-h3)}
  .cp-zhk-hero__stats .cp-stat span{font-size:var(--cp-fs-sm)}
}
@media (min-width:1025px){.cp-zhk-hero .cp-page-hero__credit{position:absolute}}

/* ---------- 2. Якорная панель разделов (липкая под шапкой) ---------- */
.e-con.cp-zhk-anchors{--position:sticky;position:sticky!important;top:var(--cp-header-h);z-index:var(--cp-zhk-z-anchors);--padding-top:var(--cp-s2);--padding-bottom:var(--cp-s2);--padding-left:var(--cp-gutter);--padding-right:var(--cp-gutter);background:color-mix(in srgb,var(--cp-surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--cp-line)}
.cp-zhk-anchors .elementor-widget{margin-block-end:0}
.cp-zhk-anchors .cp-chips{margin:0}
.cp-zhk-anchors .cp-chip{min-height:var(--cp-tap)}
@media (max-width:767.98px){.e-con.cp-zhk-anchors{top:var(--cp-header-h-m)}}

/* ---------- 3. Ключевые факты dl ---------- */
.cp-zhk-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cp-s3);margin:0}
.cp-zhk-facts > div{padding:var(--cp-s4);border:1px solid var(--cp-line);border-radius:var(--cp-r-md);background:var(--cp-surface)}
.cp-zhk-facts dt{margin:0 0 var(--cp-s1);font-size:var(--cp-fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--cp-muted)}
.cp-zhk-facts dd{margin:0;font-family:var(--cp-font-head);font-size:var(--cp-fs-h4);font-weight:600;line-height:1.25;color:var(--cp-text);font-variant-numeric:tabular-nums}
.cp-zhk-facts dd small{display:block;margin-top:var(--cp-s1);font-family:var(--cp-font-text);font-size:var(--cp-fs-xs);font-weight:400;line-height:1.4;color:var(--cp-faint)}
@media (min-width:600px){.cp-zhk-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--cp-s4)}}
@media (max-width:359.98px){.cp-zhk-facts{grid-template-columns:minmax(0,1fr)}}

/* ---------- 4. Планировки «от» ---------- */
.cp-zhk-plans__lead{margin:0 0 var(--cp-s5);max-width:70ch}
.cp-zhk-plan{display:flex;flex-direction:column;gap:var(--cp-s3);height:100%;padding:var(--cp-s5);border:1px solid var(--cp-line);border-radius:var(--cp-r-md);background:var(--cp-surface);box-shadow:var(--cp-shadow-1)}
.cp-zhk-plan__head{display:flex;align-items:center;justify-content:space-between;gap:var(--cp-s2)}
.cp-zhk-plan__rooms{font-family:var(--cp-font-head);font-size:var(--cp-fs-h3);font-weight:600;line-height:1.1;color:var(--cp-text)}
.cp-zhk-plan__price{margin:0;font-size:var(--cp-fs-sm);line-height:1.45;color:var(--cp-muted)}
.cp-zhk-plan__acts{display:flex;flex-wrap:wrap;gap:var(--cp-s2);margin-top:auto}

/* ---------- 5. Ход строительства — заметка без выдуманных дат ---------- */
.cp-zhk-note{display:flex;flex-direction:column;gap:var(--cp-s3);align-items:flex-start;max-width:72ch;padding:var(--cp-s5);border:1px solid var(--cp-line);border-left:3px solid var(--cp-accent);border-radius:var(--cp-r-md);background:var(--cp-surface);box-shadow:var(--cp-shadow-1)}
.cp-zhk-note h3{margin:0;font-family:var(--cp-font-head);font-size:var(--cp-fs-h3);font-weight:600;line-height:1.2;color:var(--cp-text)}
.cp-zhk-note p{margin:0;line-height:1.55;color:var(--cp-muted)}

/* ---------- 6. Карта и расположение ---------- */
.cp-zhk-place__map .elementor-widget{margin-block-end:0}
.cp-zhk-map .houzez-elementor-map-wrap{position:relative}
.cp-zhk-map .h-properties-map-for-elementor{border-radius:var(--cp-r-md);overflow:hidden;border:1px solid var(--cp-line);background:var(--cp-surface-2)}
.cp-zhk-place__text .cp-lead{margin:0 0 var(--cp-s3)}
.cp-zhk-place__hint{margin:0 0 var(--cp-s4);font-size:var(--cp-fs-sm);line-height:1.5;color:var(--cp-muted)}
.cp-zhk-place__district.cp-districts{margin-bottom:var(--cp-s4)}
.cp-zhk-place__actions{display:flex;flex-wrap:wrap;gap:var(--cp-s3)}

/* ---------- 7. Вопрос о ЖК: текст + форма Houzez в карточке ---------- */
.cp-zhk-ask__text .cp-eyebrow{margin:0 0 var(--cp-s2)}
.cp-zhk-ask__text .cp-lead{margin:var(--cp-s3) 0 0}
.e-con.cp-zhk-ask__box{--padding-top:var(--cp-s5);--padding-bottom:var(--cp-s5);--padding-left:var(--cp-s5);--padding-right:var(--cp-s5)}
.cp-zhk-ask__title{margin:0 0 var(--cp-s4);font-family:var(--cp-font-head);font-size:var(--cp-fs-h4);font-weight:600;color:var(--cp-text)}
/* Поля, подписи, textarea, кнопка button.houzez-submit-button и сообщения — общие правила .cp-form (css/about.css): виджету формы в zhk-*.json задан класс «cp-form cp-zhk-form».
   Здесь — только поле «Как связаться»: Houzez выводит <select class="form-control"> внутри обёртки .elementor-field.elementor-select-wrapper; рамку оставляем одну — у самого select. */
.cp-zhk-form .elementor-select-wrapper{padding:0;border:0;background:transparent;box-shadow:none}
.cp-zhk-form .elementor-select-wrapper select{width:100%;min-height:var(--cp-s7);margin:0;padding:0 var(--cp-s4);border:1px solid var(--cp-line-strong);border-radius:var(--cp-r-sm);background-color:var(--cp-surface);color:var(--cp-text);font:400 var(--cp-fs-base)/1.4 var(--cp-font-text);box-shadow:none}
.cp-zhk-form .elementor-select-wrapper select:focus{outline:0;border-color:var(--cp-accent);box-shadow:0 0 0 var(--cp-zhk-ring) var(--cp-accent-soft)}
@media (min-width:768px){.e-con.cp-zhk-ask__box{--padding-top:var(--cp-s6);--padding-bottom:var(--cp-s6);--padding-left:var(--cp-s6);--padding-right:var(--cp-s6)}}

/* ---------- 8. Хаб /zhk/: «почему через агентство», CTA ---------- */
.cp-zhk-why__item{display:flex;flex-direction:column;gap:var(--cp-s2);height:100%;padding:var(--cp-s5);border:1px solid var(--cp-line);border-top:3px solid var(--cp-gold);border-radius:var(--cp-r-md);background:var(--cp-surface);box-shadow:var(--cp-shadow-1)}
.cp-zhk-why__item h3{margin:0;font-family:var(--cp-font-text);font-size:var(--cp-fs-h4);font-weight:600;line-height:1.3;color:var(--cp-text)}
.cp-zhk-why__item p{margin:0;font-size:var(--cp-fs-sm);line-height:1.5;color:var(--cp-muted)}
.cp-zhk-cta__title{margin:0 0 var(--cp-s3);font-family:var(--cp-font-head);font-size:var(--cp-fs-h4);font-weight:600;color:var(--cp-on-night)}
.cp-zhk-cta__alt{margin:var(--cp-s4) 0 0;font-size:var(--cp-fs-sm);color:var(--cp-on-night-muted)}
.cp-section--night .cp-cta__actions .cp-btn--secondary{background:transparent;color:var(--cp-on-night);border-color:color-mix(in srgb,var(--cp-on-night) 50%,transparent)}
.cp-section--night .cp-cta__actions .cp-btn--secondary:hover,.cp-section--night .cp-cta__actions .cp-btn--secondary:focus-visible{background:color-mix(in srgb,var(--cp-on-night) 10%,transparent);color:var(--cp-on-night)}
.cp-section--night .cp-cta__actions .cp-btn--outline-light{color:var(--cp-on-night)}

/* ---------- 9. Без движения по просьбе системы ---------- */
@media (prefers-reduced-motion:reduce){
  .e-con.cp-zhk-anchors{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--cp-surface)}
}
