/* Reis24 — страницы NovIT (поиск, предложение, отель) дизайна 15. Компоненты — design.css, карточки — home.css. */

.r24-np-page .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.r24-np-page #primary { margin: 0; padding: 0; width: 100%; }
.r24-np { overflow-x: clip; padding-bottom: var(--r24-s8); }
.r24-np ul, .r24-np ol, .r24-np dl { list-style: none; margin: 0; padding: 0; }
.r24-np li, .r24-np dd { margin: 0; }
.r24-np__top { padding: var(--r24-s3) 0 var(--r24-s4); }
.r24-crumbs { font-size: 13px; color: var(--r24-text-2); }
.r24-crumbs a { color: var(--r24-blue); }
.r24-np__h1 { font-size: clamp(30px, 3.4vw, 48px) !important; margin: var(--r24-s3) 0 6px !important; }
.r24-np__h1 .r24-stars { font-size: .45em; vertical-align: middle; color: var(--r24-accent); }
.r24-np__sub { margin: 0 0 var(--r24-s4); }
.r24-np__sub a { color: var(--r24-blue); }

/* ---------- поиск ---------- */
.r24-search-panel--page { margin: 0 auto var(--r24-s5); }
.r24-np__body { display: block; }
.r24-res { display: grid; grid-template-columns: 280px 1fr; gap: var(--r24-s5); align-items: start; }
.r24-res__filters-btn { display: none; }
.r24-filters { background: var(--r24-lilac); border-radius: var(--r24-r); padding: var(--r24-s5); position: sticky; top: var(--r24-s4); }
.r24-filters__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--r24-s2); }
.r24-filters__head h2 { font-size: 20px; }
.r24-filters__close { display: none !important; }
.r24-filters__group { border: 0; margin: 0 0 var(--r24-s4); padding: 0; min-width: 0; display: grid; gap: 2px; }
.r24-filters__group legend { font-weight: 800; font-size: 14px; margin-bottom: 6px; padding: 0; }
.r24-check--sub { margin-top: 4px; }
.r24-filters__stars { display: flex; gap: 6px; flex-wrap: wrap; }
.r24-chipradio { position: relative; }
.r24-chipradio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.r24-chipradio span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--r24-ink); border-radius: var(--r24-r-pill); background: #fff; font-weight: 800; cursor: pointer; }
.r24-chipradio input:checked + span { background: var(--r24-accent); }
.r24-chipradio input:focus-visible + span { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-filters__go { width: 100%; margin-top: var(--r24-s2); }
.r24-filters__clear { display: block; margin-top: var(--r24-s2); text-align: center; }
.r24-filters input[type=number], .r24-filters input[type=text] { width: 100%; min-height: 44px; border: 1px solid var(--r24-field); border-radius: var(--r24-r); padding: 0 var(--r24-s3); font: inherit; font-size: 16px; background: #fff; }
.r24-res__head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--r24-s4); margin-bottom: var(--r24-s3); }
.r24-res__head h1 { font-size: clamp(26px, 2.6vw, 34px) !important; }
.r24-res__sub { margin: 6px 0 0; font-size: 14px; }
.r24-res__sort { margin: 0; font-weight: 700; white-space: nowrap; font-size: 14px; }
.r24-res__active { display: flex; gap: var(--r24-s2); flex-wrap: wrap; margin-bottom: var(--r24-s4) !important; }
.r24-res__active a { min-height: 36px; border-radius: var(--r24-r-pill); }
.r24-res__empty { background: var(--r24-lilac); border-radius: var(--r24-r); padding: var(--r24-s5); }
.r24-rows { display: grid; gap: var(--r24-s3); margin-bottom: var(--r24-s5) !important; }
.r24-row { display: grid; grid-template-columns: 220px 1fr 200px; border-radius: var(--r24-r); overflow: hidden; background: #fff; box-shadow: 0 0 0 1px var(--r24-line); }
.r24-row__img { display: block; background: var(--r24-lilac); min-height: 170px; }
.r24-row__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.r24-row__info { padding: var(--r24-s4); display: flex; flex-direction: column; gap: 4px; min-width: 0; font-size: 15px; }
.r24-row__meta, .r24-row__op { font-size: 13px; }
.r24-row__meta .r24-stars { color: var(--r24-text-2); }
.r24-row__name { font-size: 20px !important; line-height: 1.25 !important; }
.r24-row__name a { color: var(--r24-ink); text-decoration: none; }
.r24-row__name a:hover, .r24-row__name a:focus { color: var(--r24-blue); text-decoration: underline; }
.r24-row__price { border-left: 1px solid var(--r24-line); padding: var(--r24-s4); display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px; text-align: right; }
.r24-row__sum { font-size: 28px; line-height: 1.1; }
.r24-row__go { min-height: 44px; padding: 0 var(--r24-s4); }
.r24-row__check { min-height: 32px; font-size: 13px; }
.r24-np .novit-load_more { margin: 0 auto; }

/* ---------- галерея ---------- */
.r24-gal { display: grid; gap: var(--r24-s2); margin-bottom: var(--r24-s5); }
.r24-gal--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 165px 165px; }
.r24-gal--3 .r24-gal__item--0 { grid-row: span 2; }
.r24-gal--5 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 220px 220px; }
.r24-gal--5 .r24-gal__item--0 { grid-row: span 2; }
.r24-gal__item { position: relative; display: block; border-radius: var(--r24-r); overflow: hidden; background: var(--r24-lilac); }
.r24-gal__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s var(--r24-ease); }
.r24-gal__item:hover img { transform: scale(1.03); }
.r24-gal__item:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-gal__more { position: absolute; right: var(--r24-s3); bottom: var(--r24-s3); background: var(--r24-accent); color: var(--r24-ink); border: 1px solid var(--r24-ink); border-radius: var(--r24-r-pill); padding: 6px 14px; font-weight: 800; font-size: 14px; }
.r24-lightbox { border: 0; padding: var(--r24-s4); width: min(1100px, calc(100% - 32px)); max-height: calc(100dvh - 48px); border-radius: var(--r24-r); }
.r24-lightbox::backdrop { background: rgba(15, 23, 42, .75); }
.r24-lightbox__close { position: sticky; top: 0; float: right; z-index: 2; }
.r24-lightbox__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--r24-s2); clear: both; }
.r24-lightbox__grid img { width: 100%; height: auto; border-radius: 12px; display: block; }

/* ---------- предложение ---------- */
.r24-offer-page { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--r24-s5); align-items: start; }
.r24-trip { background: var(--r24-lilac); border-radius: var(--r24-r); padding: var(--r24-s5); margin-bottom: var(--r24-s5); }
.r24-trip h2, .r24-dates h2, .r24-brief h2 { font-size: 22px !important; margin-bottom: var(--r24-s3) !important; }
.r24-trip__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--r24-s4); }
.r24-trip__grid dt { font-size: 13px; color: var(--r24-text-2); }
.r24-trip__grid dd { font-weight: 800; font-size: 17px; }
.r24-table { width: 100%; border-collapse: collapse; font-size: 15px; border-radius: var(--r24-r); overflow: hidden; }
.r24-table thead { background: var(--r24-navy); color: #fff; }
.r24-table th, .r24-table td { padding: 12px; text-align: left; border: 0; }
.r24-table thead th { font-weight: 800; }
.r24-table tbody tr { border-bottom: 1px solid var(--r24-line); background: #fff; }
.r24-table tbody tr.is-current { background: #fff8e6; }
.r24-table tbody tr.is-more:not(.is-shown) { }
.r24-table tr[hidden] { display: none; }
.r24-table__act { text-align: right !important; }
.r24-btn--sm { min-height: 36px; padding: 0 14px; font-size: 14px; }
.r24-dates { margin-bottom: var(--r24-s5); }
.r24-brief p a { color: var(--r24-blue); }
.r24-offer-page__side { display: grid; gap: var(--r24-s4); position: sticky; top: var(--r24-s4); }
.r24-pricebox { background: var(--r24-navy); color: #fff; border-radius: var(--r24-r); padding: var(--r24-s5); }
.r24-pricebox__sum { margin: 2px 0 6px; }
.r24-pricebox__sum b { font-size: 40px; color: var(--r24-accent); line-height: 1; }
.r24-pricebox__note, .r24-pricebox__pay { color: var(--r24-line); margin: 0 0 var(--r24-s3); }
.r24-pricebox__pay { margin: var(--r24-s3) 0 0; }
.r24-rp__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--r24-s2); }
.r24-pricebox .r24-field { color: #fff; }
.r24-pricebox .r24-field select, .r24-rp__ages input { width: 100%; min-height: 44px; border-radius: var(--r24-r); border: 1px solid var(--r24-field); padding: 0 var(--r24-s3); font: inherit; font-size: 16px; background: #fff; color: var(--r24-ink); }
.r24-rp__ages { display: grid; grid-template-columns: 1fr 1fr; gap: var(--r24-s2); margin-top: var(--r24-s2); }
.r24-rp__ages label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; color: #fff; }
.r24-rp__go { width: 100%; margin-top: var(--r24-s3); }
.r24-rp__loader { margin-top: var(--r24-s2); font-size: 14px; }
.r24-rp__slow { margin: var(--r24-s2) 0 0; font-size: 14px; line-height: 1.45; }
.r24-rp__slow a { color: inherit; font-weight: 700; text-decoration: underline; }
.r24-rp__results:empty { display: none; }
.r24-rp__results { margin-top: var(--r24-s3); background: #fff; color: var(--r24-ink); border-radius: 16px; padding: var(--r24-s3); }
.r24-rp__rooms { border: 0; margin: 0; padding: 0; display: grid; gap: 6px; }
.r24-rp__rooms legend { font-weight: 800; margin-bottom: 6px; padding: 0; }
.r24-rp__room { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; min-height: 44px; padding: 6px 10px; border: 1px solid var(--r24-line); border-radius: 12px; cursor: pointer; font-size: 14px; }
.r24-rp__room:has(input:checked) { border-color: var(--r24-ink); background: #fff8e6; }
.r24-rp__room input { width: 18px; height: 18px; accent-color: var(--r24-blue); }
.r24-rp__rprice { font-size: 18px; }
.r24-rp__flight { margin-top: var(--r24-s2); font-size: 14px; }
.r24-rp__flight summary { cursor: pointer; font-weight: 700; color: var(--r24-blue); min-height: 32px; }
.r24-rp__flight p { margin: 6px 0; }
.r24-rp__time, .r24-rp__none { margin: var(--r24-s2) 0 0; font-size: 14px; }
.r24-askbox { background: #fff; border-radius: var(--r24-r); padding: var(--r24-s5); box-shadow: 0 0 0 1px var(--r24-line); }
.r24-askbox h2 { font-size: 22px !important; margin-bottom: var(--r24-s3) !important; }
.r24-askbox .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-field-size-font-size: 16px; }
.r24-askbox .wpforms-field { padding: 0 0 var(--r24-s3) !important; }
.r24-askbox .wpforms-field-label { font-family: var(--r24-font) !important; font-weight: 700 !important; font-size: 14px !important; color: var(--r24-ink) !important; }
.r24-askbox input, .r24-askbox textarea { width: 100% !important; max-width: none !important; font-family: var(--r24-font) !important; font-size: 16px !important; }
.r24-askbox textarea { min-height: 96px !important; border-radius: var(--r24-r) !important; }
.r24-askbox button[type=submit] { width: 100%; font-family: var(--r24-font) !important; font-weight: 800 !important; border: 1px solid #0f172a !important; }
.r24-askbox .wpforms-confirmation-container-full { background: var(--r24-lilac) !important; border: 0 !important; border-radius: var(--r24-r); color: var(--r24-ink) !important; }
.r24-notebox { background: var(--r24-lilac); border-radius: var(--r24-r); padding: var(--r24-s4); font-size: 14px; }
.r24-notebox p { margin: 4px 0 0; }
.r24-notebox a { color: var(--r24-blue); }
.r24-similar { background: var(--r24-lilac); padding-bottom: var(--r24-s7); }
.r24-offers--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.r24-offer__op { font-size: 13px; }

/* ---------- отель ---------- */
.r24-hotel__head { display: grid; grid-template-columns: 1fr 460px; gap: var(--r24-s5); align-items: start; margin-bottom: var(--r24-s4); }
.r24-hotel__best { background: var(--r24-navy); color: #fff; border-radius: var(--r24-r); padding: var(--r24-s5); display: grid; grid-template-columns: auto 1fr; gap: var(--r24-s4); align-items: center; }
.r24-hotel__best p { margin: 6px 0 var(--r24-s3); color: var(--r24-line); }
.r24-hotel__circle { width: 120px; height: 120px; border-radius: 50%; background: var(--r24-accent); color: var(--r24-ink); display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: 0 0 0 5px #fff, 0 0 0 8px var(--r24-chrome); font-size: 12px; text-align: center; }
.r24-hotel__circle b { font-size: 26px; line-height: 1.1; }
.r24-anchors { display: flex; gap: var(--r24-s2); flex-wrap: wrap; margin-bottom: var(--r24-s4); }
.r24-anchors .r24-chip { border: 1px solid var(--r24-ink); background: #fff; }
.r24-hotel__dates { background: var(--r24-lilac); }
.r24-dates__filter { display: flex; gap: var(--r24-s3); flex-wrap: wrap; margin-bottom: var(--r24-s4); background: #fff; border-radius: var(--r24-r); padding: var(--r24-s4); }
.r24-dates__filter .r24-field { min-width: 200px; }
.r24-hotel__about-in { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--r24-s6); align-items: start; }
.r24-prose { font-size: 16px; }
.r24-prose p { margin: 0 0 var(--r24-s2); }
.r24-prose ul { list-style: disc !important; padding-left: 1.2em !important; }
.r24-prose li { margin: 0 0 4px; }
.r24-hotel__incl { background: var(--r24-navy); color: #fff; border-radius: var(--r24-r); padding: var(--r24-s5); }
.r24-hotel__incl h2 { color: #fff; font-size: 22px !important; margin-bottom: var(--r24-s3) !important; }
.r24-hotel__incl li { margin-bottom: 6px; }
.r24-hotel__no { color: var(--r24-line); }
.r24-hotel__feat { background: var(--r24-lilac); }
.r24-hotel__feat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--r24-s4); align-items: start; }
.r24-hotel__card { background: #fff; border-radius: var(--r24-r); padding: var(--r24-s5); font-size: 15px; }
.r24-hotel__card h3 { font-size: 18px !important; margin-bottom: var(--r24-s2) !important; }
.r24-hotel__book { background: var(--r24-navy); color: #fff; }
.r24-hotel__book-in { display: grid; grid-template-columns: 1fr 1fr; gap: var(--r24-s6); align-items: start; }
.r24-hotel__book h2 { color: #fff; }
.r24-hotel__book .r24-askbox h2 { color: var(--r24-ink); }
.r24-hotel__book .r24-ask__n { color: var(--r24-accent); }
.r24-hotel__book .r24-ask__q dd { color: var(--r24-line); }
.r24-hotel__book > .r24-c > div > h2 { font-size: 30px; margin-bottom: var(--r24-s5); }

/* ---------- снятое предложение ---------- */
.r24-gone { padding: var(--r24-s5) 0 var(--r24-s8); }
.r24-gone h1 { font-size: clamp(28px, 3vw, 40px) !important; margin-bottom: var(--r24-s3) !important; }
.r24-gone > p { max-width: 720px; }
.r24-gone__row { display: flex; gap: var(--r24-s2); flex-wrap: wrap; margin: var(--r24-s4) 0 var(--r24-s6); }

/* ---------- адаптив ---------- */
@media (max-width: 1100px) {
	.r24-res { grid-template-columns: 240px 1fr; }
	.r24-row { grid-template-columns: 180px 1fr 170px; }
	.r24-offer-page { grid-template-columns: minmax(0, 1fr) 340px; }
	.r24-hotel__head { grid-template-columns: 1fr; }
	.r24-offers--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-hotel__feat-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
	.r24-res { grid-template-columns: 1fr; }
	.r24-res__filters-btn { display: inline-flex; width: 100%; }
	.r24-filters { display: none; position: fixed; inset: 0; z-index: 1000; border-radius: 0; overflow-y: auto; padding: var(--r24-s4) var(--r24-s4) 96px; }
	.r24-filters.is-open { display: block; }
	.r24-filters__close { display: inline-flex !important; }
	.r24-filters__go { position: fixed; left: var(--r24-s4); right: var(--r24-s4); bottom: var(--r24-s4); width: auto; z-index: 1001; }
	.r24-offer-page { grid-template-columns: 1fr; }
	.r24-offer-page__side { position: static; }
	.r24-hotel__about-in, .r24-hotel__book-in { grid-template-columns: 1fr; }
	.r24-trip__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.r24-row { grid-template-columns: 1fr; }
	.r24-row__img { min-height: 0; height: 170px; }
	.r24-row__price { border-left: 0; border-top: 1px solid var(--r24-line); flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; text-align: left; }
	.r24-row__price > .r24-small { width: 100%; }
	.r24-row__sum { font-size: 24px; }
	.r24-res__head { flex-direction: column; gap: 6px; }
	.r24-gal--3, .r24-gal--5 { grid-template-columns: 2fr 1fr; grid-template-rows: 120px 120px; }
	.r24-gal--5 .r24-gal__item--3, .r24-gal--5 .r24-gal__item--4 { display: none; }
	.r24-gal--5 .r24-gal__item--2 .r24-gal__more { display: none; }
	.r24-table { font-size: 14px; }
	.r24-table th, .r24-table td { padding: 10px 8px; }
	.r24-table--dates thead th:nth-child(4), .r24-table--dates td:nth-child(4), .r24-table--dates thead th:nth-child(5), .r24-table--dates td:nth-child(5) { display: none; }
	.r24-hotel__best { grid-template-columns: 1fr; justify-items: start; }
	.r24-hotel__feat-grid, .r24-offers--4 { grid-template-columns: 1fr; }
	.r24-lightbox__grid { grid-template-columns: 1fr; }
	.r24-dates__filter .r24-field { min-width: 0; flex: 1; }
}
.r24-trip__grid dd { overflow-wrap: anywhere; }
/* мобильный: блок цены и заявки сразу после «Valitud reis», как на макете Paring-mobiil */
@media (max-width: 900px) {
	.r24-offer-page { display: flex; flex-direction: column; gap: 0; }
	.r24-offer-page__main { display: contents; }
	.r24-offer-page__side { order: 10; margin-bottom: var(--r24-s5); }
	.r24-offer-page .r24-dates { order: 20; }
	.r24-offer-page .r24-brief { order: 30; }
}

/* ---------- отель + выбранное предложение ---------- */
.r24-hotel__keys { display: flex; flex-wrap: wrap; gap: 4px var(--r24-s4); font-size: 15px; margin: 0 0 var(--r24-s3) !important; }
.r24-hotel__keys li::before { content: "✓ "; color: var(--r24-blue); font-weight: 800; }
.r24-hotel__keys li.r24-muted::before { content: ""; }
.r24-hotel__gone { background: #fff8e6; border: 1px solid var(--r24-accent); border-radius: var(--r24-r); padding: var(--r24-s4); margin: 0 0 var(--r24-s5); }
.r24-hotel__gone a { color: var(--r24-blue); font-weight: 700; }
.r24-picked { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--r24-s5); align-items: start; margin-bottom: var(--r24-s5); scroll-margin-top: var(--r24-s4); }
.r24-picked .r24-trip { box-shadow: 0 0 0 3px var(--r24-accent); background: #fff; }
.r24-picked__other { margin: var(--r24-s4) 0 0; }
.r24-picked__other a { color: var(--r24-blue); font-weight: 700; }
.r24-picked__side { display: grid; gap: var(--r24-s4); }
.r24-table tbody tr.is-current { box-shadow: inset 0 0 0 2px var(--r24-accent); }
.r24-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--r24-s2); margin-top: var(--r24-s4) !important; }
.r24-facts > div { background: var(--r24-lilac); border-radius: 14px; padding: 10px 14px; }
.r24-facts dt { font-size: 13px; color: var(--r24-text-2); }
.r24-facts dd { font-weight: 800; font-size: 18px; }
.r24-hotel__rooms { padding-top: 0; }
.r24-rooms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--r24-s3); }
.r24-room { border-radius: var(--r24-r); box-shadow: 0 0 0 1px var(--r24-line); padding: var(--r24-s4); display: flex; flex-direction: column; gap: 4px; }
.r24-room b { font-size: 17px; }
.r24-hotel__card ul { list-style: none !important; padding: 0 !important; font-size: 14px; }
.r24-hotel__card li { margin-bottom: 4px; }
.r24-hotel__ico { display: inline-flex; width: 48px; height: 48px; border-radius: 50%; align-items: center; justify-content: center; background: var(--r24-lilac); color: var(--r24-navy); margin-bottom: var(--r24-s2); }
.r24-hotel__card--beach .r24-hotel__ico, .r24-hotel__card--pool .r24-hotel__ico { background: #e3f2fb; color: var(--r24-blue); }
.r24-hotel__card--food .r24-hotel__ico { background: #fff3d6; color: #8a5a00; }
.r24-hotel__loc-in { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--r24-s6); align-items: start; }
.r24-dist > div { display: flex; justify-content: space-between; gap: var(--r24-s3); padding: 8px 0; border-bottom: 1px solid var(--r24-line); }
.r24-dist dd { font-weight: 800; }
.r24-numbers { background: var(--r24-lilac); border-radius: var(--r24-r); padding: var(--r24-s5); }
.r24-numbers dl { display: grid; grid-template-columns: 1fr 1fr; gap: var(--r24-s4); margin-top: var(--r24-s3) !important; }
.r24-numbers dd { font-size: 28px; font-weight: 800; line-height: 1; }
.r24-numbers dt { font-size: 13px; color: var(--r24-text-2); }
.r24-hotel__kids { color: var(--r24-line); margin-top: var(--r24-s5); }
.r24-askbox--link p { margin: 0 0 var(--r24-s3); color: var(--r24-ink); }
.r24-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--r24-s4); padding: var(--r24-s7) 0; }
.r24-trust__tile { background: var(--r24-lilac); border-radius: var(--r24-r); padding: var(--r24-s5); display: flex; flex-direction: column; gap: 4px; color: var(--r24-ink); text-decoration: none; }
.r24-trust__tile b { font-size: 26px; color: var(--r24-blue); line-height: 1.1; }
.r24-trust__tile--esto { background: var(--r24-accent); }
.r24-trust__tile--esto b { color: var(--r24-ink); font-size: 18px; }
a.r24-trust__tile:hover, a.r24-trust__tile:focus { background: var(--r24-accent-hover); color: var(--r24-ink); }
@media (max-width: 1100px) {
	.r24-picked { grid-template-columns: minmax(0, 1fr) 340px; }
	.r24-rooms { grid-template-columns: 1fr 1fr; }
	.r24-trust { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
	.r24-picked, .r24-hotel__loc-in { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.r24-rooms, .r24-trust { grid-template-columns: 1fr; }
	.r24-table--dates thead th:nth-child(4), .r24-table--dates td:nth-child(4) { display: none; }
	.r24-dates__filter { display: grid; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.r24-table--dates { table-layout: fixed; }
	.r24-table--dates th, .r24-table--dates td { padding: 10px 6px; word-break: break-word; }
	.r24-table--dates td:last-child, .r24-table--dates thead td:last-child { width: 76px; }
	.r24-table .r24-pill { font-size: 12px; padding: 3px 8px; }
	.r24-table .r24-btn--sm { padding: 0 10px; }
}

.r24-near { margin-top: var(--r24-s5); }
.r24-near h2 { font-size: 22px !important; margin-bottom: var(--r24-s3) !important; }
.r24-near ul { display: grid; gap: 6px; }
.r24-near a { display: grid; grid-template-columns: 110px 1fr auto; gap: var(--r24-s3); align-items: center; min-height: 52px; padding: 8px var(--r24-s4); border-radius: 14px; box-shadow: 0 0 0 1px var(--r24-line); color: var(--r24-ink); text-decoration: none; font-size: 15px; }
.r24-near a:hover, .r24-near a:focus { background: var(--r24-lilac); color: var(--r24-ink); }
.r24-near a:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-near a span { color: var(--r24-text-2); }
.r24-near p a { display: inline; box-shadow: none; padding: 0; color: var(--r24-blue); font-weight: 700; }
@media (max-width: 600px) { .r24-near a { grid-template-columns: 1fr auto; } .r24-near a span { grid-column: 1 / -1; grid-row: 2; } }
@media (max-width: 900px) {
	.r24-picked { display: flex; flex-direction: column; gap: var(--r24-s4); }
	.r24-picked__main { display: contents; }
	.r24-picked .r24-trip { order: 1; margin: 0; }
	.r24-picked__side { order: 2; }
	.r24-near { order: 3; margin-top: 0; }
}

/* таблица дат: фильтры ровной сеткой — 5 в ряд / 3+2 / 2 колонки */
.r24-dates__filter { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--r24-s3); }
.r24-dates__filter .r24-field { min-width: 0; }
@media (max-width: 1100px) {
	.r24-dates__filter { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.r24-dates__filter .r24-field { grid-column: span 2; }
	.r24-dates__filter .r24-field:nth-child(n+4) { grid-column: span 3; }
}
@media (max-width: 600px) {
	.r24-dates__filter { grid-template-columns: 1fr 1fr; }
	.r24-dates__filter .r24-field, .r24-dates__filter .r24-field:nth-child(n+4) { grid-column: auto; }
	.r24-dates__filter .r24-field:last-child { grid-column: 1 / -1; }
}
/* «Mugavused»: одинаковая высота карточек в ряду, длинный список — 4 пункта + «Näita kõiki» */
.r24-hotel__feat-grid { align-items: stretch; }
.r24-hotel__card { display: flex; flex-direction: column; }
.r24-hotel__card li.is-extra { display: none; }
.r24-hotel__card.is-open li.is-extra { display: list-item; }
.r24-hotel__more { margin-top: auto; align-self: flex-start; border: 0; background: none; padding: 6px 0 0; min-height: 36px; font: inherit; font-family: var(--r24-font); font-weight: 700; font-size: 14px; color: var(--r24-blue); cursor: pointer; }
.r24-hotel__more:hover, .r24-hotel__more:focus { color: var(--r24-navy); text-decoration: underline; background: none; }
.r24-hotel__more:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-gal__src { margin: -16px 0 var(--r24-s4); }

/* рейсы «посадочными талонами» и подтверждение цены */
.r24-flights { margin-top: var(--r24-s3); display: grid; gap: var(--r24-s2); }
.r24-flights__h { font-size: 15px; }
.r24-pass { border: 1px solid var(--r24-line); border-radius: 14px; padding: 10px 12px; background: #fff; }
.r24-pass__top { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--r24-text-2); }
.r24-pass__row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; margin: 6px 0 4px; }
.r24-pass__pt { display: flex; flex-direction: column; line-height: 1.1; }
.r24-pass__pt b { font-size: 22px; }
.r24-pass__pt b sup { font-size: 11px; color: var(--r24-blue); margin-left: 2px; }
.r24-pass__pt span { font-size: 13px; font-weight: 800; color: var(--r24-text-2); letter-spacing: .04em; }
.r24-pass__pt--arr { text-align: right; align-items: flex-end; }
.r24-pass__mid { display: flex; flex-direction: column; align-items: center; color: var(--r24-blue); }
.r24-pass__line { width: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(var(--r24-field), var(--r24-field)) center / 100% 1px no-repeat; }
.r24-pass__line svg { background: #fff; padding: 0 4px; box-sizing: content-box; }
.r24-pass__mid small { font-size: 12px; color: var(--r24-text-2); font-weight: 600; }
.r24-pass__foot { font-size: 12px; color: var(--r24-text-2); }
.r24-rp__time { margin: var(--r24-s2) 0 0; background: #e8f5ec; color: #1b5e33; border-radius: 10px; padding: 6px 10px; font-size: 13px; }
.r24-rp__ages > div { display: flex; flex-direction: column; gap: 4px; } .r24-rp__ages > div label { margin: 0; }

.r24-paxnote { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; margin: 0 0 var(--r24-s3); font-size: 14px; color: var(--r24-text-2); }
.r24-paxnote__edit { color: var(--r24-blue); font-weight: 700; }
.r24-rp__results.is-stale .r24-rp__rooms, .r24-rp__results.is-stale .r24-flights, .r24-rp__results.is-stale .r24-rp__time { opacity: .45; }
.r24-rp__stale { margin: 0 0 var(--r24-s2); background: #fff3d6; color: #6b4700; border-radius: 10px; padding: 6px 10px; font-size: 13px; font-weight: 700; }
.r24-pass__pt span.r24-pass__code { font-size: 18px; color: var(--r24-ink); }
.r24-pass__pt small { font-size: 11px; color: var(--r24-text-2); font-weight: 600; max-width: 12ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* проверка цены: нет предложения для состава / ошибка */
.r24-rp__empty { background: #fff8e6; border: 1px solid var(--r24-accent); border-radius: 14px; padding: 12px; color: var(--r24-ink); }
.r24-rp__empty--err { background: #fdecea; border-color: #e5a29b; }
.r24-rp__empty-t { display: flex; gap: 10px; align-items: flex-start; margin: 0; font-size: 14px; line-height: 1.45; }
.r24-rp__empty-t svg { flex: 0 0 auto; color: #b26b00; margin-top: 1px; }
.r24-rp__empty-act { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.r24-rp__empty-act .r24-btn { min-height: 40px; font-size: 14px; }

/* «Muuda»: подсветка блока туристов */
.r24-rp__row { border-radius: 14px; transition: box-shadow .2s var(--r24-ease); }
.r24-rp__row.is-flash { animation: r24-flash 1.4s var(--r24-ease) 1; box-shadow: 0 0 0 3px var(--r24-accent); }
@keyframes r24-flash { 0% { box-shadow: 0 0 0 0 rgba(255, 177, 8, .9); } 40% { box-shadow: 0 0 0 8px rgba(255, 177, 8, .35); } 100% { box-shadow: 0 0 0 3px var(--r24-accent); } }
@media (prefers-reduced-motion: reduce) { .r24-rp__row.is-flash { animation: none; } }

/* таблица дат на мобильном — карточки-строки */
.r24-dt__meta { display: none; }
@media (max-width: 640px) {
	.r24-table--dates, .r24-table--dates tbody { display: block; table-layout: auto; }
	.r24-table--dates thead { display: none; }
	.r24-table--dates tbody tr { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "date price" "date act"; align-items: center; gap: 2px 10px; padding: 10px 12px; margin-bottom: 8px; border: 1px solid var(--r24-line); border-radius: 14px; background: #fff; box-shadow: none; }
	.r24-table--dates tbody tr[hidden] { display: none; }
	.r24-table--dates tbody tr.is-current { border: 2px solid var(--r24-accent); background: #fff8e6; box-shadow: none; }
	.r24-table--dates td { padding: 0 !important; border: 0; }
	.r24-table--dates td:nth-child(2), .r24-table--dates td:nth-child(3), .r24-table--dates td:nth-child(4), .r24-table--dates td:nth-child(5) { display: none !important; }
	.r24-table--dates td.r24-dt__date { grid-area: date; display: flex; flex-direction: column; }
	.r24-table--dates td.r24-dt__date b { white-space: nowrap; font-size: 17px; }
	.r24-dt__meta { display: block; font-size: 13px; color: var(--r24-text-2); }
	.r24-table--dates td:nth-child(6) { grid-area: price; text-align: right; white-space: nowrap; font-size: 17px; }
	.r24-table--dates td.r24-table__act { grid-area: act; width: auto !important; text-align: right; }
	.r24-table--dates .r24-pill { white-space: nowrap; font-size: 12px; }
	.r24-table--dates .r24-btn--sm { min-height: 36px; padding: 0 14px; white-space: nowrap; }
	.r24-table-wrap { overflow: visible; }
}
/* кнопка «наверх» Astra на страницах редизайна не нужна — есть чат и липкая панель */
.r24-d15 #ast-scroll-top { display: none !important; }

/* номера: общие признаки строкой, в карточке — отличия чипами */
.r24-rooms__common { background: var(--r24-lilac); border-radius: 14px; padding: 10px 14px; margin: 0 0 var(--r24-s3); font-size: 14px; }
.r24-rooms { align-items: stretch; }
.r24-room { display: flex; flex-direction: column; gap: 8px; }
.r24-room.is-selected { box-shadow: 0 0 0 2px var(--r24-accent); background: #fff8e6; }
.r24-room__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.r24-room__head b { font-size: 17px; line-height: 1.25; }
.r24-room__head .r24-pill { white-space: nowrap; font-size: 12px; }
.r24-room__price { margin: 0; font-weight: 800; font-size: 18px; }
.r24-room__chips { display: flex; flex-wrap: wrap; gap: 6px; list-style: none !important; padding: 0 !important; margin: 0 !important; }
.r24-room__chips li { margin: 0; background: var(--r24-lilac); border-radius: 999px; padding: 3px 10px; font-size: 13px; font-weight: 600; }
.r24-room__beds { margin: 0; font-size: 13px; color: var(--r24-text-2); }
.r24-room__raw { margin-top: auto; font-size: 13px; }
.r24-room__raw summary { cursor: pointer; color: var(--r24-blue); font-weight: 700; min-height: 32px; display: inline-flex; align-items: center; }
.r24-room__raw p { margin: 4px 0 0; color: var(--r24-text-2); }
.r24-rooms__src { font-size: 12px; margin-top: var(--r24-s2); }

/* «Kuupäevad lähedal»: выбранное предложение в списке */
.r24-near__row { display: grid; grid-template-columns: 110px 1fr auto; gap: var(--r24-s3); align-items: center; min-height: 52px; padding: 8px var(--r24-s4); border-radius: 14px; font-size: 15px; }
.r24-near li.is-current .r24-near__row { box-shadow: 0 0 0 2px var(--r24-accent); background: #fff8e6; }
.r24-near__row > span { color: var(--r24-text-2); }
.r24-near__row > b:first-child { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.r24-near__badge { white-space: nowrap; font-size: 11px; padding: 1px 8px; }
.r24-near__p { white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .r24-near__row { grid-template-columns: 1fr auto; } .r24-near__row > span { grid-column: 1 / -1; grid-row: 2; } }

/* липкая панель разделов отеля + CTA */
.r24-anchors-sentinel { display: block; height: 1px; }
.r24-anchors-bar { position: sticky; top: 0; z-index: 40; padding: 8px 0; margin-bottom: var(--r24-s4); background: transparent; transition: background .2s, box-shadow .2s; }
.admin-bar .r24-anchors-bar { top: 32px; }
.r24-anchors-bar.is-stuck { background: rgba(255, 255, 255, .97); box-shadow: 0 6px 16px -10px rgba(15, 23, 42, .35); padding-top: max(8px, env(safe-area-inset-top)); }
.r24-anchors { display: flex; align-items: center; gap: var(--r24-s3); margin: 0 auto !important; }
.r24-anchors__list { display: flex; flex-wrap: wrap; gap: var(--r24-s2); flex: 1 1 auto; min-width: 0; }
.r24-anchors .r24-chip { min-height: 40px; }
.r24-anchors .r24-chip[aria-current="true"] { background: var(--r24-ink); color: #fff; border-color: var(--r24-ink); }
.r24-anchors__sel { display: none; }
.r24-anchors__cta { flex: 0 0 auto; white-space: nowrap; min-height: 44px; }
.r24-np-hotel #r24-kuupaevad, .r24-np-hotel #r24-hinnas, .r24-np-hotel #r24-toad, .r24-np-hotel #r24-mugavused, .r24-np-hotel #r24-asukoht, .r24-np-hotel #r24-broneeri, .r24-np-hotel #r24-paring, .r24-np-hotel #r24-valitud { scroll-margin-top: 84px; }
@media (max-width: 1100px) { .r24-anchors .r24-chip { min-height: 36px; padding: 0 12px; font-size: 14px; } }
@media (max-width: 640px) {
	.r24-anchors__list { display: none; }
	.r24-anchors__sel { display: block; flex: 1 1 auto; min-width: 0; }
	.r24-anchors__sel select { width: 100%; min-height: 44px; border: 1px solid var(--r24-ink); border-radius: var(--r24-r-pill); padding: 0 36px 0 16px; font: 700 15px var(--r24-font); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230f172a' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center; -webkit-appearance: none; appearance: none; color: var(--r24-ink); }
	.r24-anchors__cta { padding: 0 14px; font-size: 14px; }
	.r24-np-hotel #r24-kuupaevad, .r24-np-hotel #r24-hinnas, .r24-np-hotel #r24-toad, .r24-np-hotel #r24-mugavused, .r24-np-hotel #r24-asukoht, .r24-np-hotel #r24-broneeri, .r24-np-hotel #r24-paring, .r24-np-hotel #r24-valitud { scroll-margin-top: 72px; }
}

.r24-anchors-bar .r24-anchors { flex-wrap: nowrap; }
.r24-anchors__short { display: none; }
@media (max-width: 640px) { .r24-anchors__long { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .r24-anchors__short { display: inline; } }

/* выбранная строка: бейдж + «Küsi pakkumist ↑» */
.r24-sel-act { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.r24-sel-act .r24-pill { white-space: nowrap; font-size: 12px; }
.r24-ask-up { white-space: nowrap; min-height: 36px; }
.r24-near__end { display: inline-flex; align-items: center; gap: var(--r24-s3); }
@media (max-width: 640px) {
	.r24-table--dates td.r24-table__act { align-self: end; }
	.r24-near__end { flex-direction: column; align-items: flex-end; gap: 4px; }
}

/* CTA панели — только когда панель прилипла; место зарезервировано, ссылки не сдвигаются */
.r24-anchors__cta { opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
.r24-anchors-bar.is-stuck .r24-anchors__cta { opacity: 1; visibility: visible; transform: none; transition: opacity .18s ease, transform .18s ease, visibility 0s; }
@media (prefers-reduced-motion: reduce) { .r24-anchors__cta, .r24-anchors-bar.is-stuck .r24-anchors__cta { transition: none; transform: none; } }

/* выбранное предложение — вся строка ведёт к форме */
tr[data-r24-go-form], a.r24-near__row { cursor: pointer; }
.r24-table--dates tbody tr[data-r24-go-form]:hover { box-shadow: inset 0 0 0 2px var(--r24-accent-hover); }
.r24-table--dates tbody tr[data-r24-go-form]:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: -3px; }
a.r24-near__row { color: var(--r24-ink); text-decoration: none; }
.r24-near li.is-current a.r24-near__row:hover { box-shadow: 0 0 0 3px var(--r24-accent-hover); background: #fff3d1; color: var(--r24-ink); }
a.r24-near__row:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
@media (max-width: 640px) { .r24-table--dates tbody tr[data-r24-go-form]:hover { border-color: var(--r24-accent-hover); box-shadow: 0 0 0 2px var(--r24-accent-hover); } }

tr[data-r24-go-price], a.r24-near__row { cursor: pointer; }
.r24-table--dates tbody tr[data-r24-go-price]:hover { box-shadow: inset 0 0 0 2px var(--r24-accent-hover); }
.r24-table--dates tbody tr[data-r24-go-price]:focus-visible { outline: 3px solid var(--r24-focus); outline-offset: -3px; }
@media (max-width: 640px) { .r24-table--dates tbody tr[data-r24-go-price]:hover { box-shadow: 0 0 0 2px var(--r24-accent-hover); } }
.r24-np-hotel .r24-rp { scroll-margin-top: 84px; border-radius: 14px; }
.r24-rp.is-flash { animation: r24-flash 1.4s var(--r24-ease) 1; box-shadow: 0 0 0 3px var(--r24-accent); }
@media (prefers-reduced-motion: reduce) { .r24-rp.is-flash { animation: none; } }
@media (max-width: 640px) { .r24-np-hotel .r24-rp { scroll-margin-top: 72px; } }

.r24-hotel__book .r24-ops-note { color: var(--r24-on-dark-2); }
.r24-hotel__book .r24-ops-note a { color: #fff; }
