/* bts-carousel.css — Кнопка «Записаться» в карточках туров */

.tourmaster-tour-grid .tourmaster-tour-content-wrap {
    padding-bottom: 52px !important;
    position: relative;
}

/* === Carousel title fix === */
.gdlr-core-flexslider .tourmaster-tour-grid.tourmaster-price-right-title .tourmaster-tour-title {
    padding-right: 0 !important;
    font-size: 15px !important;
}

.bts-carousel-btn {
    display: inline-block;
    position: absolute;
    bottom: 16px;
    left: 20px;
    padding: 9px 24px;
    background: #61ad10;
    color: #fff !important;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 4px;
    text-decoration: none !important;
    transition: background 0.2s;
    line-height: 1.2;
}

.bts-carousel-btn:hover {
    background: #4e8f0c;
    color: #fff !important;
}

.bts-carousel-more {
    display: inline-block;
    position: absolute;
    bottom: 22px;
    right: 20px;
    font-size: 13px;
    font-weight: 600;
    color: #253C72 !important;
    text-decoration: none !important;
    line-height: 1.2;
    white-space: nowrap;
}
.bts-carousel-more:hover { text-decoration: underline !important; }


/* === Transition text blocks between sections === */
.bts-transition {
    max-width: 760px;
    margin: 0 auto;
    padding: 16px 20px 12px;
    text-align: center;
    color: #555;
    font-size: 17px;
    line-height: 1.75;
    font-family: inherit;
    position: relative;
    z-index: 2;
}
.bts-transition::before {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background: #61ad10;
    margin: 0 auto 14px;
    border-radius: 2px;
}

/* Reduce padding on wrappers adjacent to transition blocks */
.gdlr-core-pbf-wrapper:has(+ .bts-transition) {
    padding-bottom: 15px !important;
}
.bts-transition + .gdlr-core-pbf-wrapper {
    padding-top: 15px !important;
}

/* === SEO text block (page 5225) === */
.bts-seo-block {
    max-width: 100%;
    margin: 0 auto;
    padding: 10px 20px 30px;
    box-sizing: border-box;
}
/* Таблицы внутри SEO-текста (категории) — у части авторских вставок
   min-width: 800px и обёртка с overflow-x: auto, из-за чего таблица
   не влезает и появляется горизонтальная прокрутка. Прижимаем к
   ширине контейнера, ячейки переносятся по словам вместо обрезки. */
.bts-seo-block .custom-table-scroll-wrapper {
    overflow-x: visible !important;
}
.bts-seo-block table {
    min-width: 0 !important;
    width: 100% !important;
    table-layout: fixed !important;
}
.bts-seo-block table td,
.bts-seo-block table th {
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.bts-seo-block .gdlr-core-text-box-wrapper,
.bts-seo-block {
    text-align: left;
}
.bts-seo-block p,
.bts-seo-block .gdlr-core-text-box-wrapper p {
    font-size: 15px !important;
    color: #6B7686 !important;
    line-height: 1.75 !important;
    margin-bottom: 16px !important;
    text-indent: 0 !important;
    text-align: left !important;
}
.bts-seo-heading {
    font-size: 22px !important;
    color: #152C1F !important;
    margin: 34px 0 14px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    text-align: left !important;
}
.bts-seo-heading.bts-seo-heading-first {
    margin-top: 0 !important;
}
.bts-seo-block ul,
.bts-seo-block .gdlr-core-text-box-wrapper ul {
    margin: 14px 0 !important;
    padding-left: 20px !important;
    list-style: disc;
    text-align: left !important;
}
.bts-seo-block ul li,
.bts-seo-block .gdlr-core-text-box-wrapper ul li {
    font-size: 15px !important;
    color: #6B7686 !important;
    line-height: 1.75 !important;
    margin-bottom: 6px !important;
}
.bts-seo-block a,
.bts-seo-block .gdlr-core-text-box-wrapper a {
    color: #61ad10;
    text-decoration: none;
}
.bts-seo-block a:hover,
.bts-seo-block .gdlr-core-text-box-wrapper a:hover {
    text-decoration: underline;
}

/* === Stats counter block background === */
.bts-stats-block .gdlr-core-pbf-background {
    background: rgba(97,173,16,0.4) !important;
}
.bts-stats-block .gdlr-core-counter-item-count {
    color: #ffffff !important;
}
.bts-stats-block .gdlr-core-counter-item-suffix {
    color: #61ad10 !important;
}
.bts-stats-block .gdlr-core-counter-item-bottom-text {
    color: rgba(255,255,255,0.85) !important;
}

/* Затемнение фото героя на главной — раньше добавлялось через JS
   (см. когда-то darkenHero() в bts-carousel.js), из-за чего в
   инкогнито/на холодном кэше секунду-другую было видно недосветлённое
   фото до отработки скрипта. Тот же градиент чистым CSS — применяется
   сразу, никакого мигания. */
/* Внутри той же секции есть ещё один вложенный .gdlr-core-pbf-background-wrap
   — фоновый контейнер строки поиска, без собственного фото. По общему
   классу градиент ложился и на него тоже поверх уже затемнённого фото
   под ним — в этой узкой полосе получалось двойное затемнение.
   Прямой потомок берёт только настоящий фон шапки. */
#gdlr-core-wrapper-1 > .gdlr-core-pbf-background-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.25) 40%, rgba(0,0,0,0.50) 100%);
    z-index: 1;
    pointer-events: none;
}

/* === Excursions 4x4 grid (page 50001) === */
/* minmax(0, ...) вместо голого 1fr — иначе колонка растягивается под
   самый широкий нешрифтующийся контент карточки (например, длинный
   текст бейджа мест «Свободно мест: 16»), а остальные колонки в этой
   строке сужаются — карточки становятся разной ширины и, через
   aspect-ratio у фото, разной высоты. */
.bts-excursions-grid {
    display: grid !important;
    /* три карточки в ряд (Юля, 12.09.2026; до этого четыре) */
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    padding: 30px 0 50px;
    align-items: stretch !important;
}
/* На категориях и «Рекомендуемых экскурсиях» карточка обёрнута ещё в
   один слой родной вёрстки (.gdlr-core-item-list) — он держит старую
   ширину в процентах и float от исходной колоночной раскладки (20%
   для 5 колонок, 30% для 3). В CSS-grid эта обёртка сама становится
   ячейкой, и её собственная узкая ширина не даёт карточке растянуться
   на всю ячейку — отсюда узкие карточки с гигантским пустым полем
   справа. Сбрасываем. На самой сетке «Афиша экскурсий» на главной
   этого слоя нет (там разметку строит bts-carousel.js без него),
   правило безвредно. */
.bts-excursions-grid > .gdlr-core-item-list {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.bts-excursions-grid .tourmaster-tour-grid {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}
.bts-excursions-grid .tourmaster-tour-grid-inner {
    height: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}
.bts-excursions-grid .tourmaster-tour-thumbnail {
    position: relative !important;
    height: 160px !important;
    overflow: hidden !important;
    flex: 0 0 auto !important;
}
/* На категориях и в сетке «Ближайшие экскурсии» на главной — фото по
   своей пропорции вместо фиксированной высоты 160px (главная — с
   12.09.2026, Юля: «сделай карточки такими же как в категориях»; при
   трёх карточках в ряд полоска 160px выглядела сплющенной). В
   «Рекомендуемых экскурсиях» на странице тура и в «Избранном» фото
   остаётся 160px. Соотношение взято по размеру, который реально отдаёт
   WordPress для карточек (400×285) — квадрат (1/1) оказался слишком
   крупным. */
.bts-excursions-grid-category .tourmaster-tour-thumbnail,
#bts-excursions-grid .tourmaster-tour-thumbnail {
    height: auto !important;
    aspect-ratio: 400 / 285 !important;
}
.bts-excursions-grid .tourmaster-tour-thumbnail a {
    display: block !important;
    height: 100% !important;
}
.bts-excursions-grid .tourmaster-tour-content-wrap {
    flex: 1 !important;
    min-width: 0 !important;
    height: auto !important;
    padding: 12px 14px 48px !important;
    display: flex !important;
    flex-direction: column !important;
}
.bts-excursions-grid .tourmaster-tour-content {
    display: none !important;
}
.bts-excursions-grid .tourmaster-tour-title {
    padding-right: 0 !important;
    font-size: 15px !important;
}
.bts-excursions-grid .tourmaster-tour-price-wrap {
    min-height: 24px !important;
    flex: 0 0 auto !important;
    margin-top: auto !important;
}
.bts-excursions-grid .tourmaster-tour-info-wrap {
    min-height: 40px !important;
    font-size: 12px !important;
    flex: 0 0 auto !important;
}
/* «· и ещё 3 даты» открывает компактный выбор выезда. Сам список
   добавляется в body, поэтому не обрезается границами карточки. */
.bts-more-dates {
    color: #7a879c;
    white-space: nowrap;
    cursor: pointer;
    transition: color .18s ease;
}
.bts-more-dates-label {
    border-bottom: 1px dashed #9aa6b8;
    transition: border-color .18s ease;
}
.bts-more-dates:hover,
.bts-more-dates:focus-visible,
.bts-more-dates[aria-expanded="true"] {
    color: #173873;
    outline: none;
}
.bts-more-dates:hover .bts-more-dates-label,
.bts-more-dates:focus-visible .bts-more-dates-label,
.bts-more-dates[aria-expanded="true"] .bts-more-dates-label {
    border-bottom-color: #173873;
}
.bts-more-dates .fa {
    margin-left: 4px;
    font-size: 11px;
    transition: transform .18s ease;
}
.bts-more-dates[aria-expanded="true"] .fa {
    transform: rotate(180deg);
}
.bts-card-date-picker {
    position: fixed;
    z-index: 100050;
    width: 340px;
    max-width: calc(100vw - 24px);
    padding: 8px;
    box-sizing: border-box;
    border: 1px solid #dbe3ef;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(24, 49, 87, .18);
    font-family: inherit;
}
.bts-card-date-picker-title {
    padding: 5px 10px 7px;
    color: #173873;
    font-size: 13px;
    font-weight: 700;
}
.bts-card-date-option {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 40px;
    padding: 7px 10px;
    box-sizing: border-box;
    border-radius: 8px;
    color: #253858 !important;
    font-size: 14px;
    line-height: 1.35;
    text-decoration: none !important;
}
.bts-card-date-option:hover,
.bts-card-date-option:focus-visible {
    background: #f1f5fb;
    color: #173873 !important;
    outline: none;
}
.bts-card-date-option.is-current {
    background: #f5f8fc;
}
.bts-card-date-option > .fa {
    flex: 0 0 auto;
    color: #59b70a;
}
.bts-card-date-label {
    flex: 1 1 auto;
    min-width: 0;
}
.bts-card-date-meta {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    min-width: 72px;
}
.bts-card-date-seats {
    color: #2e7d32;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
.bts-card-date-seats.is-low,
.bts-card-date-seats.is-none {
    color: #c0392b;
}
.bts-card-date-seats.is-unknown {
    color: #7a879c;
    font-weight: 500;
}
.bts-card-date-current {
    color: #7a879c;
    font-size: 11px;
    white-space: nowrap;
}
.bts-excursions-grid .tourmaster-thumbnail-wrap,
.bts-excursions-grid .tourmaster-tour-thumbnail img {
    width: 100% !important;
    height: 160px !important;
    object-fit: cover !important;
    display: block !important;
}
/* Категории: картинка внутри должна тянуться на всю квадратную высоту
   контейнера, а не оставаться на родных 160px — иначе снизу пустое
   место (специфичность у обоих правил одинаковая, побеждает то, что
   ниже по каскаду, поэтому это — после общего правила, а не до). */
.bts-excursions-grid-category .tourmaster-thumbnail-wrap,
.bts-excursions-grid-category .tourmaster-tour-thumbnail img,
#bts-excursions-grid .tourmaster-thumbnail-wrap,
#bts-excursions-grid .tourmaster-tour-thumbnail img {
    height: 100% !important;
}
/* Вместо фото — анонс-графика (лого+текст на белом), галка в bts-map.php
   (см. bts-badges.js). Обрезка в квадрат режет текст по краям, поэтому
   для таких карточек показываем картинку целиком без обрезки — у неё и
   так белый фон, так что вписывание в квадрат не будет заметно. */
.tourmaster-tour-thumbnail.bts-thumb-ph-placeholder img {
    object-fit: contain !important;
    background: #fff !important;
}
/* Заглушка-логотип вместо пустого превью, когда у тура нет фото
   (см. fillMissingThumbnails() в bts-carousel.js). Без привязки к
   .bts-excursions-grid — эти классы свои, нигде больше не встречаются,
   а карусель на главной (.gdlr-core-flexslider) в эту сетку не входит:
   без глобальной области видимости лого там рендерилось растянутым
   (object-fit:fill от темы, ничего не перебивало). */
/* В карусели у темы нет фиксированной высоты превью — она берётся из
   самой картинки (зарегистрированный размер 400x257, видно по имени
   файла в исходниках). У заглушки картинки нет, блок схлопывался по
   высоте контента вместо высоты настоящего фото. Задаём то же
   соотношение сторон явно. */
.gdlr-core-flexslider[data-type="carousel"] .bts-thumb-logo-fallback {
    height: auto !important;
    aspect-ratio: 600 / 333 !important;
}
.bts-thumb-logo-fallback {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #F3F5F8 !important;
}
/* .tourmaster-tour-thumbnail в цепочке — та же история со
   специфичностью, что и у .bts-thumb-logo-img: общее правило темы
   «.tourmaster-tour-thumbnail a» (2 класса+тип) забивало display:flex,
   ссылка оставалась block, лого прижималось к верху вместо центра. */
.tourmaster-tour-thumbnail.bts-thumb-logo-fallback a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    padding: 20px !important;
    box-sizing: border-box !important;
}
.bts-thumb-logo-box {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    text-align: center !important;
    width: 100% !important;
}
/* Специфичность важна: на сетке главной есть .bts-excursions-grid на
   предке, и общее правило «.bts-excursions-grid .tourmaster-tour-thumbnail
   img» (2 класса + тип) снова оказывалось специфичнее прежней версии
   этого правила (2 класса без типа) — победило опять оно, лого опять
   обрезалось. .bts-thumb-logo-fallback добавлен третьим классом в
   цепочку, чтобы выигрывать железно, независимо от того, есть рядом
   .bts-excursions-grid или нет (категории/сетка/карусель/похожие). */
.tourmaster-tour-thumbnail.bts-thumb-logo-fallback .bts-thumb-logo-img {
    width: 55% !important;
    height: auto !important;
    object-fit: contain !important;
}
.tourmaster-tour-thumbnail.bts-thumb-logo-fallback .bts-thumb-logo-title {
    color: #253C72 !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
    max-width: 100% !important;
    max-height: 65% !important;
    overflow: hidden !important;
    overflow-wrap: break-word !important;
}
/* Разделитель между действующими и прошедшими турами на страницах
   категорий — растягивается на всю ширину CSS-grid сетки. */
.bts-excursions-grid.bts-excursions-grid-category .bts-past-divider {
    grid-column: 1 / -1;
    font-size: 16px;
    font-weight: 700;
    color: #253C72;
    padding: 22px 0 6px;
    margin-top: 14px;
    border-top: 2px solid #e5e5e5;
}
.bts-excursions-grid.bts-excursions-grid-category .bts-active-divider {
    margin-top: 0;
    padding: 0 0 10px;
    border-top: none;
}
/* «Лист ожидания» — тот же вид, что на афише (.bts-card-btn-waitlist
   в bts-afisha.css): светло-жёлтый фон, оранжевая рамка и текст.
   Без привязки к .bts-excursions-grid — кнопка есть и в карусели,
   и на категориях, вид должен быть один. */
.bts-carousel-waitlist.bts-carousel-btn {
    background: #fff3e0 !important;
    border: 1.5px solid #e65100 !important;
    color: #e65100 !important;
}
.bts-carousel-waitlist.bts-carousel-btn:hover {
    background: #ffe8cc !important;
    color: #e65100 !important;
}
/* Остаток мест на карточке — та же цветовая логика, что и в форме
   бронирования на странице тура (.bts-seats-ok/-low). Без привязки к
   .bts-excursions-grid — карусель на главной эту сетку не использует,
   без глобальной области видимости бейдж показывался голым текстом
   без фона (тот же баг, что был с лого-заглушкой). */
.bts-card-seats {
    margin: 0 0 8px;
    padding: 4px 10px;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
}
.bts-card-seats.seats-ok { background: #e8f5e9; color: #2e7d32; }
.bts-card-seats.seats-low { background: #fff3e0; color: #e65100; }
.bts-card-seats.seats-none { background: #ffebee; color: #c0392b; }
/* Мест — рядом с ценой, не отдельной строкой (bts-card-seats-inline,
   вставляет checkCategorySeats() внутрь .tourmaster-tour-price-wrap).
   display:flex тут безвредна и для карточек без бейджа — с одним
   ребёнком выглядит как обычный блок. */
.tourmaster-tour-price-wrap {
    display: flex !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    gap: 8px;
}
/* …но не в шапке страницы тура. Там в том же блоке нет никаких «мест»,
   зато иконка-ценник нарисована псевдоэлементом :before (ElegantIcons,
   margin-right:15px в теме). В flex он становится таким же элементом,
   и space-between раскидывает иконку и цену по разным краям — между
   ними получалась дыра в полстроки. Возвращаем блочный режим темы. */
.tourmaster-header-price .tourmaster-tour-price-wrap {
    display: block !important;
    justify-content: normal !important;
}
.bts-card-seats-inline {
    margin: 0;
    padding: 3px 9px;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
}
/* Только сетка «Афиша экскурсий» на главной (id, не класс — тот же
   класс носят и категории, там места остаются рядом с ценой) — своей
   строкой сразу после длительности/даты, тем же цветом, что и сам
   текст (fon без плашки, как «Осталось мест» на афише). */
/* Иконки длительности/даты у темы сидят не на margin, а в одинаковой
   рамке 18px (глиф центрирован внутри) — при разной ширине символа
   margin-right давал одинаковый отступ ДО глифа, но не после него,
   из-за чего текст у разных строк съезжал. Даю такую же рамку. */
/* В наборе FontAwesome 4.7 (шрифт темы) нет контурной версии fa-users —
   только сплошная заливка. Делаю контур вручную: заливку прячем
   (text-fill-color: transparent), видимым остаётся только обвод тем же
   цветом, что и текст строки (currentColor, наследуется от .seats-ok/
   -low/-none). Не поддерживается в старых Firefox — тогда просто
   останется сплошной значок, не критично. */
#bts-excursions-grid .bts-card-seats-line i {
    display: inline-block;
    width: 18px;
    margin-right: 7px;
    font-size: 18px;
    text-align: center;
    color: currentColor;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 1px currentColor;
}
/* .tourmaster-tour-info-wrap несёт margin-bottom:10px — рассчитан на то,
   что сразу за ним идёт price-wrap. У нас между ними встаёт эта строка,
   и 10px складывались с её собственным отступом сверху, из-за чего
   отступ от даты получался в 2+ раза больше, чем между строками
   длительности/даты (6px). Гасим margin здесь; своего отступа сверху
   у строки не задаю — min-height:51px у самого инфо-блока (см. ниже
   по каскаду) и так оставляет под текстом ~6px свободного места,
   этого достаточно, чтобы совпасть с внутренним зазором строк. */
#bts-excursions-grid .tourmaster-tour-info-wrap {
    margin-bottom: 0 !important;
}
#bts-excursions-grid .bts-card-seats-line {
    /* .bts-excursions-grid .tourmaster-tour-title/-info-wrap/-price-wrap
       живут в общей flex-раскладке с order:1/2/3 — без своего order
       место утекало на order:4 общего правила .bts-card-seats (после
       цены, там, где Юля его не хотела), место в DOM не имеет значения. */
    order: 2;
    /* подложка как на странице тура (.bts-seats-info в bts-tour.css):
       тот же светлый фон и скругление. align-self держит плашку по
       ширине текста — иначе флекс растянул бы её на всю колонку */
    align-self: flex-start;
    /* минус слева ровно на внутренний отступ плашки: иконка встаёт в тот
       же столбец, что часы и календарь строкой выше, а фон уходит под неё */
    margin: 0 0 8px -9px !important;
    padding: 4px 9px !important;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
}
#bts-excursions-grid .bts-card-seats-line.seats-ok   { color: #2e7d32 !important; background: #e8f5e9 !important; }
#bts-excursions-grid .bts-card-seats-line.seats-low  { color: #e65100 !important; background: #fff3e0 !important; }
#bts-excursions-grid .bts-card-seats-line.seats-none { color: #c0392b !important; background: #ffebee !important; }

/* Остаток мест в карусели — тот же вид, что в сетке на главной:
   отдельной строкой после даты с иконкой людей, а не плашкой рядом
   с ценой. Правила скопированы с сетки; отличается только order —
   в карусели своя нумерация (title:1, описание:2, инфо-блок:3,
   цена:4). order:3, как у инфо-блока: при равных значениях порядок
   решает DOM, а строку мест JS вставляет сразу после него — значит
   встанет между датой и ценой. Правило идёт ПОСЛЕ общего
   `.bts-card-seats { order: 5 }` — у них одинаковая специфичность,
   и побеждает то, что ниже по файлу. */
.gdlr-core-flexslider[data-type="carousel"] .bts-card-seats-line {
    order: 3;
    /* та же подложка, что в сетке и на странице тура */
    align-self: flex-start;
    /* минус слева ровно на внутренний отступ плашки: иконка встаёт в тот
       же столбец, что часы и календарь строкой выше, а фон уходит под неё */
    margin: 0 0 8px -9px !important;
    padding: 4px 9px !important;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
}
.gdlr-core-flexslider[data-type="carousel"] .bts-card-seats-line i {
    display: inline-block;
    width: 18px;
    margin-right: 7px;
    font-size: 18px;
    text-align: center;
    color: currentColor;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 1px currentColor;
}
.gdlr-core-flexslider[data-type="carousel"] .bts-card-seats-line.seats-ok   { color: #2e7d32 !important; background: #e8f5e9 !important; }
.gdlr-core-flexslider[data-type="carousel"] .bts-card-seats-line.seats-low  { color: #e65100 !important; background: #fff3e0 !important; }
.gdlr-core-flexslider[data-type="carousel"] .bts-card-seats-line.seats-none { color: #c0392b !important; background: #ffebee !important; }
/* «Показать ещё» вместо номерной пагинации на категориях. */
.bts-excursions-grid .bts-load-more-btn {
    grid-column: 1 / -1;
}
.bts-load-more-btn {
    display: block;
    margin: 30px auto 10px;
    padding: 12px 40px;
    background: #253C72;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.bts-load-more-btn:hover { background: #1a2c56; }
.bts-load-more-btn:disabled { opacity: 0.6; cursor: default; }
.bts-excursions-grid .bts-carousel-btn {
    font-size: 12px !important;
    padding: 7px 16px !important;
    bottom: 10px !important;
    left: 14px !important;
}
/* Категории и «Рекомендуемые экскурсии» на странице тура — тот же
   стиль карточек, тоже 3 в ряд. Класс оставлен: сетка главной и эти
   блоки могут разойтись снова, как уже было (главная — 4 в ряд до
   12.09.2026). */
.bts-excursions-grid-3col {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
@media (max-width: 768px) {
    .bts-excursions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 480px) {
    .bts-excursions-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* На узких экранах ссылка в карусели уходит под название. */
@media (max-width: 480px) {
    .bts-carousel-more {
        position: static !important;
        display: block !important;
        margin: 4px 0 8px !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Оформление карточки в сетке «Афиша экскурсий» на главной.

   Порядок в разметке темы: заголовок → «Подробнее» → цена →
   даты → кнопка. Через flex order выстраиваем по-человечески:
   заголовок → даты → цена → кнопка → «Подробнее».

   Заголовок обрезается тремя строками, блок дат имеет
   фиксированный минимум — за счёт этого все карточки ряда
   одной высоты, а цена и кнопка встают на один уровень.
   ═══════════════════════════════════════════════════════════════ */

/* Карточка становится объектом: белый фон, рамка, скругление.
   overflow скругляет углы картинки заодно. */
.bts-excursions-grid .tourmaster-tour-grid-inner {
    background: #fff !important;
    border: 1px solid #E6E6E6 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
}
.bts-excursions-grid .tourmaster-tour-content-wrap {
    padding: 14px !important;
    background: #fff !important;
    justify-content: flex-start !important;
    /* тема сама выравнивает высоту карточек в ряд через свой JS
       (gdlr-core-js, атрибут data-sync-height), вписывая инлайн-стилем
       фиксированную высоту по самой высокой карточке — иногда сильно
       завышенную. Возвращаем авто-высоту, вёрстка и так flex-колонкой. */
    height: auto !important;
}

.bts-excursions-grid .tourmaster-tour-title      { order: 1; }
.bts-excursions-grid .tourmaster-tour-info-wrap  { order: 2; }
.bts-excursions-grid .tourmaster-tour-price-wrap { order: 3; }
.bts-excursions-grid .bts-card-seats             { order: 4; }
.bts-excursions-grid .bts-carousel-btn           { order: 5; }
.bts-excursions-grid .bts-carousel-more          { order: 6; }

/* === Категории: остаток мест строкой под датой ===
   Раньше в категориях плашка стояла рядом с ценой (.bts-card-seats-inline).
   Юля попросила «как в карусели» — строкой после даты, с иконкой людей.
   Правила те же, что у сетки на главной (блок `#bts-excursions-grid
   .bts-card-seats-line` выше), но там они висят на id: класс
   .bts-excursions-grid носят и категории, и поиск, и «Рекомендуемые
   экскурсии» на странице тура, а трогать хотели только категории —
   их метит .bts-excursions-grid-category (ставит markExcursionGrids()).
   Блок обязан идти НИЖЕ правила `.bts-card-seats { order: 4 }`:
   специфичность у них одинаковая, побеждает то, что ниже по файлу. */
.bts-excursions-grid-category .tourmaster-tour-info-wrap:has(+ .bts-card-seats-line) {
    margin-bottom: 0 !important;
}
.bts-excursions-grid-category .bts-card-seats-line {
    order: 2;                    /* сразу за инфо-блоком, он тоже order:2 */
    align-self: flex-start;      /* плашка по ширине текста, не на всю колонку */
    /* минус слева ровно на внутренний отступ: иконка встаёт в тот же
       столбец, что часы и календарь строкой выше */
    margin: 0 0 8px -9px !important;
    padding: 4px 9px !important;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
}
.bts-excursions-grid-category .bts-card-seats-line i {
    display: inline-block;
    width: 18px;
    margin-right: 7px;
    font-size: 18px;
    text-align: center;
    color: currentColor;
    /* контурный значок: сплошную заливку прячем, остаётся обвод */
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 1px currentColor;
}
.bts-excursions-grid-category .bts-card-seats-line.seats-ok   { color: #2e7d32 !important; background: #e8f5e9 !important; }
.bts-excursions-grid-category .bts-card-seats-line.seats-low  { color: #e65100 !important; background: #fff3e0 !important; }
.bts-excursions-grid-category .bts-card-seats-line.seats-none { color: #c0392b !important; background: #ffebee !important; }

/* Заголовок: крупнее, фирменным синим, ровно две строки */
.bts-excursions-grid .tourmaster-tour-title {
    font-size: 16px !important;
    line-height: 21px !important;
    margin: 0 0 10px !important;
    min-height: 42px;
    max-height: 42px;
    overflow: hidden;
}
/* Обрезка висит на span с текстом внутри ссылки, а не на заголовке и не
   на самой ссылке. Заголовок — элемент флекса (контент карточки мы
   сделали колонкой ради порядка блоков), а флекс отменяет у своих детей
   display: -webkit-box, без которого -webkit-line-clamp не работает;
   ссылка по той же причине тоже не годится. Правило было, но молчало:
   «Маслянино: Суенгинскими тропами (…)» разъезжалось на пять строк и
   роняло цену с кнопкой ниже соседей.
   max-height у заголовка страхует: даже если многоточие не появится,
   лишние строки всё равно не вылезут. */
.bts-excursions-grid .tourmaster-tour-title a > span {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.bts-excursions-grid .tourmaster-tour-title,
.bts-excursions-grid .tourmaster-tour-title a {
    color: #253C72 !important;
}
/* Тема вставляет в ссылку заголовка значок-молнию. Не нужен. */
.bts-excursions-grid .tourmaster-tour-title svg {
    display: none !important;
}

/* Бейдж темы («Новинка!», «Хит») — вместо громоздкой ленты
   с уголком-загибом компактная плашка. Цвет приходит из
   настроек тура и не трогается. */
.bts-excursions-grid .tourmaster-thumbnail-ribbon {
    top: 10px !important;
    left: 10px !important;
    padding: 5px 12px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    border-radius: 20px !important;
}
.bts-excursions-grid .tourmaster-thumbnail-ribbon-cornor {
    display: none !important;
}
/* В карусели у карточек стиля tourmaster-tour-grid-style-2 тема сама
   прописывает `top: -18px` для ленты — из-за реальной вложенности
   разметки (лента не внутри блока с фото, а рядом) это утаскивает её
   к нижнему краю фото вместо верхнего левого угла, где она у стиля-1
   и так стоит правильно (родной дефолт темы — top:30px; left:-10px).
   Только позиция — форму (уголок-загиб) не трогаем. */
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-thumbnail-ribbon {
    top: 30px !important;
    left: -10px !important;
    padding: 10px 14px 10px 20px !important;
}
/* Продолжительность и дата — двумя строками со значками в колонку */
/* Фиксированная высота блока — от неё зависит, что цена и кнопка
   во всех карточках ряда встанут на один уровень.
   51px = две строки: продолжительность и дата. Обе в одну строку,
   без переносов — подпись сокращена до «Дата:» в bts-carousel.js
   именно ради этого. */
.bts-excursions-grid .tourmaster-tour-info-wrap {
    min-height: 51px !important;
    margin: 0 0 10px !important;
    font-size: 12px !important;
}
.bts-excursions-grid .tourmaster-tour-info {
    display: flex !important;
    align-items: center !important;
    gap: 7px;
    margin: 0 0 6px !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
    color: #5A5A5A !important;
}
.bts-excursions-grid .tourmaster-tour-info i.fa-calendar {
    color: #61AD10 !important;
    font-size: 18px !important;
    width: 18px;
    text-align: center;
    flex: 0 0 auto;
    margin: 0 !important;
}
.bts-excursions-grid .tourmaster-tour-info-duration-text svg {
    width: 16px;
    height: 16px;
    fill: #61AD10;
    flex: 0 0 auto;
    margin: 0 !important;
}
/* У многодневных туров иконка длительности — inline SVG (правило выше),
   у однодневных — другой шрифт темы, icon_clock_alt (ElegantIcons),
   шире (20px вместо 18) и со своим margin-right:4px в дополнение
   к общему flex-gap:7px — итоговый отступ до текста получался 11px
   вместо 7, только у однодневных экскурсий (Юля: «отступ большой»).
   Приводим к тому же боксу и нулевому отступу, что у SVG/календаря. */
.bts-excursions-grid .tourmaster-tour-info-duration-text i.icon_clock_alt {
    width: 18px !important;
    margin-right: 0 !important;
    flex: 0 0 auto;
}

/* Цена: тёмная, у левого края, отделена линией. «От» — мелким серым */
/* margin-top: auto здесь НЕ нужен: он раздаёт свободное место
   по-разному в разных карточках и кнопки разъезжаются на 26 px. */
.bts-excursions-grid .tourmaster-tour-price-wrap {
    margin-top: 0 !important;
    min-height: 0 !important;
    padding-top: 10px !important;
    border-top: 1px solid #F0F0F0;
}
.bts-excursions-grid .tourmaster-tour-price {
    font-size: 22px !important;
    color: #252525 !important;
}
.bts-excursions-grid .tourmaster-tour-price .tourmaster-head {
    font-size: 11px !important;
    font-weight: 400 !important;
    color: #9A9A9A !important;
    margin-right: 6px;
    text-transform: lowercase;
}

/* Кнопка во всю ширину вместо прижатой влево */
.bts-excursions-grid .bts-carousel-btn {
    position: static !important;
    display: block !important;
    left: auto !important;
    bottom: auto !important;
    margin: 10px 0 0 !important;
    padding: 10px 0 !important;
    font-size: 13px !important;
    text-align: center;
    border-radius: 6px !important;
    text-transform: none !important;
}

/* «Подробнее» — второстепенное действие, под кнопкой */
.bts-excursions-grid .bts-carousel-more {
    position: static !important;
    display: block !important;
    margin: 7px 0 0 !important;
    font-size: 12px !important;
    text-align: center;
}

/* Вводный абзац между баннером категории и сеткой туров
   (см. insertCategoryIntro() в bts-carousel.js) */
.bts-category-intro {
    max-width: 820px;
    margin: 20px auto 0;
    padding: 0 20px;
    text-align: center;
}
/* На странице со вставленным вводным абзацем сетка идёт сразу за ним —
   верхний отступ сетки (нужен, когда перед ней «Афиша экскурсий» без
   абзаца) тут только удваивает пробел. */
body:has(.bts-category-intro) .bts-excursions-grid {
    padding-top: 0 !important;
}
.bts-category-intro p {
    font-size: 17px;
    line-height: 1.75;
    color: #3F4A5A;
    margin: 0;
}

/* ═══════════════════════════════════════════════════════════════
   Пока FlexSlider не собрался, его слайды — это просто <li> с
   float:left, поэтому они выкладываются сеткой в несколько рядов и
   переносятся; цены в узких карточках ломаются в столбик («о/т»,
   «₽» на новой строке). Юля прислала скриншот этого состояния при
   жёстком обновлении. FlexSlider при инициализации оборачивает
   ul.slides в .flex-viewport — по нему и различаем: до обёртки
   слайды скрыты и прижаты по высоте (чтобы не было скачка вёрстки),
   после — показываем. Анимация-страховка раскрывает их через 4с в
   любом случае: если слайдер по какой-то причине не инициализируется,
   лучше «сырой» вид, чем пустое место. */
.gdlr-core-flexslider[data-type="carousel"] ul.slides {
    opacity: 0;
    max-height: 700px;
    overflow: hidden;
    animation: bts-slides-reveal 0s 4s forwards;
}
@keyframes bts-slides-reveal { to { opacity: 1; max-height: none; overflow: visible; } }
/* Признак готовности — не сама обёртка .flex-viewport: её слайдер
   создаёт рано, а ширину карточек пересчитывает позже, и видно, как
   сначала помещается 4 карточки, потом раскладка перестраивается на 3
   (Юля: «сначала подгружает 4 карточки как в сетке и потом
   перестраивается в три»). Класс ставит JS (bts-carousel.js,
   revealCarouselWhenStable) — когда ширина карточки перестала
   меняться. */
/* Показываем сразу, без плавного перехода: в фоновой вкладке браузер
   не двигает CSS-переходы, и карусель могла бы остаться невидимой до
   переключения на вкладку. */
.gdlr-core-flexslider[data-type="carousel"].bts-carousel-ready ul.slides {
    opacity: 1;
    max-height: none;
    overflow: visible;
    animation: none;
}

/* ═══════════════════════════════════════════════════════════════
   Карточка в карусели «Рекомендуемые экскурсии» — тот же вид, что
   в сетке «Афиша экскурсий» (.bts-excursions-grid выше). Карусель
   технически не входит в эту сетку (родитель — .gdlr-core-flexslider,
   не .tourmaster-tour-item-holder), поэтому раньше жила на «сыром»
   виде темы: серый заголовок, кнопка и «Подробнее» абсолютным
   позиционированием поверх карточки. Правила продублированы с новым
   селектором, а не добавлены в existing .bts-excursions-grid — та
   сетка складывалась несколькими проходами, трогать рискованно. */
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-grid-inner {
    background: #fff !important;
    border: 1px solid #E6E6E6 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
}
/* Фото — та же пропорция, что на «Поиске экскурсий» (600×333): было
   жёстко 160px, из-за чего снимок в карусели выглядел заметно мельче,
   чем на поиске при почти той же ширине карточки. Пропорция вместо
   фиксированной высоты нужна ещё и чтобы карточки не «плясали» по
   высоте при перелистывании. :not(.bts-thumb-logo-fallback) — иначе
   по специфичности (тут два уровня в селекторе карусели против одного
   у категорий) правило перебивает размер лого-картинки у карточек без
   фото (та держится на своей высоте чуть ниже). */
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-thumbnail:not(.bts-thumb-logo-fallback) {
    aspect-ratio: 600 / 333 !important;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-thumbnail-wrap,
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-thumbnail:not(.bts-thumb-logo-fallback) img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-content-wrap {
    display: flex !important;
    flex-direction: column !important;
    padding: 14px !important;
    background: #fff !important;
    justify-content: flex-start !important;
    height: auto !important;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-content {
    display: none !important;
}

.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-title      { order: 1; }
.gdlr-core-flexslider[data-type="carousel"] .bts-card-excerpt           { order: 2; }
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-info-wrap  { order: 3; }
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-price-wrap { order: 4; }
.gdlr-core-flexslider[data-type="carousel"] .bts-card-seats             { order: 5; }
.gdlr-core-flexslider[data-type="carousel"] .bts-carousel-btn           { order: 6; }
.gdlr-core-flexslider[data-type="carousel"] .bts-carousel-more          { order: 7; }
/* Строка мест несёт и класс .bts-card-seats, поэтому правило выше
   (order:5 — после цены) цепляет и её. Возвращаем на место после даты:
   order:3, как у инфо-блока — при равных значениях порядок решает DOM,
   а JS вставляет строку сразу за ним. Стоит НИЖЕ правила order:5:
   специфичность одинаковая, побеждает то, что ниже по файлу. */
.gdlr-core-flexslider[data-type="carousel"] .bts-card-seats-line        { order: 3; }

/* Краткое описание тура под названием (ставит addCarouselExcerpts()
   в bts-carousel.js). Ровно три строки — иначе карточки в ряду
   разъезжаются по высоте: у туров описания от 70 до 280 знаков. */
.gdlr-core-flexslider[data-type="carousel"] .bts-card-excerpt {
    margin: 0 0 10px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    color: #6b6b6b !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
    min-height: calc(13px * 1.45 * 3);
}

.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-grid .tourmaster-tour-title {
    font-size: 16px !important;
    line-height: 21px !important;
    margin: 0 0 10px !important;
    min-height: 42px;
    padding-right: 0 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-grid .tourmaster-tour-title,
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-grid .tourmaster-tour-title a {
    color: #253C72 !important;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-grid .tourmaster-tour-title svg {
    display: none !important;
}

.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-info-wrap {
    min-height: 51px !important;
    margin: 0 0 10px !important;
    font-size: 12px !important;
}
/* Эти 10px рассчитаны на то, что сразу за инфо-блоком идёт цена. Когда
   между ними встаёт строка мест, они складываются с запасом
   min-height (51px против 45px содержимого) и дают 16px — втрое
   больше, чем зазор между длительностью и датой (6px). Гасим отступ
   только в этом случае: 6px запаса как раз и повторяют внутренний
   шаг строк. Старые браузеры без :has() просто оставят прежние 16px. */
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-info-wrap:has(+ .bts-card-seats-line) {
    margin-bottom: 0 !important;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-info {
    display: flex !important;
    align-items: center !important;
    gap: 7px;
    margin: 0 0 6px !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
    color: #5A5A5A !important;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-info i.fa-calendar {
    color: #61AD10 !important;
    font-size: 18px !important;
    width: 18px;
    text-align: center;
    flex: 0 0 auto;
    margin: 0 !important;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-info-duration-text svg {
    width: 16px;
    height: 16px;
    fill: #61AD10;
    flex: 0 0 auto;
    margin: 0 !important;
}
/* См. тот же фикс для сетки на главной — у однодневных туров иконка
   длительности другая (icon_clock_alt, шире и со своим отступом),
   приводим к общему боксу. */
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-info-duration-text i.icon_clock_alt {
    width: 18px !important;
    margin-right: 0 !important;
    flex: 0 0 auto;
}

.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-price-wrap {
    margin-top: 0 !important;
    min-height: 0 !important;
    padding-top: 10px !important;
    border-top: 1px solid #F0F0F0;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-price {
    font-size: 22px !important;
    color: #252525 !important;
}
.gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-price .tourmaster-head {
    font-size: 11px !important;
    font-weight: 400 !important;
    color: #9A9A9A !important;
    margin-right: 6px;
    text-transform: lowercase;
}

.gdlr-core-flexslider[data-type="carousel"] .bts-carousel-btn {
    position: static !important;
    display: block !important;
    left: auto !important;
    bottom: auto !important;
    margin: 10px 0 0 !important;
    padding: 10px 0 !important;
    font-size: 13px !important;
    text-align: center;
    border-radius: 6px !important;
    text-transform: none !important;
}
.gdlr-core-flexslider[data-type="carousel"] .bts-carousel-more {
    position: static !important;
    display: block !important;
    margin: 7px 0 0 !important;
    font-size: 12px !important;
    text-align: center;
}

/* === «Цена уточняется» вместо цены ===
   Когда у тура нет цены ни на одну будущую дату, вместо ценника
   показываем словами. Крупный зелёный шрифт ценника тут не нужен —
   это не сумма, а пояснение, поэтому мельче и спокойным цветом. */
.tourmaster-tour-price.bts-price-tbd .tourmaster-tail {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #6a7080 !important;
    white-space: nowrap;
}
.tourmaster-tour-price.bts-price-tbd { line-height: 1.3; }

/* ── Сердечко «в избранное» на карточках ────────────────────────────
   Правый верхний угол картинки. Миниатюра у темы уже position:relative,
   но подстрахуемся: без этого кнопка уедет к краю экрана. */
.tourmaster-tour-grid .tourmaster-tour-thumbnail { position: relative; }

.bts-fav,
.tourmaster-tour-grid .bts-fav {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92) !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .18) !important;
    color: inherit !important;
    min-width: 0 !important;
    font-size: 0;
    cursor: pointer;
    line-height: 34px;
    text-align: center;
    transition: background .15s, transform .15s;
}
.bts-fav i {
    font-size: 16px;
    color: #b9bfc6;
    transition: color .15s;
    vertical-align: middle;
}
/* Подсветка при наведении — только там, где есть настоящая мышь.
   На телефоне :hover залипает: палец убрали, а браузер считает, что
   «курсор» остался на кнопке. Из-за этого сердце оставалось розовым
   даже после снятия отметки, и выглядело так, будто избранное не
   снимается — Юля так и описала, 05.09.2026. */
@media (hover: hover) and (pointer: fine) {
    .bts-fav:hover { background: #fff !important; transform: scale(1.08); }
    .bts-fav:hover i { color: #e8737f; }
}
.bts-fav-on i { color: #e2233a; }

@media only screen and (max-width: 767px) {
    .bts-fav { width: 30px; height: 30px; line-height: 30px; top: 8px; right: 8px; }
    .bts-fav i { font-size: 14px; }
}

/* === Стрелки у карусели на телефоне и планшете ===
   `page-builder.css` темы прячет свою навигацию ниже 1000px: авторы
   рассчитывали, что карусель листают пальцем. На деле подсказки нет
   вовсе — человек не догадывается, что за первой карточкой что-то есть
   (Юля: «нужно сделать стрелочки чтобы было понятно что её надо листать»).

   Возвращаем родные стрелки темы, но не поверх карточки, а строкой под
   каруселью — как у галереи на странице тура: серый кружок, зелёный
   значок. Тема ставит каждой стрелке inline `margin-top: -323px`
   (половина высоты слайдера), поэтому отступы перебиваем !important.

   Размеры взяты с галереи тура один в один (Юля прислала её как
   образец): кружок 34px, точка 12px, промежуток 10px. */
@media (max-width: 999px) {
    .gdlr-core-flexslider[data-type="carousel"] .flex-direction-nav {
        display: flex !important;
        align-items: center;
        justify-content: center;
        gap: 10px;
        position: static !important;
        margin: 14px 0 0 !important;
        padding: 0 !important;
        list-style: none;
    }
    .gdlr-core-flexslider[data-type="carousel"] .flex-direction-nav li {
        position: static !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none;
        float: none !important;
    }
    .gdlr-core-flexslider[data-type="carousel"] .flex-direction-nav a {
        position: static !important;
        display: block !important;
        width: 34px !important;
        height: 34px !important;
        margin: 0 !important;          /* перебивает inline от темы */
        padding: 0 !important;
        border-radius: 50% !important;
        background: #f3f5f8 !important;
        color: #61ad10 !important;     /* значок зелёный, как прочие действия */
        font-size: 20px !important;
        line-height: 34px !important;
        text-align: center;
        text-indent: 0 !important;
        opacity: 1 !important;
        box-shadow: none !important;
    }
    /* тема прячет значок за пределами кнопки у некоторых стилей слайдера */
    .gdlr-core-flexslider[data-type="carousel"] .flex-direction-nav a i {
        line-height: 34px !important;
        color: inherit !important;
    }
}

/* Точки между стрелками. Строит их bts-carousel.js по числу страниц
   слайдера; на широком экране они не нужны — там карусель листается
   стрелками поверх карточек, как задумано темой. */
.bts-car-dots-li { display: none !important; }
@media (max-width: 999px) {
    .gdlr-core-flexslider[data-type="carousel"] .flex-direction-nav .bts-car-dots-li {
        display: block !important;
    }
    .bts-car-dots {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px;
    }
    .bts-car-dot {
        width: 12px !important;
        height: 12px !important;
        min-width: 0 !important;
        padding: 0 !important;
        border: 1px solid #61ad10 !important;
        border-radius: 50% !important;
        background: transparent !important;
        box-shadow: none !important;
        cursor: pointer;
        /* тема любит задавать кнопкам свой шрифт и высоту строки —
           внутри точки текста нет, но от этого она раздувается */
        font-size: 0 !important;
        line-height: 0 !important;
        text-transform: none !important;
        letter-spacing: normal !important;
    }
    .bts-car-dot.is-on { background: #61ad10 !important; }
}

/* === Поиск экскурсий: две карточки в ряд ===
   Общая сетка ставит три в ряд, как в категориях, но на поиске слева
   стоит колонка фильтров и на карточку остаётся 276px — уже, чем
   290px в категориях (Юля: «сделай как в категориях, большие карточки,
   две в ряд»). Две колонки дают ~420px и фото крупнее.
   Правило висит на классе body, который тема ставит в разметке, — от
   порядка загрузки скриптов не зависит. */
body.tourmaster-template-search .bts-excursions-grid,
body.tourmaster-template-search .bts-excursions-grid-3col {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
/* === Страница тура: «Рекомендуемые экскурсии» — две карточки в ряд ===
   Блок стоит в колонке контента (справа — липкая колонка «Почему
   выбирают нас», под неё тема держит 430px), и три карточки в ряд
   выходили по 259px (Юля, 14.09.2026: «сделай карточки больше»). Две в
   ряд — по ~397px, как в категориях; третья переносится. Расширять
   блок под колонку нельзя — карточки уйдут под неё. */
@media (min-width: 1024px) {
    body.single-tour .tourmaster-single-related-tour .bts-excursions-grid,
    body.single-tour .tourmaster-single-related-tour .bts-excursions-grid-3col {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Колонка фильтров — как у темы (35%, до 360px). 14.09.2026 её сжимали
   до 250px ради крупных карточек; 19.09.2026 Юля: «карточки сильно
   увеличились и сместили фильтр, сделай на 15% меньше» — возвращаем
   ширину темы: карточки в двух колонках выходят на ~15% уже, фильтры
   на своём месте. Правило темы для телефона не трогаем. */
/* На телефоне две карточки в ряд не помещаются — одна. */
@media (max-width: 767px) {
    body.tourmaster-template-search .bts-excursions-grid,
    body.tourmaster-template-search .bts-excursions-grid-3col {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* === Поиск, режим «список»: карточка по макету Юли (20.09.2026) ===
   Слева фото со скруглением, справа: название ЗАГЛАВНЫМИ, описание,
   продолжительность и дата, плашка мест, линия, цена «от …», зелёная
   кнопка «Забронировать» во всю ширину и «Подробнее →» под ней.
   Разметку в такой порядок перекладывает addButtons() в bts-carousel.js
   (описание над инфо-блоком, цена и кнопки из правой колонки темы —
   вниз левой; класс bts-list-card). Строка у темы — таблица с ячейкой
   фото 31% и центрированием; здесь flex, фото 40%, всё во всю высоту.
   Ниже 768px тема ставит фото над текстом — там только оформление,
   без раскладки. */
body.tourmaster-template-search .bts-list-card .tourmaster-tour-view-more,
body.tourmaster-template-search .bts-list-card .tourmaster-tour-rating {
    display: none !important;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-medium-inner {
    border-radius: 10px !important;
    padding: 10px;
    box-sizing: border-box;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-content-wrap {
    padding: 14px 20px 12px 28px !important;
}
body.tourmaster-template-search .bts-list-card .tourmaster-content-left {
    float: none !important;
    width: auto !important;
    padding: 0 !important;
}
/* Название — в исходном регистре, фирменным синим, до двух строк. */
body.tourmaster-template-search .bts-list-card .tourmaster-tour-title {
    font-size: 17px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    text-transform: none;
    letter-spacing: .2px;
    margin: 0 0 10px !important;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-title a { color: #253C72 !important; }
/* описание — сразу под названием, две строки */
body.tourmaster-template-search .bts-list-card .tourmaster-tour-content {
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: #555 !important;
    margin: 0 0 12px !important;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-info-wrap {
    margin: 0 0 6px !important;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-info {
    display: block !important;
    float: none !important;
    margin: 0 0 6px !important;
    font-size: 14px !important;
    color: #444 !important;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-info i {
    color: #61ad10;
    margin-right: 8px;
}
/* плашка мест — компактная, как на плитке */
body.tourmaster-template-search .bts-list-card .bts-card-seats-line {
    display: inline-block;
    width: auto;
    margin: 0 0 8px -9px !important;
    padding: 4px 9px !important;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
    line-height: 20px;
}
body.tourmaster-template-search .bts-list-card .bts-card-seats-line i {
    display: inline-block;
    width: 18px;
    margin-right: 7px;
    font-size: 18px;
    text-align: center;
    color: currentColor;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 1px currentColor;
}
/* низ: линия, цена, кнопка, «Подробнее» */
body.tourmaster-template-search .bts-list-card .bts-list-bottom {
    border-top: 1px solid #e6e8eb;
    margin-top: 6px;
    padding-top: 12px;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .tourmaster-tour-price-wrap {
    display: block !important;
    text-align: left !important;
    margin: 0 0 10px !important;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .tourmaster-tour-price {
    display: block !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    color: #1a1a1a !important;
}
/* «Цена уточняется» (bts_dashPrices) — без «от» перед ней */
body.tourmaster-template-search .bts-list-card .bts-list-bottom .tourmaster-tour-price.bts-price-tbd .tourmaster-head {
    display: none !important;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .tourmaster-tour-price.bts-price-tbd {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #666 !important;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .tourmaster-tour-price .tourmaster-head {
    display: inline !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: lowercase;
    color: #666 !important;
    margin: 0 6px 0 0 !important;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .bts-carousel-btn {
    position: static;
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 11px 14px;
    font-size: 14px;
    font-weight: 700;
    text-transform: none;
    text-align: center;
    border-radius: 8px;
    white-space: nowrap;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .bts-carousel-more {
    position: static;
    display: block;
    margin: 10px 0 0;
    text-align: center;
    font-size: 14px;
}
/* бейдж — лентой-закладкой с выступом, как на плитке и на главной
   (bts-badges.css, .bts-badges-ribbon-lg); таблетку с макета Юля
   попросила вернуть к ленте (20.09.2026) */
/* сердечко — в углу фото, с учётом внутреннего отступа карточки */
body.tourmaster-template-search .bts-list-card .bts-fav { top: 10px; right: 10px; }

@media (min-width: 768px) {
    body.tourmaster-template-search .bts-list-card .tourmaster-tour-medium-inner {
        display: flex !important;
        align-items: stretch;
        /* одна высота у всех строк: столько занимает самая полная —
           название в две строки, описание в две, две строки инфо,
           плашка мест, цена, кнопка, «Подробнее» */
        min-height: 372px;
    }
    body.tourmaster-template-search .bts-list-card .tourmaster-tour-thumbnail {
        display: block !important;
        position: relative;
        flex: 0 0 40%;
        width: 40% !important;
        margin: 0 !important;
        border-radius: 8px;
        overflow: hidden;
    }
    /* заглушка «лого + название» (fillMissingThumbnails) — тот же блок */
    body.tourmaster-template-search .bts-list-card .tourmaster-tour-thumbnail.bts-thumb-logo-fallback {
        display: block !important;
    }
    body.tourmaster-template-search .bts-list-card .tourmaster-tour-thumbnail > a {
        display: block;
        position: absolute;
        top: 0; right: 0; bottom: 0; left: 0;
    }
    body.tourmaster-template-search .bts-list-card .tourmaster-tour-thumbnail .tourmaster-temp-image-wrap {
        height: 100% !important;
    }
    body.tourmaster-template-search .bts-list-card .tourmaster-tour-thumbnail img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    body.tourmaster-template-search .bts-list-card .tourmaster-tour-content-wrap {
        display: block !important;
        flex: 1 1 auto;
        min-width: 0;
        width: auto !important;
    }
}

/* === Краткое описание в карточках категорий, поиска и сетки главной ===
   Тот же блок, что в карусели на главной (см. правила для
   .gdlr-core-flexslider[data-type="carousel"] .bts-card-excerpt выше).
   Ровно три строки — иначе карточки в ряду разъезжаются по высоте:
   у туров описания от 70 до 280 знаков.
   order:1, как у названия: при равных значениях порядок решает DOM,
   а вставляем мы текст сразу после названия.
   Сетка «Ближайшие экскурсии» на главной (#bts-excursions-grid) — с
   12.09.2026, вместе с фото по пропорции: карточки как в категориях. */
.bts-excursions-grid-category .bts-card-excerpt,
#bts-excursions-grid .bts-card-excerpt {
    order: 1;
    margin: 0 0 10px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    color: #6b6b6b !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
    min-height: calc(13px * 1.45 * 3);
}

/* === Цена и кнопка — по нижнему краю карточки (категории и поиск) ===
   Плашка мест есть не у всех: у туров с текстовой датой («Каждую пятницу
   (сезон Октябрь — Апрель)») спросить остаток не у кого, и строка не
   появляется. Карточка от этого короче на её высоту, и цена с кнопкой
   уезжают вверх относительно соседей по ряду — Юля: «почему тут съехало».
   Прижимаем ценовой блок к низу: свободное место уходит наверх, а цена и
   кнопка встают на одну линию во всём ряду.
   Общее правило `.bts-excursions-grid .tourmaster-tour-price-wrap`
   гасит margin-top ради сетки на главной (там карточки разной высоты и
   auto разъезжался) — поэтому возвращаем его только категориям. */
.bts-excursions-grid-category .tourmaster-tour-price-wrap {
    margin-top: auto !important;
}

/* Карточка должна занимать всю высоту своей ячейки, иначе прижимать
   цену к низу нечем: обёртка темы (.gdlr-core-item-list) растягивается
   по ряду, а карточка внутри оставалась своей высоты. Делаем обёртку
   флексом — карточка тянется до её края. */
.bts-excursions-grid-category > .gdlr-core-item-list {
    display: flex !important;
}
.bts-excursions-grid-category > .gdlr-core-item-list > .tourmaster-tour-grid {
    width: 100% !important;
}

/* === Направления на телефоне: плитки одного размера ===
   В одну колонку тема отдаёт высоту плитки самой картинке, а файлы у
   категорий разного склада: широкий 800×378 даёт 144px, квадратный
   400×400 — 305px, ещё один — 200px. Ряд идёт лесенкой (Юля: «сделай,
   чтобы фото были в мобильной версии одинаковые, как у школьных»).

   Задаём плитке квадрат — тот самый размер, в котором выводится
   большинство школьных, — и обрезаем картинку по центру. Правило
   действует только до 767px: на планшете и шире тема сама держит
   одинаковую высоту в ряду, там ничего не трогаем. */
@media (max-width: 767px) {
    .tourmaster-tour-category .tourmaster-tour-category-thumbnail {
        aspect-ratio: 1 / 1;
        overflow: hidden;
    }
    .tourmaster-tour-category .tourmaster-tour-category-thumbnail img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center center !important;
    }
}

/* === Заглушка под строку «Свободно мест» ===
   Остаток мест приезжает из Битрикса отдельным запросом, и до его
   прихода строки в карточке нет — карточка на 38px ниже, а низ страницы
   уезжает вниз на 150, когда данные наконец пришли. Заглушку ставит
   bts-carousel.js сразу, ещё до запроса: она держит ту же высоту, но
   ничего не показывает. Настоящая строка встаёт на её место.

   Прячем через visibility, а не через цвета: место элемент занимает
   ровно то же, что и видимый, — а значит и подмена ничего не двигает.
   Начинку (значок людей) кладёт скрипт: без неё строка на пиксель ниже. */
.bts-card-seats-line.bts-seats-wait {
    visibility: hidden;
    pointer-events: none;
}

/* === Архивные туры: без будущих выездов === */
/* На фотографии лежит вуаль с надписью «Эта экскурсия уже прошла» — как
   подложка над фото в афише. Текст карточки и кнопка остаются обычными
   (Юля, 04.10.2026: «только на фото»); плотность и размытие — прежние,
   как были до пробы с прозрачной заливкой («верни обратно размытие»,
   «верни обратно процент размытия»). Бейджи у таких туров прячем, цена —
   «Уточняется», дата — «Даты уточняются». При наведении вуаль уходит. */
.bts-past-item .tourmaster-tour-thumbnail {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
.bts-past-veil {
    position: absolute;
    inset: 0;
    z-index: 30;      /* поверх фотографии: у миниатюр темы свой слой */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    text-align: center;
    pointer-events: none;            /* клики проходят к ссылкам карточки */
    /* Плотность 70 % (в афише на фотографиях 60), размытия нет
       (Юля, 04.10.2026: «поставь 60 и убери размытие»,
       05.10.2026: «сделай вуаль 70»). */
    background: rgba(37, 60, 114, .7);
    opacity: 1;
    transition: opacity .18s ease;
}
/* Гасим по классу, а не по :hover: эффекты темы (зум картинки, сдвиг
   содержимого) заставляли наведение дрожать, и вуаль мигала. Класс
   ставит и снимает скрипт, с задержкой на возврат курсора. */
.bts-past-item.bts-past-open .bts-past-veil { opacity: 0 !important; visibility: hidden; }
/* у архивных гасим и сам зум с подвижкой — иначе карточка дёргается */
.bts-past-item .tourmaster-zoom-on-hover:hover img { transform: none !important; }
.bts-past-item.tourmaster-tour-modern:hover .tourmaster-tour-content-wrap,
.bts-past-item .tourmaster-tour-modern:hover .tourmaster-tour-content-wrap { transform: none !important; }
/* Под вуалью у миниатюры темы свой слой, который сам ловит наведение
   (.tourmaster-tour-thumbnail-overlay:hover). Когда вуаль гасла, он
   появлялся — и картинка дёргалась. У архивных его выключаем. */
.bts-past-item .tourmaster-tour-thumbnail-overlay { display: none !important; }
.bts-past-veil-title {
    color: #fff;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.25;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .25);
}
.bts-past-veil-sub {
    color: rgba(255, 255, 255, .86);
    font-size: 15px;
}
/* бейджи (ленты темы и наши) у архивных не показываем */
.bts-past-item .tourmaster-thumbnail-ribbon,
.bts-past-item .bts-badges,
.bts-past-item .bts-badge { display: none !important; }
/* «Цена уточняется» у архивной карточки — тот же вид, что у карточек без
   цены: размер и вес задаёт .bts-price-tbd .tourmaster-tail выше */
.bts-past-note { color: #6b7280; }

/* «Ближайшие экскурсии» — образец «Балтика» из карусели. */
#bts-excursions-grid .tourmaster-tour-thumbnail {
    height: auto !important;
    aspect-ratio: 600 / 333 !important;
    overflow: visible !important;
}
#bts-excursions-grid .tourmaster-tour-grid-inner {
    overflow: visible !important; /* выступ и загиб ленты */
}
#bts-excursions-grid .tourmaster-tour-thumbnail > a {
    position: absolute !important;
    inset: 0;
    width: 100%;
    overflow: hidden !important;
    border-radius: 9px 9px 0 0;
}
#bts-excursions-grid .tourmaster-tour-content-wrap {
    padding: 14px !important;
    min-height: 356px;
    border-radius: 0 0 9px 9px;
}
#bts-excursions-grid .tourmaster-tour-price-wrap {
    margin-top: auto !important;
}
#bts-excursions-grid .tourmaster-tour-price:not(.bts-price-tbd),
#bts-excursions-grid .tourmaster-tour-price:not(.bts-price-tbd) .tourmaster-tail {
    color: #61AD10 !important;
}
#bts-excursions-grid .bts-carousel-btn {
    box-sizing: border-box;
    height: 38px;
    min-height: 38px;
    display: flex !important;
    align-items: center;
    justify-content: center;
}
/* Лента темы в сетке вложена в фото, в карусели — в карточку.
   Возвращаем исходную форму вместо старой округлой плашки. */
#bts-excursions-grid .tourmaster-thumbnail-ribbon {
    top: 30px !important;
    left: -10px !important;
    padding: 10px 14px 10px 20px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 14px !important;
    border-radius: 0 !important;
}
#bts-excursions-grid .tourmaster-thumbnail-ribbon-cornor {
    display: block !important;
}

/* Единая карточка тура: ближайшие, категории, поиск, избранное и
   рекомендации внутри тура. Ширина остаётся шириной колонки страницы. */
body .bts-excursions-grid .tourmaster-tour-thumbnail {
    height: auto !important;
    aspect-ratio: 600 / 333 !important;
}
body .bts-excursions-grid .tourmaster-thumbnail-wrap,
body .bts-excursions-grid .tourmaster-tour-thumbnail:not(.bts-thumb-logo-fallback) img {
    height: 100% !important;
}
body .bts-excursions-grid .tourmaster-tour-content-wrap,
body .bts-excursions-grid .tourmaster-tour-grid.tourmaster-tour-frame .tourmaster-tour-content-wrap {
    padding: 14px !important;
    min-height: 356px;
    box-sizing: border-box;
}
/* Две строки под название; отступ до описания равен отступу до продолжительности. */
body .bts-excursions-grid .tourmaster-tour-grid .tourmaster-tour-title,
body .gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-grid .tourmaster-tour-title,
body.tourmaster-template-search .bts-list-card .tourmaster-tour-title {
    line-height: 21px !important;
    min-height: 42px !important;
    margin: 0 0 10px !important;
}
body .bts-excursions-grid .bts-card-excerpt {
    order: 1;
    margin: 0 0 10px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    color: #6b6b6b !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
    min-height: calc(13px * 1.45 * 3);
}
body .bts-excursions-grid .tourmaster-tour-price-wrap {
    margin-top: auto !important;
}
body .bts-excursions-grid .tourmaster-tour-price:not(.bts-price-tbd),
body .bts-excursions-grid .tourmaster-tour-price:not(.bts-price-tbd) .tourmaster-tail {
    color: #61AD10 !important;
}
body .bts-excursions-grid .bts-carousel-btn {
    box-sizing: border-box;
    height: 38px;
    min-height: 38px;
    display: flex !important;
    align-items: center;
    justify-content: center;
}
/* В рекомендациях места раньше были рядом с ценой. Теперь они стоят
   под датой, как в карусели и остальных плитках. */
.tourmaster-single-related-tour-container .bts-excursions-grid .tourmaster-tour-info-wrap:has(+ .bts-card-seats-line) {
    margin-bottom: 0 !important;
}
.tourmaster-single-related-tour-container .bts-excursions-grid .bts-card-seats-line {
    order: 2;
    align-self: flex-start;
    margin: 0 0 8px -9px !important;
    padding: 4px 9px !important;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
}
.tourmaster-single-related-tour-container .bts-excursions-grid .bts-card-seats-line i {
    display: inline-block;
    width: 18px;
    margin-right: 7px;
    font-size: 18px;
    text-align: center;
    color: currentColor;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 1px currentColor;
}
.tourmaster-single-related-tour-container .bts-card-seats-line.seats-ok { color: #2e7d32 !important; background: #e8f5e9 !important; }
.tourmaster-single-related-tour-container .bts-card-seats-line.seats-low { color: #e65100 !important; background: #fff3e0 !important; }
.tourmaster-single-related-tour-container .bts-card-seats-line.seats-none { color: #c0392b !important; background: #ffebee !important; }

/* В карусели сохраняем те же нижние блоки и высоту кнопки. */
body .gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-content-wrap {
    min-height: 356px;
    box-sizing: border-box;
}
body .gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-price:not(.bts-price-tbd),
body .gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-price:not(.bts-price-tbd) .tourmaster-tail {
    color: #61AD10 !important;
}
body .gdlr-core-flexslider[data-type="carousel"] .bts-carousel-btn {
    box-sizing: border-box;
    height: 38px;
    min-height: 38px;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* Поиск, режим списка: оставляем горизонтальную строку, но приводим
   шрифты, цену и действия к тем же размерам, что у плитки. */
body.tourmaster-template-search .bts-list-card .tourmaster-tour-title {
    font-size: 16px !important;
    line-height: 21px !important;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-content {
    font-size: 13px !important;
    line-height: 1.45 !important;
    color: #6b6b6b !important;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-info {
    font-size: 12px !important;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .tourmaster-tour-price:not(.bts-price-tbd),
body.tourmaster-template-search .bts-list-card .bts-list-bottom .tourmaster-tour-price:not(.bts-price-tbd) .tourmaster-tail {
    font-size: 22px !important;
    color: #61AD10 !important;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .bts-carousel-btn {
    height: 38px;
    min-height: 38px;
    padding: 0 14px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    font-size: 13px !important;
    border-radius: 6px !important;
}
body.tourmaster-template-search .bts-list-card .bts-list-bottom .bts-carousel-more {
    font-size: 12px !important;
}

/* Под «Подробнее» — 10px. Высота уменьшена ещё на 31px,
   освободившиеся после сокращения заголовка и отступа под ним. */
#bts-excursions-grid .tourmaster-tour-content-wrap,
body .bts-excursions-grid .tourmaster-tour-grid.tourmaster-tour-frame .tourmaster-tour-content-wrap,
body .gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-grid.tourmaster-tour-frame .tourmaster-tour-content-wrap {
    padding-bottom: 10px !important;
    min-height: 321px !important;
}
body.tourmaster-template-search .bts-list-card .tourmaster-tour-content-wrap {
    padding-bottom: 10px !important;
}
body .gdlr-core-flexslider[data-type="carousel"] .tourmaster-tour-price-wrap {
    margin-top: auto !important;
}

/* Ближайшие экскурсии: две карточки от 480 до 1068px включительно. */
@media (min-width: 480px) and (max-width: 1068px) {
    body.page-id-5225 .gdlr-core-container:has(> #bts-excursions-grid),
    body.page-id-50001 .gdlr-core-container:has(> #bts-excursions-grid) {
        max-width: none !important;
        width: 100%;
        box-sizing: border-box;
    }
    body.page-id-5225 #bts-excursions-grid,
    body.page-id-50001 #bts-excursions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* При трёх колонках дата и продолжительность уменьшаются с 14 до 12px. */
@media (min-width: 1068px) and (max-width: 1186px) {
    body.page-id-5225 #bts-excursions-grid .tourmaster-tour-info-availability,
    body.page-id-50001 #bts-excursions-grid .tourmaster-tour-info-availability,
    body.page-id-5225 #bts-excursions-grid .tourmaster-tour-info-duration-text,
    body.page-id-50001 #bts-excursions-grid .tourmaster-tour-info-duration-text {
        font-size: clamp(12px, calc(12px + (100vw - 1068px) * 0.0169491525), 14px) !important;
    }
}
