/* 2026-10-13: Публичные карты вписаны в существующий hero, карточку квартиры и форму бронирования. */
/* 2026-10-13: Рамка карты повторяет мягкую рамку панели дат; подписи находятся внутри общего блока под картой. */
.site-map-shell { min-width:0; width:100%; padding:6px; border:1px solid #d4e1d9; border-radius:18px; background:#f5f9f6; box-shadow:0 10px 28px rgba(22,82,62,.1); box-sizing:border-box; }
.site-map-shell .property-map { position:relative; width:100%; height:340px; min-height:0; overflow:hidden; border:0; border-radius:13px; background:#e8f1ec; box-sizing:border-box; }
.site-map-shell .property-map-attribution { flex:none; }
.site-map-shell [data-map-status] { margin:8px 2px 0; font:400 12px/1.4 Arial,sans-serif; color:#527466; }
.site-map-shell [hidden] { display:none!important; }
.site-hero-map-slot { display:none; }
/* 2026-10-14: Два состояния hero имеют одну высоту; переключаются прозрачностью без сдвига страницы. */
.container_hero_window { overflow-anchor:none; }
.site-hero-switcher { position:relative; width:100%; height:var(--hero-view-height,560px); flex:none; }
.site-hero-text-view { display:flex; flex-direction:column; min-width:0; opacity:1; visibility:visible; transition:opacity .3s ease,visibility 0s; }
.site-hero-text-view>* { flex:none; }
.site-hero-switcher .hero_form { position:absolute; top:var(--hero-text-form-top,0px); left:0; right:0; display:flow-root; z-index:2; transition:top .35s ease; }
.site-inline-map-slot { position:absolute; top:var(--hero-map-top,160px); left:0; right:0; bottom:0; width:100%; overflow:hidden; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s ease,visibility 0s .3s; }
.site-inline-map-slot .site-map-shell { height:100%; display:flex; flex-direction:column; }
.site-inline-map-slot .property-map { height:auto; min-height:0; flex:1; }
.hero_content--stay-search.has-inline-map .site-hero-text-view { opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s ease,visibility 0s .3s; }
.hero_content--stay-search.has-inline-map .site-hero-switcher .hero_form { top:0; }
.hero_content--stay-search.has-inline-map .site-inline-map-slot { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .3s ease,visibility 0s; }
@media(min-width:1400px) {
  .site-hero-switcher { display:flex; flex-direction:column; height:auto; }
  .site-hero-text-view { display:contents; }
  .site-hero-form-spacer { display:none; }
  .site-hero-switcher .hero_title { order:0; }
  .site-hero-switcher .hero_form { position:static; order:1; transition:none; }
  .site-hero-switcher .hero_features { order:2; }
  .site-inline-map-slot { display:none; }
  .container_hero_window { position:relative; --site-hero-gap:clamp(24px,2.22vw,40px); padding-left:var(--site-hero-gap); padding-right:var(--site-hero-gap); }
  .hero_content--stay-search { box-sizing:border-box; width:54%; max-width:54%; }
  .site-hero-map-slot { display:block; position:absolute; right:var(--site-hero-gap); width:auto; min-height:0; }
  .site-hero-map-slot .site-map-shell { height:100%; display:flex; flex-direction:column; }
  .site-hero-map-slot .property-map { height:auto; flex:1; min-height:340px; }
}
.map-placeholder .site-map-shell { margin-top:14px; }
.map-placeholder .property-map { height:260px; }
.map-placeholder { padding:18px!important; }
.site-map-toast { position:fixed; left:50%; bottom:25px; transform:translate(-50%,12px); width:max-content; max-width:calc(100vw - 30px); box-sizing:border-box; padding:13px 20px; border-radius:12px; color:#fff; background:#176c53; box-shadow:0 8px 25px #174b3433; font:400 15px/1.4 Arial,sans-serif; opacity:0; pointer-events:none; z-index:2147483000; transition:opacity .2s ease,transform .2s ease; }
.site-map-toast.is-visible { opacity:1; transform:translate(-50%,0); }
.site-booking-views { display:grid; }
.site-booking-form-view,.site-booking-map-view { grid-area:1/1; min-width:0; transition:opacity .25s ease,transform .25s ease; }
.site-booking-form-view { display:flex; flex-direction:column; gap:18px; }
.site-booking-form-view[hidden],.site-booking-map-view[hidden] { display:none!important; }
.site-booking-map-view { opacity:0; transform:translateY(12px); display:flex; flex-direction:column; }
.site-booking-dialog.is-map-mode .site-booking-map-view { opacity:1; transform:none; }
.site-booking-dialog.is-map-mode .site-booking-form-view { opacity:0; transform:translateY(-10px); pointer-events:none; }
/* 2026-10-13: Шапка формы имеет одну строку сетки, фото и кнопку карты в правой колонке. */
.site-booking-topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-right:38px; margin:0; }
.site-booking-topbar .site-booking-eyebrow { font:700 12px/1.3 Arial,sans-serif; letter-spacing:1px; }
.site-booking-dialog .site-booking-heading { display:grid; grid-template-columns:minmax(0,1fr) 104px; grid-template-rows:auto; gap:16px; padding:0; align-items:start; margin:0; }
.site-booking-dialog .site-booking-heading>.site-booking-summary { display:flex; flex-direction:column; gap:12px; min-width:0; grid-column:1; grid-row:1; }
.site-booking-dialog .site-booking-heading h2 { margin:0; font:700 25px/1.25 Arial,sans-serif; overflow-wrap:anywhere; }
.site-booking-dialog .site-booking-heading #site-booking-period { display:flex; flex-wrap:wrap; flex-direction:column; align-items:flex-start; gap:7px; margin:0; font-size:16px; }
.site-booking-dialog .site-booking-media { display:flex!important; flex-direction:column; align-items:stretch; gap:7px; width:104px; grid-column:2; grid-row:1; }
.site-booking-dialog .site-booking-media img { display:block; width:104px; height:68px; margin:0; border-radius:10px; object-fit:cover; }
.site-booking-dialog .site-booking-media img[hidden] { display:none; }
.site-booking-map-toggle { display:flex; flex-direction:column; align-items:center; width:104px; height:62px; padding:4px; border:1px solid #bdd8c9; border-radius:10px; background:#f5faf7; color:#17684e; cursor:pointer; transition:background .18s ease; }
.site-booking-map-toggle:hover { background:#e8f4ed; }
.site-booking-map-toggle svg { display:block; width:88px; height:44px; }
.site-booking-map-toggle span { font:600 12px/1.2 Arial,sans-serif; }
.site-booking-map-toggle:focus-visible { outline:2px solid #187b5b; outline-offset:2px; }
.site-booking-map-view header { display:flex; gap:15px; align-items:start; justify-content:space-between; margin-bottom:15px; }
.site-booking-map-view h2 { font:700 22px/1.3 Arial,sans-serif; color:#174b38; margin:0; }
.site-booking-map-back { flex:none; width:34px; height:34px; border:1px solid #a7c6b6; border-radius:8px; color:#276e54; background:#fff; font:24px/1 Arial; cursor:pointer; }
.site-booking-map-view .site-map-shell { flex:1; display:flex; flex-direction:column; }
.site-booking-map-view .property-map { flex:1; height:clamp(300px,58vh,540px); min-height:300px; }
@media(max-width:480px) {
  .site-booking-topbar { gap:6px; padding-right:28px; }
  .site-booking-topbar .site-booking-eyebrow { font-size:10px; letter-spacing:.5px; }
  .site-booking-dialog .site-booking-heading { grid-template-columns:minmax(0,1fr) 82px; gap:10px; }
  .site-booking-dialog .site-booking-heading h2 { font-size:21px; }
  .site-booking-dialog .site-booking-heading #site-booking-period { font-size:14px; gap:6px; }
  .site-booking-dialog .site-booking-media { width:82px; }
  .site-booking-dialog .site-booking-media img { width:82px; height:70px; }
  .site-booking-map-toggle { width:82px; height:62px; }
  .site-booking-map-toggle svg { width:70px; height:37px; }
}
@media(prefers-reduced-motion:reduce) { .site-inline-map-slot,.site-hero-text-view,.site-hero-switcher .hero_form,.site-booking-form-view,.site-booking-map-view,.site-map-toast { transition:none!important; } }

/* 2026-10-13: Даты и гости образуют две короткие строки рядом с фото и кнопкой карты. */
.site-booking-dialog .site-booking-heading #site-booking-date-range,
.site-booking-dialog .site-booking-heading #site-booking-date-range-compact { font-size:17px; line-height:1.35; }
.site-booking-dialog .site-booking-heading #site-booking-guests { min-height:34px; font-size:16px; }
@media(max-width:480px) {
  .site-booking-dialog .site-booking-heading #site-booking-date-range,
  .site-booking-dialog .site-booking-heading #site-booking-date-range-compact { font-size:14px; }
  .site-booking-dialog .site-booking-heading #site-booking-guests { font-size:14px; min-height:31px; }
}
/* 2026-10-14: Будущие даты скрывают весь баннер; исходный display из style2.css не отменяет hidden. */
#early-access-banner[hidden],
#early-access-go[hidden]{display:none!important}
/* 2026-10-14: Информация в свободном центре блока цены, без изменения высоты карточки и слайдера. */
.flats_objects_item > .flat_info{position:relative}
.flats_objects_item .flat-info-link{position:absolute;top:-8px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:28px;height:28px;border:1px solid #419075;border-radius:50%;background:#f1f8f4;color:#28745b;font:700 18px/1 Georgia,serif;text-decoration:none}
.flats_objects_item .flat-info-link:hover{background:#e2f0e8;border-color:#28745b}
.flats_objects_item .flat-info-link:focus-visible{outline:2px solid #28745b;outline-offset:3px}
/* 2026-10-14: Исходная «i» — 32 px; наведение увеличивает её на 12% вверх, не сдвигая цену и соседние блоки. */
.flats_objects_item .flat-info-link{top:var(--flat-info-top,-12px);width:32px;height:32px;font-size:20px;transform-origin:center bottom;transition:transform .16s ease,background-color .16s ease,border-color .16s ease}
@media(hover:hover) and (pointer:fine){.flats_objects_item .flat-info-link:hover{transform:translateX(-50%) scale(1.12)}}
@media(prefers-reduced-motion:reduce){.flats_objects_item .flat-info-link{transition:none}}
/* 2026-10-14: Карта контактов занимает прежний размер iframe — 100% ширины и 350 px высоты. */
.contacts-property-map{position:relative;height:350px;padding:0;border:0;border-radius:1.5vw;box-shadow:none;overflow:hidden}
.contacts-property-map .property-map{height:100%;border-radius:inherit}
.contacts-property-map [data-map-status]{position:absolute;left:8px;bottom:8px;z-index:450;max-width:calc(100% - 16px);box-sizing:border-box;margin:0;padding:5px 8px;border-radius:7px;background:rgba(255,255,255,.94)}
