/* Базовый вид карточки; на странице его можно менять штатными настройками виджета Elementor. */
/* Локальные стили каталога: не перекрашивают шапку, меню и другие страницы темы. */
.ltc-catalog, .ltc-main { --ltc-blue: #182583; --ltc-ink: #202124; --ltc-line: #e2e5eb; color: var(--ltc-ink); }
.ltc-catalog *, .ltc-main * { box-sizing: border-box; }
.ltc-main { max-width: 1180px; margin: 160px auto 48px; padding: 0 20px; }
.ltc-catalog { width: 100%; }
.ltc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ltc-card-grid-gap, 24px); }
.ltc-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--ltc-line); border-radius: 20px; overflow: hidden; background: white; box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.ltc-card-image { display: block; aspect-ratio: 4 / 3; background: #eef1f7; text-decoration: none; }
.ltc-card-image img { width: 100%; height: 100%; display: block; object-fit: cover; transform: none !important; transition: none !important; }
.ltc-no-image { display: flex; align-items: center; justify-content: center; min-height: 180px; height: 100%; color: #5a6170; }
.ltc-card-body { display: flex; flex-direction: column; flex: 1; padding: var(--ltc-card-card-padding, 22px); gap: var(--ltc-card-row-gap, 12px); }
.ltc-card .ltc-card-title { margin: 0; min-height: 2.5em; font: 600 var(--ltc-card-title-font, 25px)/1.25 "Playfair Display", Georgia, serif; overflow-wrap: anywhere; }
.ltc-card .ltc-card-title a { color: #202124; text-decoration: none; }
.ltc-meta, .ltc-note { color: #545b67; font-size: 15px; line-height: 1.5; }
.ltc-card p { margin: 0; }
.ltc-price { color: var(--ltc-blue); font-size: 23px; line-height: 1.3; font-weight: 600; }

/* Карточка: дата и длительность рядом; пустые поля сохраняют свои места. */
.ltc-card-facts { display: grid; grid-template-columns: minmax(calc(var(--ltc-card-date-font, 18px) * 6.2), auto) minmax(0, 1fr); align-items: start; gap: 12px; font-size: 18px; }
.ltc-card .ltc-meta { min-height: 1.5em; font-size: 18px; line-height: 1.5; }
.ltc-card .ltc-card-date { white-space: nowrap; font-size: var(--ltc-card-date-font, 18px); }
.ltc-card .ltc-card-duration { text-align: right; overflow-wrap: anywhere; font-size: var(--ltc-card-duration-font, 18px); }
.ltc-card .ltc-card-guide { overflow-wrap: anywhere; font-size: var(--ltc-card-guide-font, 18px); }
.ltc-card .ltc-card-companion { overflow-wrap: anywhere; font-size: var(--ltc-card-guide-font, 18px); }
.ltc-card-footer { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; gap: 12px; margin-top: auto; padding-top: var(--ltc-card-footer-top-gap, 8px); }
.ltc-card-footer .ltc-price { font-size: var(--ltc-card-price-font, 23px); min-height: 1.3em; margin: 0; padding: 0; overflow-wrap: anywhere; }

/* Общие строки карточек выравнивают даже длинные заголовки и пустые имена гидов. */
@supports (grid-template-rows: subgrid) {
    .ltc-card { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; grid-row: span 6; row-gap: 0; }
    .ltc-card-body { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; grid-row: span 5; row-gap: var(--ltc-card-row-gap, 12px); }
    .ltc-card-footer { margin-top: 0; }
}

/* Кнопки без анимации; клавиатурный фокус остаётся видимым. */
.ltc-catalog .ltc-button, .ltc-main .ltc-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 18px; background: var(--ltc-blue); color: #fff; border: 1px solid var(--ltc-blue); border-radius: 8px; text-align: center; text-decoration: none; font: inherit; font-weight: 600; line-height: 1.4; box-shadow: none; transform: none; transition: none; }
.ltc-catalog .ltc-card-footer .ltc-button { margin: 0; min-height: var(--ltc-card-button-height, 46px); padding-inline: var(--ltc-card-button-padding, 14px); font-size: var(--ltc-card-button-font, 17px); white-space: nowrap; }
.ltc-catalog a:focus-visible, .ltc-main a:focus-visible { outline: 3px solid #426de0; outline-offset: 4px; }
.ltc-catalog .ltc-button:hover, .ltc-main .ltc-button:hover { color: #fff; background: #14216f; }
.ltc-pagination ul { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 28px 0; }
.ltc-pagination li { margin: 0; }
.ltc-pagination a, .ltc-pagination span { display: block; padding: 8px 14px; border: 1px solid var(--ltc-line); border-radius: 6px; }
.ltc-pagination .current { background: var(--ltc-blue); color: #fff; }

/* Автоматические плашки месяцев фильтруют карточки выбранного партнёра. */
.ltc-month-filter { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 28px; }
.ltc-month-chip { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:10px 20px; border:1px solid #168a55; border-radius:8px; background:#168a55; color:#fff; font-size:17px; font-weight:600; line-height:1.3; text-decoration:none; white-space:nowrap; }
.ltc-month-chip:hover { background:#137647; border-color:#137647; color:#fff; }
.ltc-month-chip.is-active { background:#182583; border-color:#182583; color:#fff; }
.ltc-month-chip:focus-visible { outline:3px solid #426de0; outline-offset:3px; }

/* Страница конкретного тура сохраняет шапку и подвал активной темы. */
.ltc-tour-hero { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); background: #f3f4f7; border-radius: 20px; overflow: hidden; }
.ltc-tour-photo img { width: 100%; height: 100%; min-height: 280px; max-height: 460px; object-fit: cover; display: block; }
.ltc-tour-heading { padding: 28px; display: flex; flex-direction: column; justify-content: center; text-align: center; }
.ltc-tour-heading:only-child { grid-column: 1 / -1; }
.ltc-main h1 { margin: 0 0 18px; font: 600 36px/1.18 "Playfair Display", Georgia, serif; color: #202124; overflow-wrap: anywhere; }
.ltc-main h2 { margin: 0 0 20px; font: 600 29px/1.25 "Playfair Display", Georgia, serif; color: #202124; }
.ltc-section { margin-top: 36px; }
.ltc-main .ltc-departures { padding: 0; margin: 0; list-style: none; }
.ltc-main .ltc-departure { display: grid; grid-template-columns: 130px 1fr 1fr auto; align-items: center; gap: 16px; border-bottom: 1px solid var(--ltc-line); padding: 18px 0; margin: 0; }
.ltc-departure time { font-weight: 600; }
.ltc-seats { font-size: 14px; color: #545b67; }
.ltc-program { font-size: 17px; line-height: 1.65; overflow-wrap: anywhere; }
.ltc-program img { max-width: 100%; height: auto; }
.ltc-pdf { display: inline-block; margin-top: 20px; font-weight: 600; color: var(--ltc-blue); }
.ltc-request { background: #f5f6fa; padding: 28px; border-radius: 16px; scroll-margin-top: 160px; }
.ltc-request input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), .ltc-request textarea { max-width: 100%; }
.ltc-editor-note { padding: 18px; background: #fff5d8; border-left: 4px solid #d99812; }

/* Планшет: две карточки, строки выездов без горизонтального переполнения. */
@media (max-width: 1024px) {
    .ltc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ltc-main { margin-top: 150px; }
    .ltc-main h1 { font-size: 30px; }
    .ltc-main .ltc-departure { grid-template-columns: 130px 1fr; }
    .ltc-tour-heading { padding: 22px; }
}

/* Телефон: одна карточка, фотография над заголовком и крупные кнопки. */
@media (max-width: 600px) {
    .ltc-grid { grid-template-columns: minmax(0, 1fr); gap: min(var(--ltc-card-grid-gap, 24px), 20px); }
    .ltc-main { margin: 120px auto 28px; padding: 0 16px; }
    .ltc-tour-hero { grid-template-columns: minmax(0, 1fr); }
    .ltc-tour-photo img { min-height: 0; aspect-ratio: 16 / 10; }
    .ltc-main h1 { font-size: 28px; }
    .ltc-main h2 { font-size: 26px; }
    .ltc-main .ltc-departure { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
    .ltc-departure .ltc-button { grid-column: 1 / -1; }
    .ltc-main .ltc-price { font-size: 21px; }
    .ltc-request { padding: 20px; }
}

/* Карточка выезда: читабельный шрифт и количество мест поверх фотографии. */
.ltc-catalog, .ltc-main { font-family:"Lora",Georgia,serif; }
.ltc-card-image { position:relative; }
.ltc-seats-badge { position:absolute; top:14px; left:14px; right:auto; max-width:calc(100% - 28px); padding:8px 12px; border-radius:5px; background:#182583; color:#fff; font-size:var(--ltc-card-badge-font, 16px); line-height:1.35; }

/* Узкий телефон: уменьшаем отступы текста, сохраняя крупный шрифт и две колонки. */
@media (max-width: 360px) {
    .ltc-card-body { padding: min(var(--ltc-card-card-padding, 22px), 18px); }
    .ltc-card-facts, .ltc-card-footer { gap: 8px; }
    .ltc-catalog .ltc-card-footer .ltc-button { padding-inline: min(var(--ltc-card-button-padding, 14px), 10px); }
}
/* Карусель программы: до четырёх фото с ручным переключением и прокруткой пальцем. */
.ltc-gallery { max-width:100%; margin-bottom:28px; }
.ltc-gallery-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.ltc-gallery-track::-webkit-scrollbar { display:none; }
.ltc-gallery-slide { flex:0 0 100%; min-width:0; scroll-snap-align:start; }
.ltc-gallery-slide img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block; }
.ltc-gallery-controls { display:flex; justify-content:center; align-items:center; gap:18px; padding:12px; }
.ltc-gallery-controls button { width:44px; height:44px; padding:0; border:0; background:transparent; border-radius:0; color:#182583; cursor:pointer; font:28px/1 Georgia,serif; box-shadow:none; }
.ltc-gallery-controls button:focus-visible { outline:3px solid #426de0; outline-offset:3px; }
.ltc-main .ltc-title { margin:24px 0; }
.ltc-download { margin:30px 0; }
/* Убирает пустые виджеты частей тура в общем шаблоне Elementor. */
.ltc-main .elementor-widget-shortcode:has(.elementor-shortcode:empty) { display:none; }

/* Общий виджет страницы тура: галерея, программа и полёты образуют единый адаптивный макет. */
.ltc-tour-page { width:100%; min-width:0; --ltc-page-section-gap:36px; }
.ltc-tour-page .ltc-gallery { position:relative; margin:0; }
.ltc-tour-page .ltc-gallery-track { overflow:hidden; }
.ltc-tour-page .ltc-gallery-slide img { width:100%; height:460px; aspect-ratio:auto; object-fit:cover; }
.ltc-tour-page .ltc-gallery-controls { position:absolute; inset:0; justify-content:space-between; gap:0; padding:0 16px; pointer-events:none; }
.ltc-tour-page .ltc-gallery-controls button { flex:0 0 44px; pointer-events:auto; }
.ltc-tour-page .ltc-gallery-position { position:absolute; left:50%; bottom:14px; transform:translateX(-50%); padding:0; border:0; border-radius:0; background:transparent; color:#202124; font-family:"Lora",Georgia,serif; font-weight:600; line-height:1.25; box-shadow:none; text-shadow:none; }
.ltc-main .ltc-tour-page .ltc-title { margin:24px 0 36px; }
.ltc-tour-content-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:32px; align-items:start; }
.ltc-tour-content-single { grid-template-columns:minmax(0,1fr); }
.ltc-tour-primary, .ltc-tour-sidebar { min-width:0; }
.ltc-tour-page .ltc-section { margin:0; min-width:0; }
.ltc-tour-page .ltc-flights { font-size:17px; line-height:1.65; overflow-wrap:anywhere; }
.ltc-tour-page .ltc-tour-sidebar > .ltc-section + .ltc-section { margin-top:24px; }

/* Программа: каждый маркер «День N» становится отдельным заголовком и блоком. */
.ltc-program-day + .ltc-program-day { margin-top:32px; }
.ltc-program .ltc-program-day-title { margin:0 0 12px; color:#202124; font:600 24px/1.3 "Playfair Display",Georgia,serif; }
.ltc-program-day p { margin:0 0 1em; }
.ltc-program-day p:last-child { margin-bottom:0; }

/* Нижние сведения тура скрываются по отдельности и занимают сетку только при наличии данных. */
.ltc-tour-details-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:var(--ltc-page-section-gap); }
.ltc-detail-card { min-width:0; padding:24px; border-radius:16px; background:#f5f6fa; overflow-wrap:anywhere; }
.ltc-tour-details-grid .ltc-wide-detail, .ltc-tour-details-grid .ltc-detail-card:only-child { grid-column:1 / -1; }
.ltc-text-list { margin:0; padding-inline-start:1.25em; }
.ltc-text-list li { margin:0 0 .65em; }
.ltc-text-list li:last-child { margin-bottom:0; }
.ltc-extra-details p:last-child { margin-bottom:0; }

/* Поиск под полётами использует четыре параметра и отдельную валюту бюджета. */
.ltc-tour-search { min-width:0; }
.ltc-search-form { margin:0; }
.ltc-search-fields { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.ltc-search-fields label { display:grid; gap:6px; min-width:0; margin:0; font-weight:600; }
.ltc-search-fields input, .ltc-search-fields select { width:100%; min-width:0; min-height:46px; margin:0; padding:9px 11px; border:1px solid #cfd4df; border-radius:7px; background:#fff; color:#202124; font:inherit; line-height:1.3; }
.ltc-search-budget { display:grid; grid-template-columns:minmax(0,1fr) 76px; gap:8px; min-width:0; }
.ltc-search-submit { width:100%; margin-top:16px; }
.ltc-search-form-wide { margin:0 0 32px; }
.ltc-search-form-wide .ltc-search-fields { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.ltc-search-summary { margin:0 0 20px; font-weight:600; }

/* Ссылка на условия и будущие действия остаются в одном нижнем блоке страницы. */
.ltc-tour-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:var(--ltc-page-section-gap); }
.ltc-tour-actions p { margin:0; }
.ltc-terms-link a { color:#182583; font-weight:600; }
.ltc-tour-actions .ltc-download { margin:0; }

/* Планшет и телефон: программа, полёты и карточки сведений складываются в один столбец. */
@media (max-width:1024px) {
    .ltc-tour-content-grid, .ltc-tour-details-grid { grid-template-columns:minmax(0,1fr); }
    .ltc-tour-details-grid .ltc-wide-detail { grid-column:auto; }
    .ltc-tour-page .ltc-gallery-slide img { height:380px; }
    .ltc-search-form-wide .ltc-search-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Телефон: галерея и внутренние отступы уменьшаются без горизонтального переполнения. */
@media (max-width:600px) {
    .ltc-month-filter { flex-wrap:nowrap; overflow-x:auto; padding-bottom:8px; scrollbar-width:none; scroll-snap-type:x proximity; }
    .ltc-month-filter::-webkit-scrollbar { display:none; }
    .ltc-month-chip { flex:0 0 auto; scroll-snap-align:start; }
    .ltc-tour-page .ltc-gallery-slide img { height:260px; }
    .ltc-tour-page .ltc-gallery-controls { padding:0 10px; }
    .ltc-tour-page .ltc-gallery-controls button { width:40px; height:40px; flex-basis:40px; }
    .ltc-detail-card { padding:20px; }
    .ltc-search-form-wide .ltc-search-fields { grid-template-columns:minmax(0,1fr); }
    .ltc-tour-actions { align-items:stretch; }
    .ltc-tour-actions .ltc-button { width:100%; }
}
