/* ═══════════════════════════════════════════════════════════════
   На пляж сейчас! — Frontend Design System (Mobirise)
   Палитра: #FFF3B0 · #E09F3E · #335C67 · #EBEFF0
   ═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700;800&display=swap');

:root {
    --primary:    #FFF3B0;
    --secondary:  #E09F3E;
    --dominant:   #335C67;
    --bg:         #EBEFF0;
    --white:      #FFFFFF;
    --black:      #000000;
    --gray:       #666666;
    --gray-light: #f5f6f7;
    --success:    #91EBC1;
    --danger:     #EC9099;
    --warning:    #FFDF7D;
    --info:       #84E5F8;
    --purple:     #715edb;
    --radius:     25px;
    --radius-lg:  33px;
    --radius-pill: 300px;
    --shadow-sm:  0 2px 8px rgba(0,0,0,.06);
    --shadow-md:  0 4px 20px rgba(0,0,0,.10);
    --shadow-lg:  0 8px 32px rgba(0,0,0,.14);
    --tr:         all .3s ease-in-out;
    --container:  1280px;
}

/* ── Reset & Base ─────────────────────────────────────────── */

*,*::before,*::after{box-sizing:border-box}

body {
    font-family: 'Golos Text', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: var(--black);
    background: var(--bg);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--dominant); transition: var(--tr); }
a:hover { color: var(--secondary); }

img { max-width:100%; height:auto; display:block; }

.wrap { max-width: var(--container); margin: 0 auto; padding: 0 24px; }

/* ── Navbar ───────────────────────────────────────────────── */

.navbar-mobirise {
    min-height: 72px;
    background: rgba(235,239,240,.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(0,0,0,.06);
    padding: 0 24px;
    z-index: 1030;
}

.navbar-mobirise > .container,
.navbar-mobirise > .container-fluid {
    max-width: var(--container);
    margin: 0 auto;
}

.navbar-mobirise .navbar-brand {
    padding: 6px 0;
}

.navbar-mobirise .navbar-brand img {
    height: 48px !important;
    width: auto;
}

.navbar-mobirise .nav-link {
    padding: 8px 16px !important;
    color: var(--dominant) !important;
    font-weight: 600;
    font-size: .95rem;
    border-radius: var(--radius-pill);
    transition: var(--tr);
}

.navbar-mobirise .nav-link:hover,
.navbar-mobirise .nav-link.active {
    background: var(--primary);
    color: var(--black) !important;
}

/* ── Section Headings ─────────────────────────────────────── */

.section-title {
    font-size: 2.25rem;
    font-weight: 800;
    color: var(--black);
    margin-bottom: .75rem;
    letter-spacing: -.5px;
}

.section-subtitle {
    font-size: 1.1rem;
    color: var(--gray);
    margin-bottom: 2.5rem;
}

/* ── Hero Section ─────────────────────────────────────────── */

.hero-mobirise {
    background: var(--primary);
    padding: 80px 0;
    position: relative;
    overflow: hidden;
    border-radius: 0 0 var(--radius) var(--radius);
}

.hero-mobirise::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: 55%;
    background: linear-gradient(135deg, transparent 0%, rgba(235,239,240,.4) 100%);
    pointer-events: none;
}

.hero-mobirise .container,
.hero-mobirise .container-fluid { max-width: var(--container); margin: 0 auto; position: relative; z-index: 1; }

.hero-mobirise .row {
    display: flex;
    align-items: center;
    gap: 48px;
    margin: 0;
    padding: 0 24px;
}

.hero-mobirise .text-wrapper { flex: 1; min-width: 0; }
.hero-mobirise .image-wrapper { flex: 0 0 44%; position: relative; }

.hero-mobirise h1 {
    font-size: 3.2rem;
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 1.25rem;
    letter-spacing: -1px;
}

.hero-mobirise .subtitle {
    font-size: 1.4rem;
    font-weight: 500;
    margin-bottom: .75rem;
    color: var(--dominant);
}

.hero-mobirise .description {
    font-size: 1.05rem;
    color: #444;
    margin-bottom: 2rem;
    max-width: 480px;
}

.hero-mobirise .image-wrapper img {
    width: 100%;
    height: 520px;
    object-fit: cover;
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
}

.hero-mobirise .icon-wrapper {
    position: absolute;
    width: 80px; height: 80px;
    border-radius: 20px;
    display: flex; align-items: center; justify-content: center;
    font-size: 40px;
    box-shadow: var(--shadow-md);
}
.hero-mobirise .icon-wrapper.icon-1 { top:-16px; left:-16px; background:var(--dominant); transform:rotate(-15deg); }
.hero-mobirise .icon-wrapper.icon-2 { top:-16px; right:-16px; background:var(--secondary); transform:rotate(15deg); }
.hero-mobirise .icon-wrapper.icon-3 { bottom:-16px; right: 40px; background:var(--purple); transform:rotate(-10deg); }

/* CTA кнопка */
.btn-cta {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--dominant);
    color: var(--white);
    padding: 14px 32px;
    border-radius: var(--radius-pill);
    font-weight: 700; font-size: 1.05rem;
    text-decoration: none;
    border: none; cursor: pointer;
    transition: var(--tr);
    box-shadow: 0 4px 16px rgba(51,92,103,.3);
}
.btn-cta:hover {
    background: var(--secondary); color: var(--black);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(224,159,62,.35);
}
.btn-cta:active { transform: translateY(0); }

.btn-cta-outline {
    display: inline-flex; align-items: center; gap: 8px;
    background: transparent;
    color: var(--dominant);
    padding: 14px 32px;
    border-radius: var(--radius-pill);
    font-weight: 700; font-size: 1.05rem;
    text-decoration: none;
    border: 2px solid var(--dominant);
    cursor: pointer;
    transition: var(--tr);
}
.btn-cta-outline:hover {
    background: var(--dominant); color: var(--white);
    transform: translateY(-2px);
}

.hero-stats {
    display: flex; gap: 32px; margin-top: 2.5rem;
    padding-top: 2rem; border-top: 2px solid rgba(51,92,103,.12);
}
.hero-stats .stat-value { font-size: 2rem; font-weight: 800; color: var(--dominant); line-height: 1; }
.hero-stats .stat-label { font-size: .85rem; color: var(--gray); margin-top: 4px; }

@media (max-width: 991px) {
    .hero-mobirise { padding: 48px 0; }
    .hero-mobirise .row { flex-direction: column; gap: 32px; }
    .hero-mobirise .image-wrapper { flex: none; order: -1; width: 100%; }
    .hero-mobirise .image-wrapper img { height: 280px; }
    .hero-mobirise h1 { font-size: 2.2rem; }
    .hero-mobirise .subtitle { font-size: 1.15rem; }
    .hero-mobirise .icon-wrapper { display: none; }
    .hero-mobirise .text-wrapper { text-align: center; }
    .hero-mobirise .description { margin: 0 auto 2rem; }
    .hero-stats { justify-content: center; }
    .hero-mobirise::after { display: none; }
}

/* ── Tour Card ────────────────────────────────────────────── */

.card-mobirise {
    background: var(--white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: var(--tr);
    height: 100%;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-sm);
}
.card-mobirise:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
}

.card-mobirise .card-image {
    position: relative;
    height: 220px;
    overflow: hidden;
    flex-shrink: 0;
}
.card-mobirise .card-image img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .5s ease;
}
.card-mobirise:hover .card-image img { transform: scale(1.08); }

.card-mobirise .card-placeholder {
    height: 100%;
    background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
    display: flex; align-items: center; justify-content: center;
    font-size: 3.5rem;
}

.card-mobirise .badge-hot {
    position: absolute; top: 14px; left: 14px;
    background: var(--danger); color: var(--black);
    padding: 4px 18px; border-radius: var(--radius-pill);
    font-weight: 700; font-size: .8rem;
}
.card-mobirise .badge-rating {
    position: absolute; top: 14px; right: 14px;
    background: rgba(255,255,255,.92); backdrop-filter: blur(6px);
    padding: 4px 14px; border-radius: var(--radius-pill);
    font-weight: 700; font-size: .85rem;
}

.card-mobirise .card-content {
    padding: 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.card-mobirise .card-country {
    font-size: .8rem; font-weight: 700;
    color: var(--dominant);
    text-transform: uppercase;
    letter-spacing: .8px;
    margin-bottom: 6px;
}

.card-mobirise .card-title {
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: .75rem;
    color: var(--black);
    /* Ограничение строк */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card-mobirise .card-details {
    display: flex; flex-wrap: wrap; gap: 12px;
    margin-bottom: 1rem;
}
.card-mobirise .detail-item {
    display: flex; align-items: center; gap: 4px;
    font-size: .88rem; color: var(--gray);
}
.card-mobirise .detail-item .icon { font-size: 1rem; }

.card-mobirise .card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 16px;
    margin-top: auto;
    border-top: 1px solid var(--bg);
}

.card-mobirise .price-label { font-size: .72rem; color: var(--gray); }
.card-mobirise .price-value {
    font-size: 1.5rem; font-weight: 800;
    color: var(--dominant); line-height: 1.1;
    white-space: nowrap;
}
.card-mobirise .price-note { font-size: .72rem; color: var(--gray); }

.card-mobirise .btn-details {
    display: inline-block;
    background: var(--dominant);
    color: var(--white);
    padding: 10px 20px;
    border-radius: var(--radius-pill);
    font-weight: 600; font-size: .9rem;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: var(--tr);
}
.card-mobirise .btn-details:hover {
    background: var(--secondary); color: var(--black);
}

@media (max-width: 575px) {
    .card-mobirise .card-footer {
        flex-direction: column;
        align-items: stretch;
    }
    .card-mobirise .btn-details {
        text-align: center;
    }
}

/* ── OLD Tour Card (для вторичных страниц) ────────────────── */

.tour-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: var(--tr);
    border: none;
}
.tour-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
}
.tour-card .card-img-top {
    height: 200px;
    object-fit: cover;
}
.tour-card .card-body {
    padding: 20px;
}
.tour-card .card-title {
    font-size: 1.1rem; font-weight: 700;
    margin-bottom: .5rem;
}
.tour-card .badge-hot {
    position: absolute; top: 12px; left: 12px;
    background: var(--danger);
    padding: 4px 14px;
    border-radius: var(--radius-pill);
    font-weight: 700; font-size: .78rem;
    z-index: 2;
}
.tour-card .badge-rating {
    position: absolute; top: 12px; right: 12px;
    background: rgba(255,255,255,.9);
    padding: 4px 12px;
    border-radius: var(--radius-pill);
    font-weight: 700; font-size: .82rem;
    z-index: 2;
}
.rating-green { color: #16a34a; }
.rating-yellow { color: #ca8a04; }
.rating-gray { color: #9ca3af; }

.tour-card .tour-price {
    font-size: 1.5rem; font-weight: 800;
    color: var(--dominant);
}
.tour-card .btn-sm {
    background: var(--dominant);
    color: var(--white);
    border: none;
    border-radius: var(--radius-pill);
    padding: 8px 20px;
    font-weight: 600;
    transition: var(--tr);
}
.tour-card .btn-sm:hover {
    background: var(--secondary);
    color: var(--black);
}

/* ── Embla Carousel ───────────────────────────────────────── */

.embla { position: relative; }
.embla__viewport { overflow: hidden; }
.embla__container { display: flex; gap: 20px; }
.embla__slide { flex: 0 0 340px; min-width: 0; }

.embla__prev, .embla__next {
    position: absolute;
    bottom: -60px;
    width: 48px; height: 48px;
    border-radius: 50%;
    background: var(--dominant);
    border: none; color: var(--white);
    font-size: 1.4rem; cursor: pointer;
    transition: var(--tr);
    box-shadow: var(--shadow-md);
}
.embla__prev { left: calc(50% - 56px); }
.embla__next { right: calc(50% - 56px); }
.embla__prev:hover, .embla__next:hover {
    background: var(--secondary); color: var(--black);
    transform: scale(1.12);
}

@media (max-width: 575px) {
    .embla__slide { flex: 0 0 88vw; }
    .embla__prev, .embla__next { bottom: -50px; width: 42px; height: 42px; }
}

/* ── Hotel Card ───────────────────────────────────────────── */

.hotel-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: 28px 24px;
    text-align: center;
    transition: var(--tr);
    box-shadow: var(--shadow-sm);
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.hotel-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }

.hotel-card .hotel-icon {
    width: 80px; height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary) 0%, var(--info) 100%);
    display: flex; align-items: center; justify-content: center;
    font-size: 2.5rem;
    margin-bottom: 1rem;
}

.hotel-card .hotel-name { font-size: 1.15rem; font-weight: 700; margin-bottom: .35rem; }
.hotel-card .hotel-location { font-size: .9rem; color: var(--gray); margin-bottom: .75rem; }
.hotel-card .hotel-rating { font-size: 1rem; font-weight: 700; color: var(--dominant); margin-bottom: 1rem; }
.hotel-card .hotel-link {
    margin-top: auto;
    color: var(--dominant);
    text-decoration: none;
    font-weight: 600;
    transition: var(--tr);
}
.hotel-card .hotel-link:hover { color: var(--secondary); }

/* ── News Card ────────────────────────────────────────────── */

.news-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: 24px;
    transition: var(--tr);
    box-shadow: var(--shadow-sm);
    height: 100%;
    display: flex; flex-direction: column;
}
.news-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }

.news-card .news-date { font-size: .82rem; color: var(--gray); margin-bottom: .5rem; }
.news-card .news-title {
    font-size: 1.1rem; font-weight: 700; line-height: 1.3;
    margin-bottom: .5rem;
}
.news-card .news-excerpt { font-size: .92rem; color: var(--gray); margin-bottom: 1rem; flex: 1; }
.news-card .news-link {
    margin-top: auto;
    color: var(--dominant); text-decoration: none; font-weight: 600;
}
.news-card .news-link:hover { color: var(--secondary); }

/* ── Content Section ──────────────────────────────────────── */

.content-section {
    padding: 56px 0;
}
.content-section.white-bg {
    background: var(--white);
    border-radius: var(--radius);
    margin: 24px auto;
    max-width: var(--container);
    padding: 56px 40px;
}

@media (max-width: 767px) {
    .content-section { padding: 36px 0; }
    .content-section.white-bg { padding: 36px 20px; margin: 16px 12px; }
}

/* ── Features Section ─────────────────────────────────────── */

.features-section {
    padding: 80px 0;
    background: linear-gradient(135deg, var(--dominant) 0%, #4a7c8a 50%, var(--secondary) 100%);
    border-radius: var(--radius);
    margin: 48px auto;
    max-width: var(--container);
}
.features-section .section-title { color: var(--white); }
.features-section .section-subtitle { color: rgba(255,255,255,.85); }

.feature-box {
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: var(--radius);
    padding: 36px 28px;
    text-align: center;
    transition: var(--tr);
    height: 100%;
}
.feature-box:hover { background: rgba(255,255,255,.22); transform: translateY(-6px); }

.feature-box .feature-icon { font-size: 3.5rem; margin-bottom: 1rem; }
.feature-box h4 { color: var(--white); font-size: 1.3rem; font-weight: 700; margin-bottom: .75rem; }
.feature-box p { color: rgba(255,255,255,.85); font-size: .95rem; line-height: 1.6; }

/* ── Country Card ─────────────────────────────────────────── */

.country-card {
    background: var(--white);
    border-radius: 20px;
    padding: 20px 16px;
    text-align: center;
    text-decoration: none;
    display: block;
    transition: var(--tr);
    box-shadow: var(--shadow-sm);
}
.country-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

.country-card .flag { font-size: 2.5rem; margin-bottom: 6px; }
.country-card .name { font-size: .95rem; font-weight: 600; color: var(--black); }
.country-card .count { font-size: .8rem; color: var(--gray); }

/* ── Telegram Banner ──────────────────────────────────────── */

.tg-banner {
    background: var(--dominant);
    color: var(--white);
    border-radius: var(--radius);
    padding: 56px 40px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.tg-banner::before {
    content: ''; position: absolute;
    top: -60%; right: -30%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(255,243,176,.08) 0%, transparent 60%);
    pointer-events: none;
}
.tg-banner h3 { font-size: 1.75rem; font-weight: 700; margin-bottom: .75rem; position: relative; z-index: 1; }
.tg-banner p { font-size: 1.05rem; opacity: .9; position: relative; z-index: 1; }

.btn-tg {
    display: inline-block;
    background: var(--secondary); color: var(--black);
    padding: 14px 32px; border-radius: var(--radius-pill);
    font-weight: 700; text-decoration: none;
    transition: var(--tr);
    position: relative; z-index: 1;
}
.btn-tg:hover { background: var(--primary); transform: translateY(-2px); box-shadow: var(--shadow-md); color: var(--black); }

/* ══════════════════════════════════════════════════════════════
   ВТОРИЧНЫЕ СТРАНИЦЫ — Единый стиль
   ══════════════════════════════════════════════════════════════ */

/* ── Page Header (шапка вторичных страниц) ────────────────── */

.page-header {
    background: linear-gradient(135deg, var(--primary) 0%, var(--info) 100%);
    padding: 48px 0 40px;
    margin-top: -8px;
    margin-bottom: 32px;
    border-radius: 0 0 var(--radius) var(--radius);
}
.page-header h1 {
    font-size: 2.2rem; font-weight: 800;
    color: var(--dominant);
    margin-bottom: .5rem;
}
.page-header .lead {
    color: #444; font-size: 1.1rem;
}

/* ── Tour View (страница тура) ────────────────────────────── */

.tour-hero {
    position: relative;
    height: 400px;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}
.tour-hero img {
    width: 100%; height: 100%; object-fit: cover;
}
.tour-hero .tour-hero-overlay {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: 32px;
    background: linear-gradient(transparent 0%, rgba(0,0,0,.7) 100%);
    color: var(--white);
}
.tour-hero .tour-hero-overlay h1 {
    font-size: 1.8rem; font-weight: 700; margin-bottom: 8px; color: var(--white);
}

.tour-sidebar {
    background: var(--white);
    border-radius: var(--radius);
    padding: 28px;
    box-shadow: var(--shadow-md);
    position: sticky;
    top: 90px;
}
.tour-sidebar .price-big {
    font-size: 2rem; font-weight: 800;
    color: var(--dominant);
    margin-bottom: 4px;
}
.tour-sidebar .price-note {
    font-size: .85rem; color: var(--gray);
    margin-bottom: 1.5rem;
}
.tour-sidebar .btn-cta { width: 100%; justify-content: center; }

.tour-info-card {
    background: var(--white);
    border-radius: var(--radius);
    padding: 28px;
    box-shadow: var(--shadow-sm);
    margin-bottom: 24px;
}
.tour-info-card h3 {
    font-size: 1.3rem; font-weight: 700;
    margin-bottom: 1rem;
    padding-bottom: .75rem;
    border-bottom: 2px solid var(--bg);
}

/* Факторы */
.factor-badge {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 14px;
    border-radius: var(--radius-pill);
    font-size: .85rem; font-weight: 600;
    margin: 4px;
}
.factor-badge.ok { background: #e6f9ef; color: #16a34a; }
.factor-badge.low { background: #fff8e1; color: #ca8a04; }
.factor-badge.stop { background: #fde8e8; color: #dc2626; }

/* Рейтинги */
.rating-source-card {
    background: var(--gray-light);
    border-radius: 16px;
    padding: 16px 20px;
    display: flex; align-items: center; gap: 12px;
}
.rating-source-card .rating-value {
    font-size: 1.5rem; font-weight: 800; color: var(--dominant);
}
.rating-source-card .rating-source {
    font-size: .9rem; color: var(--gray);
}

/* Табы на странице тура */
.nav-tabs-tour {
    border-bottom: 2px solid var(--bg);
    gap: 4px;
}
.nav-tabs-tour .nav-link {
    border: none;
    border-radius: var(--radius-pill);
    padding: 10px 24px;
    font-weight: 600;
    color: var(--gray);
    transition: var(--tr);
}
.nav-tabs-tour .nav-link.active {
    background: var(--dominant);
    color: var(--white);
}
.nav-tabs-tour .nav-link:hover:not(.active) {
    background: var(--bg);
    color: var(--black);
}

/* ── Hotel List / View ────────────────────────────────────── */

.hotel-catalog-card {
    background: var(--white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: var(--tr);
    height: 100%;
    display: flex; flex-direction: column;
}
.hotel-catalog-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }

.hotel-catalog-card .hotel-thumb {
    height: 180px;
    background: linear-gradient(135deg, var(--primary) 0%, var(--info) 100%);
    display: flex; align-items: center; justify-content: center;
    font-size: 3rem;
}
.hotel-catalog-card .hotel-thumb img {
    width: 100%; height: 100%; object-fit: cover;
}
.hotel-catalog-card .hotel-body {
    padding: 20px; flex: 1;
    display: flex; flex-direction: column;
}
.hotel-catalog-card .hotel-body h5 { font-weight: 700; margin-bottom: .35rem; }
.hotel-catalog-card .hotel-features {
    display: flex; flex-wrap: wrap; gap: 6px;
    margin-top: auto; padding-top: 12px;
}
.hotel-catalog-card .hotel-features span {
    background: var(--bg); padding: 4px 10px;
    border-radius: var(--radius-pill);
    font-size: .78rem; font-weight: 500;
}

/* Hotel detail page */
.hotel-detail-hero {
    display: flex; gap: 16px;
    margin-bottom: 32px;
}
.hotel-detail-hero .main-photo {
    flex: 0 0 400px; height: 320px;
    border-radius: var(--radius);
    overflow: hidden;
}
.hotel-detail-hero .main-photo img { width: 100%; height: 100%; object-fit: cover; }
.hotel-detail-hero .photo-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 8px; flex: 1;
}
.hotel-detail-hero .photo-grid img {
    width: 100%; height: 152px;
    object-fit: cover; border-radius: 16px;
}

.hotel-chars {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
}
.hotel-char-item {
    background: var(--gray-light);
    padding: 14px 16px;
    border-radius: 16px;
    display: flex; align-items: center; gap: 10px;
    font-size: .92rem;
}
.hotel-char-item .char-icon { font-size: 1.3rem; }

@media (max-width: 768px) {
    .hotel-detail-hero { flex-direction: column; }
    .hotel-detail-hero .main-photo { flex: none; height: 240px; }
}

/* ── News Page ────────────────────────────────────────────── */

.news-country-group {
    background: var(--white);
    border-radius: var(--radius);
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: var(--shadow-sm);
}
.news-country-group h3 {
    font-size: 1.3rem; font-weight: 700;
    margin-bottom: 1rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--bg);
}

.news-item-row {
    display: flex; align-items: flex-start;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--bg);
}
.news-item-row:last-child { border-bottom: none; }

.risk-badge {
    display: inline-block;
    padding: 3px 12px;
    border-radius: var(--radius-pill);
    font-size: .78rem; font-weight: 600;
    white-space: nowrap;
}
.risk-badge.risk-none { background: #e6f9ef; color: #16a34a; }
.risk-badge.risk-low { background: #fff8e1; color: #ca8a04; }
.risk-badge.risk-high { background: #fef3cd; color: #b45309; }
.risk-badge.risk-stop { background: #fde8e8; color: #dc2626; }

.category-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--radius-pill);
    font-size: .75rem; font-weight: 500;
    background: var(--bg);
}

/* ── Country & Collection pages ───────────────────────────── */

.collection-hero {
    background: linear-gradient(135deg, var(--dominant) 0%, var(--purple) 100%);
    padding: 48px 0;
    border-radius: 0 0 var(--radius) var(--radius);
    margin-top: -8px;
    margin-bottom: 32px;
    color: var(--white);
}
.collection-hero h1 {
    font-size: 2rem; font-weight: 800;
    color: var(--white); margin-bottom: .5rem;
}
.collection-hero p { opacity: .9; font-size: 1.05rem; }

/* ── Filters ──────────────────────────────────────────────── */

.filter-bar {
    background: var(--white);
    border-radius: var(--radius);
    padding: 20px 24px;
    margin-bottom: 24px;
    box-shadow: var(--shadow-sm);
    display: flex; flex-wrap: wrap; gap: 12px;
    align-items: end;
}
.filter-bar .form-select,
.filter-bar .form-control {
    border-radius: 14px;
    border: 2px solid var(--bg);
    padding: 8px 16px;
    font-size: .92rem;
    transition: var(--tr);
}
.filter-bar .form-select:focus,
.filter-bar .form-control:focus {
    border-color: var(--dominant);
    box-shadow: 0 0 0 3px rgba(51,92,103,.12);
}
.filter-bar .btn {
    border-radius: 14px;
    padding: 8px 24px;
    font-weight: 600;
}

/* ── Pagination ───────────────────────────────────────────── */

.pagination .page-link {
    border: none;
    border-radius: 12px;
    padding: 8px 16px;
    margin: 0 3px;
    color: var(--dominant);
    font-weight: 600;
    transition: var(--tr);
}
.pagination .page-link:hover { background: var(--primary); }
.pagination .page-item.active .page-link {
    background: var(--dominant);
    color: var(--white);
}

/* ── Breadcrumbs ──────────────────────────────────────────── */

.breadcrumb-wrap {
    padding-top: 84px;
    padding-bottom: 8px;
}

.breadcrumb {
    background: none;
    padding: 0;
    margin: 0;
    font-size: .88rem;
}
.breadcrumb-item a { color: var(--dominant); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--secondary); }

/* ── Footer ───────────────────────────────────────────────── */

.footer-mobirise {
    background: var(--dominant);
    color: var(--white);
    padding: 56px 0 24px;
    margin-top: 64px;
}
.footer-mobirise .container { max-width: var(--container); margin: 0 auto; padding: 0 24px; }

.footer-mobirise .footer-logo { margin-bottom: 1.25rem; }
.footer-mobirise .footer-logo img { height: 48px !important; filter: brightness(0) invert(1); }
.footer-mobirise .footer-description { font-size: .95rem; opacity: .85; margin-bottom: 1.25rem; }

.footer-mobirise .social-link {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    display: inline-flex; align-items: center; justify-content: center;
    text-decoration: none; font-size: 1.25rem;
    transition: var(--tr);
}
.footer-mobirise .social-link:hover { background: var(--secondary); transform: scale(1.1); }
.footer-mobirise .footer-social { display: flex; gap: 10px; }

.footer-mobirise .footer-heading { font-size: 1.05rem; font-weight: 700; margin-bottom: .75rem; }
.footer-mobirise .footer-links { list-style: none; padding: 0; margin: 0; }
.footer-mobirise .footer-links li { margin-bottom: .5rem; }
.footer-mobirise .footer-links a {
    color: var(--white); text-decoration: none; opacity: .8;
    transition: var(--tr); font-size: .92rem;
}
.footer-mobirise .footer-links a:hover { opacity: 1; }

.footer-mobirise .footer-contact { opacity: .85; font-size: .92rem; }
.footer-mobirise .footer-contact a { color: var(--white); text-decoration: underline; }

.footer-mobirise .footer-bottom {
    margin-top: 2.5rem; padding-top: 1.5rem;
    border-top: 1px solid rgba(255,255,255,.15);
    opacity: .7; font-size: .85rem;
}

/* ── Alerts / Empty states ────────────────────────────────── */

.empty-state {
    text-align: center;
    padding: 64px 24px;
    background: var(--white);
    border-radius: var(--radius);
}
.empty-state .emoji { font-size: 4rem; margin-bottom: 1rem; }
.empty-state h3 { font-size: 1.3rem; font-weight: 700; margin-bottom: .5rem; }
.empty-state p { color: var(--gray); }

.alert {
    border-radius: 16px;
    border: none;
}

/* ── Responsive Fixes ────────────────────────────────────── */

@media (max-width: 767px) {
    .page-header { padding: 36px 0 28px; }
    .page-header h1 { font-size: 1.7rem; }
    .page-header .lead { font-size: .95rem; }

    .collection-hero { padding: 36px 0; }
    .collection-hero h1 { font-size: 1.6rem; }

    .section-title { font-size: 1.7rem; }
    .section-subtitle { font-size: 1rem; margin-bottom: 1.5rem; }

    .tour-hero { height: 260px; }
    .tour-hero .tour-hero-overlay { padding: 20px; }
    .tour-hero .tour-hero-overlay h1 { font-size: 1.3rem; }

    .tour-sidebar { position: static; margin-bottom: 24px; }

    .tour-info-card { padding: 20px; }
    .tour-info-card h3 { font-size: 1.15rem; }

    .filter-bar { flex-direction: column; }

    .news-country-group { padding: 18px; }
    .news-country-group h3 { font-size: 1.1rem; }

    .hotel-detail-hero .main-photo { height: 200px; }

    .breadcrumb-wrap { padding-top: 76px; }
}

@media (max-width: 575px) {
    .hero-mobirise h1 { font-size: 1.8rem; }
    .hero-mobirise .subtitle { font-size: 1rem; }
    .btn-cta { padding: 12px 24px; font-size: .95rem; }
    .tg-banner { padding: 36px 24px; }
    .tg-banner h3 { font-size: 1.35rem; }

    .tour-sidebar .price-big { font-size: 1.6rem; }
}

/* ── Utility ──────────────────────────────────────────────── */

.mt-80 { margin-top: 80px; }
.pt-navbar { padding-top: 84px; }

/* Structured data не отображается */
script[type="application/ld+json"] { display: none; }
