/* Reis24 — главная дизайна 15 (артборды Main / Mobiil). Только токены и компоненты из design.css. */

/* Astra оборачивает контент в .ast-container — на главной снимаем ограничение */
.r24-home-page .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.r24-home-page #primary { margin: 0; padding: 0; width: 100%; }

.r24-home { overflow-x: clip; }
.r24-sec { padding: var(--r24-s8) 0; position: relative; }
.r24-sec__h { font-size: var(--r24-fs-h2); margin-bottom: var(--r24-s5) !important; }
.r24-sec__h--md { font-size: 32px; margin-bottom: var(--r24-s4) !important; }
.r24-sec__top { display: flex; justify-content: space-between; align-items: end; gap: var(--r24-s4); flex-wrap: wrap; margin-bottom: var(--r24-s5); }
.r24-sec__top .r24-sec__h { margin-bottom: 0 !important; }
.r24-center { text-align: center; }
.r24-small { font-size: 13px; }
.r24-link { color: var(--r24-blue); font-weight: 700; text-decoration: none; background: none; border: 0; padding: 0; font: inherit; font-family: var(--r24-font); font-weight: 700; cursor: pointer; min-height: 44px; }
.r24-link:hover { color: var(--r24-navy); text-decoration: underline; background: none; }
.r24-link:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-stars { color: #f2a000; letter-spacing: 1px; }
.r24-home ul, .r24-home ol, .r24-home dl { list-style: none; margin: 0; padding: 0; }
.r24-home li, .r24-home dd { margin: 0; }

/* ---------- 1. первый экран ---------- */
.r24-hero { padding: var(--r24-s2) var(--r24-s4) 0; }
.r24-hero__photos { max-width: 1408px; margin: 0 auto; display: grid; grid-template-columns: 2.2fr 1fr 1fr; gap: var(--r24-s3); }
.r24-hero__photo { position: relative; display: block; height: 540px; border-radius: var(--r24-r); overflow: hidden; color: #fff; text-decoration: none; background: var(--r24-navy); }
.r24-hero__photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
a.r24-hero__photo > img { transition: transform .4s var(--r24-ease); }
a.r24-hero__photo:hover > img { transform: scale(1.03); }
a.r24-hero__photo:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 3px; }
.r24-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,23,42,.78) 0%, rgba(15,23,42,.2) 60%, rgba(15,23,42,0) 100%); }
.r24-hero__text { position: absolute; left: var(--r24-s7); top: 64px; max-width: 560px; }
.r24-hero__text h1 { color: #fff; }
.r24-hero__lead { font-size: var(--r24-fs-lg); margin: var(--r24-s4) 0 0; color: #fff; }
.r24-hero__badge {
	position: absolute; right: 28px; bottom: 110px; width: 150px; height: 150px; border-radius: 50%;
	background: var(--r24-accent); color: var(--r24-ink); display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; text-decoration: none; box-shadow: 0 0 0 6px #fff, 0 0 0 9px var(--r24-chrome); font-size: 12px; line-height: 1.3;
}
.r24-hero__badge b { font-size: 34px; line-height: 1.05; }
.r24-hero__badge:hover { background: var(--r24-accent-hover); color: var(--r24-ink); }
.r24-hero__scrim { position: absolute; inset: 0; }
.r24-hero__cap { position: absolute; left: 20px; right: 16px; bottom: 120px; font-size: 16px; line-height: 1.45; }
.r24-hero__cap b { font-size: 22px; }
.r24-search-panel { position: relative; margin-top: -80px; background: #fff; border-radius: var(--r24-r); box-shadow: var(--r24-shadow); padding: var(--r24-s4) var(--r24-s4) var(--r24-s2); }

/* ---------- 2. популярные направления ---------- */
.r24-dest { background: repeating-radial-gradient(circle at 92% 8%, var(--r24-lilac) 0 2px, transparent 2px 28px); }
.r24-dest .r24-sec__h { text-align: center; }
.r24-dest__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 28px var(--r24-s5); text-align: center; }
.r24-dest__item { display: block; color: var(--r24-ink); text-decoration: none; font-size: 15px; }
.r24-dest__item > b { display: block; margin-top: 14px; font-size: 18px; }
.r24-dest__item:hover > b { color: var(--r24-blue); }
.r24-dest__item:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 4px; border-radius: var(--r24-r); }
.r24-dest__item .r24-round img { transition: transform .3s var(--r24-ease); }
.r24-dest__item:hover .r24-round img { transform: scale(1.05); }
.r24-dest__all { background: var(--r24-accent); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.r24-dest__all b { font-size: 40px; line-height: 1; }
.r24-dest__all span { font-size: 13px; }
.r24-dest__price { display: block; color: var(--r24-ink); }
.r24-dest__note { text-align: center; font-size: 13px; margin: var(--r24-s6) 0 0; }

/* ---------- 3. типы отдыха ---------- */
.r24-types { padding: 0 0 var(--r24-s8); }
.r24-types__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--r24-s4); }
.r24-types__tile { position: relative; display: block; height: 200px; border-radius: var(--r24-r); overflow: hidden; color: #fff; text-decoration: none; background: var(--r24-navy); }
.r24-types__tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--r24-ease); }
.r24-types__tile:hover img { transform: scale(1.04); }
.r24-types__tile .r24-scrim { position: absolute; inset: 0; }
.r24-types__tile b { position: absolute; left: var(--r24-s4); right: var(--r24-s3); bottom: var(--r24-s4); font-size: 19px; line-height: 1.2; }
.r24-types__tile:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 3px; }

/* ---------- 4. почему Reis24 ---------- */
.r24-why { position: relative; background: var(--r24-navy); color: #fff; padding: 88px 0; }
.r24-arc { position: absolute; left: 0; top: -1px; width: 100%; height: 60px; }
.r24-why .r24-sec__h { color: #fff; font-size: 36px; margin-bottom: var(--r24-s6) !important; }
.r24-why__grid { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: var(--r24-s6); align-items: center; }
.r24-why__col { display: grid; gap: var(--r24-s6); }
.r24-why__col--l { text-align: right; }
.r24-why__col h3 { color: var(--r24-accent); font-size: 21px !important; }
.r24-why__col p { margin: 4px 0 0; color: #fff; }
.r24-why__photo { box-shadow: 0 0 0 8px #fff, 0 0 0 12px var(--r24-chrome); }
.r24-why__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--r24-s5); margin-top: 64px !important; text-align: center; }
.r24-why__stats b {
	display: inline-flex; width: 120px; height: 120px; border-radius: 50%; background: #fff; color: var(--r24-ink);
	align-items: center; justify-content: center; font-size: 30px; box-shadow: 0 0 0 6px var(--r24-navy), 0 0 0 9px var(--r24-chrome);
}
.r24-why__stats .is-accent b { background: var(--r24-accent); }
.r24-why__stats span { display: block; margin-top: var(--r24-s3); }
.r24-why__ph { text-align: center; margin: 56px 0 0 !important; font-size: 24px !important; }
.r24-why__pg { text-align: center; font-size: 14px; color: var(--r24-line); margin: var(--r24-s5) 0 10px; }
.r24-partners { display: flex; justify-content: center; gap: var(--r24-s3); flex-wrap: wrap; }
.r24-partners li { background: #fff; border-radius: 14px; width: 170px; height: 72px; display: flex; align-items: center; justify-content: center; padding: 10px; }
.r24-partners img { max-width: 100%; max-height: 44px; width: auto; height: auto; object-fit: contain; }

/* ---------- 5. горящие ---------- */
.r24-chips { display: flex; gap: var(--r24-s2); flex-wrap: wrap; margin-bottom: var(--r24-s5); }
.r24-chips .r24-chip { min-height: 44px; padding: 0 var(--r24-s5); border: 1px solid var(--r24-ink); background: #fff; font-family: var(--r24-font); font-size: 16px; font-weight: 800; color: var(--r24-ink); cursor: pointer; }
.r24-chips .r24-chip:hover { background: var(--r24-lilac); }
.r24-chips .r24-chip.is-on { background: var(--r24-accent); }
.r24-chips .r24-chip:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-hot:not(.is-chips-open) .r24-chip.is-extra:not(.is-on) { display: none; }
.r24-offers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--r24-s5); }
.r24-offer.is-more:not(.is-shown), .r24-offer.is-hidden { display: none; }
.r24-offer__in { display: flex; flex-direction: column; height: 100%; color: var(--r24-ink); text-decoration: none; transition: box-shadow .2s var(--r24-ease); }
.r24-offer__in:hover { box-shadow: 0 0 0 1px var(--r24-line), 0 12px 30px rgba(15,23,42,.12); color: var(--r24-ink); }
.r24-offer__in:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 3px; }
.r24-offer__img { position: relative; display: block; height: 220px; background: var(--r24-lilac); }
.r24-offer__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.r24-offer__img .r24-pill { position: absolute; right: 14px; top: 14px; }
.r24-offer__body { display: flex; flex-direction: column; gap: 4px; padding: var(--r24-s4) var(--r24-s4) 0; flex: 1; }
.r24-offer__meta { font-size: 14px; }
.r24-offer__meta .r24-stars { color: var(--r24-text-2); }
.r24-offer__name { font-size: 20px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.5em; }
.r24-offer__foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: auto 0 var(--r24-s4); padding-top: 14px; border-top: 1px solid var(--r24-line); font-size: 14px; }
.r24-offer__body > .r24-offer__name { margin-bottom: 14px; }
.r24-dest__item > b, .r24-types__tile b { overflow-wrap: anywhere; }
.r24-offer__go { display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--r24-s4); border: 1px solid var(--r24-ink); border-radius: var(--r24-r); background: var(--r24-accent); font-weight: 800; }
.r24-offer__in:hover .r24-offer__go { background: var(--r24-accent-hover); }
.r24-hot .r24-center { margin-top: var(--r24-s5); }

/* ---------- 6. календарь + цены по месяцам ---------- */
.r24-cal { background: var(--r24-lilac); padding-top: 88px; }
.r24-wave { position: absolute; left: 0; top: -1px; width: 100%; height: 40px; }
.r24-cal__sub { margin: 6px 0 0; }
.r24-cal__nav { display: flex; gap: var(--r24-s2); align-items: center; }
.r24-cal__range { padding: 0 var(--r24-s2); }
.r24-cal__nav .r24-btn[disabled] { opacity: .45; }
.r24-cal__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--r24-s4); align-items: start; }
.r24-cal__month { background: #fff; border-radius: var(--r24-r); padding: var(--r24-s5); }
.r24-cal__month.is-off { display: none; }
.r24-cal__month.is-current { box-shadow: 0 0 0 3px var(--r24-accent); }
.r24-cal__mh { display: flex; justify-content: space-between; align-items: baseline; gap: var(--r24-s2); margin-bottom: var(--r24-s2); list-style: none; cursor: default; }
.r24-cal__mh::-webkit-details-marker { display: none; }
.r24-cal__mh h3 { font-size: 22px !important; }
.r24-cal__mh .r24-muted { font-size: 13px; }
.r24-cal__month a { display: grid; grid-template-columns: 44px 1fr auto; gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--r24-line); color: var(--r24-ink); text-decoration: none; font-size: 15px; }
.r24-cal__month a:hover b { color: var(--r24-blue); }
.r24-round--xs { width: 44px; height: 44px; box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--r24-chrome); }
.r24-cal__p { font-weight: 800; text-align: right; }
.r24-cal__more-m { display: none; }
.r24-cal__foot { display: flex; justify-content: space-between; align-items: center; gap: var(--r24-s4); flex-wrap: wrap; margin-top: var(--r24-s5); }
.r24-cal__foot p { margin: 0; }
.r24-mp { background: #fff; border-radius: var(--r24-r); padding: var(--r24-s5); margin-top: var(--r24-s5); }
.r24-mp__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--r24-s3); flex-wrap: wrap; margin-bottom: var(--r24-s3); }
.r24-mp__head h3 { font-size: 22px !important; }
.r24-mp__chips { margin-bottom: var(--r24-s4); gap: 6px; }
.r24-mp__chips .r24-chip { min-height: 44px; padding: 0 14px; }
.r24-mp__pick { display: none; margin-bottom: var(--r24-s4); }
.r24-mp__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--r24-s2); }
.r24-mp__grid[hidden] { display: none; }
.r24-mp__grid li { border: 1px solid var(--r24-line); border-radius: 14px; padding: var(--r24-s4) 6px; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 14px; text-align: center; }
.r24-mp__grid li > span { color: var(--r24-ink); }
.r24-mp__grid a, .r24-mp__grid b { color: var(--r24-ink); font-weight: 800; font-size: 18px; text-decoration: none; }
.r24-mp__grid a:hover { text-decoration: underline; }
.r24-mp__grid li.is-min { background: var(--r24-accent); border-color: var(--r24-ink); }
.r24-mp__grid li.is-none { background: var(--r24-lilac); }
.r24-mp > .r24-muted { margin: var(--r24-s3) 0 0; }

/* ---------- 7. как работает + сравнение ---------- */
.r24-how__in { display: grid; grid-template-columns: 1fr 1fr; gap: var(--r24-s7); }
.r24-how__steps { counter-reset: st; display: grid; gap: var(--r24-s4); }
.r24-how__steps li { counter-increment: st; display: flex; gap: var(--r24-s4); align-items: center; }
.r24-how__steps li::before { content: counter(st); flex: 0 0 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--r24-lilac); font-weight: 800; font-size: 22px; }
.r24-how__steps li:first-child::before { background: var(--r24-accent); }
.r24-cmp { width: 100%; border-collapse: collapse; border-radius: var(--r24-r); overflow: hidden; font-size: 15px; }
.r24-cmp thead { background: var(--r24-navy); color: #fff; }
.r24-cmp thead th, .r24-cmp thead td { padding: 14px 12px; font-weight: 800; text-align: center; }
.r24-cmp tbody th { text-align: left; font-weight: 400; padding: 14px 12px; }
.r24-cmp tbody td { text-align: center; padding: 14px 12px; }
.r24-cmp tbody tr:nth-child(odd) { background: var(--r24-lilac); }

/* ---------- 8. ESTO, услуги, консультант ---------- */
.r24-trio { padding: 0 0 var(--r24-s8); }
.r24-trio__in { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--r24-s5); }
.r24-trio__card { border-radius: var(--r24-r); padding: var(--r24-s6) 28px; display: flex; flex-direction: column; gap: var(--r24-s3); align-items: flex-start; }
.r24-trio__card h2 { font-size: 24px; }
.r24-trio__card p { margin: 0; }
.r24-trio__card--esto { background: var(--r24-accent); color: var(--r24-ink); }
.r24-trio__card--svc { background: var(--r24-lilac); }
.r24-trio__card--svc ul { display: grid; gap: 6px; }
.r24-trio__card--svc a { color: var(--r24-blue); text-decoration: underline; display: inline-block; min-height: 32px; }
.r24-trio__card--svc a:hover { color: var(--r24-navy); }
.r24-trio__card--consult { background: var(--r24-navy); color: #fff; }
.r24-trio__card--consult h2 { color: #fff; }
.r24-trio__phone { margin-top: auto; color: var(--r24-accent); font-size: 24px; font-weight: 800; text-decoration: underline; }
.r24-trio__phone:hover { color: #fff; }
.r24-trio__card--consult a:focus-visible { outline-color: var(--r24-accent); }

/* ---------- 9. заявка + FAQ ---------- */
.r24-ask { padding-top: 0; }
.r24-ask__in { display: grid; grid-template-columns: 1fr 1.1fr; gap: var(--r24-s7); align-items: start; }
.r24-ask__form { background: var(--r24-navy); color: #fff; border-radius: var(--r24-r); padding: var(--r24-s6); }
.r24-ask__form h2 { color: #fff; font-size: 30px; }
.r24-ask__form > p { margin: var(--r24-s2) 0 var(--r24-s4); color: var(--r24-line); }
.r24-ask__form .wpforms-container { margin: 0 !important;
	--wpforms-field-border-radius: 20px; --wpforms-field-size-input-height: 48px; --wpforms-field-border-color: #c9d2de;
	--wpforms-button-background-color: #ffb108; --wpforms-button-text-color: #0f172a; --wpforms-button-border-radius: 20px;
	--wpforms-button-size-height: 50px; --wpforms-label-color: #ffffff; --wpforms-label-sublabel-color: #e0e5eb; --wpforms-field-size-font-size: 16px; }
.r24-ask__form .wpforms-field { padding: 0 0 var(--r24-s3) !important; }
.r24-ask__form .wpforms-field-label, .r24-ask__form .wpforms-field-checkbox li label { color: #fff !important; font-family: var(--r24-font) !important; }
.r24-ask__form .wpforms-field-label { font-weight: 700 !important; font-size: 14px !important; }
.r24-ask__form input[type=text], .r24-ask__form select { width: 100% !important; max-width: none !important; font-family: var(--r24-font) !important; font-size: 16px !important; }
.r24-ask__form .wpforms-field-checkbox a { color: var(--r24-accent); }
.r24-ask__form button[type=submit] { width: 100%; font-family: var(--r24-font) !important; font-weight: 800 !important; border: 1px solid #0f172a !important; }
.r24-ask__form .wpforms-confirmation-container-full { background: #fff !important; border: 0 !important; border-radius: var(--r24-r); color: var(--r24-ink) !important; }
.r24-ask__form label.wpforms-error { color: #ffd6d1 !important; }
.r24-ask__q { display: grid; grid-template-columns: 76px 1fr; column-gap: var(--r24-s3); margin-bottom: var(--r24-s5); }
.r24-ask__q dt { display: contents; font-weight: 800; }
.r24-ask__n { grid-row: span 2; color: var(--r24-blue); font-size: 44px; font-weight: 800; line-height: 1; }
.r24-ask__q dt { font-size: 17px; }
.r24-ask__q dd { grid-column: 2; }

/* ---------- 10. CTA и липкая панель ---------- */
.r24-cta { background: var(--r24-navy); color: #fff; padding: 40px 0 calc(40px + var(--r24-s6)); }
.r24-cta__in { display: flex; justify-content: space-between; align-items: center; gap: var(--r24-s5); flex-wrap: wrap; }
.r24-cta h2 { color: #fff; font-size: 28px; }
.r24-cta__row { display: flex; gap: 10px; flex-wrap: wrap; }
.r24-sticky { display: none; }

/* ---------- адаптив ---------- */
@media (max-width: 1100px) {
	.r24-dest__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.r24-types__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.r24-cal__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-mp__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.r24-trio__in { grid-template-columns: 1fr 1fr; }
	.r24-trio__card--consult { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
	.r24-hero { padding: 0; }
	.r24-hero__photos { grid-template-columns: 1fr; }
	.r24-hero__photo--1, .r24-hero__photo--2 { display: none; }
	.r24-hero__photo--0 { height: 440px; border-radius: 0 0 var(--r24-r) var(--r24-r); }
	.r24-hero__text { left: var(--r24-s4); right: var(--r24-s4); top: var(--r24-s5); }
	.r24-hero__lead { font-size: 17px; }
	.r24-hero__badge { width: 124px; height: 124px; right: var(--r24-s4); bottom: 112px; }
	.r24-hero__badge b { font-size: 26px; }
	.r24-search-panel { margin-top: -96px; padding: var(--r24-s4); width: calc(100% - 2 * var(--r24-gutter)); }
	.r24-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-why__grid { grid-template-columns: 1fr; }
	.r24-why__col--l { text-align: left; }
	.r24-why__photo { max-width: 240px; width: 100%; margin: 0 auto; order: -1; }
	.r24-why__stats { grid-template-columns: 1fr 1fr; }
	.r24-how__in, .r24-ask__in { grid-template-columns: 1fr; gap: var(--r24-s6); }
	.r24-mp__chips { display: none; }
	.r24-mp__pick { display: flex; }
	.r24-sticky {
		display: flex; gap: var(--r24-s2); position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
		padding: var(--r24-s3) var(--r24-s4); background: #fff; box-shadow: 0 -8px 24px rgba(15,23,42,.12);
	}
	.r24-sticky .r24-btn { flex: 1; }
	.r24-home-page .r24-footer { padding-bottom: 72px; }
}
@media (max-width: 600px) {
	.r24-sec { padding: var(--r24-s7) 0; }
	.r24-sec__h { font-size: 26px; }
	.r24-sec__h--md { font-size: 24px; }
	.r24-dest__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--r24-s5) var(--r24-s3); }
	.r24-dest__item > b { font-size: 15px; margin-top: 10px; }
	.r24-dest__item { font-size: 12px; }
	.r24-dest__all b { font-size: 28px; }
	.r24-types { padding-bottom: var(--r24-s7); }
	.r24-types__grid { grid-template-columns: 1fr 1fr; gap: var(--r24-s3); }
	.r24-types__tile { height: 140px; }
	.r24-types__tile b { font-size: 16px; }
	.r24-why { padding: 72px 0 var(--r24-s7); }
	.r24-why .r24-sec__h { font-size: 26px; }
	.r24-why__grid { display: none; } /* мобильный макет: только цифры и партнёры */
	.r24-why__stats { margin-top: 0 !important; gap: var(--r24-s4); }
	.r24-why__stats b { width: 72px; height: 72px; font-size: 18px; box-shadow: none; }
	.r24-why__ph { margin-top: var(--r24-s6) !important; font-size: 16px !important; }
	.r24-why__pg { display: none; }
	.r24-partners { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--r24-s2); }
	.r24-partners li { width: auto; height: 52px; padding: 6px; }
	.r24-hot:not(.is-chips-open) .r24-chip.is-extra-m:not(.is-on) { display: none; }
	.r24-chips .r24-chip { padding: 0 14px; font-size: 15px; }
	.r24-offers { grid-template-columns: 1fr; }
	.r24-cal { padding-top: 64px; }
	.r24-cal__nav { display: none; }
	.r24-cal__grid { grid-template-columns: 1fr; gap: var(--r24-s3); }
	.r24-cal__month { padding: var(--r24-s4); }
	.r24-cal__mh { cursor: pointer; margin: 0; min-height: 44px; align-items: center; }
	.r24-cal__month[open] .r24-cal__mh { margin-bottom: var(--r24-s2); }
	.r24-cal__mh:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
	.r24-cal__more-m { display: block; margin: var(--r24-s3) 0 0; }
	.r24-cal__more-m .r24-btn { width: 100%; }
	.r24-cal__more-m [hidden] { display: none; }
	.r24-cal__all { display: none; }
	.r24-mp { padding: var(--r24-s4); }
	.r24-mp__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.r24-mp__grid li { padding: 10px 4px; }
	.r24-mp__grid a, .r24-mp__grid b { font-size: 16px; }
	.r24-how__steps li::before { flex-basis: 44px; height: 44px; font-size: 18px; }
	.r24-cmp { font-size: 14px; }
	.r24-trio__in { grid-template-columns: 1fr; }
	.r24-trio__card { padding: var(--r24-s5); }
	.r24-ask__form { padding: var(--r24-s5); }
	.r24-ask__form h2 { font-size: 24px; }
	.r24-ask__q { grid-template-columns: 56px 1fr; }
	.r24-ask__n { font-size: 32px; }
	.r24-cta h2 { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
	.r24-home *, .r24-home *::before { transition: none !important; }
}

/* ---------- своя форма поиска ---------- */
.r24-search__card { display: none; }
.r24-search__sheet-head, .r24-search__sheet-go { display: none; }
.r24-search__row { display: grid; grid-template-columns: 1.15fr 1.25fr 2fr 1.15fr 1.7fr auto; gap: var(--r24-s3); align-items: end; }
.r24-search fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.r24-search legend { padding: 0; margin-bottom: 6px; font-size: var(--r24-fs-sm); font-weight: 600; }
.r24-search__pair { display: flex; gap: 6px; }
.r24-search__pair > * { flex: 1; min-width: 0; }
.r24-search__date .r24-search__pair select:last-child { flex: 0 0 88px; }
.r24-search__nights .r24-search__pair { align-items: center; }
.r24-search__dash { flex: 0 0 auto !important; }
.r24-search .r24-field select:disabled { opacity: .6; }
.r24-search__pax { position: relative; }
.r24-search__pax-btn {
	display: flex; justify-content: space-between; align-items: center; gap: 8px; width: 100%; min-height: 48px; padding: 0 var(--r24-s3);
	border: 1px solid var(--r24-field); border-radius: var(--r24-r); background: #fff; color: var(--r24-ink); font: inherit; font-family: var(--r24-font); font-size: 16px; font-weight: 400; cursor: pointer; text-align: left;
}
.r24-search__pax-btn:hover, .r24-search__pax-btn:focus, .r24-search__pax-btn[aria-expanded="true"] { border-color: var(--r24-text-2); background: #fff; color: var(--r24-ink); }
.r24-search__pax-btn > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r24-search__pax-btn:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-search__pop {
	position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; width: 300px; max-width: calc(100vw - 32px);
	display: grid; gap: var(--r24-s3); background: #fff; border-radius: var(--r24-r); padding: var(--r24-s4); box-shadow: var(--r24-shadow);
}
.r24-search__pop[hidden] { display: none; }
.r24-search__ages { display: grid; grid-template-columns: 1fr 1fr; gap: var(--r24-s2); }
.r24-search__ages:empty { display: none; }
.r24-search__go { min-height: 48px; }
.r24-search__more { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--r24-s3); margin-top: var(--r24-s4); padding-top: var(--r24-s4); border-top: 1px solid var(--r24-line); }
.r24-search__more[hidden] { display: none; }
.r24-check { display: inline-flex; gap: 8px; align-items: center; min-height: 32px; font-weight: 400; font-size: var(--r24-fs-sm); cursor: pointer; }
.r24-check input { width: 18px; height: 18px; accent-color: var(--r24-blue); }
.r24-search__foot { display: flex; justify-content: space-between; align-items: center; gap: var(--r24-s3); flex-wrap: wrap; margin-top: var(--r24-s3); font-size: var(--r24-fs-sm); }
.r24-search__toggle { border: 0; background: none; padding: 6px 0; min-height: 44px; font: inherit; font-family: var(--r24-font); font-weight: 700; color: var(--r24-blue); cursor: pointer; }
.r24-search__toggle:hover { color: var(--r24-navy); text-decoration: underline; }
.r24-search__toggle:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-search__toggle[aria-expanded="true"] { color: var(--r24-navy); }

@media (max-width: 1100px) {
	.r24-search__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.r24-search__more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.r24-search-panel { padding: var(--r24-s3); }
	.r24-search__card { display: grid; gap: var(--r24-s3); }
	.r24-search__summary {
		display: flex; flex-direction: column; gap: 2px; width: 100%; padding: 0; border: 0; background: none; color: var(--r24-ink);
		font: inherit; font-family: var(--r24-font); text-align: left; cursor: pointer; min-height: 44px;
	}
	.r24-search__summary:hover, .r24-search__summary:focus { background: none; color: var(--r24-ink); }
	.r24-search__q { font-size: 13px; color: var(--r24-text-2); }
	.r24-search__summary b { font-size: 18px; }
	.r24-search__summary [data-r24-sum-sub] { font-size: 15px; }
	.r24-search__summary:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
	.r24-search__open { width: 100%; min-height: 52px; }
	.r24-search__form { display: none; }
	.r24-search.is-sheet .r24-search__form {
		display: block; position: fixed; inset: 0; z-index: 1000; background: #fff; overflow-y: auto;
		padding: var(--r24-s4) var(--r24-s4) 96px;
	}
	.r24-search.is-sheet .r24-search__sheet-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--r24-s4); font-size: 22px; }
	.r24-search__row, .r24-search__more { grid-template-columns: 1fr; }
	.r24-search__go { display: none; }
	.r24-search.is-sheet .r24-search__sheet-go { display: flex; position: fixed; left: var(--r24-s4); right: var(--r24-s4); bottom: var(--r24-s4); z-index: 1001; }
	.r24-search__pop { position: static; width: auto; box-shadow: none; padding: var(--r24-s3) 0 0; }
}

@media (max-width: 900px) {
	.r24-home-page #ast-scroll-top { bottom: 88px; } /* над липкой панелью */
}
.r24-cmp th, .r24-cmp td { border: 0; }
.r24-types__tile b small { display: block; font-size: 13px; font-weight: 600; margin-top: 2px; }

/* Наведение на ссылки-плитки: Astra красит a:hover в цвет бренда, из-за чего текст
   на жёлтом/фото сливался с фоном. Цвет текста задаём явно, эффект — мягкий. */
.r24-dest__item:hover, .r24-dest__item:focus, .r24-dest__item:focus-visible { color: var(--r24-ink); }
.r24-dest__all, .r24-dest__all b, .r24-dest__all span { color: var(--r24-ink); }
.r24-dest__all { transition: box-shadow .2s var(--r24-ease), filter .2s var(--r24-ease); }
.r24-dest__item:hover .r24-dest__all, .r24-dest__item:focus-visible .r24-dest__all { filter: brightness(.94); box-shadow: 0 0 0 5px #fff, 0 0 0 8px var(--r24-blue); }
.r24-dest__item:hover .r24-round:not(.r24-dest__all), .r24-dest__item:focus-visible .r24-round:not(.r24-dest__all) { box-shadow: 0 0 0 5px #fff, 0 0 0 8px var(--r24-blue); }
.r24-dest__item:hover .r24-dest__price { color: var(--r24-ink); }
.r24-types__tile:hover, .r24-types__tile:focus, a.r24-hero__photo:hover, a.r24-hero__photo:focus { color: #fff; }
.r24-hero__badge:focus, .r24-esto:focus, .r24-offer__in:focus, .r24-cal__month a:hover, .r24-cal__month a:focus { color: var(--r24-ink); }
.r24-trio__card--consult a:focus { color: var(--r24-accent); }
.r24-cta .r24-btn:focus, .r24-sticky .r24-btn:focus { color: var(--r24-ink); }

/* ---------- раскрытая форма поиска (артборд Otsing-avatud) ---------- */
.r24-search__toggle { padding: 0 var(--r24-s3); margin-left: calc(-1 * var(--r24-s3)); border-radius: var(--r24-r-pill); transition: background-color .15s var(--r24-ease); }
.r24-search__toggle:hover, .r24-search__toggle:focus { background: var(--r24-lilac); color: var(--r24-navy); text-decoration: none; }
.r24-search__toggle[hidden] { display: none; }
.r24-search__more { grid-template-columns: 1.3fr 1.3fr 1.4fr; gap: var(--r24-s5); align-items: start; }
.r24-search__chips { border: 0; margin: 0; padding: 0; min-width: 0; }
.r24-search__chips legend, .r24-search__price legend { font-weight: 700; font-size: 15px; margin-bottom: var(--r24-s2); padding: 0; }
.r24-search__chips > span { display: flex; gap: 6px; flex-wrap: wrap; }
.r24-search__chips .r24-chipradio span { min-height: 40px; padding: 0 var(--r24-s4); border-radius: var(--r24-r); }
.r24-search__chips .r24-chipradio:hover span { background: var(--r24-lilac); }
.r24-search__chips .r24-chipradio input:checked + span { background: var(--r24-accent); }
.r24-search__chips .r24-check { margin-top: var(--r24-s2); }
.r24-search__price { grid-column: 1 / 3; border: 0; margin: 0; padding: 0; min-width: 0; }
.r24-range { position: relative; height: 28px; margin-top: 6px; }
.r24-range__track { position: absolute; left: 0; right: 0; top: 12px; height: 4px; border-radius: 4px; background: var(--r24-line); }
.r24-range__fill { position: absolute; top: 0; bottom: 0; background: var(--r24-blue); border-radius: 4px; }
.r24-range input[type=range] { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 28px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.r24-range input[type=range]::-webkit-slider-thumb { pointer-events: auto; -webkit-appearance: none; width: 24px; height: 24px; border-radius: 50%; background: #fff; border: 3px solid var(--r24-blue); cursor: pointer; }
.r24-range input[type=range]::-moz-range-thumb { pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--r24-blue); cursor: pointer; }
.r24-range input[type=range]::-webkit-slider-runnable-track { background: none; }
.r24-range input[type=range]:focus-visible { outline: none; }
.r24-range input[type=range]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 4px rgba(6, 106, 171, .35); }
.r24-range__vals { display: flex; justify-content: space-between; font-size: 14px; margin-top: 4px; }
.r24-search__more-foot { grid-column: 3 / 4; display: flex; justify-content: flex-end; align-items: flex-end; gap: var(--r24-s3); flex-wrap: wrap; align-self: end; }
.r24-search__link { border: 0; background: none; padding: 0 var(--r24-s2); min-height: 44px; font: inherit; font-family: var(--r24-font); font-weight: 700; color: var(--r24-blue); cursor: pointer; border-radius: var(--r24-r-pill); }
.r24-search__link:hover, .r24-search__link:focus { background: var(--r24-lilac); color: var(--r24-navy); }
.r24-search__link:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-search__count { min-height: 44px; display: inline-flex; align-items: center; }
/* поповер туристов: степперы */
.r24-search__pop { width: 340px; gap: var(--r24-s4); padding: var(--r24-s5); }
.r24-step { display: flex; justify-content: space-between; align-items: center; gap: var(--r24-s3); }
.r24-step__l { display: flex; flex-direction: column; }
.r24-step__l small { font-size: 13px; }
.r24-step__ctl { display: flex; gap: 10px; align-items: center; }
.r24-step__ctl b { min-width: 1.2em; text-align: center; font-size: 18px; }
.r24-step__btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--r24-ink); background: #fff; color: var(--r24-ink); font: inherit; font-size: 20px; font-weight: 800; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.r24-step__btn:hover, .r24-step__btn:focus { background: var(--r24-lilac); color: var(--r24-ink); }
.r24-step__btn:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-step__btn[disabled] { opacity: .35; cursor: not-allowed; background: #fff; }
.r24-search__pop .r24-btn { width: 100%; }
@media (max-width: 1100px) {
	.r24-search__more { grid-template-columns: 1fr 1fr; }
	.r24-search__price { grid-column: 1 / -1; }
	.r24-search__more-foot { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
	.r24-search__more { grid-template-columns: 1fr; }
	.r24-search__more-foot { justify-content: space-between; }
	.r24-search__pop { width: auto; padding: var(--r24-s3) 0 0; }
}
.r24-search__chips .r24-chipradio span { padding: 0 12px; font-size: 15px; } .r24-search__pop .r24-search__ages select { width: 100%; }

/* ---------- форма поиска: устойчивая правая колонка, ползунок, переключатели (правки владельца) ---------- */
.r24-search__more-foot { display: grid; grid-template-columns: auto auto; grid-template-rows: 44px 44px; grid-template-areas: "count count" "clear less"; align-items: center; justify-content: end; column-gap: var(--r24-s2); row-gap: 0; white-space: nowrap; }
.r24-search__more-foot [data-r24-clear] { grid-area: clear; }
.r24-search__more-foot [data-r24-more-close] { grid-area: less; }
.r24-search__more-foot .r24-search__count { grid-area: count; }
.r24-search__link { white-space: nowrap; }
.r24-search__count { justify-content: flex-end; font-variant-numeric: tabular-nums; min-width: 11ch; }
@media (max-width: 1100px) { .r24-search__more-foot { justify-content: start; } .r24-search__count { justify-content: flex-start; } }

.r24-search__price { padding-top: 6px; }
.r24-range { height: 56px; margin-top: 2px; }
.r24-range__track { top: 34px; height: 8px; border-radius: 8px; background: #e3e7ee; }
.r24-range__fill { background: var(--r24-blue); border-radius: 8px; }
.r24-range input[type=range] { top: 24px; height: 28px; }
.r24-range input[type=range]::-webkit-slider-thumb { width: 28px; height: 28px; border: 3px solid var(--r24-blue); box-shadow: 0 2px 6px rgba(15,23,42,.25); transition: transform .12s var(--r24-ease); }
.r24-range input[type=range]:active::-webkit-slider-thumb { transform: scale(1.1); }
.r24-range input[type=range]::-moz-range-thumb { width: 22px; height: 22px; border: 3px solid var(--r24-blue); box-shadow: 0 2px 6px rgba(15,23,42,.25); }
.r24-range input[type=range]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 5px rgba(6,106,171,.3), 0 2px 6px rgba(15,23,42,.25); }
.r24-range input[type=range]:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 5px rgba(6,106,171,.3); }
.r24-range__bubble { position: absolute; top: 0; transform: translateX(-50%); background: var(--r24-navy); color: #fff; font-size: 13px; font-weight: 800; line-height: 1; padding: 5px 8px; border-radius: 8px; white-space: nowrap; font-variant-numeric: tabular-nums; pointer-events: none; }
.r24-range__bubble::after { content: ""; position: absolute; left: 50%; bottom: -4px; margin-left: -4px; border: 4px solid transparent; border-bottom: 0; border-top-color: var(--r24-navy); }
.r24-range__bubble[data-r24-bubble="0"] { transform: translateX(-15%); }
.r24-range__bubble[data-r24-bubble="1"] { transform: translateX(-85%); }
.r24-range__bubble[data-r24-bubble="0"]::after { left: 15%; }
.r24-range__bubble[data-r24-bubble="1"]::after { left: 85%; }
.r24-range__vals { font-size: 12px; color: var(--r24-text-2); margin-top: 0; }
@media (pointer: coarse) {
	.r24-range input[type=range]::-webkit-slider-thumb { width: 32px; height: 32px; }
}


/* ---------- ползунок цены v3: точное центрирование, непрозрачные бегунки, фирменная дорожка ---------- */
.r24-range { position: relative; height: 60px; --r24-tc: 42px; /* центр дорожки по вертикали */ }
.r24-range__track { top: calc(var(--r24-tc) - 4px); height: 8px; border-radius: 8px; background: #e6e3fa; }
.r24-range__fill { background: var(--r24-blue); border-radius: 8px; }
.r24-range input[type=range] { position: absolute; left: 0; right: 0; top: calc(var(--r24-tc) - 15px); width: 100%; height: 30px; margin: 0; padding: 0; background: transparent; border: 0; outline: none; box-shadow: none; pointer-events: none; -webkit-appearance: none; appearance: none; z-index: 2; }
.r24-range input[type=range].is-top { z-index: 3; }
.r24-range input[type=range]:focus, .r24-range input[type=range]:focus-visible { outline: none; box-shadow: none; }
.r24-range input[type=range]::-webkit-slider-runnable-track { height: 30px; background: transparent; border: 0; }
.r24-range input[type=range]::-moz-range-track { height: 30px; background: transparent; border: 0; }
.r24-range input[type=range]::-moz-range-progress { background: transparent; }
.r24-range input[type=range]::-webkit-slider-thumb {
	pointer-events: auto; -webkit-appearance: none; appearance: none; box-sizing: border-box;
	width: 28px; height: 28px; margin-top: 1px; border-radius: 50%;
	background: #fff !important; border: 3px solid var(--r24-blue); box-shadow: 0 2px 6px rgba(15, 23, 42, .28); cursor: grab;
}
.r24-range input[type=range]::-moz-range-thumb {
	pointer-events: auto; box-sizing: border-box; width: 28px; height: 28px; border-radius: 50%;
	background: #fff; border: 3px solid var(--r24-blue); box-shadow: 0 2px 6px rgba(15, 23, 42, .28); cursor: grab;
}
.r24-range input[type=range]:active::-webkit-slider-thumb { cursor: grabbing; transform: scale(1.08); }
.r24-range input[type=range]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 5px rgba(6, 106, 171, .28), 0 2px 6px rgba(15, 23, 42, .28); }
.r24-range input[type=range]:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 5px rgba(6, 106, 171, .28), 0 2px 6px rgba(15, 23, 42, .28); }
.r24-range__bubble { top: 0; z-index: 4; }
@media (pointer: coarse) {
	.r24-range input[type=range]::-webkit-slider-thumb { width: 32px; height: 32px; margin-top: -1px; }
}

/* чипы звёзд и питания: курсор-рука и мягкий hover */
.r24-chipradio, .r24-chipradio span, .r24-chipradio input { cursor: pointer; }
.r24-chipradio span { transition: background-color .15s var(--r24-ease), border-color .15s var(--r24-ease); }
.r24-chipradio:hover span { background: var(--r24-lilac); border-color: var(--r24-blue); }
.r24-chipradio input:checked + span, .r24-chipradio:hover input:checked + span { background: var(--r24-accent); border-color: var(--r24-ink); }
.r24-range input[type=range]::-webkit-slider-runnable-track { box-shadow: none !important; border: 0 !important; background: transparent !important; border-radius: 0 !important; } .r24-range input[type=range]::-moz-range-track { box-shadow: none !important; border: 0 !important; background: transparent !important; }
.r24-range__bubble[data-r24-bubble="1"] { transform: translateX(calc(-100% + 14px)); } .r24-range__bubble[data-r24-bubble="1"]::after { left: auto; right: 10px; margin-left: 0; } .r24-range__bubble[data-r24-bubble="0"] { transform: translateX(-14px); } .r24-range__bubble[data-r24-bubble="0"]::after { left: 10px; margin-left: 0; }
