/*
 * =====================================
 * СТИЛИ ДЛЯ GROUP-TRAVEL.PHP И MEETINGS.PHP
 * =====================================
 */

/* --- Общие переменные и утилиты --- */
:root {
    --falk-blue: #00498D;
    --falk-light-blue: #f0f8ff;
    --falk-green: #9FDDC7;
    --falk-text-dark: #333;
    --falk-text-brown: #68554A;
    --falk-bg-gray-100: #f2f2f2;
    --falk-bg-secondary: #E0D9CB;
    --falk-bg-tertiary: #f9f9f9; 
    --falk-raleway: "Raleway", sans-serif;
    --falk-garamond: "EB Garamond", serif;
}

.main {
    /* Стили для <main>, если нужны */
}

/* Утилиты из HTML (Bootstrap/Tailwind) */
.overflow-hidden { overflow: hidden; }
.position-relative { position: relative; }
.position-absolute { position: absolute; }
.h-158 { height: 60vh; /* Адаптируем 'h-158' */ }
.h-full { height: 100%; }
.w-full { width: 100%; }
.top-0 { top: 0; }
.left-0 { left: 0; }
.right-0 { right: 0; }
.bottom-0 { bottom: 0; }
.text-white { color: #fff; }
.text-center { text-align: center; }
.p-0 { padding: 0; }
.p-2 { padding: 0.5rem; }
.p-3 { padding: 1rem; }
.p-5 { padding: 3rem; }
.py-5 { padding-top: 3rem; padding-bottom: 3rem; }
.px-5 { padding-left: 3rem; padding-right: 3rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-4 { margin-top: 1.5rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 3rem; }
.ml-1 { margin-left: 0.25rem; }
.d-flex { display: flex; }
.flex-column { flex-direction: column; }
.flex-row-reverse { flex-direction: row-reverse; }
.align-items-end { align-items: flex-end; }
.align-items-center { align-items: center; }
.justify-content-between { justify-content: space-between; }
.justify-content-end { justify-content: flex-end; }
.mt-auto { margin-top: auto; }
.container { max-width: 1236px; margin-left: auto; margin-right: auto; padding-left: 15px; padding-right: 15px; }
.container-fluid { width: 100%; padding-left: 15px; padding-right: 15px; }
.container--full-mobile { max-width: 1236px; margin-left: auto; margin-right: auto; }
.row { display: flex; flex-wrap: wrap; margin-left: -15px; margin-right: -15px; }
.gx-0 { margin-left: 0; margin-right: 0; }
.gx-0 > [class*='col-'] { padding-left: 0; padding-right: 0; }
.col-lg-6 { width: 50%; padding-left: 15px; padding-right: 15px; }
.ratio-container { position: relative; width: 100%; }
.ratio-media { width: 100%; height: 100%; object-fit: cover; display: block; }
.ratio-square { padding-bottom: 100%; }
.ratio-square .ratio-media { position: absolute; top: 0; left: 0; }
.h-158 .ratio-media { height: 100%; width: 100%; object-fit: cover; }
.object-center { object-position: center; }
.text-shadow-sm { text-shadow: 1px 1px 3px rgba(0,0,0,0.4); }
.text-current { color: currentColor; }
.no-underline { text-decoration: none; }
.font-sans { font-family: var(--falk-raleway); }
.text-uppercase { text-transform: uppercase; }
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }

/* Фоны */
.bg-gray-100 { background-color: var(--falk-bg-gray-100); }
.bg-primary { background-color: var(--falk-light-blue); }
.bg-secondary { background-color: var(--falk-bg-secondary); }
.bg-tertiary { background-color: var(--falk-bg-tertiary); }

/* --- 1. Hero Слайдер (slider-intro) --- */
.slider-intro {
    position: relative;
}
.slider-intro .hero-slide {
    position: relative;
}
.slider-intro .hero-text {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 2;
}
.slider-intro .inner-wrap {
    max-width: 944px;
}
.slider-intro .h1, .slider-intro .h2 {
    font-family: var(--falk-raleway);
    color: #fff;
    margin: 0;
}
.slider-intro .h1 {
    font-size: 44px;
    font-weight: 700;
}
.slider-intro .h2 {
    font-size: 24px;
    font-weight: 400;
}
.slider-intro .btn-small {
    background-color: var(--falk-green);
    color: #3C3C3B;
    font-family: var(--falk-raleway);
    font-size: 13px;
    padding: 12px 24px;
    border: none;
    text-transform: uppercase;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
}

/* --- 2. Paging (Стрелки и точки) --- */
.paging {
    /* Контейнер для стрелок и точек */
}
.paging .paging__prev,
.paging .paging__next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: rgba(255, 255, 255, 0.8);
    border: none;
    cursor: pointer;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 0;
}
.paging .paging__prev { left: 20px; }
.paging .paging__next { right: 20px; }

.paging .paging__prev::before,
.paging .paging__next::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    border-left: 2px solid #333;
    border-bottom: 2px solid #333;
    margin: 0 auto;
}
.paging .paging__prev::before { transform: rotate(45deg); margin-left: 4px; }
.paging .paging__next::before { transform: rotate(-135deg); margin-right: 4px; }

.paging .paging__dots {
    display: flex;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.paging .paging__dots button {
    font-size: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    padding: 0;
}
.paging .paging__dots .slick-active button {
    background: #fff;
}
/* Адаптация для paging--dark (для слайдера Offers) */
.paging--dark .paging__prev,
.paging--dark .paging__next {
    background: rgba(255, 255, 255, 0.8);
}
.paging--dark .paging__prev::before,
.paging--dark .paging__next::before {
    border-color: #333;
}
.paging--dark .paging__dots button {
    background: rgba(0, 0, 0, 0.3);
}
.paging--dark .paging__dots .slick-active button {
    background: rgba(0, 0, 0, 0.8);
}
/* Адаптация для paging--light (для 50/50 слайдеров) */
.paging--light .paging__prev,
.paging--light .paging__next {
    background: rgba(255, 255, 255, 0.8);
    /* Стили из cycling.css */
    width: 50px;
    height: 50px;
    border: 1px solid #ddd;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.paging--light .paging__prev { left: -25px; }
.paging--light .paging__next { right: -25px; }
.paging--light .paging__prev::before,
.paging--light .paging__next::before {
    border-color: #333;
}
.paging--light .paging__dots {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
}
.paging--light .paging__dots button {
    background: rgba(0, 0, 0, 0.3);
}
.paging--light .paging__dots .slick-active button {
    background: rgba(0, 0, 0, 0.8);
}


/* --- 3. Хлебные крошки (breadcrumbs) --- */
.breadcrumbs {
    padding: 15px 0;
    background-color: #fff;
    border-bottom: 1px solid #eee;
}
.breadcrumbs__inner .container {
    max-width: 1236px;
}
.breadcrumbs ul {
    list-style: none;
    padding: 0;
    margin: 0;
    font-family: var(--falk-raleway);
    font-size: 14px;
}
.breadcrumbs li {
    display: inline-block;
    color: #555;
}
.breadcrumbs li a {
    color: #555;
    text-decoration: none;
}
.breadcrumbs li a:hover {
    text-decoration: underline;
}
.breadcrumbs li + li::before {
    content: '→';
    margin: 0 8px;
    color: #888;
}

/* --- 4. Блок Entry (Заголовок + Текст) --- */
.entry {
    padding: 50px 0;
    background-color: #fff;
}
.entry.bg-gray-100 {
    background-color: var(--falk-bg-gray-100);
}
.entry__inner {
    max-width: 944px;
    margin-left: auto;
    margin-right: auto;
}
.entry__head {
    margin-bottom: 20px;
}
.entry__title {
    font-family: var(--falk-raleway);
    font-size: 44px;
    color: var(--falk-text-dark);
    font-weight: 400;
    margin: 0 0 8px 0;
    text-transform: uppercase;
}
.entry__subtitle {
    font-family: var(--falk-garamond);
    font-size: 24px;
    color: var(--falk-text-dark);
    font-weight: 400;
    line-height: 1.3;
    margin: 0;
}
.entry__text {
    font-family: var(--falk-garamond);
    font-size: 17px;
    color: var(--falk-text-dark);
    line-height: 1.6;
}
.entry__text p {
    margin: 0 0 15px 0;
}
.entry__text p:last-child {
    margin-bottom: 0;
}
.entry__actions {
    margin-top: 30px;
}
.entry__actions .btn {
    background-color: var(--falk-green);
    color: #3C3C3B;
    font-family: var(--falk-raleway);
    font-size: 13px;
    padding: 12px 24px;
    border: none;
    text-transform: uppercase;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    border-radius: 3px;
}
.entry__actions .btn:hover {
    opacity: 0.9;
}

/* --- 5. Слайдер Offers (секция .slider) --- */
.section .slider {
    position: relative;
    max-width: 944px;
    margin: 0 auto;
}
.section .slider .slider__slide {
    padding: 0 15px;
}
/* Стили карточки оффера */
.section .slider .p-2 {
    border: 1px solid #eee;
    background: #fff;
    padding: 0; /* Переопределяем .p-2 */
}
.section .slider .d-flex {
    /* .d-flex .flex-column .h-full */
}
.section .slider .ratio-square img {
    transition: transform 0.4s ease;
}
.section .slider .ratio-square:hover img {
    transform: scale(1.05);
}
.section .slider .text-center.p-3 {
    /* padding: 1rem; */
}
.section .slider .h4 {
    font-family: var(--falk-raleway);
    font-size: 24px;
    font-weight: 400;
    color: var(--falk-text-dark);
    margin: 16px 0 8px 0;
}
.section .slider .link-more {
    display: inline-flex;
    align-items: center;
    border: 0;
    background: transparent;
    font-family: var(--falk-raleway);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .2em;
    color: var(--falk-text-brown);
    text-transform: uppercase;
    text-decoration: none;
}
.section .slider .link__icon {
    margin-left: 5px;
}

/* --- 6. Слайдер 50/50 (highlights-rotator) --- */
.highlights-rotator {
    margin-bottom: 50px;
}
.highlights-rotator .slider__clip {
    /* background-color: var(--falk-bg-gray-100); */
}
.highlights-rotator .slider__slide {
    /* Слайд */
}
.highlights-rotator .row {
    align-items: stretch;
}
.highlights-rotator .col-lg-6 {
    width: 50%;
}
.highlights-rotator .text-warpper {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 50px;
    text-align: left;
}
.highlights-rotator .text-warpper .px-5 {
     padding-left: 0 !important; /* Адаптация */
     padding-right: 0 !important; /* Адаптация */
     width: 100%;
     max-width: 450px;
     margin: 0 auto;
}
.highlights-rotator .head-text {
    text-align: left;
}
.highlights-rotator .head-text-main-title {
    font-family: var(--falk-raleway);
    font-size: 32px;
    font-weight: 400;
    color: var(--falk-text-dark);
    margin-bottom: 25px;
}
.highlights-rotator .content-text {
    font-family: var(--falk-garamond);
    font-size: 17px;
    color: var(--falk-text-dark);
    line-height: 1.6;
}
.highlights-rotator .content-text p,
.highlights-rotator .content-text ul {
    margin-bottom: 15px;
}
.highlights-rotator .content-text ul {
    list-style-position: inside;
    padding-left: 0;
}
.highlights-rotator .content-text a {
    color: var(--falk-text-dark);
    text-decoration: underline;
}
.highlights-rotator .button-wrap {
    align-items: flex-start !important;
    margin-top: 30px;
}
.highlights-rotator .link-more {
    display: inline-flex;
    align-items: center;
    border: 0;
    background: transparent;
    font-family: var(--falk-raleway);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .2em;
    color: var(--falk-text-brown);
    text-transform: uppercase;
    text-decoration: none;
}
.highlights-rotator .link__icon {
    margin-left: 5px;
}
/* Позиционирование стрелок для 50/50 */
.highlights-rotator .highlights-rotator-paging {
    position: absolute;
    top: 50%;
    left: 0; /* Изменено для .w-1/2 */
    width: 50%; /* Изменено для .w-1/2 */
    height: auto; /* Изменено для .h-full */
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
}
.highlights-rotator .highlights-rotator-paging .paging__prev,
.highlights-rotator .highlights-rotator-paging .paging__next {
    position: static;
    transform: none;
}

/* --- 7. Кнопка "Наверх" (bar) --- */
.bar {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 90;
}
.btn-scroll-top {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 50%;
    text-decoration: none;
    color: #333;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.btn-scroll-top span {
    display: none; /* Скрываем текст */
}
.btn-scroll-top .btn__icon {
    display: block;
}
.btn-scroll-top .btn__icon svg {
    width: 32px;
    height: 32px;
}
.btn-scroll-top .btn__icon circle {
    fill: #fff;
    stroke: #333;
    stroke-width: 1px;
}
.btn-scroll-top .btn__icon path {
    fill: #333;
}

/* --- Адаптация --- */
@media (max-width: 992px) {
    .p-5 { padding: 1.5rem; }
    .px-5 { padding-left: 1.5rem; padding-right: 1.5rem; }
    .h-158 { height: 50vh; }
    
    .entry__title { font-size: 32px; }
    .entry__subtitle { font-size: 22px; }

    .container--full-mobile {
        padding-left: 0;
        padding-right: 0;
    }

    /* Слайдер 50/50 */
    .highlights-rotator .row {
        flex-direction: column !important; /* .flex-row-reverse будет на мобильных column-reverse */
    }
    .highlights-rotator .col-lg-6 {
        width: 100%;
    }
    .highlights-rotator .text-warpper {
        padding: 30px 15px;
    }
    .highlights-rotator .text-warpper .px-5 {
         padding-left: 1rem !important;
         padding-right: 1rem !important;
    }
    .highlights-rotator .highlights-rotator-paging {
        width: 100%;
        left: 0;
        top: 30%; /* Примерно */
    }
    .highlights-rotator .paging__dots {
        position: absolute;
        bottom: -30px; /* Выносим точки под картинку */
        left: 50%;
        transform: translateX(-50%);
    }

    /* Слайдер Offers */
    .section .slider {
        padding-left: 15px;
        padding-right: 15px;
    }
    .section .slider .slider__slide {
        padding: 0 8px;
    }
}

@media (max-width: 767px) {
    .paging .paging__prev,
    .paging .paging__next {
        display: none !important; /* Прячем стрелки на мобильных */
    }
    .paging .paging__dots {
        justify-content: center;
        width: 100%;
        left: 0;
        right: 0;
        bottom: 10px;
        padding: 0;
    }
    .slider-intro .paging .paging__dots {
         bottom: 20px;
    }
}