/* 2026-10-03: Поле поиска и календарь тестовой главной в цветах NiceAparts. */
html { overflow-x: clip; }
.hero_content--stay-search { overflow: visible; }
.hero_content--stay-search .hero_form { width: 100%; }
.stay-search,
.stay-search * { box-sizing: border-box; }
.stay-search { width: 100%; font-family: Manrope, Arial, sans-serif; }
.stay-search [hidden],
.stay-search-results[hidden],
.flats_objects_item[hidden] { display: none !important; }
.stay-search__bar {
  display: flex;
  gap: 10px;
  align-items: stretch;
  width: 100%;
  margin: 20px 0 12px;
  padding: 6px;
  border: 1px solid #d4e1d9;
  border-radius: 18px;
  background: #f5f9f6;
  box-shadow: 0 10px 28px rgba(22, 82, 62, .1);
}
.stay-search__dates {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
  gap: 16px;
  padding: 11px 14px;
  border: 0;
  border-radius: 13px;
  background: #fff;
  color: #153e34;
  text-align: left;
  cursor: pointer;
}
.stay-search__dates:hover { background: #ecf6ef; }
.stay-search__icon {
  flex: 0 0 auto;
  display: grid;
  width: 39px;
  height: 39px;
  place-items: center;
  border-radius: 11px;
  background: #e5f2e9;
  color: #257253;
  font-size: 27px;
  line-height: 1;
}
.stay-search__field { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.stay-search__label { color: #638075; font-size: 12px; font-weight: 700; line-height: 1.2; }
.stay-search__field strong { overflow: hidden; color: #153e34; font-size: clamp(14px, 1.1vw, 17px); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.stay-search__divider { align-self: stretch; width: 1px; margin: 2px 0; background: #d8e5dc; }
.stay-search__submit,
.stay-search__panel-footer button {
  border: 0;
  border-radius: 13px;
  background: #087255;
  color: #fff;
  font: 700 15px Manrope, Arial, sans-serif;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.stay-search__submit { flex: 0 0 auto; min-width: 184px; padding: 13px 17px; white-space: nowrap; }
.stay-search__submit span { margin-left: 8px; font-size: 21px; vertical-align: -1px; }
.stay-search__submit:hover,
.stay-search__panel-footer button:not(:disabled):hover { background: #075b44; transform: translateY(-1px); }
.stay-search button:focus-visible,
.stay-search-results button:focus-visible { outline: 3px solid #86bf9f; outline-offset: 3px; }
body.stay-search-open { overflow: hidden; }
body.stay-search-open .test-page-ribbon { display: none; }
.stay-search__backdrop { position: fixed; z-index: 10020; inset: 0; background: rgba(11, 34, 28, .54); }
.stay-search__panel {
  position: fixed;
  z-index: 10021;
  top: 50%;
  left: 50%;
  display: flex;
  flex-direction: column;
  width: min(850px, calc(100vw - 32px));
  max-height: min(760px, calc(100dvh - 32px));
  padding: 24px 28px 20px;
  transform: translate(-50%, -50%);
  border: 1px solid #dfebe1;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 26px 80px rgba(5, 37, 27, .32);
  color: #183b31;
  font-size: 14px;
}
.stay-search__panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.stay-search__eyebrow { color: #2d8062; font-size: 11px; font-weight: 800; letter-spacing: .11em; }
.stay-search__panel-header h2 { margin: 5px 0 0; color: #173e33; font-size: 25px; line-height: 1.2; }
.stay-search__close,
.stay-search__calendar-nav button {
  display: grid;
  flex: 0 0 auto;
  width: 37px;
  height: 37px;
  place-items: center;
  border: 1px solid #dce8e1;
  border-radius: 11px;
  background: #fff;
  color: #295a49;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}
.stay-search__close:hover,
.stay-search__calendar-nav button:not(:disabled):hover { background: #edf7f0; }
.stay-search__calendar-nav button:disabled { opacity: .35; cursor: default; }
.stay-search__selected {
  margin: 17px 0 12px;
  padding: 10px 13px;
  border-radius: 10px;
  background: #edf6ef;
  color: #245c47;
  font-size: 13px;
  font-weight: 700;
}
.stay-search__month-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 0 0 10px; scrollbar-width: thin; }
.stay-search__month-tabs button { flex: 0 0 auto; border: 1px solid #dbe9df; border-radius: 999px; background: #fff; color: #376751; padding: 6px 11px; font: 700 11px Manrope, Arial, sans-serif; cursor: pointer; text-transform: capitalize; }
.stay-search__month-tabs button:hover { background: #eaf6ee; }
.stay-search__month-tabs button.is-current { border-color: #087255; background: #e2f2e8; color: #075e46; }
.stay-search__calendar-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.stay-search__calendar-nav strong { color: #214438; font-size: 15px; text-align: center; }
.stay-search__months { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; overflow: auto; min-height: 0; }
.stay-search__month-title { margin: 4px 0 10px; color: #1f4036; font-size: 17px; font-weight: 800; text-align: center; }
.stay-search__weekdays,
.stay-search__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.stay-search__weekdays { margin-bottom: 5px; }
.stay-search__weekdays span { padding: 3px 0; color: #809488; font-size: 11px; font-weight: 700; text-align: center; }
.stay-search__weekdays span:nth-last-child(-n+2) { color: #bd6c63; }
.stay-search__days { gap: 3px; }
.stay-search__blank { min-height: 55px; }
.stay-search__day {
  display: flex;
  min-width: 0;
  min-height: 55px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  border: 1px solid transparent;
  border-radius: 11px;
  background: transparent;
  color: #233c34;
  cursor: pointer;
}
.stay-search__day:hover:not(:disabled) { border-color: #88bca0; background: #eaf6ee; }
.stay-search__day-number { font-size: 16px; font-weight: 700; line-height: 1.2; }
.stay-search__day-price { color: #29805c; font-size: 11px; font-weight: 700; line-height: 1.25; white-space: nowrap; }
.stay-search__day--weekend .stay-search__day-number { color: #b05049; }
.stay-search__day--empty { color: #a9b6ad; }
.stay-search__day--empty .stay-search__day-price { color: #a9b6ad; }
.stay-search__day--today { border-color: transparent; }
.stay-search__day--range { border-radius: 4px; background: #e8f4eb; }
.stay-search__day--start,
.stay-search__day--end,
.stay-search__day--start:hover,
.stay-search__day--end:hover { border-color: #087255; border-radius: 11px; background: #087255; color: #fff; }
.stay-search__day--start .stay-search__day-number,
.stay-search__day--end .stay-search__day-number,
.stay-search__day--start .stay-search__day-price,
.stay-search__day--end .stay-search__day-price { color: #fff; }
.stay-search__day:disabled { opacity: .3; cursor: default; }
.stay-search__hint { margin: 11px 0 0; color: #6d8277; font-size: 11px; }
.stay-search__message { min-height: 18px; margin: 7px 0 0; color: #ac4d3e; font-size: 12px; }
.stay-search__suggestions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin: 4px 0 7px; }
.stay-search__suggestions span { margin-right: 5px; color: #315d4a; font-size: 12px; font-weight: 700; }
.stay-search__suggestions button { border: 1px solid #c5ddce; border-radius: 9px; background: #f3f9f4; color: #246a4d; padding: 6px 8px; font: 700 11px Manrope, Arial, sans-serif; cursor: pointer; }
.stay-search__suggestions button:hover { background: #e0f1e6; }
.stay-search__panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 15px; border-top: 1px solid #e3ece5; }
.stay-search__panel-footer span { color: #375f4e; font-size: 14px; font-weight: 700; }
.stay-search__panel-footer button { min-height: 43px; padding: 9px 18px; }
.stay-search__panel-footer button:disabled { background: #a8bbb1; cursor: default; }
.stay-search-results { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; margin: 22px auto 8px; color: #225745; font: 700 16px Manrope, Arial, sans-serif; text-align: center; }
.stay-search-results button { border: 1px solid #bed8c9; border-radius: 9px; background: #fff; color: #17674d; padding: 7px 11px; font: 700 13px Manrope, Arial, sans-serif; cursor: pointer; }
body.stay-search-filtered .flat_early_access_yes { display: none; }

@media (max-width: 800px) {
  .hero_content--stay-search { max-width: none; }
  .stay-search__bar { flex-direction: column; }
  .stay-search__submit { width: 100%; min-height: 49px; }
  .stay-search__field strong { font-size: 15px; }
}
@media (max-width: 650px) {
  .hero_content--stay-search .hero_form { width: 100%; }
  .stay-search__bar { margin-top: 17px; padding: 5px; border-radius: 15px; }
  .stay-search__dates { gap: 9px; padding: 10px 9px; }
  .stay-search__icon { width: 34px; height: 34px; font-size: 23px; }
  .stay-search__field strong { font-size: 13px; }
  .stay-search__label { font-size: 10px; }
  .stay-search__panel { top: 0; left: 0; width: 100vw; max-height: 100dvh; height: 100dvh; padding: 20px 16px 14px; transform: none; border: 0; border-radius: 0; }
  .stay-search__panel-header h2 { font-size: 21px; }
  .stay-search__selected { margin: 14px 0 10px; }
  .stay-search__months { display: block; flex: 1 1 auto; }
  .stay-search__month + .stay-search__month { display: none; }
  .stay-search__month-title { display: none; }
  .stay-search__day { min-height: 66px; }
  .stay-search__day-number { font-size: 16px; }
  .stay-search__day-price { font-size: 10px; }
  .stay-search__panel-footer { flex-direction: column; align-items: stretch; gap: 9px; }
  .stay-search__panel-footer button { width: 100%; }
}

/* 2026-10-03: Календарь с боковым выбором месяца, чёткими системными шрифтами и без внутренней полосы прокрутки. */
.stay-search { font-family: Arial, "Segoe UI", sans-serif; }
.stay-search__bar { align-items: stretch; }
.stay-search__guests {
  display: flex; flex: 0 0 112px; flex-direction: column; justify-content: center;
  gap: 3px; padding: 9px 12px; border-radius: 13px; background: #fff;
}
.stay-search__guests select {
  width: 100%; border: 0; background: transparent; color: #153e34;
  font: 700 15px Arial, "Segoe UI", sans-serif; cursor: pointer;
}
.stay-search__submit,
.stay-search__panel-footer button:not(:disabled) {
  background: linear-gradient(180deg, #4ca18a 0%, #28745b 100%);
  box-shadow: 0 7px 17px rgba(11, 69, 49, .2);
  font-family: Arial, "Segoe UI", sans-serif;
}
.stay-search__submit:hover,
.stay-search__panel-footer button:not(:disabled):hover {
  background: linear-gradient(180deg, #56ad93 0%, #23694f 100%);
}
.stay-search__panel {
  inset: 0; width: min(785px, calc(100vw - 24px)); height: max-content;
  max-height: calc(100dvh - 16px); margin: auto; padding: 19px 20px 17px;
  transform: none; overflow: hidden; font-family: Arial, "Segoe UI", sans-serif;
}
.stay-search__panel-header h2 { font-size: 24px; }
.stay-search__selected { margin: 11px 0 12px; }
.stay-search__calendar-layout { display: grid; grid-template-columns: 142px minmax(0, 1fr); gap: 16px; min-height: 0; }
.stay-search__month-tabs {
  display: flex; flex-direction: column; gap: 0; overflow: visible;
  padding: 5px 0; border-radius: 13px; background: #f4f6f8;
}
.stay-search__month-tabs button {
  width: 100%; min-height: 41px; flex: 0 0 auto; border: 0; border-radius: 0;
  padding: 8px 13px; background: transparent; color: #253d44;
  font: 400 14px Arial, "Segoe UI", sans-serif; text-align: left;
}
.stay-search__month-tabs button:first-child { border-radius: 12px 12px 0 0; }
.stay-search__month-tabs button:last-child { border-radius: 0 0 12px 12px; }
.stay-search__month-tabs button.is-current { border: 0; background: #e5edf3; color: #142d3d; font-weight: 700; }
.stay-search__calendar-main { min-width: 0; }
.stay-search__calendar-nav { margin-bottom: 3px; }
.stay-search__calendar-nav strong { font-size: 17px; }
.stay-search__calendar-nav button { width: 30px; height: 30px; font-size: 22px; }
.stay-search__months { display: block; overflow: visible; }
.stay-search__month-title { margin: 5px 0 8px; font-size: 17px; text-align: left; text-transform: capitalize; }
.stay-search__month:first-child .stay-search__month-title { display: none; }
.stay-search__month + .stay-search__month { margin-top: 8px; }
.stay-search__weekdays span { color: #8293a4; font-size: 12px; font-weight: 400; }
.stay-search__weekdays span:nth-last-child(-n+2) { color: #da4b79; }
.stay-search__days { gap: 2px; }
.stay-search__blank { min-height: 45px; }
.stay-search__day { min-height: 45px; gap: 0; border-radius: 9px; }
.stay-search__day-number { font-size: 16px; font-weight: 500; line-height: 1.25; }
.stay-search__day-price { color: #148b51; font-size: 11px; font-weight: 700; line-height: 1.2; }
.stay-search__day--weekend .stay-search__day-number { color: #d84a78; }
.stay-search__day--range { border-radius: 4px; background: #ecf6f0; }
.stay-search__day--start,
.stay-search__day--end,
.stay-search__day--start:hover,
.stay-search__day--end:hover { border-color: #6eaa89; border-radius: 9px; background: #e4f1e8; color: #183e2b; }
.stay-search__day--start .stay-search__day-number,
.stay-search__day--end .stay-search__day-number,
.stay-search__day--start .stay-search__day-price,
.stay-search__day--end .stay-search__day-price { color: #194d34; }
/* 2026-10-03: Предварительный диапазон образует мягкую зелёную полосу, а заезд остаётся выразительной точкой выбора. */
.stay-search__day--preview-range,
.stay-search__day--preview-range:hover:not(:disabled) { border-color: transparent; border-radius: 0; background: #e0f0e6; box-shadow: -1px 0 0 #e0f0e6, 1px 0 0 #e0f0e6; }
.stay-search__day--preview-start,
.stay-search__day--preview-start:hover { position: relative; z-index: 1; border-color: #126d51; border-radius: 10px 0 0 10px; background: #126d51; color: #fff; box-shadow: 1px 0 0 #e0f0e6; }
.stay-search__day--preview-start .stay-search__day-number,
.stay-search__day--preview-start .stay-search__day-price { color: #fff; }
.stay-search__day--preview-end,
.stay-search__day--preview-end:hover { border-color: #93c3a5; border-radius: 0 10px 10px 0; background: #d4eadb; box-shadow: -1px 0 0 #e0f0e6; }
.stay-search__day:disabled { opacity: .34; }
.stay-search__hint { margin-top: 8px; font-size: 11px; }
.stay-search__panel-footer { margin-top: 7px; padding-top: 10px; }
.stay-search__panel-footer button { font-family: Arial, "Segoe UI", sans-serif; }

@media (max-width: 800px) {
  .stay-search__bar { flex-direction: row; flex-wrap: wrap; }
  .stay-search__dates { flex: 1 1 calc(100% - 125px); }
  .stay-search__guests { flex-basis: 112px; }
  .stay-search__submit { width: 100%; }
}
@media (max-width: 650px) {
  .stay-search__panel { inset: 0; width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 14px 12px; border-radius: 0; }
  .stay-search__panel-header h2 { font-size: 20px; }
  .stay-search__selected { margin: 9px 0; }
  .stay-search__calendar-layout { display: flex; flex-direction: column; gap: 6px; }
  .stay-search__month-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; padding: 3px; }
  .stay-search__month-tabs button { min-height: 30px; padding: 5px 3px; border-radius: 6px !important; font-size: 10px; text-align: center; }
  .stay-search__months { flex: 0 0 auto; }
  .stay-search__day { min-height: 47px; }
  .stay-search__blank { min-height: 47px; }
  .stay-search__day-number { font-size: 15px; }
  .stay-search__day-price { font-size: 9px; }
  .stay-search__hint { font-size: 10px; }
  .stay-search__panel-footer { margin-top: auto; }
}

/* 2026-10-03: Собственное оформление брони показывает сумму и предоплату перед переходом к Т‑Банку. */
.site-booking-dialog{width:min(510px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border:1px solid #d7e9de;border-radius:20px;padding:0;box-shadow:0 24px 70px rgba(12,53,40,.25);color:#193d31;font-family:Arial,"Segoe UI",sans-serif}
.site-booking-dialog::backdrop{background:rgba(12,40,31,.48)}

/* 2026-10-03: Поиск на телефоне даёт датам всю ширину, а действие ставит отдельной нижней строкой. */
@media (max-width: 650px) {
  .stay-search__bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .stay-search__dates { width: 100%; min-width: 0; gap: 12px; padding: 11px 12px; }
  .stay-search__field strong { font: 700 15px Arial, "Segoe UI", sans-serif; }
  .stay-search__label { font-size: 12px; }
  .stay-search__guests { width: 100%; min-height: 47px; padding: 8px 12px; }
  .stay-search__submit { width: 100%; min-height: 51px; }
}

/* 2026-10-03: Выбранные даты остаются читаемой шапкой списка при прокрутке карточек. */
.stay-search-results:not([hidden]) {
  position: sticky; top: 0; z-index: 35; width: 100%;
  margin: 12px auto 14px; padding: 13px 16px;
  border: 1px solid #c4dbcd; border-radius: 14px;
  background: #f3f9f5; box-shadow: 0 7px 20px rgba(16, 67, 46, .12);
  color: #183f32; font: 700 17px/1.35 Arial, "Segoe UI", sans-serif;
}
.stay-search-results button { font: 700 14px Arial, "Segoe UI", sans-serif; }
.flats_objects_item .flat_price_label { font: 700 14px/1.25 Arial, "Segoe UI", sans-serif; }
@media (max-width: 650px) {
  .stay-search-results:not([hidden]) { justify-content: space-between; gap: 8px; padding: 11px 12px; font-size: 16px; text-align: left; }
  .stay-search-results button { min-height: 38px; font-size: 13px; }
  .flats_objects_item .flat_price_label { font-size: 15px; }
}
.site-booking-form{position:relative;display:flex;flex-direction:column;gap:14px;padding:28px}
.site-booking-close{position:absolute;right:20px;top:16px;border:0;background:transparent;color:#4d7564;font-size:28px;cursor:pointer}
.site-booking-eyebrow{font-size:11px;font-weight:800;letter-spacing:.08em;color:#35846a}
.site-booking-dialog h2{margin:0;font-size:25px;line-height:1.2}
.site-booking-dialog p{margin:0;color:#536b60;line-height:1.45}
.site-booking-cost{display:flex;justify-content:space-between;gap:10px;padding:14px;border-radius:12px;background:#edf7f1}
.site-booking-cost span{display:flex;flex-direction:column;gap:5px;font-size:13px}
.site-booking-cost strong{font-size:17px;color:#174c35}
.site-booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.site-booking-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#315f4b}
.site-booking-fields input{width:100%;min-height:42px;border:1px solid #bed8c8;border-radius:9px;padding:9px 11px;font:15px Arial,"Segoe UI",sans-serif;color:#163b2d}
.site-booking-fields input:focus{outline:2px solid #5fa683;outline-offset:1px}
.site-booking-error{padding:9px 11px;border-radius:8px;background:#fff1ed;color:#a13727!important}
.site-booking-pay{min-height:49px;border:0;border-radius:10px;background:linear-gradient(180deg,#4ca18a,#28745b);box-shadow:0 7px 17px rgba(11,69,49,.18);color:white;font:700 16px Arial,"Segoe UI",sans-serif;cursor:pointer}
.site-booking-pay:disabled{opacity:.62;cursor:wait}
.site-booking-return{margin:10px auto;padding:13px 16px;border:1px solid #b6d9c5;border-radius:12px;background:#f1faf3;color:#1b6748;font:700 15px Arial,"Segoe UI",sans-serif}
@media(max-width:540px){.site-booking-form{padding:24px 18px}.site-booking-fields{grid-template-columns:1fr}.site-booking-cost{flex-direction:column}}

/* 2026-10-04: В форме брони показаны фото и заметная кнопка смены дат этой квартиры. */
.site-booking-heading { display:grid; grid-template-columns:minmax(0,1fr) 112px; gap:16px; align-items:start; padding-right:56px; }
.site-booking-heading > div { min-width:0; }
.site-booking-heading h2 { margin:8px 0 12px; }
.site-booking-heading img { width:112px; height:86px; border-radius:10px; object-fit:cover; }
.site-booking-heading img[hidden] { display:none; }
.site-booking-change-dates { width:100%; min-height:48px; border:1px solid #28745b; border-radius:10px; padding:11px 16px; background:linear-gradient(180deg,#4ca18a,#28745b); box-shadow:0 6px 14px rgba(11,69,49,.16); color:#fff; font:700 16px Arial,"Segoe UI",sans-serif; cursor:pointer; }
.site-booking-change-dates:hover, .site-booking-change-dates:focus-visible { background:linear-gradient(180deg,#43937d,#20674e); outline:2px solid #8bc5a1; outline-offset:2px; }
@media(max-width:540px) {
  .site-booking-heading { grid-template-columns:minmax(0,1fr) 82px; gap:9px; padding-right:48px; }
  .site-booking-heading img { width:82px; height:72px; }
}

/* 2026-10-04: На промежуточной ширине поиск получает отдельную строку действия и не обрезает даты. */
@media (min-width: 651px) and (max-width: 1100px) {
  .container_hero_window { box-sizing: border-box; width: 100%; max-width: 100%; padding: 12px; }
  .hero_content--stay-search { box-sizing: border-box; width: min(100%, 710px); max-width: 100%; min-width: 0; padding: clamp(20px, 3vw, 34px); }
  .hero_content--stay-search .stay-search__bar { display: grid; grid-template-columns: minmax(0, 1fr) 128px; gap: 8px; }
  .hero_content--stay-search .stay-search__dates { min-width: 0; }
  .hero_content--stay-search .stay-search__field strong { font-size: 15px; }
  .hero_content--stay-search .stay-search__guests { width: 128px; }
  .hero_content--stay-search .stay-search__submit { grid-column: 1 / -1; width: 100%; }
}
/* 2026-10-04: При ширине небольшого окна поле гостей переходит на полную строку, не выталкивая карточку за край. */
@media (min-width: 651px) and (max-width: 900px) {
  .hero_content--stay-search .stay-search__bar { grid-template-columns: minmax(0, 1fr); }
  .hero_content--stay-search .stay-search__guests { width: 100%; }
}
@media (max-width: 650px) {
  .hero_content--stay-search .stay-search__bar { grid-template-columns: minmax(0, 1fr); }
  .hero_content--stay-search .stay-search__dates { width: 100%; }
  .hero_content--stay-search .stay-search__guests { width: 100%; }
}

/* 2026-10-04: Строка результатов повторяет ясную структуру поиска и оформление белых карточек квартир. */
.stay-search-results:not([hidden]) {
  display: flex; flex-direction: column; gap: 8px; position: sticky; top: 0; z-index: 35;
  width: min(100%, 1100px); min-height: 80px; margin: 14px auto 18px; padding: 10px;
  border: 1px solid #e2e9e5; border-radius: 18px; background: #fff;
  box-shadow: 0 6px 16px rgba(34, 34, 34, .16); color: #183f32;
  font: 400 15px/1.3 Arial, "Segoe UI", sans-serif; text-align: left;
  opacity: 0; transform: translateY(-10px); pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
.stay-search-results.is-pinned { opacity: 1; transform: translateY(0); pointer-events: auto; }
body.stay-search-filtered .our_flats_container .our_flats_title { position: sticky; top: 0; z-index: 34; background: #fff; }
.stay-results__controls { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(190px, 1.15fr) minmax(100px, .55fr) minmax(105px, .6fr); gap: 8px; }
.stay-results__field { display: flex; align-items: center; min-width: 0; min-height: 44px; padding: 9px 13px; border: 1px solid #d8e4dd; border-radius: 10px; background: #fff; color: #193d31; font: 400 15px Arial, "Segoe UI", sans-serif; }
button.stay-results__field { width: 100%; cursor: pointer; text-align: left; }
button.stay-results__field:hover { border-color: #75ac8c; background: #f6faf7; }
.stay-results__dates { justify-content: space-between; gap: 8px; white-space: nowrap; }
.stay-results__dates-compact { display:none; }
.stay-results__dates svg { flex: 0 0 auto; width: 19px; height: 19px; color: #7e9488; }
.stay-results__guests { width: 100%; cursor: pointer; }
.stay-results__find { min-height: 44px; border: 0 !important; border-radius: 10px !important; background: linear-gradient(180deg,#4ca18a,#28745b) !important; color: #fff !important; font: 700 15px Arial, "Segoe UI", sans-serif !important; }
.stay-results__meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 4px; }
.stay-results__count { color: #698077; font: 400 13px Arial, "Segoe UI", sans-serif; }
.stay-results__reset { padding: 2px 4px !important; border: 0 !important; background: transparent !important; box-shadow: none !important; color: #38725d !important; font: 400 13px Arial, "Segoe UI", sans-serif !important; text-decoration: underline; }
@media (max-width: 800px) {
  .stay-results__controls { grid-template-columns: minmax(0, 1fr) 110px; }
  .stay-results__location { grid-column: 1 / -1; }
  .stay-results__find { grid-column: 1 / -1; }
  .our_flats_container .our_flats_title { position: relative; z-index: 1; }
}
@media (max-width: 650px) {
  .stay-search-results:not([hidden]) { gap: 10px; min-height: 0; padding: 12px; }
  .stay-results__meta { order: -1; }
  .stay-results__controls { grid-template-columns: minmax(0, 1fr) minmax(105px, .55fr); }
  .stay-results__location, .stay-results__dates { grid-column: 1 / -1; }
  .stay-results__location { display: none; }
  .stay-results__find { grid-column: auto; }
  .stay-results__count, .stay-results__reset { font-size: 14px !important; }
}
@media (prefers-reduced-motion: reduce) { .stay-search-results:not([hidden]) { transition: none; } }

/* 2026-10-04: Читаемая плашка видна сразу после выбора дат и целиком закрывает карточки за закреплённой строкой. */
body.stay-search-filtered .our_flats_container .our_flats_title { position: relative; z-index: 1; }
.stay-search-results:not([hidden]) {
  width: 100%; min-height: 104px; margin: 12px auto 18px; padding: 16px 20px;
  gap: 12px; border: 1px solid #bcd9c9; border-radius: 15px;
  background: #f2f9f4; box-shadow: 0 7px 18px rgba(20, 70, 48, .15);
  color: #183f32; font: 400 18px/1.35 Arial, "Segoe UI", sans-serif;
  opacity: 1; transform: none; pointer-events: auto;
}
.stay-search-results.is-pinned::before {
  position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%;
  width: 100vw; transform: translateX(-50%); background: #f2f9f4;
  box-shadow: 0 7px 18px rgba(20, 70, 48, .12); content: '';
}
.stay-search-results.is-pinned { isolation:isolate; }
.stay-results__controls { grid-template-columns: minmax(175px, 1fr) minmax(210px, 1.2fr) minmax(115px, .6fr) minmax(120px, .65fr); gap: 10px; }
.stay-results__field { min-height: 51px; padding: 10px 14px; font: 400 18px/1.2 Arial, "Segoe UI", sans-serif; }
.stay-results__find { min-height: 51px; font: 700 17px Arial, "Segoe UI", sans-serif !important; }
.stay-results__meta { padding: 0 3px; }
.stay-results__count { font: 400 15px Arial, "Segoe UI", sans-serif; }
.stay-results__reset { font: 400 15px Arial, "Segoe UI", sans-serif !important; }
@media (max-width: 800px) {
  .stay-results__controls { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .stay-results__location { display: flex; grid-column: auto; }
  .stay-results__dates { grid-column: auto; }
  .stay-results__find { grid-column: auto; }
}
@media (max-width: 650px) {
  .stay-search-results:not([hidden]) { min-height: 0; padding: 13px; gap: 11px; }
  .stay-results__meta { order: 0; }
  .stay-results__controls { order: 1; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .stay-results__location, .stay-results__dates { display: flex; grid-column: auto; }
  .stay-results__dates { grid-column: 1 / -1; grid-row: 2; }
  .stay-results__find { grid-column: auto; }
  .stay-results__field { min-height: 46px; font-size: 16px; }
  .stay-results__count, .stay-results__reset { font-size: 15px !important; }
}

/* 2026-10-04: Даты в окне оформления читаются обычным чётким начертанием. */
.site-booking-dialog #site-booking-period { color: #244c3d; font: 500 20px/1.35 Arial, "Segoe UI", sans-serif; }
#site-booking-date-range-compact { display:none; }
/* 2026-10-04: Количество гостей меняется рядом с датами без перехода назад к общему поиску. */
.site-booking-dialog #site-booking-period { display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; }
#site-booking-guests { max-width:100%; min-height:36px; padding:4px 28px 4px 8px; border:1px solid #8ebca3; border-radius:8px; background:#fff; color:#244c3d; font:600 18px/1.25 Arial,"Segoe UI",sans-serif; cursor:pointer; }
#site-booking-guests:focus-visible { outline:2px solid #5fa683; outline-offset:2px; }

/* 2026-10-04: Ширина плашки считается от контейнера без полосы прокрутки, поэтому края симметричны. */
.stay-search-results:not([hidden]) {
  box-sizing: border-box; width: calc(100% - 32px); max-width: none;
  margin-left: auto; margin-right: auto;
}
.stay-search-results.is-pinned::before { content: none; }
/* 2026-10-04: Подписи результатов и цены читаются без увеличения страницы. */
.stay-results__field, button.stay-results__field, .stay-results__guests {
  font: 400 18px/1.25 Arial, "Segoe UI", sans-serif !important;
}
.stay-results__count, .stay-results__reset { font-size: 17px !important; line-height: 1.35; }
.flats_objects_item .flat_price_label { font-size: 17px; line-height: 1.3; white-space: pre-line; }
.flats_objects_item .flat_tag { font-size: 18px; line-height: 1.3; }

/* 2026-10-04: Настольный календарь слегка шире, а дни, цены и месяцы заметнее. */
@media (min-width: 801px) {
  .stay-search__panel { width: min(920px, calc(100vw - 40px)); padding: 23px 26px 21px; }
  .stay-search__panel-header h2 { font-size: 27px; }
  .stay-search__calendar-layout { grid-template-columns: 165px minmax(0, 1fr); gap: 19px; }
  .stay-search__month-tabs button { min-height: 45px; font-size: 15px; }
  .stay-search__calendar-nav strong, .stay-search__month-title { font-size: 19px; }
  .stay-search__weekdays span { font-size: 14px; }
  .stay-search__day, .stay-search__blank { min-height: 51px; }
  .stay-search__day-number { font-size: 18px; }
  .stay-search__day-price { font-size: 13px; }
  .stay-search__hint { font-size: 13px; }
  .stay-search__months { max-height: 405px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
  .stay-search__months::-webkit-scrollbar { display: none; }
}
@media (max-width: 650px) {
  .stay-search-results:not([hidden]) { width: calc(100% - 16px); margin-left: auto; margin-right: auto; }
  .stay-results__field, button.stay-results__field, .stay-results__guests { font-size: 16px !important; }
  .stay-results__count, .stay-results__reset { font-size: 16px !important; }
}

/* 2026-10-04: На телефоне месяцы продолжаются ниже; прокручивается вся панель вместе со строкой выбранных дат. */
@media (max-width: 650px) {
  .stay-search__panel { display: block; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
  .stay-search__calendar-layout, .stay-search__calendar-main { min-height: 0; height: auto; }
  .stay-search__months { flex: 0 0 auto; overflow: visible; }
  .stay-search__month + .stay-search__month { display: block; margin-top: 18px; }
  .stay-search__month-title, .stay-search__month:first-child .stay-search__month-title {
    display: block; margin: 0 0 9px; font-size: 18px;
  }
  .stay-search__panel-footer { margin-top: 20px; }
}

/* 2026-10-04: Занятые дни не исчезают из календаря — дата и причина остаются различимы. */
.stay-search__day--unavailable { background: #f3f5f4; }
.stay-search__day--unavailable:disabled { opacity: .8; }
.stay-search__day--unavailable .stay-search__day-number { color: #657970; }
.stay-search__day--unavailable .stay-search__day-price { color: #8b5e58; font-size: 12px; }
/* 2026-10-04: Выезд заметнее промежутка, но светлее тёмного дня заезда. */
.stay-search__day--start,
.stay-search__day--start:hover { border-color: #126d51; background: #126d51; }
.stay-search__day--start .stay-search__day-number,
.stay-search__day--start .stay-search__day-price { color: #fff; }
.stay-search__day--end,
.stay-search__day--end:hover,
.stay-search__day--preview-end,
.stay-search__day--preview-end:hover { border-color: #75ae8e; background: #b8dfc8; }
.stay-search__day--end .stay-search__day-number,
.stay-search__day--end .stay-search__day-price,
.stay-search__day--preview-end .stay-search__day-number,
.stay-search__day--preview-end .stay-search__day-price { color: #194d34; }
/* 2026-10-04: Выбранный период, дни недели и цены читаются без увеличения страницы. */
.stay-search__selected { font: 700 16px/1.35 Manrope, Arial, sans-serif; padding: 11px 15px; }
.stay-search__weekdays--fixed {
  position: sticky; top: 0; z-index: 3; margin: 0 0 6px;
  padding: 4px 0; background: #fff;
}
.stay-search__weekdays--fixed span { font: 600 14px/1.3 Manrope, Arial, sans-serif; }
.stay-search__day-price,
.stay-search__day--unavailable .stay-search__day-price {
  font: 700 14px/1.25 Manrope, Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.015em;
}
.stay-search__panel-footer span { font: 700 16px/1.3 Manrope, Arial, sans-serif; }
.stay-search__panel-footer button { font-size: 15px; }
@media (max-width: 650px) {
  .stay-search__panel-header h2 { font-size: 24px; }
  .stay-search__eyebrow { font-size: 12px; }
  .stay-search__selected { font-size: 16px; padding: 12px 13px; }
  .stay-search__month-tabs button { min-height: 37px; font-size: 13px; }
  .stay-search__calendar-nav strong, .stay-search__month-title { font-size: 19px; }
  .stay-search__weekdays--fixed span { font-size: 14px; }
  .stay-search__day, .stay-search__blank { min-height: 58px; }
  .stay-search__day-number { font-size: clamp(16px, 3.6vw, 19px); }
  .stay-search__day-price,
  .stay-search__day--unavailable .stay-search__day-price {
    max-width: 100%; font-size: clamp(11px, 2.6vw, 13px); white-space: nowrap;
    letter-spacing: -.035em;
  }
  .stay-search__hint { font-size: 12px; line-height: 1.35; }
  .stay-search__panel-footer span { font-size: 16px; }
  .stay-search__panel-footer button { font-size: 16px; }
}
@media (min-width: 651px) and (max-width: 800px) {
  .stay-search__months { max-height: 360px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
  .stay-search__months::-webkit-scrollbar { display: none; }
}

/* 2026-10-04: В настольной форме счёта увеличены поля, суммы и пояснения без масштабирования всей страницы. */
@media (min-width: 801px) {
  .site-booking-dialog { width: min(640px, calc(100vw - 40px)); }
  .site-booking-form { gap: 18px; padding: 34px 36px; }
  .site-booking-eyebrow { font-size: 14px; }
  .site-booking-dialog h2 { font-size: 29px; }
  .site-booking-dialog p { font-size: 17px; line-height: 1.5; }
  .site-booking-cost { padding: 17px; }
  .site-booking-cost span { font-size: 15px; }
  .site-booking-cost strong { font-size: 21px; }
  .site-booking-fields label { font-size: 15px; }
  .site-booking-fields input { min-height: 49px; font-size: 17px; }
  .site-booking-pay { min-height: 55px; font-size: 18px; }
}

/* 2026-10-04: Текст преимуществ и срочной связи использует чёткие целые размеры вместо дробных vw. */
.hero_features,
.hero_request_text {
  font: 400 17px/1.45 Arial, "Segoe UI", sans-serif;
  text-shadow: none;
  -webkit-font-smoothing: auto;
}
.hero_features b,
.hero_request_text b { font-weight: 700; }
.btn_hero_request { font: 700 16px/1.35 Arial, "Segoe UI", sans-serif; text-shadow: none; }

/* 2026-10-04: У выбора гостей убрана системная чёрная рамка; стрелка и фокус оформлены в цветах формы. */
.stay-search__guests { position: relative; }
.stay-search__guests::after {
  content: ""; position: absolute; top: 50%; right: 16px;
  width: 8px; height: 8px; border-right: 2px solid #245c47; border-bottom: 2px solid #245c47;
  transform: translateY(-75%) rotate(45deg); pointer-events: none;
}
.stay-search__guests select {
  appearance: none; -webkit-appearance: none; border: 0; border-radius: 0;
  outline: 0; padding-right: 22px; box-shadow: none;
}
.stay-search__guests:focus-within { outline: 2px solid #5a9d78; outline-offset: 1px; background: #f2faf5; }
.stay-search__guests select:focus,
.stay-search__guests select:focus-visible { outline: 0; border: 0; box-shadow: none; }
.stay-results__guests:focus-visible { outline: 2px solid #5a9d78; outline-offset: 1px; }

/* 2026-10-04: На телефоне герой и контактная карточка укладываются между равными боковыми полями. */
@media (max-width: 650px) {
  .container_hero_window { box-sizing: border-box; width: 100%; max-width: 100%; padding: 12px; }
  .hero_content--stay-search {
    box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0;
    margin: 0; padding: clamp(16px, 4vw, 22px); border-radius: 13px;
  }
  .hero_content--stay-search .hero_title { max-width: 100%; font-size: clamp(29px, 6vw, 36px); }
  .hero_request {
    box-sizing: border-box; width: min(100%, 360px); max-width: 100%;
    margin: 12px 0 0 auto; padding: 16px; border-radius: 13px;
  }
}

/* 2026-10-04: На широком экране плашка чуть шире и с прямыми верхними углами; на узком — без боковых полей. */
@media (min-width: 1001px) {
  /* 2026-10-04: После выбора дат убираем отступ каталога перед закреплённой строкой поиска. */
  body.stay-search-filtered .our_flats_container { margin-top:0; }
  body.stay-search-filtered .stay-search-results:not([hidden]) { margin-top:0; }
  .stay-search-results:not([hidden]) { width:calc(100% - 8px); border-radius:0 0 46px 46px; }
}
@media (max-width: 1000px) {
  .stay-search-results:not([hidden]) {
    width:100vw; max-width:none; margin-left:calc(50% - 50vw); margin-right:0;
    border-left:0; border-right:0; border-radius:0;
  }
}

/* 2026-10-04: Мобильная плашка показывает подписи и значения достаточно крупно для чтения без увеличения страницы. */
@media (max-width: 650px) {
  .stay-search-results:not([hidden]) { padding:14px 16px; }
  .stay-results__meta { flex-wrap:wrap; justify-content:center; text-align:center; }
  .stay-results__count, .stay-results__reset { font-size:19px !important; line-height:1.35; }
  .stay-results__field, button.stay-results__field, .stay-results__guests { min-height:49px; font-size:18px !important; }
  .stay-results__find { min-height:49px; font-size:18px !important; }
}

/* 2026-10-04: Пометка занятой даты чёрная и отличается от цены свободного дня. */
.stay-search__day--unavailable .stay-search__day-price--occupied { color: #111; }
.stay-search__day--unavailable:disabled:has(.stay-search__day-price--occupied) { opacity: 1; }

/* 2026-10-04: Заголовок каталога остаётся только на телефоне. */
.our_flats_container > .our_flats_title { display:none; }
@media (max-width: 650px) {
  .our_flats_container > .our_flats_title {
    display:block; box-sizing:border-box; max-width:100%; margin:0;
    padding:18px 16px; font-size:28px; text-align:center;
  }
}

/* 2026-10-04: Цены и рамки календаря помещаются в семь колонок телефона с внутренним полем. */
.stay-search__day-price--amount { display:flex; align-items:center; justify-content:center; gap:3px; }
.stay-search__day-price--amount strong { font:inherit; }
@media (max-width: 650px) {
  .stay-search__panel { padding-left:14px; padding-right:14px; }
  .stay-search__days { gap:3px; }
  .stay-search__day { box-sizing:border-box; width:100%; min-height:68px; padding:5px 2px; overflow:hidden; }
  .stay-search__day-price--amount { flex-direction:column; gap:0; line-height:1.05; white-space:nowrap; }
  .stay-search__day-price--amount span { font-size:12px; }
  .stay-search__day-price--amount strong { font-size:13px; line-height:1.15; }
}

/* 2026-10-04: Мобильная строка поиска умещает фильтры в одну компактную строку;
   на самых узких экранах они переходят в две строки без обрезки текста. */
@media (max-width: 650px) {
  .stay-search-results:not([hidden]) { min-height:0; margin-top:0; margin-bottom:8px; padding:7px 10px 8px; gap:5px; }
  .stay-results__meta { order:0; justify-content:center; gap:3px 8px; padding:0; }
  .stay-results__count, .stay-results__reset { font-size:13px !important; line-height:1.2; }
  .stay-results__controls {
    order:1; grid-template-areas:"city dates guests find";
    grid-template-columns:minmax(0, 1fr) minmax(0, 1.3fr) 78px 78px; gap:6px;
  }
  .stay-results__location { display:flex; grid-area:city; }
  .stay-results__dates { display:flex; grid-area:dates; min-width:0; }
  .stay-results__guests { grid-area:guests; }
  .stay-results__find { grid-area:find; }
  .stay-results__field, button.stay-results__field, .stay-results__guests {
    min-height:40px; padding:6px 7px; font-size:14px !important;
  }
  .stay-results__find { min-height:40px; font-size:14px !important; }
}
@media (max-width: 420px) {
  .stay-results__controls {
    grid-template-areas:"city guests" "dates find";
    grid-template-columns:minmax(0, 1fr) 86px;
  }
}

/* 2026-10-04: Плавающий рейтинг не перекрывает календарь и оформление брони. */
.stay-search-review-hidden { visibility:hidden !important; pointer-events:none !important; }

/* 2026-10-04: Два действия формы бронирования стоят внизу в одном ряду на десктопе. */
.site-booking-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.site-booking-actions .site-booking-change-dates,
.site-booking-actions .site-booking-pay {
  box-sizing:border-box; width:100%; min-width:0; min-height:49px; padding:8px 10px;
  border:1px solid #28745b; border-radius:10px;
  background:linear-gradient(180deg,#4ca18a,#28745b);
  box-shadow:0 6px 14px rgba(11,69,49,.16); color:#fff;
  font:700 clamp(12px,3vw,16px)/1.2 Arial,"Segoe UI",sans-serif;
  text-align:center; cursor:pointer;
}
.site-booking-actions .site-booking-change-dates:hover,
.site-booking-actions .site-booking-pay:hover,
.site-booking-actions .site-booking-change-dates:focus-visible,
.site-booking-actions .site-booking-pay:focus-visible {
  background:linear-gradient(180deg,#43937d,#20674e); outline:2px solid #8bc5a1; outline-offset:2px;
}
/* 2026-10-04: Смена дат снова второстепенная — светлая кнопка с зелёной обводкой. */
.site-booking-actions .site-booking-change-dates {
  border-color:#8ebfa2; background:#fff; box-shadow:none; color:#28745b;
}
.site-booking-actions .site-booking-change-dates:hover,
.site-booking-actions .site-booking-change-dates:focus-visible {
  background:#edf7f1; color:#205f49; outline:2px solid #8bc5a1; outline-offset:2px;
}
@media (max-width: 650px) {
  /* 2026-10-04: На телефоне оба действия расположены перед полями гостя. */
  .site-booking-actions { order:1; grid-template-columns:minmax(0,1fr); }
  .site-booking-fields { order:2; }
  .site-booking-error { order:3; }
}

/* 2026-10-04: На телефоне даты и ночи идут одной строкой под фото, выбор гостей стоит справа. */
@media (max-width: 650px) {
  .site-booking-dialog h2 { font-size:20px; line-height:1.15; }
  .site-booking-heading h2 { margin:6px 0 8px; }
  .site-booking-heading { grid-template-columns:minmax(0,1fr) 82px; grid-template-rows:auto auto auto; gap:0 9px; padding-right:48px; }
  .site-booking-heading > div { display:contents; }
  .site-booking-eyebrow { grid-column:1; grid-row:1; }
  .site-booking-heading h2 { grid-column:1; grid-row:2; }
  .site-booking-heading img { grid-column:2; grid-row:1 / span 2; width:82px; height:72px; }
  .site-booking-dialog #site-booking-period {
    grid-column:1 / -1; grid-row:3; display:flex; flex-wrap:nowrap;
    justify-content:space-between; gap:6px; padding-top:5px;
    font-size:clamp(13px,3.6vw,15px); line-height:1.25;
  }
  #site-booking-date-range { display:none; }
  #site-booking-date-range-compact { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #site-booking-guests { flex:none; min-height:31px; padding:4px 24px 4px 6px; font-size:14px; }
}

/* 2026-10-04: Заголовок первого экрана на телефоне не вытесняет поиск за пределы видимой области. */
@media (max-width: 650px) {
  .hero_content--stay-search .hero_title { font-size:clamp(22px,5.5vw,26px); line-height:1.2; }
}

/* 2026-10-04: Текст Avito на десктопе рисуется целым размером без масштабирования контейнера. */
@media (min-width: 801px) {
  .avito_otzyvy_text {
    font:500 15px/1.45 Arial,"Segoe UI",sans-serif;
    text-shadow:none; -webkit-font-smoothing:auto; transition:color .2s ease;
  }
}

/* 2026-10-04: Мобильная плашка умещает даты и полное число гостей в полях без выхода текста за рамку. */
.stay-results__reset-short { display:none; }
@media (max-width: 650px) {
  .stay-search-results:not([hidden]) {
    min-height:0; margin-bottom:4px; padding:6px 8px; gap:4px;
  }
  .stay-results__meta {
    flex-wrap:nowrap; justify-content:space-between; gap:4px; width:100%; text-align:left;
  }
  .stay-results__count {
    min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;
    font-size:12px !important; line-height:1.2;
  }
  .stay-results__reset {
    flex:none; white-space:nowrap; font-size:12px !important; line-height:1.2;
  }
  .stay-results__reset-long { display:none; }
  .stay-results__reset-short { display:inline; }
  .stay-results__controls {
    grid-template-areas:"city dates guests find";
    grid-template-columns:minmax(0,1.25fr) minmax(0,1.1fr) minmax(0,1.05fr) minmax(0,.7fr);
    gap:4px; width:100%;
  }
  .stay-results__field, button.stay-results__field, .stay-results__guests {
    min-height:34px; padding:5px 4px; font-size:12px !important;
  }
  .stay-results__dates { overflow:hidden; }
  .stay-results__dates-full { display:none; }
  .stay-results__dates-compact { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  /* 2026-10-04: Узкая стрелка списка оставляет место для полного текста «2 гостя». */
  .stay-results__location, .stay-results__guests {
    appearance:none; -webkit-appearance:none; padding-right:15px;
    background-image:linear-gradient(45deg,transparent 50%,#245c47 50%),linear-gradient(135deg,#245c47 50%,transparent 50%);
    background-position:calc(100% - 9px) 52%,calc(100% - 5px) 52%;
    background-size:4px 4px; background-repeat:no-repeat;
  }
  .stay-results__find { min-height:34px; padding:5px 6px; font-size:13px !important; }
}
@media (max-width: 340px) {
  .stay-results__controls {
    grid-template-areas:"city guests" "dates find";
    grid-template-columns:minmax(0,1fr) 76px;
  }
}

/* 2026-10-04: Цены календаря бронирования серые; на тёмном выбранном дне остаются светлыми для чтения. */
.stay-search__day-price--amount { color:#74807b; }
.stay-search__day--start .stay-search__day-price--amount,
.stay-search__day--preview-start .stay-search__day-price--amount { color:#e3e8e5; }
.stay-search__day--end .stay-search__day-price--amount,
.stay-search__day--preview-end .stay-search__day-price--amount { color:#596a62; }

/* 2026-10-04: Первый выбор дат повторяет лёгкую компоновку примера: список месяцев слева, числа без цен справа. */
.stay-search__panel--initial {
  width:min(760px,calc(100vw - 24px)); padding:0; border-radius:13px;
  font:400 15px/1.35 Arial,"Segoe UI",sans-serif; color:#142a23;
}
.stay-search__panel--initial .stay-search__panel-header {
  position:absolute; z-index:6; top:7px; right:8px;
}
.stay-search__panel--initial .stay-search__panel-header > div,
.stay-search__panel--initial .stay-search__calendar-nav,
.stay-search__panel--initial .stay-search__day-price,
.stay-search__panel--initial .stay-search__hint,
.stay-search__panel--initial .stay-search__panel-footer,
.stay-search__panel--initial .stay-search__suggestions,
.stay-search__panel--initial .stay-search__message { display:none; }
.stay-search__panel--initial .stay-search__close {
  width:30px; height:30px; border:0; background:#fff; color:#315745; font-size:22px;
}
.stay-search__panel--initial .stay-search__selected {
  position:absolute; width:1px; height:1px; overflow:hidden; padding:0; margin:0; clip-path:inset(50%);
}
.stay-search__panel--initial .stay-search__calendar-layout {
  display:grid; grid-template-columns:140px minmax(0,1fr); gap:0;
  max-height:min(570px,calc(100dvh - 24px));
}
.stay-search__panel--initial .stay-search__month-tabs {
  display:flex; flex-direction:column; gap:0; min-width:0; max-height:inherit;
  overflow-y:auto; padding:8px 0; border-radius:12px 0 0 12px; background:#f2f5f3;
}
.stay-search__panel--initial .stay-search__month-tabs button {
  min-height:48px; padding:12px 18px; border:0; border-radius:0 !important;
  background:transparent; color:#172d25; text-align:left; text-transform:capitalize;
  font:400 14px/1.25 Arial,"Segoe UI",sans-serif;
}
.stay-search__panel--initial .stay-search__month-tabs button.is-current {
  background:#e4ece7; color:#122f22; font-weight:400;
}
.stay-search__panel--initial .stay-search__calendar-main { min-width:0; padding:14px 17px 14px 16px; }
.stay-search__panel--initial .stay-search__months {
  display:block; max-height:500px; overflow-y:auto; scrollbar-width:thin;
}
.stay-search__panel--initial .stay-search__weekdays--fixed {
  position:static; margin:0 0 14px; padding:0; background:#fff;
}
.stay-search__panel--initial .stay-search__weekdays span {
  color:#94a39b; font:400 12px/1.3 Arial,"Segoe UI",sans-serif;
}
.stay-search__panel--initial .stay-search__weekdays span:nth-last-child(-n+2) { color:#cc577b; }
.stay-search__panel--initial .stay-search__month-title,
.stay-search__panel--initial .stay-search__month:first-child .stay-search__month-title {
  display:block; margin:0 0 10px; color:#193c2d; text-align:left;
  font:700 20px/1.3 Arial,"Segoe UI",sans-serif; text-transform:capitalize;
}
.stay-search__panel--initial .stay-search__month + .stay-search__month { margin-top:12px; }
.stay-search__panel--initial .stay-search__days { gap:0; }
.stay-search__panel--initial .stay-search__day,
.stay-search__panel--initial .stay-search__blank { min-height:49px; }
.stay-search__panel--initial .stay-search__day { padding:0; border-radius:8px; background:#fff; }
.stay-search__panel--initial .stay-search__day-number {
  color:#15231e; font:400 15px/1.25 Arial,"Segoe UI",sans-serif;
}
.stay-search__panel--initial .stay-search__day--weekend .stay-search__day-number { color:#cf4571; }
.stay-search__panel--initial .stay-search__day--unavailable { background:#fff; }
.stay-search__panel--initial .stay-search__day--unavailable .stay-search__day-number { color:#aab8b0; }
.stay-search__panel--initial .stay-search__day--range,
.stay-search__panel--initial .stay-search__day--preview-range { border-radius:0; background:#e6f0e9; box-shadow:none; }
.stay-search__panel--initial .stay-search__day--start,
.stay-search__panel--initial .stay-search__day--end,
.stay-search__panel--initial .stay-search__day--preview-start,
.stay-search__panel--initial .stay-search__day--preview-end {
  border-color:#173e30; border-radius:8px; background:#173e30; box-shadow:none;
}
.stay-search__panel--initial .stay-search__day--start .stay-search__day-number,
.stay-search__panel--initial .stay-search__day--end .stay-search__day-number,
.stay-search__panel--initial .stay-search__day--preview-start .stay-search__day-number,
.stay-search__panel--initial .stay-search__day--preview-end .stay-search__day-number { color:#fff; }
/* 2026-10-05: Наведение не осветляет выбранный день, иначе белая цифра выезда исчезает. */
.stay-search__panel--initial .stay-search__day--start:hover:not(:disabled),
.stay-search__panel--initial .stay-search__day--end:hover:not(:disabled),
.stay-search__panel--initial .stay-search__day--preview-start:hover:not(:disabled),
.stay-search__panel--initial .stay-search__day--preview-end:hover:not(:disabled) {
  border-color:#173e30; background:#173e30;
}
.stay-search__panel--initial .stay-search__day--range:hover:not(:disabled),
.stay-search__panel--initial .stay-search__day--preview-range:hover:not(:disabled) {
  border-color:transparent; background:#e6f0e9;
}
@media(max-width:650px) {
  .stay-search__panel--initial { overflow-y:auto; }
  .stay-search__panel--initial .stay-search__calendar-layout { display:block; max-height:none; }
  .stay-search__panel--initial .stay-search__month-tabs {
    display:flex; flex-direction:row; max-height:none; overflow-x:auto; overflow-y:hidden;
    padding:6px 38px 6px 7px; border-radius:0; white-space:nowrap;
  }
  .stay-search__panel--initial .stay-search__month-tabs button {
    width:auto; min-height:36px; padding:8px 11px; white-space:nowrap; font-size:13px;
  }
  .stay-search__panel--initial .stay-search__calendar-main { padding:15px 12px; }
  .stay-search__panel--initial .stay-search__months { max-height:none; overflow:visible; }
  .stay-search__panel--initial .stay-search__day,
  .stay-search__panel--initial .stay-search__blank { min-height:48px; }
  .stay-search__panel--initial .stay-search__day-number { font-size:16px; }
}

/* 2026-10-05: Закреплённая строка остаётся видимой над карточками и возвращается в поток у hero. */
.stay-results-anchor { display:block; height:0; }
body.stay-search-filtered .our_flats_container { margin-top:0; }

/* 2026-10-04: На телефоне фильтры занимают два читаемых ряда с отдельным действием поиска. */
@media(max-width:650px) {
  .stay-search-results:not([hidden]) {
    width:100vw; margin:0 0 8px calc(50% - 50vw); padding:9px 12px 10px;
    gap:8px; border-radius:0; box-shadow:0 4px 12px rgba(20,70,48,.12);
  }
  .stay-results__controls {
    order:0; display:grid; grid-template-areas:"city guests" "dates find";
    grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:7px; width:100%;
  }
  .stay-results__location { grid-area:city; }
  .stay-results__guests { grid-area:guests; }
  .stay-results__dates { grid-area:dates; }
  .stay-results__find { grid-area:find; }
  .stay-results__field, button.stay-results__field, .stay-results__guests,
  .stay-results__find {
    box-sizing:border-box; width:100%; min-width:0; min-height:43px;
    padding:9px 11px; font-size:15px !important; line-height:1.2;
  }
  .stay-results__location, .stay-results__guests { padding-right:27px; background-position:calc(100% - 15px) 52%,calc(100% - 11px) 52%; }
  .stay-results__dates { overflow:hidden; }
  .stay-results__dates-compact { overflow:hidden; text-overflow:ellipsis; }
  .stay-results__meta { order:1; width:100%; justify-content:space-between; gap:8px; padding:0 2px; }
  .stay-results__count, .stay-results__reset { font-size:12px !important; }
}

/* 2026-10-04: Строка поиска повторяет лёгкую компоновку образца с календарём и гостем в цветах NiceAparts. */
#stay-search-results:not([hidden]) {
  display:block; box-sizing:border-box; width:calc(100% - 32px); min-height:0;
  margin:0 auto 12px; padding:14px 16px; gap:0;
  border:0; border-radius:17px; background:#fff;
  box-shadow:0 4px 18px rgba(20,62,46,.12);
}
#stay-search-results .stay-results__controls {
  display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,1.45fr) minmax(110px,.85fr);
  gap:8px; align-items:stretch; width:100%;
}
#stay-search-results .stay-results__icon-field { position:relative; min-width:0; }
#stay-search-results .stay-results__field,
#stay-search-results button.stay-results__field,
#stay-search-results .stay-results__guests {
  box-sizing:border-box; width:100%; height:44px; min-height:44px;
  padding:0 38px 0 14px; border:1px solid #d8e5dd; border-radius:9px;
  background:#fff; background-image:none; box-shadow:none;
  color:#1d352b; font:400 16px/1.25 Arial,"Segoe UI",sans-serif !important;
}
#stay-search-results select.stay-results__field {
  display:block; appearance:none; -webkit-appearance:none; background-image:none; cursor:pointer;
}
#stay-search-results .stay-results__field-icon {
  position:absolute; top:50%; right:12px; display:grid; place-items:center;
  width:20px; height:20px; transform:translateY(-50%);
  color:#91a19a; pointer-events:none;
}
#stay-search-results .stay-results__field-icon svg { width:20px; height:20px; }
#stay-search-results .stay-results__dates { display:flex; align-items:center; gap:8px; overflow:hidden; white-space:nowrap; }
#stay-search-results button.stay-results__dates { padding-right:12px; }
#stay-search-results .stay-results__dates .stay-results__field-icon {
  position:static; flex:none; margin-left:auto; transform:none;
}
#stay-search-results .stay-results__dates-full { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; }
#stay-search-results .stay-results__dates-compact { display:none; }
#stay-search-results .stay-results__find {
  box-sizing:border-box; width:100%; height:44px; min-height:44px; padding:0 12px;
  border:0 !important; border-radius:9px !important;
  background:#168064 !important; box-shadow:none;
  color:#fff !important; font:700 16px/1.2 Arial,"Segoe UI",sans-serif !important;
}
#stay-search-results .stay-results__find:hover { background:#0d6e53 !important; }
.stay-results-empty { margin:0 16px 18px; color:#526b5e; font:400 15px/1.4 Arial,"Segoe UI",sans-serif; text-align:center; }
.stay-results-empty[hidden] { display:none; }
@media(max-width:800px) {
  #stay-search-results .stay-results__controls {
    grid-template-areas:"city dates" "guests find";
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #stay-search-results .stay-results__location-field { grid-area:city; }
  #stay-search-results .stay-results__dates { grid-area:dates; }
  #stay-search-results .stay-results__guests-field { grid-area:guests; }
  #stay-search-results .stay-results__find { grid-area:find; }
}
@media(max-width:650px) {
  #stay-search-results:not([hidden]) {
    width:100vw; margin:0 0 8px calc(50% - 50vw); padding:9px 12px;
    border-radius:0; box-shadow:0 4px 12px rgba(20,62,46,.12);
  }
  #stay-search-results .stay-results__controls { gap:8px; }
  #stay-search-results .stay-results__field,
  #stay-search-results button.stay-results__field,
  #stay-search-results .stay-results__guests {
    height:44px; min-height:44px; padding-left:10px; padding-right:32px;
    font-size:15px !important;
  }
  #stay-search-results .stay-results__field-icon { right:9px; width:18px; height:18px; }
  #stay-search-results .stay-results__field-icon svg { width:18px; height:18px; }
  #stay-search-results button.stay-results__dates { padding-right:9px; }
  #stay-search-results .stay-results__dates-full { display:none; }
  #stay-search-results .stay-results__dates-compact { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; }
  #stay-search-results .stay-results__find { height:44px; min-height:44px; font-size:15px !important; }
}

/* 2026-10-05: Полноширинная зелёная плашка сохраняет двухстрочную компоновку и пиктограммы образца. */
#stay-search-results:not([hidden]) {
  width:100vw; max-width:none; min-height:0; margin:0 0 12px calc(50% - 50vw);
  padding:15px 20px 17px; border:0; border-radius:0; background:#f2f9f4;
  box-shadow:0 5px 15px rgba(20,70,48,.13); color:#172f27;
  font:400 18px/1.2 Arial,"Segoe UI",sans-serif; transform:none; opacity:1; pointer-events:auto;
}
#stay-search-results .stay-results__controls {
  grid-template-columns:minmax(210px,2.25fr) minmax(180px,1.2fr) minmax(150px,1.2fr) minmax(120px,.9fr);
  gap:9px;
}
/* 2026-10-09: Кнопка короткой подборки стоит слева от города внутри его поля. */
#stay-search-results .stay-results__share {
  position:absolute; z-index:3; top:50%; left:8px; display:grid; place-items:center;
  width:40px; height:40px; padding:0; transform:translateY(-50%);
  border:1px solid #b6d6c5; border-radius:9px; background:#e9f5ee;
  color:#0c7052; cursor:pointer;
}
#stay-search-results .stay-results__share:hover { background:#d6eddf; }
#stay-search-results .stay-results__share:disabled { opacity:.4; cursor:default; }
#stay-search-results .stay-results__share svg { width:19px; height:19px; }
#stay-search-results .stay-results__location-field .stay-results__location { padding-left:60px; }
#stay-search-results .stay-results__location-field .stay-results__caption { left:60px; }

/* 2026-10-09: В сетке из четырёх и пяти квартир возвращаем компактные размеры цены и кнопки после общих правил карточки, чтобы они помещались рядом без наложения. */
@media (min-width:1400px) {
  .flats_objects_item > .flat_info {
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px; min-height:104px; padding:10px 12px;
  }
  .flats_objects_item .flat_prices,
  .flats_objects_item .flat_reservation { min-width:0; }
  .flats_objects_item .flat_price_label { display:block; font-size:14px; line-height:1.2; }
  .flats_objects_item .flat_price strong { display:block; font-size:23px; white-space:nowrap; }
  .flats_objects_item .button_flat_reservation {
    box-sizing:border-box; width:auto; max-width:100%; min-height:46px;
    padding:7px 8px; font-size:14px; line-height:1.2; white-space:nowrap;
  }
  .flats_objects_item .button_flat_reservation a { font-size:inherit; white-space:nowrap; }
}

/* 2026-10-09: Лёгкий логотип обтекается заголовком первого экрана,
   поэтому на телефоне подпись остаётся читаемой и не перекрывается. */
.hero_content--stay-search .hero-corner-logo {
  float:right; display:block; width:clamp(62px, 5vw, 88px); height:auto;
  margin:0 0 5px 8px; background:#fff; object-fit:contain;
}
@media(max-width:650px) {
  .hero_content--stay-search .hero-corner-logo { width:clamp(56px, 14vw, 68px); margin:0 0 5px 9px; }
}
@media(max-width:360px) {
  .hero_content--stay-search .hero-corner-logo { margin-left:7px; }
}

/* 2026-10-09: Этаж показан отдельной спокойной меткой в углу карточки,
   а на широких экранах помещается четыре или пять квартир в строке. */
.flats_objects_item .flat_title_container { position:relative; box-sizing:border-box; width:100%; min-height:34px; padding:0 75px 0 8px; }
.flats_objects_item .flat_title { min-width:0; text-align:center; }
.flats_objects_item .flat-floor-badge { position:absolute; right:8px; top:50%; transform:translateY(-50%); padding:3px 6px; border:1px solid #d8e8dd; border-radius:6px; background:#f5faf6; color:#547968; font:600 12px/1.2 Arial,"Segoe UI",sans-serif; white-space:nowrap; }
@media (min-width:1400px) {
  .flats_objects_items { grid-template-columns:repeat(4,minmax(0,1fr)); margin-left:5vw; margin-right:5vw; }
  .flats_objects_item { min-width:0; margin-left:.5vw!important; margin-right:.5vw!important; }
  .flats_objects_item .swiper_flat { box-sizing:border-box; width:100%!important; height:auto!important; aspect-ratio:1.55; }
  .flats_objects_item .flat-custom-slide { width:100%!important; height:100%!important; }
  .flats_objects_item .flat-custom-slide img { width:100%!important; height:100%!important; max-width:none!important; max-height:none!important; object-fit:cover!important; }
  .flats_objects_item .flat-custom-pagination { top:-23px!important; }
  .flats_objects_item .flat_title { font-size:17px; line-height:1.3; }
  .flats_objects_item .flat_text { font-size:14px; line-height:1.45; }
  .flats_objects_item .flat_tag { font-size:13px; }
  .flats_objects_item > .flat_info { min-height:104px; padding:8px; gap:6px; }
  .flats_objects_item .flat_price_label { font-size:14px; }
  .flats_objects_item .flat_price strong { font-size:23px; }
  .flats_objects_item .button_flat_reservation { min-height:46px; padding:7px 8px; font-size:14px; }
}
@media (min-width:1900px) {
  .flats_objects_items { grid-template-columns:repeat(5,minmax(0,1fr)); margin-left:5vw; margin-right:5vw; }
}
#stay-search-results .stay-results__icon-field,
#stay-search-results .stay-results__dates { position:relative; }
#stay-search-results .stay-results__caption {
  position:absolute; z-index:1; top:10px; left:16px; color:#98a4ae;
  font:400 13px/1.2 Arial,"Segoe UI",sans-serif; white-space:nowrap; pointer-events:none;
}
#stay-search-results .stay-results__field,
#stay-search-results button.stay-results__field,
#stay-search-results .stay-results__guests {
  height:62px; min-height:62px; border:1px solid #dce4e9; border-radius:11px;
  background:#fff; color:#172b23;
  font:400 18px/1.2 Arial,"Segoe UI",sans-serif !important;
}
#stay-search-results select.stay-results__field {
  padding:24px 38px 7px 16px; background:#fff;
}
#stay-search-results button.stay-results__dates {
  display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end;
  padding:26px 38px 8px 16px; text-align:left;
}
#stay-search-results .stay-results__dates-full,
#stay-search-results .stay-results__dates-compact { max-width:100%; line-height:1.2; }
#stay-search-results .stay-results__field-icon {
  position:absolute; top:50%; right:14px; width:20px; height:20px;
  margin:0; transform:translateY(-50%); color:#9aa6b2;
}
/* 2026-10-05: Иконка календаря закреплена внутри поля дат поверх прежней flex-разметки. */
#stay-search-results .stay-results__dates .stay-results__field-icon {
  position:absolute; top:50%; right:14px; margin:0; transform:translateY(-50%);
}
#stay-search-results .stay-results__field-icon svg { width:20px; height:20px; }
#stay-search-results .stay-results__find {
  height:62px; min-height:62px; border-radius:11px !important;
  background:#168064 !important; color:#fff !important;
  font:700 18px/1.2 Arial,"Segoe UI",sans-serif !important;
}
@media(max-width:800px) {
  #stay-search-results .stay-results__controls {
    grid-template-areas:"city dates" "guests find";
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:650px) {
  #stay-search-results:not([hidden]) { padding:8px 10px 10px; margin-bottom:8px; }
  #stay-search-results .stay-results__controls { gap:7px; }
  #stay-search-results .stay-results__caption { top:8px; left:11px; font-size:11px; }
  #stay-search-results .stay-results__field,
  #stay-search-results button.stay-results__field,
  #stay-search-results .stay-results__guests {
    height:53px; min-height:53px; font-size:14px !important;
  }
  #stay-search-results select.stay-results__field { padding:22px 28px 6px 11px; }
  #stay-search-results button.stay-results__dates { padding:23px 27px 6px 11px; }
  #stay-search-results .stay-results__field-icon { right:8px; width:17px; height:17px; }
  #stay-search-results .stay-results__dates .stay-results__field-icon { right:8px; }
  #stay-search-results .stay-results__field-icon svg { width:17px; height:17px; }
  #stay-search-results .stay-results__find { height:53px; min-height:53px; font-size:15px !important; }
}

/* 2026-10-05: Повторный поиск достаточно крупный на экранах с разным масштабом и всегда складывается в два ряда на узкой ширине. */
#stay-search-results:not([hidden]) { padding:17px 20px 19px; }
#stay-search-results .stay-results__controls {
  grid-template-columns:minmax(220px,2.2fr) minmax(195px,1.25fr) minmax(170px,1.2fr) minmax(135px,.9fr);
  gap:10px;
}
#stay-search-results .stay-results__caption { top:11px; left:18px; font-size:14px; }
#stay-search-results .stay-results__field,
#stay-search-results button.stay-results__field,
#stay-search-results .stay-results__guests {
  height:74px; min-height:74px; font-size:20px !important;
}
#stay-search-results select.stay-results__field { padding:29px 44px 9px 18px; }
#stay-search-results button.stay-results__dates { padding:31px 44px 9px 18px; }
#stay-search-results .stay-results__find { height:74px; min-height:74px; font-size:20px !important; }
@media(max-width:1100px) {
  #stay-search-results .stay-results__controls {
    grid-template-areas:"city dates" "guests find";
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #stay-search-results .stay-results__location-field { grid-area:city; }
  #stay-search-results .stay-results__dates { grid-area:dates; }
  #stay-search-results .stay-results__guests-field { grid-area:guests; }
  #stay-search-results .stay-results__find { grid-area:find; }
}
@media(max-width:650px) {
  #stay-search-results:not([hidden]) { padding:10px 10px 12px; }
  #stay-search-results .stay-results__controls { gap:8px; }
  #stay-search-results .stay-results__caption { top:9px; left:12px; font-size:12px; }
  #stay-search-results .stay-results__field,
  #stay-search-results button.stay-results__field,
  #stay-search-results .stay-results__guests {
    height:61px; min-height:61px; font-size:16px !important;
  }
  #stay-search-results select.stay-results__field { padding:26px 32px 7px 12px; }
  #stay-search-results button.stay-results__dates { padding:27px 32px 7px 12px; }
  #stay-search-results .stay-results__find { height:61px; min-height:61px; font-size:17px !important; }
}

/* 2026-10-05: Плашка раскрывается высотой без смещения или прозрачности текста, чтобы шрифт не размывался при анимации. */
#stay-search-results:not([hidden]) {
  visibility:visible; max-height:240px; overflow:hidden; padding:0;
  opacity:1; transform:none;
  transition:max-height .28s ease,margin .28s ease,visibility 0s;
}
#stay-search-results .stay-results__controls {
  box-sizing:border-box; padding:17px 20px 19px;
}
#stay-search-results.is-hero-form-visible:not([hidden]) {
  visibility:hidden; max-height:0; margin-bottom:0; pointer-events:none;
  transition:max-height .28s ease,margin .28s ease,visibility 0s linear .28s;
}
@media(max-width:650px) {
  #stay-search-results .stay-results__controls { padding:10px 10px 12px; }
}
@media(prefers-reduced-motion:reduce) {
  #stay-search-results:not([hidden]) { transition:none; }
}

/* 2026-10-05: Календарь использует чёткий системный Arial без теней и трансформации всего окна; сегодня не выглядит выбранным. */
.stay-search__panel--initial {
  inset:0; width:min(760px,calc(100vw - 24px)); height:fit-content;
  margin:auto; transform:none; text-rendering:auto; -webkit-font-smoothing:auto;
}
.stay-search__panel--initial,
.stay-search__panel--initial * {
  font-family:Arial,"Segoe UI",sans-serif !important;
  text-shadow:none; -webkit-font-smoothing:auto; text-rendering:auto;
}
.stay-search__panel--initial .stay-search__month-tabs button { font-size:15px; }
.stay-search__panel--initial .stay-search__weekdays span { font-size:13px; }
.stay-search__panel--initial .stay-search__day-number { font-size:17px; }
.stay-search__panel--initial .stay-search__day-price { font-size:13px; font-weight:500; }
.stay-search__panel--initial .stay-search__day--today:not(.stay-search__day--start):not(.stay-search__day--end):not(.stay-search__day--preview-start):not(.stay-search__day--preview-end) { border-color:transparent; }
/* 2026-10-05: Наведённый выезд остаётся светлым до клика, чтобы его не спутать с выбранной датой. */
.stay-search__panel--initial .stay-search__day--preview-end:not(.stay-search__day--end),
.stay-search__panel--initial .stay-search__day--preview-end:not(.stay-search__day--end):hover:not(:disabled) {
  border-color:#85b899; background:#eaf4ee; box-shadow:none;
}
.stay-search__panel--initial .stay-search__day--preview-end:not(.stay-search__day--end) .stay-search__day-number { color:#173e30; }

/* 2026-10-05: Названия квартир ведут на персональные страницы и показывают действие при наведении. */
.flat-title-link{color:inherit;text-decoration:none}
.flat-title-link:hover,.flat-title-link:focus-visible{color:#176e55;text-decoration:underline;text-underline-offset:3px}
/* 2026-10-05: В карточках цена и кнопка выравниваются по центру одного ряда, статус занимает одинаковое место снизу. */
.flats_objects_item > .flat_info {
  box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1fr) auto;
  align-items:center; justify-content:space-between; gap:clamp(8px,1vw,16px);
  width:100%; min-height:124px; margin-top:auto !important;
  padding:10px clamp(8px,1vw,16px);
}
.flats_objects_item .flat_price { margin:0; line-height:1.25; }
.flats_objects_item .flat_price_label { font-size:clamp(18px,1.3vw,20px); line-height:1.25; }
.flats_objects_item .flat_price strong { font-size:clamp(26px,1.9vw,30px); }
.flats_objects_item .button_flat_reservation {
  box-sizing:border-box; width:auto; max-width:none; min-height:60px;
  padding:10px clamp(8px,.85vw,13px); font-size:clamp(19px,1.5vw,22px);
  line-height:1.2; white-space:nowrap;
}
.flats_objects_item > .flat_status_container {
  box-sizing:border-box; width:100%; min-height:45px; margin:6px 0 0;
  padding:0 8px 8px; align-items:center;
}
@media(max-width:650px) {
  /* 2026-10-05: Цена и кнопка отступают дальше от краёв мобильной карточки. */
  .flats_objects_item > .flat_info { min-height:112px; padding:8px 18px; gap:8px; }
  .flats_objects_item .flat_price_label { font-size:17px; }
  .flats_objects_item .flat_price strong { font-size:26px; }
  .flats_objects_item .button_flat_reservation {
    min-height:54px; padding:8px 10px; font-size:19px; white-space:normal;
  }
}
/* 2026-10-05: На телефоне даты, цена и бронирование стоят в одном ряду, уменьшаясь в пределах своих колонок. */
@media(max-width:420px) {
  .flats_objects_item > .flat_info {
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    gap:8px; min-height:94px; padding:10px 18px;
  }
  .flats_objects_item .flat_prices,
  .flats_objects_item .flat_reservation { min-width:0; }
  .flats_objects_item .flat_price_label { font-size:clamp(14px,3.7vw,17px); line-height:1.2; }
  .flats_objects_item .flat_price strong { font-size:clamp(22px,6vw,27px); white-space:nowrap; }
  .flats_objects_item .flat_reservation,
  .flats_objects_item .button_flat_reservation { width:100%; max-width:100%; }
  .flats_objects_item .button_flat_reservation {
    min-height:48px; padding:7px 5px; font-size:clamp(14px,4vw,17px); white-space:nowrap;
  }
  .flats_objects_item .button_flat_reservation a { min-width:0; font-size:inherit; white-space:nowrap; }
}
@media(max-width:360px) {
  .flats_objects_item > .flat_info { gap:5px; padding:8px 14px; }
  .flats_objects_item .flat_price_label { font-size:13px; }
  .flats_objects_item .flat_price strong { font-size:21px; }
  .flats_objects_item .button_flat_reservation { font-size:13px; padding-inline:3px; }
}

/* 2026-10-05: Оба календаря используют крупный чёткий Arial без CSS-сглаживания, теней и сжатого межбуквенного интервала. */
.stay-search__panel,
.stay-search__panel * {
  font-family:Arial,"Segoe UI",sans-serif !important;
  -webkit-font-smoothing:none; text-rendering:optimizeSpeed;
  text-shadow:none; letter-spacing:normal;
}
.stay-search__panel { transform:none; }
.stay-search__panel .stay-search__panel-header h2 { font-size:26px; }
.stay-search__panel .stay-search__month-tabs button { font-size:16px; }
.stay-search__panel .stay-search__calendar-nav strong,
.stay-search__panel .stay-search__month-title { font-size:21px; }
.stay-search__panel .stay-search__weekdays span { font-size:15px; }
.stay-search__panel .stay-search__day-number { font-size:18px; }
.stay-search__panel .stay-search__day-price,
.stay-search__panel .stay-search__day--unavailable .stay-search__day-price {
  font-size:15px; font-weight:600; letter-spacing:normal;
}
.stay-search__panel .stay-search__selected,
.stay-search__panel .stay-search__panel-footer span { font-size:17px; }
@media(max-width:650px) {
  .stay-search__panel .stay-search__month-tabs button { font-size:14px; }
  .stay-search__panel .stay-search__weekdays span { font-size:14px; }
  .stay-search__panel .stay-search__day-number { font-size:18px; }
  .stay-search__panel .stay-search__day-price,
  .stay-search__panel .stay-search__day--unavailable .stay-search__day-price { font-size:13px; }
  .stay-search__panel .stay-search__day-price--amount span { font-size:13px; }
  .stay-search__panel .stay-search__day-price--amount strong { font-size:15px; }
  /* 2026-10-05: В календаре с ценами текущий месяц уже указан в навигации и не дублируется перед днями. */
  .stay-search__panel:not(.stay-search__panel--initial) .stay-search__month:first-child .stay-search__month-title { display:none; }
}

/* 2026-10-05: Смена дат выделена тёплым фирменным цветом и читается как полноценное действие рядом с предоплатой. */
.site-booking-actions .site-booking-change-dates {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:54px; border:2px solid #d7a94d; border-radius:10px;
  background:linear-gradient(180deg,#fff0c7,#f6d78e);
  box-shadow:0 4px 12px rgba(119,83,19,.2); color:#234a3c;
  font:700 clamp(16px,1.25vw,18px)/1.2 Arial,"Segoe UI",sans-serif;
}
.site-booking-actions .site-booking-change-dates svg { flex:none; width:20px; height:20px; }
.site-booking-actions .site-booking-change-dates:hover,
.site-booking-actions .site-booking-change-dates:focus-visible {
  border-color:#be8b2e; background:linear-gradient(180deg,#ffe7ac,#eac46e);
  color:#173c2d; outline:2px solid #387e60; outline-offset:2px;
}
@media(max-width:650px) {
  .site-booking-actions .site-booking-change-dates { font-size:17px; }
}
/* 2026-10-05: Обе кнопки оформления брони используют одинаковый размер и начертание текста. */
.site-booking-actions .site-booking-change-dates,
.site-booking-actions .site-booking-pay {
  font:700 clamp(16px,1.25vw,18px)/1.2 Arial,"Segoe UI",sans-serif;
}

/* 2026-10-05: Плашка совпадает с краями фотографии и раскрывается из-под неё изменением высоты без сдвига или прозрачности текста. */
.container_hero_window { position:relative; z-index:36; }
#stay-search-results:not([hidden]) {
  width:98vw; margin:-8px 0 12px calc(50% - 49vw);
  max-height:260px; opacity:1; transform:none; filter:none;
  -webkit-font-smoothing:auto; text-rendering:auto;
  transition:max-height .3s ease, margin-bottom .3s ease;
}
#stay-search-results.is-hero-form-visible:not([hidden]) {
  max-height:0; margin-bottom:0;
  transition:max-height .3s ease, margin-bottom .3s ease, visibility 0s linear .3s;
}
#stay-search-results .stay-results__controls {
  padding:19px clamp(22px,2.7vw,38px) 21px;
  transform:none; filter:none; -webkit-font-smoothing:auto; text-rendering:auto;
}
#stay-search-results .stay-results__caption {
  color:#637b70; font-weight:600;
}
#stay-search-results .stay-results__dates-medium { display:none; }
#stay-search-results .stay-results__field,
#stay-search-results button.stay-results__field,
#stay-search-results .stay-results__guests {
  border-color:#a9c1b3;
}
@media(min-width:1101px) {
  #stay-search-results .stay-results__controls {
    grid-template-columns:minmax(200px,1.7fr) minmax(315px,1.5fr) minmax(160px,.9fr) minmax(185px,.8fr);
  }
  #stay-search-results .stay-results__find { font-size:18px !important; white-space:nowrap; }
}
@media(min-width:801px) and (max-width:1100px) {
  #stay-search-results .stay-results__controls {
    grid-template-areas:none;
    grid-template-columns:minmax(180px,1.7fr) minmax(205px,1.4fr) minmax(130px,.9fr) minmax(155px,.8fr);
    gap:8px; padding:15px 18px 17px;
  }
  #stay-search-results .stay-results__location-field,
  #stay-search-results .stay-results__dates,
  #stay-search-results .stay-results__guests-field,
  #stay-search-results .stay-results__find { grid-area:auto; }
  #stay-search-results .stay-results__field,
  #stay-search-results button.stay-results__field,
  #stay-search-results .stay-results__guests,
  #stay-search-results .stay-results__find { height:64px; min-height:64px; font-size:17px !important; }
  #stay-search-results .stay-results__caption { font-size:13px; }
  #stay-search-results .stay-results__dates-full { display:none; }
  #stay-search-results .stay-results__dates-medium {
    display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis;
  }
  #stay-search-results select.stay-results__field { padding-top:25px; }
  #stay-search-results button.stay-results__dates { padding-top:25px; }
  #stay-search-results .stay-results__find { white-space:nowrap; }
}
@media(max-width:650px) {
  #stay-search-results .stay-results__controls { padding:10px 12px 12px; }
}
@media(prefers-reduced-motion:reduce) {
  #stay-search-results:not([hidden]),
  #stay-search-results.is-hero-form-visible:not([hidden]) { transition:none; }
}

/* 2026-10-05: В настольной форме период проживания выделен крупной тёмной подписью. */
@media(min-width:801px) {
  .site-booking-heading { grid-template-rows:auto auto auto; gap:0 16px; }
  .site-booking-heading > div { display:contents; }
  .site-booking-eyebrow { grid-column:1; grid-row:1; }
  .site-booking-heading h2 { grid-column:1; grid-row:2; margin:8px 0 10px; }
  .site-booking-heading img { grid-column:2; grid-row:1 / span 2; }
  .site-booking-dialog #site-booking-period { gap:7px; }
  .site-booking-dialog #site-booking-period { grid-column:1 / -1; grid-row:3; }
  .site-booking-dialog #site-booking-date-range {
    padding:5px 8px; border-radius:8px; background:#e9f4ed;
    color:#174b36; font:700 21px/1.25 Arial,"Segoe UI",sans-serif;
  }
}

/* 2026-10-05: Соседние периоды бронирования показаны горизонтальной лентой с ценой и выделением выбранных дат. */
.site-booking-alternatives[hidden] { display:none; }
.site-booking-alternatives { min-width:0; padding-top:14px; border-top:1px solid #dce9e1; }
.site-booking-alternatives h3 { margin:0 0 3px; color:#1b4837; font:700 18px/1.3 Arial,"Segoe UI",sans-serif; }
.site-booking-alternatives__row { display:grid; grid-template-columns:32px minmax(0,1fr) 32px; align-items:center; gap:6px; min-width:0; }
.site-booking-alternatives__arrow {
  width:32px; height:38px; padding:0; border:0; border-radius:9px;
  background:#e7f2ec; color:#17674d; font:700 30px/1 Arial,"Segoe UI",sans-serif; cursor:pointer;
}
.site-booking-alternatives__arrow:disabled { opacity:.35; cursor:default; }
.site-booking-alternatives__track {
  display:flex; gap:9px; min-width:0; overflow-x:auto; overflow-y:hidden;
  padding:13px 1px 4px; scroll-snap-type:x mandatory; scrollbar-width:none;
}
.site-booking-alternatives__track::-webkit-scrollbar { display:none; }
.site-booking-alternatives__date {
  position:relative; display:flex; flex:0 0 145px; flex-direction:column; align-items:flex-start;
  justify-content:center; gap:3px; min-width:0; min-height:88px; padding:10px 11px;
  border:1px solid #bbd4c5; border-radius:12px; background:#fff; color:#254c3e;
  font:400 13px/1.2 Arial,"Segoe UI",sans-serif; text-align:left; cursor:pointer; scroll-snap-align:start;
}
.site-booking-alternatives__date:hover:not(:disabled),
.site-booking-alternatives__date:focus-visible { border-color:#388a69; background:#f2f9f4; outline:2px solid #87c1a2; outline-offset:1px; }
.site-booking-alternatives__date.is-current {
  border:2px solid #20694d; background:#edf7f1; color:#173e30; opacity:1; cursor:default;
}
.site-booking-alternatives__date:disabled:not(.is-current) { color:#8a9c92; opacity:.72; cursor:default; }
.site-booking-alternatives__weekday { color:#6a8678; }
.site-booking-alternatives__range { font-size:14px; white-space:nowrap; }
.site-booking-alternatives__price { margin-top:3px; font-size:15px; white-space:nowrap; }
.site-booking-alternatives__badge {
  position:absolute; top:-11px; left:9px; padding:2px 7px; border-radius:6px;
  background:#20694d; color:#fff; font:700 11px/1.2 Arial,"Segoe UI",sans-serif;
}
@media(max-width:650px) {
  .site-booking-actions { order:1; }
  .site-booking-alternatives { order:2; }
  .site-booking-fields { order:3; }
  .site-booking-error { order:4; }
  .site-booking-alternatives__date { flex-basis:133px; }
}

/* 2026-10-05: Под фотографией поиск продолжает её ширину со скруглённым низом; у верхнего края становится полноширинным и тёпло-жёлтым. */
#stay-search-results:not([hidden]) {
  box-sizing:border-box;
  max-width:none;
  width:var(--stay-hero-width, calc(100vw - 32px));
  margin-left:var(--stay-hero-offset, 0px);
  margin-right:0;
  border-radius:0 0 18px 18px;
}
#stay-search-results.is-pinned:not([hidden]) {
  top:0;
  width:var(--stay-viewport-width, 100%);
  margin-top:0;
  margin-left:var(--stay-viewport-offset, 0px);
  border-radius:0;
  border-bottom:2px solid #d7a94d;
  background:#ffe5aa;
}
/* 2026-10-05: Пульсация рекламной плашки работает при наведении на любой ширине. */
.otzyvy_container:hover { animation: pulse 1.5s infinite; transform-origin: center; }

/* 2026-10-05: Поделиться — полноценное действие в строке заголовка, даты остаются отдельной строкой. */
.site-booking-heading .site-booking-topline { display:flex; align-items:center; gap:8px; min-width:0; grid-column:1; grid-row:1; }
.site-booking-heading .site-booking-eyebrow { grid-column:auto; grid-row:auto; min-width:0; flex:1; }
#site-booking-share { flex:none; display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:31px; padding:5px 9px; border:1px solid #b9d9c8; border-radius:999px; background:#edf7f0; color:#17684e; font:700 12px/1.1 Arial,"Segoe UI",sans-serif; white-space:nowrap; cursor:pointer; }
#site-booking-share[hidden] { display:none; }
#site-booking-share svg { display:block; width:16px; height:16px; }
#site-booking-share:hover, #site-booking-share:focus-visible { border-color:#6fae8c; background:#def0e4; }
@media(max-width:440px) {
  .site-booking-heading .site-booking-topline { grid-column:1 / -1; grid-row:1; }
  .site-booking-heading img { grid-row:2; }
  .site-booking-heading h2 { grid-row:2; }
}
@media(max-width:350px) { #site-booking-share span { display:none; } #site-booking-share { width:33px; padding:5px; } }

/* 2026-10-09: Отступ слева резервирует место кнопке подборки после общих стилей select. */
#stay-search-results .stay-results__location-field select.stay-results__location { padding-left:60px; }
#stay-search-results .stay-results__location-field .stay-results__caption { left:60px; }

/* 2026-10-10: В сетке из четырёх и пяти карточек цена и кнопка стоят
   в одном ряду; кнопка получает ограниченную ширину и не перекрывает сумму. */
@media (min-width:1400px) {
  .flats_objects_item > .flat_info {
    grid-template-columns:minmax(0,1fr) minmax(0,46%);
    align-items:center;
    gap:7px;
    min-height:86px;
    padding:10px 12px;
  }
  .flats_objects_item .flat_prices,
  .flats_objects_item .flat_reservation { min-width:0; width:100%; }
  .flats_objects_item .flat_price { display:block; }
  .flats_objects_item .flat_price_label { display:block; font-size:13px; line-height:1.15; }
  .flats_objects_item .flat_price strong { display:block; font-size:23px; white-space:nowrap; }
  .flats_objects_item .button_flat_reservation {
    width:100%; max-width:100%; min-height:46px; padding:7px 5px;
    font-size:clamp(13px,.9vw,15px); white-space:nowrap;
  }
  .flats_objects_item .button_flat_reservation a { width:100%; font-size:inherit; }
}

/* 2026-10-12: На телефонах город читается целиком, а фото показывают компактный счётчик вместо россыпи точек. */
@media (max-width: 1100px) {
  #stay-search-results .stay-results__controls {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  }
  #stay-search-results .stay-results__share {
    left: 7px; width: 34px; height: 34px;
  }
  #stay-search-results .stay-results__location-field select.stay-results__location {
    padding-left: 50px; padding-right: 26px;
    font-size: clamp(14px, 1.8vw, 18px) !important;
  }
  #stay-search-results .stay-results__location-field .stay-results__caption { left: 50px; }
}
@media (max-width: 360px) {
  #stay-search-results .stay-results__controls {
    grid-template-areas: "city city" "dates dates" "guests find";
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* 2026-10-13: Удалено оформление счётчика; исходную полосу точек рисует style2.css версии r123. */
/* 2026-10-12: Резервная оценка тоже не перекрывает мобильные карточки. */
@media (max-width: 1100px) {
  .home-reviews-fallback { display: none !important; }
}
/* 2026-10-13: Исходные точки и зелёный активный индикатор остаются внутри фотографии при адаптивной высоте. */
.flats_objects_item .swiper_flat { position:relative; }
.flats_objects_item .flat-custom-pagination {
  position:absolute!important; top:auto!important; left:0!important; right:0!important;
  bottom:10px!important; width:100%!important; padding:0; background:transparent;
  border-radius:0; text-align:left; white-space:normal; overflow:hidden; box-sizing:border-box; padding:0 6px;
  display:flex; flex-wrap:wrap; align-items:center; align-content:center; row-gap:4px;
}
@media (min-width:1400px) {
  .flats_objects_item .swiper_flat > .swiper-wrapper { position:absolute; inset:0; height:100%; padding:0; box-sizing:border-box; }
}
.flats_objects_item .flat-custom-pagination .flat-custom-bullet { flex:0 0 auto; }

/* 2026-10-13: Полоса занимает не больше двух строк; размер точек подбирается по фактической ширине. */
.flats_objects_item .flat-custom-pagination .flat-custom-bullet {
  width:var(--flat-dot-size,var(--flat-base-dot-size,.5vw)); height:var(--flat-dot-size,var(--flat-base-dot-size,.5vw)); margin:0 var(--flat-dot-margin,.2vw);
  /* 2026-10-14: Пересчёт читает конечные размеры, а не промежуточную ширину бывшей активной полосы. */
  transition:background-color .3s ease,border-color .3s ease;
}
.flats_objects_item .flat-custom-pagination .flat-custom-bullet-active {
  width:var(--flat-active-dot-width,var(--flat-base-active-width,3vw));
}
/* 2026-10-13: Нативный select занимает всё поле гостей, включая подпись и свободное место. */
.stay-search__guests { position:relative; min-height:60px; padding:0; cursor:pointer; }
.stay-search__guests .stay-search__label { position:absolute; z-index:1; top:10px; left:12px; pointer-events:none; }
.stay-search__guests select { position:absolute; inset:0; width:100%; height:100%; padding:25px 34px 8px 12px; border-radius:13px; cursor:pointer; }
@media(max-width:768px) {
  .flats_objects_item .flat-custom-pagination { --flat-base-dot-size:2vw; --flat-base-active-width:12vw; }
}

/* 2026-10-14: Даты стоят над расчётом; сумма и бронирование занимают один общий ряд на любой ширине. */
.flats_objects_item > .flat_info {
  grid-template-rows:max-content max-content;
  align-content:center;
  align-items:center;
  row-gap:4px;
  padding-block:1px;
}
.flats_objects_item .flat_prices,
.flats_objects_item .flat_price { display:contents; }
.flats_objects_item .flat_price > br { display:none; }
.flats_objects_item .flat_price_label {
  grid-column:1 / -1; grid-row:1;
  justify-self:start; max-width:calc(50% - 22px);
  font-size:14px; line-height:1.2; white-space:pre-line;
}
.flats_objects_item .flat_price strong { grid-column:1; grid-row:2; white-space:nowrap; }
.flats_objects_item .flat_reservation { grid-column:2; grid-row:2; }
@media(min-width:769px) {
  .flats_objects_item > .flat_info { grid-template-columns:minmax(0,1fr) minmax(0,46%); padding-inline:12px; column-gap:8px; }
  .flats_objects_item .flat_price strong { font-size:23px; }
  .flats_objects_item .button_flat_reservation { width:100%; min-height:46px; padding:7px 8px; font-size:14px; white-space:nowrap; }
  .flats_objects_item .button_flat_reservation a { width:100%; font-size:inherit; }
}
