/*
 * Страница объекта (Houzez Studio → single-listing, templates/single-listing.json).
 * Макет: docs/preview/v2/property.html (.pp-*, .cp-stickycta). Цвета, радиусы, тени, длительности — токены --cp-* из style.css.
 * Отступы и служебные размеры страницы — локальные переменные --cp-pp-* ниже (одно место).
 * Телефон — первым: базовые правила для узкого экрана, расширение через min-width.
 */

body.single-property{
  --cp-pp-s1:4px; --cp-pp-s2:8px; --cp-pp-s3:12px; --cp-pp-s4:16px; --cp-pp-s5:24px; --cp-pp-s6:32px;
  --cp-pp-header:96px;       /* высота липкой шапки, от неё — отступ липкой колонки */
  --cp-pp-stk-h:64px;        /* высота нижней панели на телефоне */
  --cp-pp-tap:44px;          /* минимальная цель касания */
  --cp-pp-fs-sm:14px; --cp-pp-fs-base:16px;
}

/* ---------- 1. Раскладка: контент 2/3 + липкая колонка 1/3 (компьютер), одна колонка (телефон, планшет) ---------- */
body.single-property .cp-pp-cols{align-items:flex-start}
body.single-property .cp-pp-content,
body.single-property .cp-pp-aside{min-width:0}
@media (min-width:1025px){
  body.single-property .e-con.cp-pp-aside{
    --position:sticky;
    position:sticky!important;
    top:calc(var(--cp-pp-header) + var(--cp-pp-s4));
    align-self:flex-start;
  }
}

/* Секции контента — карточки на фоне страницы */
body.single-property .cp-pp-section .property-section-wrap{margin:0}
body.single-property .cp-pp-section .block-wrap{
  margin:0; padding:var(--cp-pp-s5) var(--cp-pp-s4);
  background:var(--cp-surface); border:1px solid var(--cp-line); border-radius:var(--cp-r-lg); box-shadow:none;
}
@media (min-width:768px){ body.single-property .cp-pp-section .block-wrap{padding:var(--cp-pp-s5)} }
body.single-property .cp-pp-section .block-title-wrap{margin:0 0 var(--cp-pp-s4); padding:0 0 var(--cp-pp-s3); border-bottom:1px solid var(--cp-line)}
body.single-property .cp-pp-section .block-title-wrap h2{margin:0; font:600 1.375rem/1.2 var(--cp-font-head); color:var(--cp-text)}
body.single-property .cp-pp-section,
body.single-property .cp-pp-section p,
body.single-property .cp-pp-section li{font-size:var(--cp-pp-fs-base)}

/* ---------- 2. Хлебные крошки и галерея (gallery-v5: крупное фото + сетка 2×2 миниатюр) ---------- */
body.single-property .cp-pp-crumbs .breadcrumb-wrap{margin:0; padding:0}
body.single-property .cp-pp-crumbs .breadcrumb{margin:0; padding:0; background:none; font-size:var(--cp-pp-fs-sm); color:var(--cp-muted)}
body.single-property .cp-pp-crumbs a{color:var(--cp-accent-text)}

body.single-property .cp-pp-gallery .hs-gallery-v5-grid-wrap{position:relative}
body.single-property .cp-pp-gallery .hs-gallery-v5-grid{gap:var(--cp-pp-s2)}
body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item{gap:var(--cp-pp-s2); min-height:0}
body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item a{display:block; height:100%; min-height:0; border-radius:var(--cp-r-md); overflow:hidden; background:var(--cp-surface-2)}
body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item .img-fluid{
  border-radius:0; transition:transform var(--cp-dur-slow) var(--cp-ease);
}
body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-01 a{aspect-ratio:4/3}
/* Телефон: крупное фото и полоса из 4 миниатюр (в Houzez миниатюры на телефоне скрыты) */
@media (max-width:767px){
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-02{display:grid; grid-template-columns:repeat(4,minmax(0,1fr))}
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-02 a{aspect-ratio:1/1; min-height:var(--cp-pp-tap)}
  body.single-property .cp-pp-gallery .img-wrap-3-text.d-md-none{display:none!important}
}
@media (min-width:768px){
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid{aspect-ratio:2/1}
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-01 a{aspect-ratio:auto}
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-02{grid-template-rows:repeat(2,minmax(0,1fr))}
  body.single-property .cp-pp-gallery .img-wrap-3-text.d-md-none{display:none!important}
  /* Меньше пяти фото: оставшиеся миниатюры занимают всю правую часть, без пустых клеток */
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-02>a:only-child{grid-column:1/-1; grid-row:1/-1}
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-02>a:first-child:nth-last-child(2),
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-02>a:first-child:nth-last-child(2)~a,
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-02>a:first-child:nth-last-child(3){grid-column:1/-1}
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item-01:last-child{grid-column:1/-1}
}
@media (hover:hover){
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item a:hover .img-fluid{transform:scale(1.04)}
}
body.single-property .cp-pp-gallery .img-wrap-3-text{
  position:absolute; right:var(--cp-pp-s3); bottom:var(--cp-pp-s3); z-index:3; pointer-events:none;
  padding:var(--cp-pp-s1) var(--cp-pp-s3); border-radius:var(--cp-r-pill);
  background:var(--cp-night); color:var(--cp-on-night); font:600 var(--cp-pp-fs-sm)/1.4 var(--cp-font-text);
}

/* ---------- 3. Заголовок: метки, статус, название, адрес ---------- */
body.single-property .cp-pp-head .ele-labels-wrap{display:flex; flex-wrap:wrap; gap:var(--cp-pp-s1)}
body.single-property .cp-pp-head .label,
body.single-property .cp-pp-head .label-status{
  display:inline-flex; align-items:center; min-height:30px; padding:0 var(--cp-pp-s3); margin:0;
  border-radius:var(--cp-r-sm); font:600 var(--cp-pp-fs-sm)/1 var(--cp-font-text); letter-spacing:.02em;
}
body.single-property .cp-pp-head .label-status{background:var(--cp-accent-soft); color:var(--cp-accent-text)}
body.single-property .cp-pp-title .page-title,
body.single-property .cp-pp-title h1{margin:0; font:700 1.75rem/1.15 var(--cp-font-head); color:var(--cp-text)}
@media (min-width:768px){
  body.single-property .cp-pp-title .page-title,
  body.single-property .cp-pp-title h1{font-size:2.25rem}
}
body.single-property .cp-pp-address .item-address{margin:0; font-style:normal; font-size:var(--cp-pp-fs-base); color:var(--cp-muted)}
body.single-property .cp-pp-address .icon-pin{color:var(--cp-accent-text)}

/* ---------- 4. ID-табличка «номерной знак» (из houzez-property-overview: видна только строка Property ID) ---------- */
body.single-property .cp-pp-idsrc .property-section-wrap,
body.single-property .cp-pp-idsrc .block-wrap{margin:0; padding:0; background:none; border:0; box-shadow:none}
body.single-property .cp-pp-idsrc .block-title-wrap{margin:0; padding:0; border:0; display:flex!important}
body.single-property .cp-pp-idsrc .block-title-wrap h2,
body.single-property .cp-pp-idsrc .property-overview-data{display:none!important}
body.single-property .cp-pp-idsrc .block-title-wrap>div{
  position:relative; display:inline-flex; align-items:center; gap:var(--cp-pp-s2);
  min-height:36px; padding:0 var(--cp-pp-s3) 0 var(--cp-pp-s2); border-radius:5px;
  background:var(--cp-night); color:var(--cp-on-night);
  border:1px solid rgba(240,242,248,.18); box-shadow:var(--cp-shadow-1);
  font:600 var(--cp-pp-fs-base)/1 var(--cp-font-head); letter-spacing:.08em; white-space:nowrap; cursor:copy;
}
body.single-property .cp-pp-idsrc .block-title-wrap>div::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--cp-gold); flex:none}
body.single-property .cp-pp-idsrc .block-title-wrap>div strong{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
body.single-property .cp-pp-idsrc .block-title-wrap>div:focus-visible{outline:2px solid var(--cp-gold); outline-offset:2px}
/* Кнопка «Скопировать» и подсказка (js/single-listing.js) */
body.single-property .cp-pp-copy{
  display:inline-flex; align-items:center; gap:var(--cp-pp-s1); min-height:var(--cp-pp-tap); padding:0 var(--cp-pp-s3); margin-left:var(--cp-pp-s2);
  border:1px solid transparent; border-radius:var(--cp-r-sm); background:none; color:var(--cp-accent-text);
  font:500 var(--cp-pp-fs-sm)/1 var(--cp-font-text); cursor:pointer;
  transition:background-color var(--cp-dur-fast) var(--cp-ease),transform var(--cp-dur-fast) var(--cp-ease);
}
body.single-property .cp-pp-copy:hover{background:var(--cp-accent-soft)}
body.single-property .cp-pp-copy:active{transform:translateY(1px)}
body.single-property .cp-pp-idbox{position:relative; display:inline-flex; align-items:center; flex-wrap:wrap}
body.single-property .cp-pp-copied{
  position:absolute; left:0; top:calc(100% + var(--cp-pp-s1)); z-index:5; padding:var(--cp-pp-s1) var(--cp-pp-s2);
  border-radius:var(--cp-r-sm); background:var(--cp-text); color:var(--cp-surface); font:500 var(--cp-pp-fs-sm)/1.3 var(--cp-font-text);
  opacity:0; transform:translateY(4px); pointer-events:none;
  transition:opacity var(--cp-dur-base) var(--cp-ease),transform var(--cp-dur-base) var(--cp-ease);
}
body.single-property .cp-pp-copied.is-on{opacity:1; transform:none}

/* ---------- 5. Инструменты: избранное, сравнение, поделиться, печать ---------- */
body.single-property .cp-pp-tools .ele-item-tools{gap:var(--cp-pp-s2)!important}
body.single-property .cp-pp-tools .item-tool>span,
body.single-property .cp-pp-tools .cp-compare{
  display:inline-flex; align-items:center; justify-content:center; width:var(--cp-pp-tap); height:var(--cp-pp-tap);
  border:1px solid var(--cp-line-strong); border-radius:var(--cp-r-sm); background:var(--cp-surface); color:var(--cp-text); cursor:pointer;
  transition:background-color var(--cp-dur-fast) var(--cp-ease),border-color var(--cp-dur-fast) var(--cp-ease),transform var(--cp-dur-fast) var(--cp-ease);
}
body.single-property .cp-pp-tools .item-tool>span:hover,
body.single-property .cp-pp-tools .cp-compare:hover{background:var(--cp-surface-2)}
body.single-property .cp-pp-tools .item-tool>span:active,
body.single-property .cp-pp-tools .cp-compare:active{transform:translateY(1px)}
body.single-property .cp-pp-tools .cp-compare[aria-pressed="true"]{background:var(--cp-accent-soft); border-color:var(--cp-accent); color:var(--cp-accent-text)}
body.single-property .cp-pp-tools .text-danger{color:var(--cp-warm)!important}

/* ---------- 6. Цена (Jost 700) ---------- */
body.single-property .cp-pp-price .hz-ele-price,
body.single-property .cp-stickycta__price .hz-ele-price{margin:0; padding:0; text-align:left}
body.single-property .cp-pp-price .item-price{
  margin:0 0 var(--cp-pp-s1)!important; font:700 2rem/1.05 var(--cp-font-head); color:var(--cp-text);
  font-variant-numeric:tabular-nums;
}
body.single-property .cp-pp-price .item-sub-price{
  padding-top:var(--cp-pp-s2); margin-top:var(--cp-pp-s2); border-top:1px solid var(--cp-line);
  font:700 1.125rem/1.3 var(--cp-font-head); color:var(--cp-accent-text);
}
body.single-property .cp-pp-price .price-postfix,
body.single-property .cp-pp-price .price-prefix{font:400 var(--cp-pp-fs-sm)/1.3 var(--cp-font-text); color:var(--cp-muted)}
/* Карточка цены на телефоне и планшете */
body.single-property .e-con.cp-pp-pricecard--m{
  padding:var(--cp-pp-s4); border-radius:var(--cp-r-lg); background:var(--cp-surface); border:1px solid var(--cp-line);
}

/* ---------- 7. Карточка связи (правая колонка) ---------- */
body.single-property .e-con.cp-pp-aside{
  background:var(--cp-surface); border:1px solid var(--cp-line); border-radius:var(--cp-r-lg); box-shadow:var(--cp-shadow-1);
}
body.single-property .cp-pp-btnrow>.elementor-element{flex:1 1 0; min-width:0}
body.single-property .cp-pp-btn .elementor-button-wrapper{display:block}
body.single-property .cp-pp-btn .elementor-button,
body.single-property .cp-stickycta__btn .elementor-button{
  display:flex; align-items:center; justify-content:center; gap:var(--cp-pp-s2); width:100%;
  min-height:48px; padding:0 var(--cp-pp-s4); border:1px solid transparent; border-radius:var(--cp-r-sm);
  background:var(--cp-accent); color:var(--cp-on-accent); fill:var(--cp-on-accent);
  font:600 var(--cp-pp-fs-base)/1.2 var(--cp-font-text); text-decoration:none; white-space:nowrap;
  transition:background-color var(--cp-dur-fast) var(--cp-ease),border-color var(--cp-dur-fast) var(--cp-ease),transform var(--cp-dur-fast) var(--cp-ease);
}
body.single-property .cp-pp-btn .elementor-button:hover,
body.single-property .cp-stickycta__btn .elementor-button:hover{background:var(--cp-accent-hover); color:var(--cp-on-accent)}
body.single-property .cp-pp-btn .elementor-button:active,
body.single-property .cp-stickycta__btn .elementor-button:active{transform:translateY(1px)}
body.single-property .cp-pp-btn--secondary .elementor-button,
body.single-property .cp-stickycta__btn--secondary .elementor-button{
  background:var(--cp-surface); color:var(--cp-text); fill:var(--cp-text); border-color:var(--cp-line-strong);
}
body.single-property .cp-pp-btn--secondary .elementor-button:hover,
body.single-property .cp-stickycta__btn--secondary .elementor-button:hover{background:var(--cp-surface-2); color:var(--cp-text)}
body.single-property .cp-pp-btn .elementor-button-icon,
body.single-property .cp-stickycta__btn .elementor-button-icon{display:inline-flex; margin:0}

body.single-property .cp-pp-formtitle .elementor-heading-title{
  margin:var(--cp-pp-s2) 0 0; padding-top:var(--cp-pp-s4); border-top:1px solid var(--cp-line);
  font:600 1.125rem/1.3 var(--cp-font-head); color:var(--cp-text);
}
/* Форма Houzez (agent-form): без карточки агента и дублей кнопок «Позвонить»/WhatsApp */
body.single-property .cp-pp-form .property-form-wrap,
body.single-property .cp-pp-form .property-form{margin:0; padding:0; background:none; border:0; box-shadow:none}
body.single-property .cp-pp-form .agent-details,
body.single-property .cp-pp-form .hz-btn-call,
body.single-property .cp-pp-form .hz-btn-whatsapp{display:none!important}
body.single-property .cp-pp-form .form-group{margin-bottom:var(--cp-pp-s2)!important}
body.single-property .cp-pp-form .form-control{min-height:var(--cp-pp-tap); font-size:var(--cp-pp-fs-base)}
body.single-property .cp-pp-form textarea.form-control{min-height:96px}
body.single-property .cp-pp-form .houzez_agent_property_form{min-height:48px; font-size:var(--cp-pp-fs-base)}
body.single-property .cp-pp-form .gdpr-text-wrap{font-size:var(--cp-pp-fs-sm); color:var(--cp-muted)}
body.single-property .cp-pp-hours p{margin:0; text-align:center; font-size:var(--cp-pp-fs-sm); color:var(--cp-muted)}

/* ---------- 8. Обзор (overview-v2): только факты, без мини-карты — карта ниже, в «Расположении» ---------- */
body.single-property .cp-pp-overview #houzez-overview-listing-map{display:none!important}
body.single-property .cp-pp-overview .property-overview-wrap-v2 .row>.col-md-4{display:none}
body.single-property .cp-pp-overview .property-overview-wrap-v2 .row>.col-md-8{flex:0 0 100%; max-width:100%; width:100%}
body.single-property .cp-pp-overview .property-overview-data{row-gap:var(--cp-pp-s4)}
body.single-property .cp-pp-overview .property-overview-item i{font-size:22px; color:var(--cp-accent-text)}
body.single-property .cp-pp-overview .property-overview-description strong{font:600 var(--cp-pp-fs-base)/1.3 var(--cp-font-head); color:var(--cp-text)}
body.single-property .cp-pp-overview .hz-meta-label{font-size:var(--cp-pp-fs-sm); color:var(--cp-muted)}

/* Детали, адрес, особенности */
body.single-property .cp-pp-section .list-lined-item{font-size:var(--cp-pp-fs-base); border-color:var(--cp-line)!important}
body.single-property .cp-pp-section .list-lined-item strong{font-weight:500; color:var(--cp-muted)}
body.single-property .cp-pp-section .list-lined-item span{color:var(--cp-text); text-align:right}
body.single-property .cp-pp-features i{color:var(--cp-success)}
body.single-property .cp-pp-desc .houzez-read-more-link{display:inline-flex; align-items:center; min-height:var(--cp-pp-tap); font-weight:600}
body.single-property .cp-pp-map .houzez-elementor-map-wrap{border-radius:var(--cp-r-lg); overflow:hidden; border:1px solid var(--cp-line)}

/* ---------- 9. Похожие объекты ---------- */
body.single-property .cp-pp-similar .block-title-wrap{margin-bottom:var(--cp-pp-s4); border:0}
body.single-property .cp-pp-similar .block-title-wrap h2{font:600 1.5rem/1.2 var(--cp-font-head); color:var(--cp-text)}

/* ---------- 10. Липкая нижняя панель (телефон ≤ 767 px); на компьютере и планшете скрыта ---------- */
body.single-property .e-con.cp-stickycta{display:none!important}
body.single-property .cp-mobilebar{display:none!important}
body.single-property .mobile-property-contact{display:none!important}   /* штатная панель Houzez — заменена нашей */
@media (max-width:767px){
  body.single-property .e-con.cp-stickycta{
    --position:fixed;
    display:flex!important; position:fixed!important; left:0; right:0; bottom:0; z-index:72;
    flex-direction:row; align-items:center; gap:var(--cp-pp-s2);
    width:100%; max-width:none; margin:0;
    padding:var(--cp-pp-s2) var(--cp-pp-s4) calc(var(--cp-pp-s2) + env(safe-area-inset-bottom));
    background:var(--cp-surface); border-top:1px solid var(--cp-line); box-shadow:var(--cp-shadow-2);
  }
  body.single-property .cp-stickycta>.e-con-inner{display:contents}
  body.single-property .cp-stickycta__price{flex:1 1 auto; min-width:0; margin-right:auto}
  body.single-property .cp-stickycta__price .item-price{margin:0!important; font:700 1.125rem/1.1 var(--cp-font-head); color:var(--cp-text); white-space:nowrap}
  body.single-property .cp-stickycta__price .item-sub-price{display:none}
  body.single-property .cp-stickycta__price .price-postfix{font:400 var(--cp-pp-fs-sm)/1.2 var(--cp-font-text); color:var(--cp-muted)}
  body.single-property .cp-stickycta__btn{flex:0 0 auto; width:auto!important}
  body.single-property .cp-stickycta__btn .elementor-button{min-height:var(--cp-pp-tap); padding:0 var(--cp-pp-s3); font-size:15px}
  body.single-property{padding-bottom:calc(var(--cp-pp-stk-h) + env(safe-area-inset-bottom))}
  body.single-property .back-to-top-wrap{bottom:calc(var(--cp-pp-stk-h) + var(--cp-pp-s3) + env(safe-area-inset-bottom))}
}

/* ---------- 11. Штатные блоки Houzez, которых нет в макете (если появятся из настроек темы) ---------- */
body.single-property .htb-single-listing .property-mortgage-calculator-wrap,
body.single-property .htb-single-listing .property-walkscore-wrap,
body.single-property .htb-single-listing .property-energy-class-wrap,
body.single-property .htb-single-listing .property-review-wrap,
body.single-property .htb-single-listing .property-availability-calendar-wrap{display:none!important}

/* ---------- 12. Появление секций при прокрутке: только opacity/transform, 400 мс (класс ставит js/single-listing.js) ---------- */
body.single-property .cp-pp-reveal{
  opacity:0; transform:translateY(12px);
  transition:opacity var(--cp-dur-slow) var(--cp-ease),transform var(--cp-dur-slow) var(--cp-ease);
}
body.single-property .cp-pp-reveal.is-visible{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
  body.single-property .cp-pp-reveal{opacity:1; transform:none; transition:none}
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item .img-fluid{transition:none}
  body.single-property .cp-pp-gallery .hs-gallery-v5-grid-item a:hover .img-fluid{transform:none}
  body.single-property .cp-pp-copied{transition:none}
}

/* ---------- 13. Печать: без панелей, форм и кнопок ---------- */
@media print{
  body.single-property .cp-stickycta,
  body.single-property .cp-pp-btns,
  body.single-property .cp-pp-form,
  body.single-property .cp-pp-formtitle,
  body.single-property .cp-pp-tools,
  body.single-property .cp-pp-copy,
  body.single-property .cp-pp-similar{display:none!important}
  body.single-property{padding-bottom:0}
  body.single-property .cp-pp-reveal{opacity:1; transform:none}
}
