/* Единая карточка ячейки (box-card): вёрстка карточки, блока брони и календаря.
   Переиспользуется всеми местами вывода ячеек новой версии (см. row.php). */

@font-face {
	font-family: "RobotoDetailBold";
	src: url("/local/templates/prokladovki/assets/fonts/Roboto-Bold.woff") format("woff");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "RobotoDetailItalic";
	src: url("/local/templates/prokladovki/assets/fonts/Roboto-Italic-Variable.ttf") format("truetype");
	font-weight: 100 900;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "HelveticaNeueDetailMedium";
	src: url("/local/templates/prokladovki/assets/fonts/HelveticaNeueMedium.woff") format("woff");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

#js-detail-catalog{
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
	font-weight: 400;
}

.catalog-filter {
	position: relative;
}
.catalog-filter__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-width: 150px;
	width: 100%;
	padding: 12px 16px;
	background: #fff;
	border: 1px solid #e3e6ea;
	border-radius: 10px;
	color: #2e2f33;
	font-size: 15px;
	cursor: pointer;
}
.catalog-filter[data-value=""] .catalog-filter__toggle {
	color: #969696;
}
.catalog-filter__toggle::after {
	content: "";
	width: 9px;
	height: 9px;
	border-right: 1.6px solid #9aa3ad;
	border-bottom: 1.6px solid #9aa3ad;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .2s;
}
.catalog-filter.is-open .catalog-filter__toggle::after {
	transform: rotate(-135deg) translateY(-2px);
}
.catalog-filter__menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 100%;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: rgba(243, 243, 246, 1);
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0,0,0,.12);
	z-index: 20;
	display: none;
	white-space: nowrap;
}
.catalog-filter.is-open .catalog-filter__menu {
	display: block;
}
.catalog-filter__menu li {
	padding: 10px 14px;
	border-radius: 8px;
	cursor: pointer;
	font-size: 15px;
}
.catalog-filter__menu li:hover,
.catalog-filter__menu li.is-active {
	background: #f4f5f7;
}

/* Список ячеек */
.boxes-test__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.box-row {
	position: relative;
	display: grid;
	grid-template-columns: 180px minmax(220px, 1.1fr) minmax(300px, 1.5fr) minmax(200px, 0.85fr);
	gap: 20px;
	align-items: stretch;
	padding: 14px 24px;
	background: #fff;
	border: 1px solid #eceef1;
	border-radius: 16px;
	box-shadow: 0 2px 10px 1px rgba(0, 0, 0, 0.08);
}
.box-row__media img {
	width: 100%;
	max-width: 130px;
	height: auto;
	border-radius: 10px;
}

.box-row__badge {
	position: absolute;
	top: -18px;
	left: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	padding: 9px 18px;
	background: #54b8f0;
	color: #fff;
	font-family: "RobotoDetailItalic", "Roboto", Arial, sans-serif;
	font-size: 20px;
	font-weight: 700;
	font-style: italic;
	line-height: 100%;
	letter-spacing: -0.02em;
	vertical-align: middle;
	text-transform: uppercase;
	white-space: nowrap;
	border-radius: 8px;
}
.box-row__area {
	font-family: var(--font-RobotoCondensed);
	font-size: 30px;
	font-weight: 900;
	line-height: 1.1;
	text-transform: uppercase;
	margin-bottom: 4px;
}
.box-row__category {
	font-family: var(--font-RobotoCondensed);
	font-size: 30px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
	color: #707070;
	margin-bottom: 10px;
}

.box-row__main,
.box-row__features {
	display: flex;
	flex-direction: column;
}
.box-row__features {
	padding-right: 12px;
	padding-left: 12px;
}
.box-row__params {
	display: flex;
	flex-direction: column;
	margin-top: auto;
}
.box-row__param {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 5px 0;
	font-size: 15px;
}
.box-row__param + .box-row__param {
	border-top: 1px solid #eceef1;
}
.box-row__param-name {
	color: #2e2f33;
	font-family: var(--font-HelveticaNeue);
	font-size: 14px;
	font-weight: 400;
	line-height: 140%;
	white-space: nowrap;
}
.box-row__param-value {
	color: #2e2f33;
	font-family: "HelveticaNeueDetailMedium", "HelveticaNeue", Arial, sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 140%;
	text-align: right;
}

.box-row__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
}
.box-row__chip {
	padding: 4px 10px;
	background: #f4f5f7;
	border-radius: 8px;
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
	font-size: 16px;
	font-weight: 400;
	line-height: 130%;
	letter-spacing: 0;
	color: #707070;
}
.box-row__chip--deposit {
	background: #fff1ed;
	color: #eb8258;
}

.box-row__buy {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
/* Период тянем на всю ширину блока покупки, как кнопку «Забронировать»:
   снимаем max-width из общих стилей .catalog-filter каталога */
.box-row__buy .box-row__period {
	width: 100%;
	max-width: none;
	/* снимаем flex: 1 1 0 из стилей каталога - иначе контейнер растягивается по высоте карточки
	   и выпадающий список (top: 100%) уезжает далеко вниз от кнопки */
	flex: 0 0 auto;
}
.box-row__period .catalog-filter__toggle {
	color: #2e2f33 !important;
	font-weight: 400;
}
.box-row__price-block {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}
.box-row__price-label {
	color: #707070;
	font-family: var(--font-HelveticaNeue);
	font-size: 18px;
	font-weight: 400;
	line-height: 130%;
	letter-spacing: 0;
}
.box-row__price-wrap {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
}
.box-row__deposit {
	position: relative;
	display: flex;
	align-items: center;
	gap: 4px;
	margin-top: 2px;
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
	font-size: 16px;
	font-weight: 400;
	line-height: 130%;
	letter-spacing: 0;
	font-style: normal;
	color: #707070;
}
.box-row__deposit > span:nth-child(2) {
	white-space: nowrap;
}
.box-row__deposit-help {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #b5b5b5;
	cursor: help;
}
.box-row__deposit-icon {
	display: block;
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
}
.box-row__deposit-help:focus-visible {
	outline: 2px solid #54b8f0;
	outline-offset: 2px;
	border-radius: 50%;
}
.box-row__deposit-tooltip {
	position: absolute;
	right: 0;
	bottom: calc(100% + 10px);
	z-index: 5;
	box-sizing: border-box;
	width: min(350px, calc(100vw - 32px));
	max-width: calc(100vw - 32px);
	padding: 12px 52px;
	border-radius: 14px;
	background: #2e2f33;
	box-shadow: 0 8px 20px rgba(46, 47, 51, 0.18);
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
	font-size: 16px;
	font-weight: 400;
	line-height: 130%;
	letter-spacing: 0;
	font-style: normal;
	text-align: center;
	color: #fff;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(4px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.box-row__deposit-tooltip::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 100%;
	width: 0;
	height: 0;
	border-top: 8px solid #2e2f33;
	border-right: 7px solid transparent;
	border-left: 7px solid transparent;
}
.box-row__deposit:hover .box-row__deposit-tooltip,
.box-row__deposit:focus-within .box-row__deposit-tooltip,
.box-row__deposit.is-open .box-row__deposit-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.box-row__price {
	font-family: var(--font-RobotoCondensed, "Roboto_Condensed", sans-serif);
	font-size: 30px;
	font-weight: 900;
	line-height: 100%;
	letter-spacing: -0.02em;
	text-align: right;
	text-transform: uppercase;
	color: #2e2f33;
}
/* Старая (зачёркнутая) цена рядом со скидочной */
.box-row__price-old {
	font-family: var(--font-RobotoCondensed, "Roboto_Condensed", sans-serif);
	font-size: 30px;
	font-weight: 900;
	line-height: 100%;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	text-decoration: line-through;
	color: var(--gray-middle);
}
.box-row__price-old[hidden] {
	display: none;
}
.box-row__sale-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 8px;
	background: #54b8f0;
	color: #fff;
	font-family: var(--font-HelveticaNeue);
	font-size: 12px;
	font-weight: 400;
	line-height: 120%;
	border-radius: 8px;
	white-space: nowrap;
}
.box-row__sale-badge[hidden] {
	display: none;
}

.box-row__period .catalog-filter__toggle [data-period-badge] {
	margin-right: auto;
}
.box-row__period .catalog-filter__menu li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.box-row__period .catalog-filter__menu,
.boxes-test__filter .catalog-filter__menu {
	background: #fff;
}
.box-row__period .catalog-filter__menu li.is-active,
.boxes-test__filter .catalog-filter__menu li.is-active {
	background: transparent;
}
.box-row__period .catalog-filter__menu li:hover,
.boxes-test__filter .catalog-filter__menu li:hover {
	background: #f4f5f7;
}
.box-row__submit {
	width: 100%;
	/* фиксируем высоту, чтобы при замене текста на стрелку (загрузка) кнопка не ужималась */
	min-height: 36px;
	/* прижимаем кнопку к низу блока покупки - раньше её опускало растянутое поле периода */
	margin-top: auto;
}

/* Сданная ячейка: изображение приглушаем и накладываем штамп */
.box-row_sold .box-row__media {
	position: relative;
	align-self: start;
	width: 130px;
	height: 130px;
}
.box-row_sold .box-row__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	opacity: 0.45;
}
.box-row__stamp {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 1;
	padding: 6px 12px;
	border-radius: 8px;
	background: #707070;
	font-family: var(--font-primary, Arial, sans-serif);
	font-size: 20px;
	font-style: italic;
	font-weight: 900;
	line-height: 100%;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	color: #fff;
	transform: translate(-50%, -50%) rotate(-31.28deg);
}

.boxes-test__empty {
	color: #8b9096;
	letter-spacing: 0;
}

.box-row > .booking {
	grid-column: 1 / -1;
	margin: 20px -14px -4px -14px;
	padding: 24px;
	background: #f4f5f7;
	border-radius: 10px;
}
.booking__inner {
	display: grid;
	grid-template-columns: 1fr minmax(300px, 360px);
	gap: 32px;
	/* колонки одной высоты: кнопка прижимается к низу и встаёт в ряд с инпутами */
	align-items: stretch;
}
.booking__title {
	font-family: "RobotoDetailBold", Arial, sans-serif;
	font-size: 22px;
	font-weight: 700;
	margin-bottom: 20px;
}
.booking__legal {
	margin: -4px 0 20px;
	color: #707070;
}
.booking__legal-text {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 140%;
}
.booking__legal-text strong {
	color: #2e2f33;
}

.booking__deposit {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.35;
	color: #6f5b3e;
}

.booking__deposit {
	margin: 0 0 12px;
}
.booking__help {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #2e2f33;
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
	font-size: 15px;
	font-weight: 600;
	line-height: 140%;
	cursor: pointer;
}
.booking__help:hover {
	color: #eb8258;
}
.booking__help-icon {
	flex: 0 0 auto;
}
/* три обязательных поля брони: дата, телефон, почта */
/* подписи занимают разное число строк, поэтому колонки равняем по низу - инпуты стоят в одну линию */
.booking__fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	align-items: end;
}
.booking__label {
	display: block;
	margin-bottom: 8px;
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
	font-size: 16px;
	font-weight: 700;
	line-height: 130%;
	letter-spacing: 0;
}
.booking__input {
	width: 100%;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid #e3e6ea;
	border-radius: 10px;
	font-size: 15px;
}
.booking__input::placeholder {
	font-size: 16px;
	font-weight: 300;
	line-height: 140%;
	letter-spacing: 0;
	color: var(--gray-middle);
}
.booking__date,
.booking__control {
	position: relative;
	display: flex;
	align-items: center;
}
.booking__date-icon {
	position: absolute;
	right: 14px;
	width: 18px;
	height: 18px;
	pointer-events: none;
}
.booking__date-icon .icon {
	width: 18px;
	height: 18px;
	stroke: #9aa3ad;
	fill: transparent;
}
.booking__control .booking__input {
	background: #fff !important;
}
/* readonly-контакт у авторизованного - серый, как плейсхолдер */
.booking__control .booking__input[readonly] {
	color: var(--gray-middle);
}
.booking__date .booking__input {
	padding-right: 42px;
	cursor: pointer;
	background: #fff !important;
}
.booking__right {
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-items: flex-end;
	align-self: stretch;
}
.booking__offers {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	width: 100%;
}
.booking__offer {
	font-size: 15px;
}
.booking__offer.basket-offer {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: var(--font-HelveticaNeue);
	line-height: 140%;
	color: var(--black-light);
}
.booking__offer .basket-offer__input {
	width: 1px;
	height: 1px;
}
.booking__offer .basket-offer__checkbox {
	flex: 0 0 20px;
	width: 20px !important;
	height: 20px !important;
}
.booking__offer .basket-offer__checkbox::before {
	width: 20px !important;
	height: 20px !important;
	border-radius: 4px !important;
	background-size: 16px 16px !important;
	background-color: #fff !important;
}
.booking__offer .basket-offer__input:checked + .basket-offer__checkbox::before {
	background-color: var(--blue-middle) !important;
}
.booking__offer .basket-offer__label {
	margin: 0;
	cursor: pointer;
}
.booking__offer-link {
	font-weight: 700;
	text-decoration: underline;
}
/* единая кнопка перехода к подтверждению и оплате */
.booking__continue.btn {
	margin-top: auto;
	width: 100%;
	padding: 16px 24px;
	background: rgba(235, 130, 88, 1);
	color: #fff;
	font-size: 16px;
	font-weight: 500;
	border: none;
	border-radius: 10px;
	white-space: nowrap;
}
.booking__continue.btn:hover {
	background: #e86a3d;
}
.booking__continue.btn:disabled,
.booking__continue.btn:disabled:hover {
	background: #f4f4f5;
	color: #c2c2c2;
	border: 1px solid #e3e6ea;
	cursor: not-allowed;
}
/* подпись-блокировка продления под кнопкой (ЛК, снятая с сайта ячейка) */
.booking__locked-note {
	width: 100%;
	margin: 0;
	font-size: 13px;
	line-height: 1.3;
	text-align: center;
	color: #e8542f;
}
.booking__error {
	display: block;
	margin-top: 8px;
	color: #e8542f;
	font-size: 14px;
	white-space: nowrap;
}
/* Информационная модалка только для карточек онлайн-брони. На мобильном — нижний лист. */
.booking-how-modal {
	box-sizing: border-box;
	width: min(700px, calc(100vw - 32px));
	max-height: min(760px, calc(100vh - 48px));
	padding: 36px 40px 32px;
	overflow: hidden;
}
/* Fancybox добавляет собственный close внутрь inline-контента; у этой modal
   уже есть кнопка закрытия из макета. */
.booking-how-modal > .f-button[data-fancybox-close] {
	display: none;
}
.booking-how-modal__inner {
	display: flex;
	flex-direction: column;
	min-height: 0;
	max-height: calc(100vh - 120px);
}
.booking-how-modal__close {
	position: absolute;
	top: 20px;
	right: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #707070;
	cursor: pointer;
}
.booking-how-modal__close:hover {
	color: #2e2f33;
}
.booking-how-modal__title {
	margin: 0 48px 24px 0;
	font-family: "RobotoDetailBold", Arial, sans-serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 115%;
	color: #2e2f33;
}
.booking-how-modal__text {
	min-height: 0;
	overflow-y: auto;
	padding-right: 8px;
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
	font-size: 16px;
	line-height: 145%;
	color: #707070;
}
.booking-how-modal__text p {
	margin: 0 0 16px;
}
.booking-how-modal__text p:last-child {
	margin-bottom: 0;
}
.booking-how-modal button.booking-how-modal__close-button {
	flex: 0 0 auto;
	width: 180px;
	margin-top: 28px;
	padding: 14px 24px;
	background: #2e2f33;
	color: #fff;
	border: 0;
	border-radius: 10px;
	font-size: 16px;
}
.booking-how-modal__close-button:hover {
	background: #1f2022;
}
.booking .booking__input.error {
	border-color: #e8542f !important;
}
.booking__offer .basket-offer__checkbox.is-error::before {
	border: 1px solid #e8542f !important;
}

.daterangepicker.drp-booking {
	box-sizing: border-box;
	width: 400px;
	max-width: calc(100vw - 24px);
	border: none;
	border-radius: 16px;
	padding: 12px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
}
.daterangepicker.drp-booking::before,
.daterangepicker.drp-booking::after {
	display: none;
}
.daterangepicker.drp-booking .drp-calendar {
	width: 100%;
	min-width: 0;
	max-width: none;
	padding: 0;
	margin-right: 0;
}
.daterangepicker.drp-booking .calendar-table {
	box-sizing: border-box;
	width: 100%;
	border: none;
	padding: 0;
}
.daterangepicker.drp-booking .calendar-table table {
	width: 100%;
	table-layout: fixed;
	border-collapse: separate;
	border-spacing: 4px;
}
.daterangepicker.drp-booking .calendar-table thead tr:first-child {
	display: none;
}
.daterangepicker.drp-booking .drp-nav {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
}
.daterangepicker.drp-booking .drp-title {
	flex: 1 1 auto;
	font-family: var(--font-HelveticaNeue, "Helvetica Neue", Arial, sans-serif);
	text-align: center;
	vertical-align: middle;
	font-size: 16px;
	font-weight: 400;
	font-style: normal;
	line-height: 130%;
	letter-spacing: 0;
	color: #1c1c1c;
}
.daterangepicker.drp-booking .drp-prev,
.daterangepicker.drp-booking .drp-next {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	border: 1px solid #e3e6ea;
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
}
.daterangepicker.drp-booking .drp-prev:hover,
.daterangepicker.drp-booking .drp-next:hover {
	background: #f3f4f6;
}
.daterangepicker.drp-booking .drp-prev.is-hidden {
	visibility: hidden;
}
.daterangepicker.drp-booking .drp-prev svg,
.daterangepicker.drp-booking .drp-next svg {
	display: block;
	width: 20px;
	height: 20px;
}
/* Топбар: поле ввода + «Сегодня» */
.daterangepicker.drp-booking .drp-topbar {
	display: flex;
	gap: 8px;
	margin-bottom: 12px;
}
.daterangepicker.drp-booking .drp-typed {
	flex: 1 1 auto;
	min-width: 0;
	padding: 12px 14px;
	border: 1px solid #e3e6ea;
	border-radius: 10px;
	font-size: 15px;
	color: #1c1c1c;
	text-align: left;
}
.daterangepicker.drp-booking .drp-typed::placeholder {
	font-family: var(--font-HelveticaNeue, "HelveticaNeue", Arial, sans-serif);
	font-size: 16px;
	font-weight: 400;
	font-style: normal;
	line-height: 130%;
	letter-spacing: 0;
	color: #707070;
	opacity: 1;
}
.daterangepicker.drp-booking .drp-today {
	flex: 0 0 auto;
	padding: 12px 20px;
	border: none;
	border-radius: 10px;
	background: #eef0f2;
	font-family: var(--font-primary, "Roboto", sans-serif);
	font-size: 14px;
	font-weight: 500;
	font-style: normal;
	line-height: 140%;
	letter-spacing: -0.01em;
	text-align: center;
	color: #1c1c1c;
	cursor: pointer;
}
.daterangepicker.drp-booking .drp-today:hover {
	background: #e3e6ea;
}
/* Дни недели */
.daterangepicker.drp-booking thead th:not(.month):not(.prev):not(.next) {
	font-size: 14px;
	font-weight: 400;
	color: var(--gray-middle);
	padding-bottom: 6px;
}
/* Ячейки дней */
.daterangepicker.drp-booking td {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	font-size: 15px;
	color: #1c1c1c;
}
.daterangepicker.drp-booking td.available:hover {
	background: #eef0f2;
	border-radius: 10px;
}
.daterangepicker.drp-booking td.off {
	color: #c5cad0;
	background: transparent;
}
.daterangepicker.drp-booking td.active,
.daterangepicker.drp-booking td.active:hover {
	background: #54b8f0;
	color: #fff;
	border-radius: 10px;
}
.daterangepicker.drp-booking td.disabled {
	color: #c5cad0;
	text-decoration: line-through;
}

/* Планшет/мобилка */
@media (max-width: 1199px) {
	.box-row {
		grid-template-columns: 110px 1fr 1fr;
	}
	.box-row__buy {
		grid-column: 1 / -1;
	}
	.booking__inner {
		grid-template-columns: 1fr;
	}
	.booking__right {
		align-items: stretch;
	}
}
@media (max-width: 767px) {
	.box-row__deposit {
		font-size: 16px;
		line-height: 130%;
		letter-spacing: 0;
		color: #707070;
	}
	.box-row__deposit-tooltip {
		right: auto;
		left: 0;
		width: min(350px, calc(100vw - 32px));
		max-width: calc(100vw - 32px);
		padding: 12px 52px;
		font-size: 16px;
		line-height: 130%;
		letter-spacing: 0;
	}
	.box-row__deposit-tooltip::after {
		right: auto;
		left: 8px;
	}

	.box-row__price,
	.box-row__price-old {
		font-family: var(--font-RobotoCondensed, "Roboto_Condensed", sans-serif);
		font-size: 24px;
		font-weight: 900;
		font-style: normal;
		line-height: 120%;
		letter-spacing: -0.03em;
		text-align: right;
		vertical-align: middle;
		text-transform: uppercase;
	}

	.box-row {
		grid-template-columns: auto 1fr;
		gap: 16px;
		padding: 16px;
	}
	.box-row__media {
		grid-column: 1;
		grid-row: 1;
	}
	.box-row__media img {
		max-width: 120px;
	}
	.box-row_sold .box-row__media {
		width: 120px;
		height: 120px;
	}
	.box-row__stamp {
		padding: 4px 8px;
		font-size: 14px;
	}
	.box-row__main {
		grid-column: 2;
		grid-row: 1;
		padding-top: 8px;
	}
	.box-row__features {
		grid-column: 1 / -1;
		padding-left: 0;
		padding-right: 0;
		padding-bottom: 8px;
		border-bottom: 1px solid #eceef1;
	}
	.box-row__features .box-row__param {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
	}
	.box-row__features .box-row__param-value {
		text-align: left;
	}
	.box-row__param-name,
	.box-row__param-value {
		font-size: 14px;
	}
	.box-row__chip {
		font-size: 16px;
	}
	.box-row__buy {
		grid-column: 1 / -1;
	}
	.booking__fields {
		grid-template-columns: 1fr;
	}
	.booking__right {
		align-items: flex-start;
		align-self: stretch;
	}
	.booking__offers {
		align-items: flex-start;
	}
	.booking__legal-text,
	.booking__help {
		font-size: 14px;
	}
	.booking-how-modal {
		width: 100%;
		max-width: 100%;
		max-height: 88vh;
		padding: 28px 16px 20px;
		border-radius: 16px 16px 0 0;
	}
	.fancybox__slide:has(> .booking-how-modal) {
		align-items: stretch;
		padding: 0;
	}
	.fancybox__slide:has(> .booking-how-modal)::after {
		margin-top: 0;
	}
	.booking-how-modal__inner {
		max-height: calc(88vh - 48px);
	}
	.booking-how-modal__title {
		margin-right: 36px;
		font-size: 20px;
	}
	.booking-how-modal__text {
		font-size: 14px;
		line-height: 145%;
	}
	.booking-how-modal__close {
		top: 14px;
		right: 10px;
	}
	.booking-how-modal button.booking-how-modal__close-button {
		width: 100%;
		margin-top: 20px;
		background: #fff;
		color: #2e2f33;
		border: 1px solid #e3e6ea;
	}
}

.modal-booking__form {
	text-align: center;
}

.modal-booking .modal-header__text {
	font-size: 16px;
	line-height: 130%;
	letter-spacing: 0;
	color: var(--gray-dark);
}

.modal-booking__contact {
	color: var(--black-light);
}
.modal-booking__code {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin: 0 !important;
}
.modal-booking__code .modal-password__item {
	width: 54px;
	padding: 0;
}
.modal-booking__code .modal-password__item input {
	padding: 0;
	text-align: center;
	font-size: 20px;
	font-weight: 600;
	color: var(--black-light);
}
.modal-booking__code .modal-password__item input.is-invalid,
.modal-booking__code .modal-password__item input.is-invalid:focus {
	border-color: #e8542f !important;
}
.modal-booking__error {
	display: block;
	color: #e8542f;
	font-size: 14px;
	line-height: 140%;
}
.modal-booking__error:empty {
	display: none;
}
.modal-booking__submit.btn {
	font-family: var(--font-primary);
	letter-spacing: -0.01em;
}
.modal-booking__submit.btn:disabled,
.modal-booking__submit.btn:disabled:hover {
	background: #f4f4f5;
	color: #c2c2c2;
	border: 1px solid #e3e6ea;
	cursor: not-allowed;
}
.modal-booking__resend,
.modal-booking__resend-btn {
	width: 100%;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	font-family: var(--font-HelveticaNeue);
	font-size: 14px;
	font-weight: 400;
	line-height: 140%;
	text-align: center;
	color: var(--gray-middle);
}
.modal-booking__resend-btn {
	cursor: pointer;
}
.modal-booking--payment .modal-content__inner {
	gap: 20px;
}
.modal-booking--payment .modal-content__form {
	gap: 0;
}
.modal-booking--payment .modal-booking__total {
	margin-bottom: 20px;
}
.modal-booking__deposit {
	margin: -12px 0 20px;
	font-family: var(--font-HelveticaNeue);
	font-size: 14px;
	font-weight: 400;
	line-height: 140%;
	color: var(--gray-middle);
}
.modal-booking--payment .modal-booking__promo {
	margin-bottom: 40px;
}
.modal-booking__total-label {
	display: block;
	font-family: var(--font-HelveticaNeue);
	font-size: 16px;
	font-weight: 400;
	line-height: 130%;
	color: var(--gray-dark);
}
.modal-booking__total-value {
	display: flex;
	justify-content: center;
	align-items: baseline;
	gap: 10px;
	margin-top: 4px;
}
.modal-booking__price {
	font-family: var(--font-RobotoCondensed);
	font-size: 40px;
	font-weight: 900;
	line-height: 100%;
	letter-spacing: -0.02em;
	color: var(--black-light);
}
.modal-booking__price-old {
	font-family: var(--font-RobotoCondensed);
	font-size: 30px;
	font-weight: 900;
	line-height: 100%;
	letter-spacing: -0.02em;
	text-decoration: line-through;
	color: var(--gray-middle);
}
.modal-booking__price-old[hidden] {
	display: none;
}
.modal-booking__promo {
	position: relative;
	display: flex;
	align-items: center;
}
.modal-booking__promo-input.form-item {
	padding-right: 110px;
	font-size: 18px;
	font-weight: 400;
	line-height: 130%;
	letter-spacing: -0.02em;
	cursor: text;
}
.modal-booking__promo-input.form-item::placeholder {
	font-weight: 400;
	color: var(--gray-middle);
}
.modal-booking__promo-apply {
	position: absolute;
	right: 23px;
	background: none;
	border: none;
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 500;
	line-height: 140%;
	letter-spacing: -0.01em;
	color: var(--black-light);
	cursor: pointer;
}

.modal-booking__promo-result { display:flex; justify-content:space-between; align-items:center; margin-top:-28px; margin-bottom:28px; color:#079a49; font-size:14px; }
.modal-booking__promo-result button { border:0; background:transparent; color:#4d4d4d; text-decoration:underline; cursor:pointer; }
.modal-booking__pay-row {
	display: flex;
	gap: 12px;
}
.modal-booking__pay-methods {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.modal-booking__pay-row--services {
	display: grid;
	/* Ряд сам сжимается до числа включенных pay-методов: после отключения
	 * T-Pay не остается пустой третьей ячейки. */
	grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
}
.modal-booking__pay-row--base {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.modal-booking__pay.btn {
	min-width: 0;
	min-height: 64px;
	padding: 14px 8px;
	font-family: var(--font-primary);
	font-size: 18px;
	font-weight: 500;
	line-height: 140%;
	letter-spacing: -0.01em;
	white-space: nowrap;
}
.modal-booking__pay-brand {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-weight: 700;
	line-height: 1;
}
.modal-booking__pay-brand-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	font-size: 15px;
}
.modal-booking__pay-brand--sber {
	font-size: 18px;
}
.modal-booking__pay-brand--sber .modal-booking__pay-brand-mark {
	background: #fff;
	color: #13a94d;
}
.modal-booking__pay-brand--tpay {
	gap: 4px;
	font-size: 18px;
}
.modal-booking__pay-brand--tpay .modal-booking__pay-brand-mark {
	width: 23px;
	height: 23px;
	border-radius: 4px;
	background: #ffd200;
	color: #1d1d1d;
	font-size: 15px;
}
.modal-booking__pay--sberpay.btn {
	background: #16bb4d;
	color: #fff;
}
.modal-booking__pay--sberpay.btn:hover {
	background: #0fa640;
}
.modal-booking__pay--tpay.btn {
	background: #292929;
	color: #fff;
}
.modal-booking__pay--tpay.btn:hover {
	background: #1d1d1d;
}
.modal-booking__pay--alfapay.btn {
	background: #ef3124;
	color: #fff;
}
.modal-booking__pay--alfapay.btn:hover {
	background: #d92a1f;
}
.modal-booking__pay--sbp.btn {
	background: var(--gray-light);
	color: var(--black-light);
}
.modal-booking__pay--card.btn {
	background: rgba(235, 130, 88, 1);
	color: #fff;
}
.modal-booking__pay--card.btn:hover {
	background: #e86a3d;
}
.modal-booking__pay.btn:disabled,
.modal-booking__pay.btn:disabled:hover {
	background: #f4f4f5;
	color: #c2c2c2;
	border: 1px solid #e3e6ea;
	cursor: not-allowed;
}
.modal-booking__pay-logo {
	display: block;
	width: auto;
	height: 26px;
}
.modal-booking__pay:focus-visible {
	outline: 3px solid rgba(18, 119, 255, .45);
	outline-offset: 2px;
}
/* Если СБП временно отключат настройкой, сохраняем макетный фон и приглушаем логотип */
.modal-booking__pay--sbp.btn:disabled,
.modal-booking__pay--sbp.btn:disabled:hover {
	background: var(--gray-light);
	border: 1px solid transparent;
}
.modal-booking__pay--sbp.btn:disabled .modal-booking__pay-logo {
	opacity: 0.5;
}
@media (max-width: 767.98px) {
	.fancybox__slide:has(> .modal-booking) {
		align-items: stretch;
		padding-left: 0;
		padding-right: 0;
		padding-bottom: 0;
	}
	.fancybox__slide:has(> .modal-booking)::after {
		margin-top: 0;
	}
	.modal-booking.modal-content {
		width: 100%;
		max-width: 100%;
		padding: 24px 16px 28px;
		border-radius: 16px 16px 0 0;
	}
	.modal-booking .modal-header {
		align-items: flex-start;
	}
	.modal-booking .modal-title,
	.modal-booking .modal-header__text,
	.modal-booking__form {
		text-align: left;
	}
	.modal-booking__total-value {
		justify-content: flex-start;
	}
	.modal-booking__pay.btn {
		min-height: 56px;
		font-size: 16px;
	}
	.modal-booking__pay-brand--sber,
	.modal-booking__pay-brand--tpay {
		font-size: 16px;
	}
	.modal-booking__pay-row--services,
	.modal-booking__pay-row--base {
		gap: 8px;
	}
	/* на узком экране текст переносится сам - макетный перенос только мешает */
	.modal-booking .modal-header__text br {
		display: none;
	}
	/* ячейки кода растягиваем на всю ширину листа */
	.modal-booking__code {
		justify-content: space-between;
		gap: 8px;
	}
	.modal-booking__code .modal-password__item {
		flex: 1;
		width: auto;
	}
	.modal-booking__code .modal-password__item input {
		height: 48px;
	}
}
