@font-face{font-family:Manrope;src:url('/fonts/manrope-regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-medium.ttf') format('truetype');font-weight:600;font-display:swap}
:root{color-scheme:light;--green:#176e55;--dark:#174b3e;--cream:#f8f5ea;--line:#d8e5dd;--muted:#647d73}
*{box-sizing:border-box}body{margin:0;background:#f6f8f5;color:var(--dark);font:16px/1.5 Manrope,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}.top{background:#006e57;box-shadow:0 4px 16px #143f3022}.top-inner{max-width:1220px;margin:auto;padding:12px 22px;display:flex;align-items:center;justify-content:space-between}.brand img{display:block;max-width:235px;max-height:62px;object-fit:contain}.top-link{color:white;text-decoration:none;font-weight:700;border:1px solid #ffffff80;border-radius:9px;padding:8px 14px}.shell{max-width:1220px;margin:auto;padding:20px 22px 60px}.crumbs{display:flex;gap:10px;align-items:center;color:#688077;font-size:13px;margin-bottom:18px}.crumbs a{text-decoration:none}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.content{min-width:0}.main-card,.content-card,.booking-box,.map-placeholder,.notice{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 34px #204b3810}.main-card{overflow:hidden}.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:165px 165px;gap:4px;position:relative;background:#e6eee8}.gallery-image{border:0;background:#e6eee8;padding:0;min-width:0;min-height:0;overflow:hidden}.gallery-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.gallery-image:hover img{transform:scale(1.045)}.gallery-image-1{grid-row:1/3}.gallery-all{position:absolute;right:14px;bottom:14px;padding:8px 13px;border:1px solid #fff;border-radius:9px;background:#fffffff0;color:var(--dark);font-weight:700;box-shadow:0 3px 10px #0002}.main-card-body{padding:24px 28px 28px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:#25805f}.main-card h1{font:700 clamp(25px,3vw,34px)/1.16 Montserrat,Arial,sans-serif;margin:9px 0}.address{color:var(--muted);margin:0 0 20px}.facts{display:flex;gap:10px;flex-wrap:wrap}.facts>span{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:#f5faf6;padding:8px 12px;font-weight:700}.fact-icon{font-size:23px;line-height:1;color:#278366}.content-card{padding:25px 28px;margin-top:18px}.content-card h2,.booking-box h2,.map-placeholder h2{font:700 23px/1.25 Montserrat,Arial,sans-serif;margin:0 0 16px}.content-card p{margin:0 0 14px;color:#3b5d50}.content-card p:last-child{margin-bottom:0}.amenity-group{border-top:1px solid var(--line);padding:15px 0}.amenity-group h3{font-size:15px;margin:0 0 10px}.amenity-group ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 15px}.amenity-group li{display:flex;gap:9px;align-items:start;color:#385e4d;font-size:14px}.amenity-group li span{color:#269575;font-weight:bold}.sidebar{position:sticky;top:18px;display:grid;gap:16px}.booking-box,.map-placeholder{padding:22px}.booking-box h2{font-size:20px;margin:8px 0 20px}.booking-box label{font-size:12px;font-weight:700;color:#536c5e;display:grid;gap:5px}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.booking-box input,.booking-box select{width:100%;min-width:0;border:1px solid #bad3c4;border-radius:9px;background:#fff;padding:10px 8px;color:var(--dark);outline-color:#238364}.guest-label{margin-top:9px}.quote{margin:17px 0;border-top:1px solid var(--line);padding-top:15px;font-size:14px;color:#435d50}.quote strong{display:block;font-size:25px;color:var(--dark)}.quote span{display:block;font-size:12px}.contact-fields{display:grid;grid-template-columns:1fr;gap:9px;margin-bottom:14px}.contact-fields[hidden]{display:none}.button{width:100%;display:inline-block;border:0;border-radius:10px;background:linear-gradient(120deg,#319c7a,#126d54);color:#fff;text-align:center;text-decoration:none;padding:13px 18px;font-weight:800;box-shadow:0 8px 15px #1d68442d}.button:disabled{opacity:.65;cursor:wait}.booking-box small{display:block;text-align:center;margin:12px 0 0;color:var(--muted)}.error{color:#a53225;background:#fff3ef;padding:8px;border-radius:7px}.map-placeholder{min-height:190px;background:linear-gradient(135deg,#ecf5ef,#e1ede8)}.map-icon{font-size:37px;color:#479575}.map-placeholder h2{font-size:17px;margin:2px 0 7px}.map-placeholder p{margin:0;color:#607a6b}.notice{padding:40px}footer{text-align:center;padding:30px;color:#6b8173;font-size:12px}.photo-dialog{width:min(980px,96vw);max-height:96vh;padding:18px;border:0;border-radius:14px;background:#122e28;color:white;position:fixed}.photo-dialog::backdrop{background:#061b18db}.photo-dialog img{width:100%;max-height:80vh;object-fit:contain;display:block}.photo-dialog button{position:absolute;border:0;background:#ffffffe8;color:#143f32;border-radius:50%;width:39px;height:39px;font-size:28px;line-height:1}.photo-close{right:10px;top:10px}.photo-prev{left:12px;top:50%}.photo-next{right:12px;top:50%}.photo-count{display:block;text-align:center;margin:7px 0 0}
/* 2026-10-05: Сетка фотографий и форма сохраняют читаемость на узком экране. */
@media(max-width:850px){.layout{grid-template-columns:1fr}.sidebar{position:static;grid-row:2}.booking-box{max-width:100%}.gallery{grid-template-rows:140px 140px}}
@media(max-width:560px){.top-inner{padding:10px 14px}.brand img{max-width:185px}.top-link{font-size:12px}.shell{padding:14px 10px 40px}.gallery{grid-template-columns:2fr 1fr;grid-template-rows:120px 120px}.gallery-image-1{grid-row:1/3}.gallery-image:nth-of-type(n+4){display:none}.main-card-body,.content-card{padding:20px}.facts>span{font-size:13px}.amenity-group ul{grid-template-columns:1fr}.booking-box,.map-placeholder{padding:20px}.content-card h2{font-size:20px}}

/* 2026-10-05: Шапка использует разметку и стили главной страницы; ограничена только общая ширина. */
.header{width:min(98vw,1220px);margin-left:auto;margin-right:auto}
.header_company_name_container,.skolko_kv_v_upravlenii_container{text-decoration:none}
/* 2026-10-06: Ограничение шапки действует и на её внутренний контейнер при узком экране. */
.header_container{width:100%;min-width:0;max-width:100%}

/* 2026-10-05: Ссылка на отзывы Авито выделена как интерактивный элемент карточки. */
.property-reviews{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:7px 11px;border:1px solid #c9e1d0;border-radius:10px;background:#f5faf6;color:#176e55;text-decoration:none;font-size:15px;font-weight:700;line-height:1.3}
.property-reviews svg{width:18px;height:18px;flex:none;fill:#efb631}
.property-reviews strong{color:#fff;background:#13b84a;border-radius:6px;padding:2px 6px;font-size:14px;line-height:1.2}
.property-reviews-arrow{font-size:19px;line-height:1}
.property-reviews:hover,.property-reviews:focus-visible{border-color:#278c6a;background:#eaf5ed;text-decoration:underline;outline:2px solid #a8d5bc;outline-offset:2px}

/* 2026-10-05: Используем реальные начертания шрифтов сайта; не сглаживаем текст поверх изображения или трансформацией. */
.shell{font-synthesis:none;-webkit-font-smoothing:none;text-rendering:auto;filter:none;text-shadow:none}
.main-card h1,.content-card h2,.booking-box h2,.map-placeholder h2{font-family:Montserrat-Medium,Arial,sans-serif;font-weight:400}
.booking-box .button:disabled{cursor:default}

/* 2026-10-05: Основной текст и форма бронирования растут вместе; размеры шрифтов заданы напрямую. */
.shell{font-size:18px;line-height:1.55}
.crumbs{font-size:14px}
.eyebrow{font-size:12px}
.main-card h1{font-size:clamp(29px,3vw,37px)}
.address,.content-card p{font-size:17px;line-height:1.6}
.facts>span{font-size:16px}
.content-card h2{font-size:25px}
.amenity-group h3{font-size:17px}
.amenity-group li{font-size:16px;line-height:1.45}
.booking-box h2{font-size:23px}
.booking-box label{font-size:14px}
.booking-box input,.booking-box select,.booking-date-trigger{font-size:16px}
.quote{font-size:16px}
.quote strong{font-size:29px}
.quote span,.booking-box small{font-size:14px;line-height:1.45}
.booking-box .button{font-size:17px}
.map-placeholder h2{font-size:19px}
.map-placeholder p{font-size:16px}
footer{font-size:14px}

/* 2026-10-05: Поля дат открывают общий календарь сайта и выглядят как единая пара. */
.booking-date-trigger{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-height:44px;padding:9px 10px;border:1px solid #bad3c4;border-radius:9px;background:#fff;color:var(--dark);text-align:left;font-weight:700}
.booking-date-trigger:hover,.booking-date-trigger:focus-visible{border-color:#338c6b;background:#f3faf5;outline:2px solid #a8d5bc;outline-offset:1px}
.booking-date-trigger svg{flex:none;width:17px;height:17px;color:#388667}
.booking-date-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 2026-10-14: На телефоне после формы оплаты идут карта, описание и удобства квартиры. */
@media(max-width:850px){
  .layout{display:flex;flex-direction:column;gap:16px}
  .content,.main-card,.sidebar{display:contents}
  .gallery{order:1;align-self:stretch;overflow:hidden;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 34px #204b3810}
  .main-card-body{order:2;align-self:stretch;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 34px #204b3810}
  .booking-box{order:3;align-self:stretch;position:static}
  .content-card{order:5;align-self:stretch;width:100%;margin-top:0}
  .map-placeholder{order:4;align-self:stretch;width:100%}
}
@media(max-width:560px){
  .shell{font-size:17px}
  .brand{gap:7px}
  .brand .brand-mark{width:60px;max-width:none;max-height:54px}
  .brand-copy strong{font-size:17px}
  .brand .brand-underline{width:143px;max-width:none}
  .brand-copy small{font-size:9px}
  .top-link{font-size:12px}
  .main-card h1{font-size:27px}
  .address,.content-card p{font-size:16px}
  .facts>span{font-size:15px}
  .content-card h2{font-size:23px}
  .booking-box h2{font-size:22px}
  .booking-box label{font-size:14px}
  .booking-box input,.booking-box select,.booking-date-trigger{font-size:15px}
  .quote{font-size:16px}
  .quote strong{font-size:28px}
  .booking-box .button{font-size:17px}
}
@media(max-width:370px){.brand .brand-mark{width:49px}.brand-copy strong{font-size:15px}.brand .brand-underline{width:126px}.brand-copy small{font-size:8px}.top-link{font-size:11px;padding:7px 9px}}

/* 2026-10-05: Единственная обложка занимает всю галерею, если фото слайдера пока не добавлены. */
.gallery--single{grid-template-columns:1fr;grid-template-rows:330px}
.gallery--single .gallery-image-1{grid-column:1;grid-row:1}
@media(max-width:850px){.gallery--single{grid-template-rows:280px}}
@media(max-width:560px){.gallery--single{grid-template-rows:240px}}

/* 2026-10-05: Поля дат не расширяют колонку бронирования до выбора даты. */
.date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.booking-date-trigger{min-width:0}

/* 2026-10-06: Навигация и знак прямого бронирования видны с первого взгляда на всех экранах. */
.crumbs{width:fit-content;max-width:100%;min-height:42px;margin-bottom:14px;padding:8px 12px;flex-wrap:wrap;gap:5px 9px;border:1px solid #cbded2;border-radius:10px;background:#fff;box-shadow:0 3px 12px #204b3810;color:#315c4c;font:600 15px/1.35 Arial,sans-serif}
.crumbs a{color:#176e55;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.crumbs [aria-current="page"]{color:#173f31;font-weight:700}
.crumbs a:focus-visible{outline:2px solid #278c6a;outline-offset:3px}
.booking-box>.eyebrow{display:inline-flex;align-items:center;min-height:32px;padding:5px 10px;border:1px solid #e6c86f;border-left:4px solid #c99122;border-radius:8px;background:#fff0c6;color:#5f3e00;font:800 14px/1.2 Arial,sans-serif;letter-spacing:.03em}
/* 2026-10-09: На странице видна та же цена ближайшей свободной ночи, что передаётся в Яндекс. */
@media(max-width:560px){.crumbs{width:100%;font-size:14px}.booking-box>.eyebrow{font-size:14px}}

/* 2026-10-13: Стоимость и подпись числа ночей стоят рядом и переносятся при нехватке ширины. */
.quote-total { display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 8px; }
.quote-total .quote-nights { display:inline; font-size:14px; color:var(--muted); white-space:nowrap; }
/* 2026-10-13: Карта открывает существующую форму в диалоге, сохраняя её обычный стиль. */
.property-booking-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:24px;background:#fff;color:var(--dark);overflow:auto}
.property-booking-dialog::backdrop{background:#062d24a6}
.property-booking-dialog .booking-box{border:0;box-shadow:none;position:static;max-width:none;min-width:0;padding-top:36px}
.property-booking-close{position:absolute;right:12px;top:9px;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:#eff6f2;color:#35755e;font:24px/28px Arial,sans-serif;cursor:pointer;z-index:2}
