/* ============================================================
 * dalividalikg22 — единственный CSS темы (Phase 5.5)
 * После чистки. Загружается после design-tokens.css и theme-style.
 * Старые css/style.css, less/, slick.css, lightgallery.css, jquery-ui.css
 * УДАЛЕНЫ. Здесь — всё что нужно для отображения.
 * ============================================================ */


/* ============================================================
 * SLICK CORE (минимально необходимое для работы Slick)
 * ============================================================ */
.slick-slider { position: relative; display: block; box-sizing: border-box; user-select: none; -webkit-user-select: none; -ms-touch-action: pan-y; touch-action: pan-y; }
.slick-list { position: relative; display: block; overflow: hidden; margin: 0; padding: 0; }
.slick-list:focus { outline: none; }
.slick-list.dragging { cursor: pointer; }
.slick-slider .slick-track,
.slick-slider .slick-list { transform: translate3d(0,0,0); }
.slick-track { position: relative; left: 0; top: 0; display: block; margin-left: auto; margin-right: auto; }
.slick-track::before, .slick-track::after { display: table; content: ''; }
.slick-track::after { clear: both; }
.slick-loading .slick-track { visibility: hidden; }
.slick-slide { display: none; float: left; height: 100%; min-height: 1px; }
.slick-slide img { display: block; }
.slick-initialized .slick-slide { display: block; }
.slick-loading .slick-slide { visibility: hidden; }
.slick-arrow.slick-hidden { display: none; }


/* ============================================================
 * LEGACY HELPERS — старые классы которые остались в шаблонах
 * ============================================================ */

/* контейнерные обёртки старых шаблонов */
.wrap_float { width: 100%; }

/* секции страниц */
.firstsection {
    padding: var(--dv-space-8) 0;
    max-width: var(--dv-container-max);
    margin: 0 auto;
    padding-left: var(--dv-container-pad);
    padding-right: var(--dv-container-pad);
    box-sizing: border-box;
}
.firstsection h1 {
    font-family: var(--dv-font-display);
    font-size: clamp(1.75rem, 1.25rem + 2vw, 2.75rem);
    font-weight: 400; margin: 0 0 var(--dv-space-5); line-height: 1.15;
}

/* flex/row helpers */
.flex100f {
    display: flex; flex-wrap: wrap; gap: var(--dv-space-4);
    width: 100%; box-sizing: border-box;
    margin: 0 0 var(--dv-space-5);
}
.row100f { flex: 1 1 100%; min-width: 0; }
.row50f  { flex: 1 1 calc(50% - var(--dv-space-3)); min-width: 0; }
.row33f  { flex: 1 1 calc(33.333% - var(--dv-space-3)); min-width: 0; }
.row25f  { flex: 1 1 calc(25% - var(--dv-space-3)); min-width: 0; }
@media (max-width: 1024px) {
    .row33f, .row25f { flex: 1 1 calc(50% - var(--dv-space-3)); }
}
@media (max-width: 640px) {
    .row50f, .row33f, .row25f { flex: 1 1 100%; }
}

/* типовые «секции» с заголовком и стрелками (главная) */
.title_wrap {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: var(--dv-space-4); margin-bottom: var(--dv-space-6); flex-wrap: wrap;
}
.title_wrap h2.title,
.title_wrap .title {
    font-family: var(--dv-font-display);
    font-size: clamp(1.5rem, 1rem + 2vw, 2.25rem);
    font-weight: 400; margin: 0 0 var(--dv-space-2); line-height: 1.15;
    color: var(--dv-text);
}
.title_wrap .subtitle { margin: 0; color: var(--dv-text-muted); font-size: 1rem; max-width: 600px; }
.title_wrap .controls { display: flex; gap: var(--dv-space-3); align-items: center; flex-wrap: wrap; }
.title_wrap .controls .link {
    color: var(--dv-primary); text-decoration: none; font-weight: 600; white-space: nowrap;
}
.title_wrap .controls .link:hover { color: var(--dv-primary-dark); }
.title_wrap .arrows { display: flex; gap: var(--dv-space-2); }
.title_wrap .arrows .arrow {
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--dv-bg); border: 1px solid var(--dv-border);
    cursor: pointer; transition: var(--dv-transition);
    position: relative; flex-shrink: 0;
}
.title_wrap .arrows .arrow::before {
    content: ''; position: absolute; top: 50%; left: 50%;
    width: 10px; height: 10px;
    border-top: 2px solid var(--dv-text); border-right: 2px solid var(--dv-text);
}
.title_wrap .arrows .arrow.prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.title_wrap .arrows .arrow.next::before { transform: translate(-70%, -50%) rotate(45deg); }
.title_wrap .arrows .arrow:hover { background: var(--dv-primary); border-color: var(--dv-primary); }
.title_wrap .arrows .arrow:hover::before { border-color: #fff; }

/* контейнеры секций */
.most_popular,
.destinations,
.stories,
.blog {
    padding: var(--dv-space-8) 0;
}
.most_popular .wrap,
.destinations .wrap,
.stories .wrap {
    max-width: var(--dv-container-max);
    margin: 0 auto;
    padding: 0 var(--dv-container-pad);
}

.section_content { width: 100%; }
.section_content .scroll {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--dv-space-4);
    padding: var(--dv-space-2) 0;
}
.section_content .tour-slider,
.section_content #tour-slider {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--dv-space-5);
}

/* destinations — карточки направлений (topcats) */
.destinations_item {
    position: relative;
    display: block;
    border-radius: var(--dv-radius-lg);
    background-size: cover; background-position: center; background-color: #2E2E2E;
    overflow: hidden;
    color: #fff; text-decoration: none;
    min-height: 280px;
    transition: transform var(--dv-transition), box-shadow var(--dv-transition);
}
.destinations_item:hover { transform: translateY(-4px); box-shadow: var(--dv-shadow-lg); }
.destinations_item .sq_parent { position: relative; z-index: 2; height: 100%; min-height: 280px; }
.destinations_item .sq_wrap { position: absolute; inset: 0; display: flex; align-items: flex-end; }
.destinations_item .sq_content { padding: var(--dv-space-4); width: 100%; }
.destinations_item ._content { color: #fff; }
.destinations_item h3._title,
.destinations_item ._title {
    margin: 0 0 var(--dv-space-2); font-size: 1.25rem; font-weight: 700; line-height: 1.2;
    color: #fff;
}
.destinations_item ._info { margin: 0; font-size: .9rem; opacity: .9; }
.destinations_item::after {
    content: ''; position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.2) 50%, transparent 100%);
}
.destinations_item .shadow { display: none; }


/* ============================================================
 * SHOP / ARCHIVE PRODUCT
 * ============================================================ */
.image_header {
    height: clamp(220px, 35vh, 360px);
    background-size: cover; background-position: center; background-color: #2E2E2E;
    border-radius: 0;
    margin-bottom: var(--dv-space-3);
}
.page.travel-list { padding-bottom: var(--dv-space-8); }
.page_head .wrap { padding: var(--dv-space-6) 0; }
.page_head .title {
    font-family: var(--dv-font-display);
    font-size: clamp(1.75rem, 1.25rem + 2vw, 2.75rem);
    font-weight: 400; margin: 0 0 var(--dv-space-2); line-height: 1.15;
}
.page_head h2.title { font-size: 1.1rem; opacity: .8; font-weight: 400; }
.page_head .subtitle { margin: var(--dv-space-3) 0 0; color: var(--dv-text-muted); }
.page_body { padding: var(--dv-space-3) 0; }
.page_body .posts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--dv-space-5);
    list-style: none; margin: 0; padding: 0;
}
@media (max-width: 480px) { .page_body .posts { grid-template-columns: 1fr; } }
.page_body .pagination { display: flex; gap: var(--dv-space-2); justify-content: center; margin: var(--dv-space-6) 0; }


/* ============================================================
 * PAGE-DELIVERY (legacy кондитерский шаблон, минимальная стилизация)
 * ============================================================ */
.deliv_title  { font-family: var(--dv-font-display); font-size: 1.5rem; font-weight: 400; margin: 0 0 var(--dv-space-3); }
.deliv_title3 { font-family: var(--dv-font-display); font-size: 1.75rem; font-weight: 400; text-align: center; margin: var(--dv-space-6) 0 var(--dv-space-5); }
.deliv_text   { line-height: 1.6; color: var(--dv-text); }
.deliv_step   { padding: var(--dv-space-5); background: var(--dv-bg-light); border-radius: var(--dv-radius-lg); text-align: center; }
.deliv__number {
    display: inline-flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; border-radius: 50%;
    background: var(--dv-primary); color: #fff; font-size: 1.5rem; font-weight: 700;
    margin-bottom: var(--dv-space-3);
}
.deliv__title { font-weight: 700; font-size: 1.05rem; margin-bottom: var(--dv-space-2); }
.deliv__text { color: var(--dv-text-muted); font-size: .9rem; line-height: 1.5; }
.deliv_partners { padding: var(--dv-space-6) 0; text-align: center; }
.deliv_brands { display: flex; gap: var(--dv-space-4); justify-content: center; align-items: center; flex-wrap: wrap; }
.deliv__logo img { max-width: 200px; height: auto; }

.delivery__slider { padding: var(--dv-space-3); background: var(--dv-bg-light); border-radius: var(--dv-radius-lg); }
.delivery__slider .slick-slide { padding: 0 var(--dv-space-2); box-sizing: border-box; }
.delivery__block {
    background: var(--dv-bg);
    border-radius: var(--dv-radius); overflow: hidden;
    display: grid; grid-template-columns: 1fr 1fr; align-items: stretch;
    min-height: 280px;
}
@media (max-width: 768px) { .delivery__block { grid-template-columns: 1fr; } }
.delivery__text { padding: var(--dv-space-5); display: flex; flex-direction: column; justify-content: center; }
.delivery__title { font-family: var(--dv-font-display); font-size: 1.25rem; margin-bottom: var(--dv-space-3); }
.delivery__desc { color: var(--dv-text-muted); line-height: 1.6; }
.delivery__image { background-size: cover; background-position: center; min-height: 180px; }


/* ============================================================
 * PAGE-ABOUT (parts/aboutusslider.php — legacy)
 * ============================================================ */
.aboutus { padding: var(--dv-space-6) 0; }
.aboutus__slider {
    background: var(--dv-bg-light); border-radius: var(--dv-radius-lg);
    padding: var(--dv-space-3);
}
.aboutus__slider .slick-slide { padding: 0 var(--dv-space-2); box-sizing: border-box; }
.aboutus__block {
    background: var(--dv-bg); border-radius: var(--dv-radius);
    display: grid; grid-template-columns: 1fr 1fr; min-height: 320px; overflow: hidden;
}
@media (max-width: 768px) { .aboutus__block { grid-template-columns: 1fr; } }
.aboutus__text { padding: var(--dv-space-5); display: flex; flex-direction: column; justify-content: center; }
.aboutus__title {
    font-family: var(--dv-font-display);
    font-size: 1.5rem; font-weight: 400; line-height: 1.2;
    margin-bottom: var(--dv-space-3);
}
.aboutus__desc { color: var(--dv-text-muted); line-height: 1.6; margin-bottom: var(--dv-space-4); }
.aboutus__desc p { margin: 0 0 var(--dv-space-2); }
.aboutus_btn { align-self: flex-start; }
.aboutus__image { background-size: cover; background-position: center; min-height: 200px; }


/* ============================================================
 * MODAL (footer.php — modal_search)
 * ============================================================ */
.modal_search {
    position: fixed; inset: 0;
    background: rgba(0,0,0,.85);
    z-index: 999;
    padding: var(--dv-space-8) var(--dv-space-4);
    display: none; align-items: center; justify-content: center;
}
.modal_search.is-open { display: flex; }
.modal_search .close {
    position: absolute; top: var(--dv-space-4); right: var(--dv-space-4);
    width: 40px; height: 40px; cursor: pointer;
    background: rgba(255,255,255,.1); border-radius: 50%;
}
.modal_search .close::before, .modal_search .close::after {
    content: ''; position: absolute; top: 50%; left: 50%;
    width: 18px; height: 2px; background: #fff; transform-origin: center;
}
.modal_search .close::before { transform: translate(-50%,-50%) rotate(45deg); }
.modal_search .close::after  { transform: translate(-50%,-50%) rotate(-45deg); }
.overlay { display: none; }


/* ============================================================
 * BLOG / SINGLE POST cards (single.php, index.php → row33f)
 * ============================================================ */
.blog_item {
    display: block;
    background: var(--dv-bg); border-radius: var(--dv-radius-lg);
    overflow: hidden;
    box-shadow: var(--dv-shadow-sm);
    color: var(--dv-text); text-decoration: none;
    transition: transform var(--dv-transition), box-shadow var(--dv-transition);
}
.blog_item:hover { transform: translateY(-4px); box-shadow: var(--dv-shadow-md); }
.blog_item_top {
    height: 200px; background-size: cover; background-position: center; background-color: #ddd;
    position: relative;
}
.blog_item_top .sq_parent, .blog_item_top .sq_wrap, .blog_item_top .sq_content { position: absolute; inset: 0; padding: var(--dv-space-4); display: flex; flex-direction: column; justify-content: flex-end; color: #fff; z-index: 2; }
.blog_item_top::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.7), transparent 60%); }
.blog_item_top .tags { display: flex; gap: var(--dv-space-2); flex-wrap: wrap; margin-bottom: var(--dv-space-2); }
.blog_item_top .tag {
    padding: 2px 10px; border-radius: 100px;
    font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    background: rgba(255,255,255,.15); backdrop-filter: blur(8px);
}
.blog_item_top .tag.red    { background: var(--dv-primary); }
.blog_item_top .tag.green  { background: #25D366; }
.blog_item_top .tag.blue   { background: #2196F3; }
.blog_item_top .tag.black  { background: #2E2E2E; }
.blog_item_top h3._title, .blog_item_top ._title {
    margin: 0; color: #fff; font-size: 1.15rem; font-weight: 700; line-height: 1.3;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.blog_item_bottom { padding: var(--dv-space-4); }
.blog_item_bottom .author { display: flex; align-items: center; gap: var(--dv-space-2); margin-bottom: var(--dv-space-3); }
.blog_item_bottom .userpic { width: 32px; height: 32px; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
.blog_item_bottom .userpic img { width: 100%; height: 100%; object-fit: cover; }
.blog_item_bottom .date { font-size: .8rem; color: var(--dv-text-muted); }
.blog_item_bottom .text { line-height: 1.5; color: var(--dv-text); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }


/* ============================================================
 * GALLERY (product/gallery.php) — без lightgallery
 * ============================================================ */
.tour-gallery { background: var(--dv-bg-light); border-radius: var(--dv-radius-lg); overflow: hidden; }
.tour-gallery .slick-slide { padding: 0 var(--dv-space-1); box-sizing: border-box; }
.tour-gallery .slide { display: block; }
.tour-gallery .slide img {
    width: 100%; height: clamp(280px, 40vh, 480px);
    object-fit: cover;
    border-radius: var(--dv-radius);
    transition: var(--dv-transition);
}
.tour-gallery a.slide:hover img { opacity: .9; }


/* ============================================================
 * PRODUCT/INCLUDED (legacy "включено" блок)
 * ============================================================ */
.product-included { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--dv-space-4); margin: var(--dv-space-4) 0; }
.product-included__item { display: flex; align-items: flex-start; gap: var(--dv-space-3); }
.product-included__icon {
    flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
    background: var(--dv-accent); color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 1.2rem;
}
.product-included__title { font-weight: 700; margin: 0 0 4px; }
.product-included__sub { color: var(--dv-text-muted); font-size: .9rem; line-height: 1.4; margin: 0; }


/* ============================================================
 * STATE-CALLTO (landing «оставьте заявку и получите...»)
 * ============================================================ */
.state-callto {
    background-size: cover; background-position: center; background-color: #2E2E2E;
    color: #fff; padding: var(--dv-space-10) 0; position: relative; overflow: hidden;
}
.state-callto::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,.7), rgba(0,0,0,.4));
}
.state-callto .wrap { max-width: var(--dv-container-max); margin: 0 auto; padding: 0 var(--dv-container-pad); position: relative; z-index: 2; }
.state-callto .scroll_wrap { display: grid; grid-template-columns: 1fr 1fr; gap: var(--dv-space-8); align-items: center; }
@media (max-width: 1024px) { .state-callto .scroll_wrap { grid-template-columns: 1fr; } }
.state-callto .form-head .title { font-family: var(--dv-font-display); font-size: clamp(1.75rem, 1.25rem + 2vw, 2.5rem); font-weight: 400; line-height: 1.15; margin: 0; }
.state-callto .popup-body { background: var(--dv-bg); color: var(--dv-text); padding: var(--dv-space-5); border-radius: var(--dv-radius-lg); }


/* ============================================================
 * SCROLLBAR / utilities
 * ============================================================ */
html { scroll-behavior: smooth; }
.is-locked { overflow: hidden; }


/* ============================================================
 * PHASE 5.6 — POLISH OVERRIDES
 * ============================================================ */

/* Pre-init: показывать только первый слайд, остальные скрыть до Slick */
.slick-slider:not(.slick-initialized) > *:nth-child(n+2) { display: none !important; }
.slick-slider:not(.slick-initialized) > *:first-child  { width: 100%; }

/* Slick стрелки и дотс — наш стиль */
.slick-arrow {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(255,255,255,.95); border: 0; box-shadow: var(--dv-shadow-md);
    z-index: 5; cursor: pointer; font-size: 0; padding: 0;
    transition: var(--dv-transition);
}
.slick-arrow:hover { background: var(--dv-primary); }
.slick-arrow::before {
    content: ''; display: block; width: 10px; height: 10px;
    border-top: 2px solid var(--dv-text); border-right: 2px solid var(--dv-text);
    margin: 17px auto;
}
.slick-arrow:hover::before { border-color: #fff; }
.slick-prev { left: var(--dv-space-3); }
.slick-prev::before { transform: rotate(-135deg); margin-left: 19px; }
.slick-next { right: var(--dv-space-3); }
.slick-next::before { transform: rotate(45deg); margin-left: 13px; }

.slick-dots {
    position: absolute; bottom: -32px; left: 0; right: 0;
    list-style: none; display: flex; gap: var(--dv-space-2); justify-content: center; padding: 0; margin: 0;
}
.slick-dots li button {
    width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%;
    background: var(--dv-border); font-size: 0; cursor: pointer;
    transition: var(--dv-transition);
}
.slick-dots li.slick-active button { background: var(--dv-primary); width: 30px; border-radius: 5px; }
.tour-gallery { padding-bottom: var(--dv-space-6); }


/* archive-hero — единая шапка категории */
.archive-hero {
    position: relative;
    background-size: cover; background-position: center; background-color: #2E2E2E;
    color: #fff;
    min-height: clamp(280px, 40vh, 420px);
    display: flex; align-items: flex-end; overflow: hidden;
}
.archive-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,.3) 60%, transparent 100%);
    z-index: 1;
}
.archive-hero__inner {
    position: relative; z-index: 2;
    padding: var(--dv-space-10) var(--dv-container-pad) var(--dv-space-6);
    width: 100%;
}
.archive-hero__title {
    font-family: var(--dv-font-display);
    font-size: clamp(1.875rem, 1.5rem + 2vw, 3rem);
    font-weight: 400; line-height: 1.1; margin: var(--dv-space-3) 0 var(--dv-space-2);
    text-shadow: 0 2px 24px rgba(0,0,0,.4);
}
.archive-hero__sub { margin: 0 0 var(--dv-space-2); font-size: 1rem; opacity: .9; }
.archive-hero__desc { margin-top: var(--dv-space-3); font-size: .95rem; opacity: .85; max-width: 800px; }
.archive-hero .breadcrumbs,
.archive-hero .woocommerce-breadcrumb {
    color: rgba(255,255,255,.85); font-size: .85rem; padding: 0; background: transparent;
}
.archive-hero .breadcrumbs a,
.archive-hero .woocommerce-breadcrumb a { color: rgba(255,255,255,.85); text-decoration: none; }
.archive-hero .breadcrumbs a:hover { color: #fff; }

/* archive-body — каталог */
.archive-body { padding: var(--dv-space-8) 0; background: var(--dv-bg); }
.archive-body .tour-grid { /* уже есть базовый grid */ }


/* product-included — grid с иконками */
.product-included__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--dv-space-4);
    margin-top: var(--dv-space-3);
}
.product-included__item {
    display: flex; align-items: flex-start; gap: var(--dv-space-3);
    padding: var(--dv-space-4);
    background: var(--dv-bg-light); border-radius: var(--dv-radius-lg);
    transition: var(--dv-transition);
}
.product-included__item:hover { background: rgba(37,211,102,.08); }
.product-included__icon {
    flex-shrink: 0; width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--dv-accent); color: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(37,211,102,.3);
}
.product-included__body { flex: 1 1 auto; min-width: 0; }
.product-included__title {
    margin: 0 0 4px; font-size: 1rem; font-weight: 700; color: var(--dv-text);
    line-height: 1.3;
}
.product-included__sub {
    margin: 0; font-size: .88rem; color: var(--dv-text-muted); line-height: 1.4;
}


/* tour-aside — улучшения */
.tour-aside__amount,
.tour-aside__amount .woocommerce-Price-amount,
.tour-aside__amount .amount,
.tour-aside__amount bdi,
.tour-aside__amount span { color: var(--dv-primary) !important; font-family: var(--dv-font-display); }
.hero-slide__price-amount,
.hero-slide__price-amount .woocommerce-Price-amount,
.hero-slide__price-amount bdi { color: var(--dv-primary) !important; }
.tour_item .cost,
.tour_item .cost .woocommerce-Price-amount,
.tour_item .cost bdi { color: var(--dv-primary); }

.tour-aside__nav {
    list-style: none; padding: var(--dv-space-4) 0 0; margin: var(--dv-space-4) 0 0;
    border-top: 1px solid var(--dv-border);
}
.tour-aside__nav li { padding: 0; margin-bottom: 2px; }
.tour-aside__nav a {
    display: flex; align-items: center; gap: var(--dv-space-2);
    padding: var(--dv-space-2) var(--dv-space-3);
    border-radius: var(--dv-radius-sm);
    color: var(--dv-text-muted); text-decoration: none;
    font-size: .92rem; transition: var(--dv-transition);
}
.tour-aside__nav a::before {
    content: ''; display: inline-block; width: 6px; height: 6px;
    border-top: 2px solid currentColor; border-right: 2px solid currentColor;
    transform: rotate(45deg); opacity: .4; transition: var(--dv-transition);
}
.tour-aside__nav a:hover {
    color: var(--dv-primary); background: var(--dv-bg-light);
}
.tour-aside__nav a:hover::before,
.tour-aside__nav a.is-active::before { opacity: 1; }
.tour-aside__nav a.is-active { color: var(--dv-primary); font-weight: 600; }


/* TourVisor — больше воздуха внутри карточек-секций */
.band--cards .tv-min-price,
.band--cards .tv-search-form,
.band--search .tv-search-form {
    background: var(--dv-bg);
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-md);
    padding: var(--dv-space-5);
    overflow: hidden;
    margin-top: var(--dv-space-4);
}
.band--cards .container,
.band--search .container { max-width: 1280px; }


/* tour-page__country — не растягивается */
.tour-page__country { display: inline-block; max-width: max-content; }


/* archive-empty — пустой каталог */
.archive-empty {
    text-align: center; padding: var(--dv-space-10) var(--dv-container-pad);
}
.archive-empty h1 { font-family: var(--dv-font-display); font-weight: 400; margin: 0 0 var(--dv-space-3); }
.archive-empty p { color: var(--dv-text-muted); margin: 0 0 var(--dv-space-5); }
.archive-empty .whatsapp-cta { justify-content: center; }


/* slick autoplay не должен «прыгать» по высоте */
.hero-slider .slick-list,
.hero-slider .slick-track { height: 100%; }
.hero-slider .slick-slide { height: clamp(420px, 65vh, 640px); }
.hero-slider .slick-slide > div { height: 100%; }
.hero-slider .slick-slide .hero-slide { height: 100%; min-height: 0; }


/* ============================================================
 * PHASE 5.7 — FINAL DESIGN POLISH
 * ============================================================ */


/* ---------- Hero overlay (контраст текста) ---------- */
.hero-slide__overlay { background: linear-gradient(to right, rgba(0,0,0,.78) 0%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.2) 100%); }


/* ---------- Modern dropdown menu ---------- */
.site-header__nav .main-menu .dropdown_li { position: relative; }
.site-header__nav .main-menu .dropdown_li > a {
    display: inline-flex; align-items: center; gap: 6px;
}
.site-header__nav .main-menu .dropdown_li > a::after {
    content: ''; display: inline-block; width: 6px; height: 6px;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px); margin-left: 4px;
    opacity: .55; transition: var(--dv-transition);
}
.site-header__nav .main-menu .dropdown_li:hover > a::after,
.site-header__nav .main-menu .dropdown_li:focus-within > a::after {
    opacity: 1; transform: rotate(225deg) translateY(2px);
}
.site-header__nav .main-menu .dropdown_li::before {
    content: ''; position: absolute; top: 100%; left: 0; right: 0; height: 14px;
    pointer-events: none;
}
.site-header__nav .main-menu .dropdown_ul {
    position: absolute; top: calc(100% + 14px); left: -16px;
    min-width: 240px; padding: var(--dv-space-3);
    background: var(--dv-bg); color: var(--dv-text);
    border-radius: var(--dv-radius-lg);
    box-shadow: 0 12px 40px rgba(0,0,0,.18);
    list-style: none; margin: 0;
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity 200ms ease, transform 200ms ease, visibility 0s linear 200ms;
    z-index: 50;
}
.site-header__nav .main-menu .dropdown_li:hover > .dropdown_ul,
.site-header__nav .main-menu .dropdown_li:focus-within > .dropdown_ul {
    opacity: 1; visibility: visible; transform: translateY(0);
    transition-delay: 0s, 0s, 0s; pointer-events: auto;
}
.site-header__nav .main-menu .dropdown_ul::before {
    content: ''; position: absolute; top: -6px; left: 30px;
    width: 12px; height: 12px;
    background: var(--dv-bg); transform: rotate(45deg);
    box-shadow: -2px -2px 4px rgba(0,0,0,.04);
}
.site-header__nav .main-menu .dropdown_ul li { padding: 0; }
.site-header__nav .main-menu .dropdown_ul a {
    display: block; padding: var(--dv-space-2) var(--dv-space-3);
    color: var(--dv-text) !important; font-weight: 500; font-size: .92rem;
    text-decoration: none; border-radius: var(--dv-radius-sm);
    transition: var(--dv-transition);
}
.site-header__nav .main-menu .dropdown_ul a:hover,
.site-header__nav .main-menu .dropdown_ul a:focus { background: var(--dv-bg-light); color: var(--dv-primary) !important; }

.site-header__nav .main-menu > li > a {
    position: relative; padding-bottom: var(--dv-space-2);
}
.site-header__nav .main-menu > li > a::before {
    content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
    background: var(--dv-primary); transform: scaleX(0); transform-origin: center;
    transition: transform var(--dv-transition);
}
.site-header__nav .main-menu > li:hover > a::before,
.site-header__nav .main-menu > li.active > a::before,
.site-header__nav .main-menu > li.current-menu-item > a::before { transform: scaleX(1); }


/* ---------- Countries grid (новая «Информация о странах») ---------- */
.band--countries { padding: var(--dv-space-10) 0; }
.countries-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--dv-space-4);
}
@media (max-width: 1200px) { .countries-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 768px)  { .countries-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px)  { .countries-grid { grid-template-columns: repeat(2, 1fr); gap: var(--dv-space-3); } }

.country-card {
    position: relative; display: flex; flex-direction: column;
    aspect-ratio: 1 / 1.15;
    padding: var(--dv-space-4);
    background: var(--dv-bg-light);
    border: 1px solid var(--dv-border);
    border-radius: var(--dv-radius-lg);
    color: var(--dv-text); text-decoration: none;
    text-align: center;
    transition: transform var(--dv-transition), box-shadow var(--dv-transition), border-color var(--dv-transition);
    overflow: hidden;
}
.country-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--dv-shadow-lg);
    border-color: var(--dv-primary);
}
.country-card__flag {
    font-size: 3rem; line-height: 1; margin: var(--dv-space-3) auto var(--dv-space-3);
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.1));
}
.country-card__name {
    margin: 0 0 var(--dv-space-1);
    font-family: var(--dv-font-display); font-weight: 400;
    font-size: 1.25rem; line-height: 1.15;
}
.country-card__desc {
    margin: 0 0 auto;
    font-size: .82rem; color: var(--dv-text-muted); line-height: 1.4;
}
.country-card__cta {
    display: inline-block; margin-top: var(--dv-space-3);
    color: var(--dv-primary); font-weight: 700; font-size: .9rem;
    transition: var(--dv-transition);
}
.country-card:hover .country-card__cta { color: var(--dv-primary-dark); }

.country-card--photo {
    background-size: cover; background-position: center; background-color: #2E2E2E;
    color: #fff; padding: 0; aspect-ratio: 1 / 1.3;
}
.country-card--photo .country-card__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
}
.country-card--photo .country-card__body {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: var(--dv-space-4); z-index: 2;
    text-align: left;
}
.country-card--photo .country-card__icon {
    display: inline-block; width: 40px; height: 40px;
    background: #fff; border-radius: 50%; padding: 4px;
    margin-bottom: var(--dv-space-3); overflow: hidden;
}
.country-card--photo .country-card__icon img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.country-card--photo .country-card__name { color: #fff; text-align: left; }
.country-card--photo .country-card__desc { color: rgba(255,255,255,.85); text-align: left; }


/* ---------- Included grid — fixed 2 columns (no auto-fill) ---------- */
.product-included { display: block !important; }  /* перебиваем старый display:grid c .product-included */
.product-included__grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: var(--dv-space-3);
    margin-top: var(--dv-space-3);
}
@media (max-width: 640px) { .product-included__grid { grid-template-columns: 1fr !important; } }


/* ---------- band--cta — orange band кнопки ---------- */
.band--cta { padding: var(--dv-space-10) 0; }
.band--cta .container { max-width: 880px; text-align: center; }
.band--cta .band__title { color: #fff; margin: 0 0 var(--dv-space-3); }
.band--cta .band__sub  { color: rgba(255,255,255,.95); margin: 0 auto var(--dv-space-6); }
.band--cta .whatsapp-cta.is-button { display: inline-flex; gap: var(--dv-space-3); justify-content: center; flex-wrap: wrap; }
.band--cta .whatsapp-cta.is-button .button,
.band--cta .whatsapp-cta.is-button .book-now {
    background: var(--dv-accent) !important; color: #fff !important;
    padding: var(--dv-space-4) var(--dv-space-6); font-size: 1rem;
    box-shadow: 0 6px 20px rgba(0,0,0,.2);
}
.band--cta .whatsapp-cta.is-button .book-now:hover { background: var(--dv-accent-dark) !important; }
.band--cta .whatsapp-cta.is-button .tel-link {
    background: #fff !important; color: var(--dv-primary) !important;
    border: 0 !important; padding: var(--dv-space-4) var(--dv-space-5) !important;
    border-radius: var(--dv-radius); font-weight: 700;
    box-shadow: 0 6px 20px rgba(0,0,0,.2);
}
.band--cta .whatsapp-cta.is-button .tel-link:hover {
    background: var(--dv-secondary) !important; color: #fff !important;
}


/* ---------- band--cta-form / band--cta-bottom (light bg CTA) ---------- */
.band--cta-form { background: var(--dv-bg-light); padding: var(--dv-space-10) 0; }
.band--cta-form .container { max-width: 880px; }
.band--cta-form .band__head { text-align: center; }
.band--cta-form .whatsapp-cta.is-button {
    display: flex; gap: var(--dv-space-3); justify-content: center; flex-wrap: wrap;
    margin-top: var(--dv-space-4);
}
.band--cta-form .whatsapp-cta.is-button .button,
.band--cta-form .whatsapp-cta.is-button .book-now {
    background: var(--dv-accent) !important; color: #fff !important;
    padding: var(--dv-space-4) var(--dv-space-6) !important;
    font-size: 1rem; font-weight: 700;
    box-shadow: 0 4px 12px rgba(37,211,102,.3);
}
.band--cta-form .whatsapp-cta.is-button .book-now:hover {
    background: var(--dv-accent-dark) !important;
    transform: translateY(-2px);
}
.band--cta-form .whatsapp-cta.is-button .tel-link {
    background: var(--dv-bg) !important; color: var(--dv-primary) !important;
    border: 2px solid var(--dv-primary) !important;
    padding: calc(var(--dv-space-4) - 2px) var(--dv-space-5) !important;
    border-radius: var(--dv-radius); font-weight: 700;
}
.band--cta-form .whatsapp-cta.is-button .tel-link:hover {
    background: var(--dv-primary) !important; color: #fff !important;
}


/* ---------- Footer link consistency ---------- */
.site-footer .footer-menu a,
.site-footer .footer-menu a:visited,
.site-footer .footer-menu a:link {
    color: #CDD1D8 !important;
    text-decoration: none !important;
    background: transparent !important;
}
.site-footer .footer-menu a:hover,
.site-footer .footer-menu a:focus { color: var(--dv-primary) !important; }
.site-footer__logo img { width: 180px !important; opacity: .92; transition: opacity var(--dv-transition); }
.site-footer__logo:hover img { opacity: 1; }


/* ---------- Tour-aside polish ---------- */
.tour-aside {
    background: var(--dv-bg);
    border: 1px solid var(--dv-border);
    border-radius: var(--dv-radius-lg);
    padding: var(--dv-space-5);
    box-shadow: 0 8px 28px rgba(0,0,0,.08);
}
.tour-aside__price {
    padding-bottom: var(--dv-space-4);
    margin-bottom: var(--dv-space-4);
    border-bottom: 1px solid var(--dv-border);
    text-align: center;
}
.tour-aside__from { display: block; color: var(--dv-text-muted); font-size: .85rem; margin-bottom: 4px; }
.tour-aside__amount { font-size: clamp(1.75rem, 1.25rem + 1.5vw, 2.25rem); display: block; }
.tour-aside .whatsapp-cta.is-button { flex-direction: column; gap: var(--dv-space-2); width: 100%; align-items: stretch; }
.tour-aside .whatsapp-cta.is-button .button,
.tour-aside .whatsapp-cta.is-button .book-now {
    width: 100%; padding: var(--dv-space-4); justify-content: center;
    box-shadow: 0 4px 14px rgba(37,211,102,.25);
}
.tour-aside .whatsapp-cta.is-button .tel-link {
    display: block !important; width: 100%; text-align: center;
    background: var(--dv-bg) !important; color: var(--dv-text) !important;
    border: 1px solid var(--dv-border) !important;
    padding: var(--dv-space-3) !important; border-radius: var(--dv-radius);
    font-weight: 700; text-decoration: none;
}
.tour-aside .whatsapp-cta.is-button .tel-link:hover {
    border-color: var(--dv-primary) !important; color: var(--dv-primary) !important;
}

.tour-aside__nav {
    list-style: none; padding: var(--dv-space-4) 0 0; margin: var(--dv-space-4) 0 0;
    border-top: 1px solid var(--dv-border);
}
.tour-aside__nav li { margin-bottom: 2px; }
.tour-aside__nav a {
    display: flex; align-items: center; gap: var(--dv-space-2);
    padding: var(--dv-space-3); border-radius: var(--dv-radius-sm);
    color: var(--dv-text-muted); text-decoration: none;
    font-size: .92rem; transition: var(--dv-transition);
}
.tour-aside__nav a::before {
    content: ''; display: inline-block; width: 6px; height: 6px;
    border-top: 2px solid currentColor; border-right: 2px solid currentColor;
    transform: rotate(45deg); opacity: .4; transition: var(--dv-transition);
}
.tour-aside__nav a:hover {
    color: var(--dv-primary); background: var(--dv-bg-light);
}
.tour-aside__nav a:hover::before,
.tour-aside__nav a.is-active::before { opacity: 1; }
.tour-aside__nav a.is-active { color: var(--dv-primary); font-weight: 600; }


/* ---------- Tour cards typography polish ---------- */
.tour_item h3._title, .tour_item ._title {
    font-size: 1.2rem; font-weight: 700; line-height: 1.25;
    letter-spacing: -0.005em;
}
.tour_item .country, .tour_item p.country { padding: 4px 10px; font-size: .72rem; }
.tour_item .cost { font-family: var(--dv-font-display); font-size: 1.25rem; font-weight: 700; }
.tour_item .star { width: 13px; height: 13px; }


/* ---------- Section rhythm ---------- */
.band { padding: var(--dv-space-10) 0; }
.band__title { letter-spacing: -0.02em; }
.band__sub { font-size: 1.05rem; max-width: 640px; }


/* ---------- Hero h1 контраст ---------- */
.hero-slide__title { text-shadow: 0 2px 28px rgba(0,0,0,.5); }
.hero-slide__sub { text-shadow: 0 1px 12px rgba(0,0,0,.4); }







/* ---------- base resets ---------- */
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; height: auto; display: block; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--dv-primary); outline-offset: 2px; }

.skip-link {
    position: absolute; left: -9999px; top: -9999px;
    padding: var(--dv-space-3) var(--dv-space-4);
    background: var(--dv-bg); color: var(--dv-text);
    border-radius: var(--dv-radius); box-shadow: var(--dv-shadow-md);
    z-index: 10000; text-decoration: none;
}
.skip-link:focus { left: 1rem; top: 1rem; }

.screen-reader-text {
    position: absolute !important;
    clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden;
}

.is-hidden { display: none !important; }


/* ---------- container ---------- */
.container, .wrap {
    max-width: var(--dv-container-max);
    margin: 0 auto;
    padding-left: var(--dv-container-pad);
    padding-right: var(--dv-container-pad);
    box-sizing: border-box;
}


/* ============================================================
 * SITE HEADER
 * ============================================================ */
.site-header {
    background: var(--dv-secondary);
    color: #fff;
    position: sticky; top: 0; z-index: 100;
    transition: background var(--dv-transition), box-shadow var(--dv-transition);
}
body.is-sticky .site-header { background: rgba(46,46,46,.97); box-shadow: var(--dv-shadow-md); backdrop-filter: blur(8px); }

.site-header__bar {
    display: flex; align-items: center; gap: var(--dv-space-5);
    padding: var(--dv-space-4) var(--dv-container-pad);
    min-height: 72px;
}

.site-header__logo img { width: 140px; height: auto; }

.site-header__nav { flex: 1 1 auto; }
.site-header__nav .main-menu {
    display: flex; gap: var(--dv-space-5); list-style: none; padding: 0; margin: 0;
    justify-content: center;
}
.site-header__nav .main-menu a {
    color: #fff; text-decoration: none; font-weight: 500; font-size: .95rem;
    padding: var(--dv-space-2) 0; transition: color var(--dv-transition);
    position: relative;
}
.site-header__nav .main-menu a:hover,
.site-header__nav .main-menu .active > a { color: var(--dv-primary); }
.site-header__nav .main-menu .dropdown_li > a::after {
    content: '▾'; margin-left: .25rem; font-size: .8em; opacity: .6;
}
.site-header__nav .main-menu .dropdown_li { position: relative; }
.site-header__nav .main-menu .dropdown_ul {
    position: absolute; top: 100%; left: 0; min-width: 220px;
    background: #fff; color: var(--dv-text);
    list-style: none; padding: var(--dv-space-2); margin: 0;
    border-radius: var(--dv-radius); box-shadow: var(--dv-shadow-lg);
    opacity: 0; visibility: hidden; transform: translateY(-4px);
    transition: opacity var(--dv-transition), transform var(--dv-transition), visibility 0s linear var(--dv-transition);
}
.site-header__nav .main-menu .dropdown_li:hover > .dropdown_ul {
    opacity: 1; visibility: visible; transform: translateY(0);
    transition-delay: 0s;
}
.site-header__nav .main-menu .dropdown_ul a { color: var(--dv-text); padding: var(--dv-space-2) var(--dv-space-3); display: block; border-radius: var(--dv-radius-sm); }
.site-header__nav .main-menu .dropdown_ul a:hover { background: var(--dv-bg-light); color: var(--dv-primary); }

.site-header__contact { display: flex; gap: var(--dv-space-3); align-items: center; }

.site-header__tel {
    display: flex; flex-direction: column; align-items: flex-end;
    color: #fff; text-decoration: none; line-height: 1.2;
}
.site-header__tel .hours { font-size: .75rem; opacity: .65; }
.site-header__tel .tel-num { font-weight: 700; font-size: 1rem; }
.site-header__tel:hover .tel-num { color: var(--dv-primary); }

.site-header__wa {
    display: inline-flex; align-items: center; gap: var(--dv-space-2);
    background: var(--dv-accent); color: #fff;
    padding: var(--dv-space-3) var(--dv-space-4);
    border-radius: var(--dv-radius); font-weight: 600; text-decoration: none;
    transition: background var(--dv-transition);
}
.site-header__wa:hover { background: var(--dv-accent-dark); }
.site-header__wa img { filter: brightness(0) invert(1); }

.site-header__burger {
    display: none; background: transparent; border: 0; padding: var(--dv-space-2);
    width: 44px; height: 44px; flex-direction: column; gap: 5px; justify-content: center; align-items: center;
}
.site-header__burger span { display: block; width: 22px; height: 2px; background: #fff; border-radius: 2px; }

@media (max-width: 1024px) {
    .site-header__nav { display: none; }
    .site-header__tel .hours { display: none; }
    .site-header__wa span { display: none; }
    .site-header__wa { padding: var(--dv-space-2); width: 44px; height: 44px; justify-content: center; }
    .site-header__burger { display: inline-flex; }
}
@media (max-width: 480px) {
    .site-header__bar { gap: var(--dv-space-2); }
    .site-header__tel .tel-num { font-size: .85rem; }
}


/* ---------- mobile drawer ---------- */
.mobile-drawer {
    position: fixed; inset: 0;
    background: var(--dv-secondary); color: #fff;
    z-index: 1000;
    transform: translateX(100%);
    transition: transform 250ms ease;
    overflow-y: auto;
    visibility: hidden;
}
.mobile-drawer.is-open {
    transform: translateX(0);
    visibility: visible;
}
.mobile-drawer__inner { padding: var(--dv-space-6) var(--dv-space-5); }
.mobile-drawer__close {
    position: absolute; top: var(--dv-space-4); right: var(--dv-space-4);
    background: transparent; border: 0; color: #fff; font-size: 2rem; line-height: 1;
    width: 40px; height: 40px;
}
.mobile-drawer__logo img { width: 140px; height: auto; margin-bottom: var(--dv-space-6); }
.mobile-drawer .mobile-menu { list-style: none; padding: 0; margin: 0 0 var(--dv-space-6); }
.mobile-drawer .mobile-menu li { padding: var(--dv-space-3) 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.mobile-drawer .mobile-menu a { color: #fff; text-decoration: none; font-size: 1.125rem; font-weight: 500; }
.mobile-drawer .mobile-menu a:hover { color: var(--dv-primary); }

.mobile-drawer__contact { display: flex; flex-direction: column; gap: var(--dv-space-3); margin-top: var(--dv-space-6); }
.mobile-drawer__tel { color: #fff; text-decoration: none; padding: var(--dv-space-4); background: rgba(255,255,255,.05); border-radius: var(--dv-radius); }
.mobile-drawer__tel .hours { display: block; font-size: .8rem; opacity: .7; margin-bottom: 4px; }
.mobile-drawer__tel strong { font-size: 1.2rem; }
.mobile-drawer__wa {
    display: flex; align-items: center; gap: var(--dv-space-3);
    background: var(--dv-accent); color: #fff; padding: var(--dv-space-4);
    border-radius: var(--dv-radius); text-decoration: none; font-weight: 600;
}
.mobile-drawer__wa img { filter: brightness(0) invert(1); }


/* ============================================================
 * HERO SLIDER
 * ============================================================ */
.hero-slider { position: relative; overflow: hidden; }
.hero-slider__track { position: relative; }

.hero-slide {
    position: relative;
    min-height: clamp(420px, 65vh, 640px);
    display: flex; align-items: center;
    background-size: cover; background-position: center;
    color: #fff;
    overflow: hidden;
}
.hero-slide__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,.65) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.1) 100%);
    pointer-events: none;
}
.hero-slide__content {
    position: relative; z-index: 2;
    padding: var(--dv-space-10) var(--dv-container-pad);
    max-width: 720px;
}
.hero-slide__pill {
    display: inline-block; padding: var(--dv-space-1) var(--dv-space-3);
    background: var(--dv-primary); color: #fff;
    border-radius: 100px; font-size: .85rem; font-weight: 600; letter-spacing: .03em; text-transform: uppercase;
    margin-bottom: var(--dv-space-4);
}
.hero-slide__title {
    font-family: var(--dv-font-display);
    font-size: clamp(2rem, 1.5rem + 3vw, 3.75rem);
    font-weight: 400; line-height: 1.05;
    margin: 0 0 var(--dv-space-4);
    color: #fff;
    text-shadow: 0 2px 24px rgba(0,0,0,.4);
}
.hero-slide__price {
    display: flex; align-items: baseline; gap: var(--dv-space-2);
    margin: 0 0 var(--dv-space-4);
}
.hero-slide__price-from { font-size: 1rem; opacity: .8; }
.hero-slide__price-amount { font-size: clamp(1.5rem, 1rem + 2vw, 2.25rem); font-weight: 700; color: var(--dv-primary); }
.hero-slide__price-amount .woocommerce-Price-amount { color: inherit; font-weight: inherit; }
.hero-slide__sub {
    margin: 0 0 var(--dv-space-6);
    font-size: 1.05rem; line-height: 1.5; opacity: .92;
    max-width: 540px;
}
.hero-slide__cta { display: flex; gap: var(--dv-space-4); align-items: center; flex-wrap: wrap; }
.hero-slide__btn { padding: var(--dv-space-4) var(--dv-space-6); font-size: 1.05rem; }
.hero-slide__link { color: #fff; text-decoration: none; font-weight: 500; opacity: .9; transition: opacity var(--dv-transition); }
.hero-slide__link:hover { opacity: 1; color: var(--dv-primary); }

.hero-slider__arrow {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 56px; height: 56px; border: 0; border-radius: 50%;
    background: rgba(255,255,255,.15); backdrop-filter: blur(8px);
    z-index: 5;
    display: flex; align-items: center; justify-content: center;
    transition: background var(--dv-transition);
}
.hero-slider__arrow:hover { background: rgba(255,255,255,.3); }
.hero-slider__arrow::before {
    content: ''; display: block; width: 12px; height: 12px;
    border-top: 2px solid #fff; border-right: 2px solid #fff;
}
.hero-slider__arrow--prev { left: var(--dv-space-4); }
.hero-slider__arrow--prev::before { transform: rotate(-135deg); margin-left: 4px; }
.hero-slider__arrow--next { right: var(--dv-space-4); }
.hero-slider__arrow--next::before { transform: rotate(45deg); margin-right: 4px; }
@media (max-width: 640px) {
    .hero-slider__arrow { width: 40px; height: 40px; }
    .hero-slide__cta { flex-direction: column; align-items: stretch; }
    .hero-slide__btn { width: 100%; text-align: center; justify-content: center; }
}


/* ============================================================
 * BAND-секции (универсальные)
 * ============================================================ */
.band { padding: var(--dv-space-10) 0; }
.band--alt { background: var(--dv-bg-light); }
.band__head {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: var(--dv-space-4); margin-bottom: var(--dv-space-6); flex-wrap: wrap;
}
.band__title {
    font-family: var(--dv-font-display); font-size: clamp(1.75rem, 1.25rem + 2vw, 2.5rem);
    font-weight: 400; margin: 0 0 var(--dv-space-2); line-height: 1.15;
    color: var(--dv-text);
}
.band__sub { margin: 0; color: var(--dv-text-muted); font-size: 1rem; max-width: 600px; }
.band__more { color: var(--dv-primary); text-decoration: none; font-weight: 600; white-space: nowrap; }
.band__more:hover { color: var(--dv-primary-dark); }
.band__nav { display: flex; gap: var(--dv-space-2); }
.band__arrow {
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--dv-bg); border: 1px solid var(--dv-border);
    display: flex; align-items: center; justify-content: center;
    transition: var(--dv-transition);
}
.band__arrow:hover { background: var(--dv-primary); border-color: var(--dv-primary); }
.band__arrow::before {
    content: ''; display: block; width: 10px; height: 10px;
    border-top: 2px solid var(--dv-text); border-right: 2px solid var(--dv-text);
}
.band__arrow:hover::before { border-color: #fff; }
.band__arrow--prev::before { transform: rotate(-135deg); margin-left: 3px; }
.band__arrow--next::before { transform: rotate(45deg); margin-right: 3px; }
.band__empty { text-align: center; color: var(--dv-text-muted); padding: var(--dv-space-8); background: var(--dv-bg-light); border-radius: var(--dv-radius-lg); }


/* ---------- band--cta ---------- */
.band--cta {
    background: linear-gradient(135deg, var(--dv-primary) 0%, var(--dv-primary-dark) 100%);
    color: #fff; text-align: center;
}
.band--cta .band__title { color: #fff; font-family: var(--dv-font-display); }
.band--cta .band__sub { color: rgba(255,255,255,.9); margin: 0 auto var(--dv-space-5); }
.band--cta .whatsapp-cta { display: inline-flex; gap: var(--dv-space-3); justify-content: center; }
.band--cta .button, .band--cta .book-now { background: var(--dv-accent); }
.band--cta .button:hover { background: var(--dv-accent-dark); }
.band--cta .tel-link { background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.3); }
.band--cta .tel-link:hover { background: rgba(255,255,255,.25); border-color: #fff; color: #fff; }


/* ---------- band--cta-form (large form section) ---------- */
.band--cta-form { background: var(--dv-bg-light); }
.band--cta-form .container { max-width: 880px; }


/* ============================================================
 * SEARCH / TourVisor
 * ============================================================ */
.band--search .tv-search-form,
.band--cards .tv-min-price {
    background: var(--dv-bg); border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-md);
    padding: var(--dv-space-5);
    margin-top: var(--dv-space-3);
    overflow: hidden;
}


/* ============================================================
 * STORIES (карусель «Информация о странах»)
 * ============================================================ */
.band--stories { background: var(--dv-bg); }
.stories-slider { display: flex; gap: var(--dv-space-4); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--dv-space-2); -webkit-overflow-scrolling: touch; }
.stories-slider::-webkit-scrollbar { height: 6px; }
.stories-slider::-webkit-scrollbar-thumb { background: var(--dv-border); border-radius: 4px; }

.story-card {
    position: relative; flex: 0 0 240px;
    height: 320px; border-radius: var(--dv-radius-lg);
    overflow: hidden; text-decoration: none; color: #fff;
    background-size: cover; background-position: center; background-color: #2E2E2E;
    transition: transform var(--dv-transition), box-shadow var(--dv-transition);
    scroll-snap-align: start;
}
.story-card:hover { transform: translateY(-4px); box-shadow: var(--dv-shadow-lg); }
.story-card__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
}
.story-card__body {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: var(--dv-space-4); z-index: 2;
}
.story-card__flag {
    display: inline-block; width: 48px; height: 48px; border-radius: 50%;
    background: #fff; padding: 4px; margin-bottom: var(--dv-space-3);
    overflow: hidden;
}
.story-card__flag img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.story-card__title { margin: 0 0 var(--dv-space-2); font-size: 1.15rem; font-weight: 700; }
.story-card__sub { margin: 0; font-size: .85rem; opacity: .85; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 640px) { .story-card { flex: 0 0 200px; height: 280px; } }


/* ============================================================
 * TOUR CARDS (loop / catalog / landing grid)
 * ============================================================ */
.tour-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--dv-space-5);
}
@media (max-width: 480px) {
    .tour-grid { grid-template-columns: 1fr; gap: var(--dv-space-4); }
}

.tour_item, a.tour_item {
    display: block; position: relative;
    border-radius: var(--dv-radius-lg);
    background-size: cover; background-position: center; background-color: #2E2E2E;
    color: #fff; text-decoration: none;
    overflow: hidden;
    min-height: 360px;
    transition: transform var(--dv-transition), box-shadow var(--dv-transition);
}
.tour_item:hover { transform: translateY(-4px); box-shadow: var(--dv-shadow-lg); }
.tour_item::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.9) 0%, rgba(0,0,0,.2) 50%, rgba(0,0,0,.4) 100%);
}
.tour_item .tour_item_top,
.tour_item .tour_item_bottom { position: relative; z-index: 2; }
.tour_item .tour_item_top {
    padding: var(--dv-space-4);
    display: flex; justify-content: space-between; align-items: flex-start; gap: var(--dv-space-3);
}
.tour_item .country, .tour_item p.country {
    display: inline-block; padding: 4px 10px;
    background: var(--dv-primary); color: #fff;
    border-radius: 100px; font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    margin: 0;
}
.tour_item .country span { color: inherit; }
.tour_item .add_bookmark {
    width: 36px; height: 36px; border-radius: 50%;
    background: rgba(255,255,255,.15); backdrop-filter: blur(8px);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
}
.tour_item .add_bookmark img { width: 18px; height: 18px; filter: brightness(0) invert(1); }
.tour_item .tour_item_bottom {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: var(--dv-space-4);
}
.tour_item h3._title, .tour_item ._title {
    margin: 0 0 var(--dv-space-3); font-size: 1.2rem; line-height: 1.3; font-weight: 700;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
    color: #fff;
}
.tour_item ._info {
    display: flex; justify-content: space-between; align-items: center; gap: var(--dv-space-3); flex-wrap: wrap;
    font-size: .85rem;
}
.tour_item ._info_left { display: flex; align-items: baseline; gap: var(--dv-space-2); }
.tour_item .days { opacity: .8; font-weight: 500; }
.tour_item .cost { font-weight: 700; font-size: 1.1rem; color: var(--dv-primary); }
.tour_item .cost .woocommerce-Price-amount { color: inherit; }
.tour_item ._info_right { display: flex; align-items: center; gap: var(--dv-space-2); opacity: .9; }
.tour_item ._info_right span { font-size: .8rem; opacity: .8; }
.tour_item .rating-stars { display: inline-flex; gap: 2px; }
.tour_item .star {
    width: 12px; height: 12px;
    background: rgba(255,255,255,.25);
    clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
.tour_item .star.filled { background: #FFC107; }
.tour_item .shadow { display: none; }


/* ============================================================
 * LANDING (vietnam / istayt / country)
 * ============================================================ */
.landing-hero {
    position: relative;
    min-height: clamp(420px, 60vh, 600px);
    background-size: cover; background-position: center; background-color: #2E2E2E;
    display: flex; align-items: center;
    color: #fff; overflow: hidden;
}
.landing-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,.65) 0%, rgba(0,0,0,.4) 60%, rgba(0,0,0,.2) 100%);
}
.landing-hero__content {
    position: relative; z-index: 2;
    max-width: 720px;
    padding-top: var(--dv-space-10); padding-bottom: var(--dv-space-10);
}
.landing-hero__pill {
    display: inline-block; padding: var(--dv-space-1) var(--dv-space-3);
    background: var(--dv-primary); color: #fff;
    border-radius: 100px; font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    margin: 0 0 var(--dv-space-4);
}
.landing-hero__title {
    font-family: var(--dv-font-display);
    font-size: clamp(2.25rem, 1.5rem + 3vw, 3.5rem);
    font-weight: 400; line-height: 1.1;
    margin: 0 0 var(--dv-space-4);
    text-shadow: 0 2px 24px rgba(0,0,0,.4);
}
.landing-hero__sub {
    margin: 0 0 var(--dv-space-6); font-size: 1.1rem; line-height: 1.5; opacity: .95;
}

.operators-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--dv-space-4);
}
.operator-card {
    position: relative;
    height: 200px; border-radius: var(--dv-radius-lg);
    background-size: cover; background-position: center; background-color: #444;
    overflow: hidden;
    display: flex; flex-direction: column; justify-content: flex-end;
    color: #fff;
}
.operator-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,.2) 60%); }
.operator-card__body { position: relative; z-index: 2; padding: var(--dv-space-4); }
.operator-card__title { margin: 0 0 4px; font-size: 1.1rem; font-weight: 700; }
.operator-card__sub { margin: 0; font-size: .85rem; opacity: .85; }


/* ---------- band--info / prose (long-form) ---------- */
.band--info .container { max-width: 800px; }
.prose { line-height: 1.7; color: var(--dv-text); }
.prose h2 { font-family: var(--dv-font-display); margin-top: var(--dv-space-6); font-size: 1.75rem; line-height: 1.2; }
.prose h3 { margin-top: var(--dv-space-5); font-size: 1.25rem; }
.prose p { margin: 0 0 var(--dv-space-4); }
.prose ul, .prose ol { margin: 0 0 var(--dv-space-4) var(--dv-space-5); }
.prose img { border-radius: var(--dv-radius); margin: var(--dv-space-4) 0; }


/* ============================================================
 * SITE FOOTER
 * ============================================================ */
.site-footer {
    background: var(--dv-secondary); color: #CDD1D8;
    padding: var(--dv-space-10) 0 0;
    margin-top: var(--dv-space-10);
}
.site-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.4fr;
    gap: var(--dv-space-8);
    padding-bottom: var(--dv-space-8);
}
.site-footer__col { min-width: 0; }
.site-footer__logo { display: inline-block; margin-bottom: var(--dv-space-4); }
.site-footer__logo img { width: 160px; height: auto; }
.site-footer__tagline { margin: 0; line-height: 1.6; opacity: .8; font-size: .9rem; }
.site-footer__title {
    margin: 0 0 var(--dv-space-4);
    font-family: var(--dv-font-display); font-weight: 400; font-size: 1.1rem;
    color: #fff; letter-spacing: .02em;
}
.site-footer .footer-menu { list-style: none; padding: 0; margin: 0; }
.site-footer .footer-menu li { padding: var(--dv-space-1) 0; }
.site-footer .footer-menu a {
    color: inherit; text-decoration: none; font-size: .92rem;
    transition: color var(--dv-transition);
}
.site-footer .footer-menu a:hover { color: var(--dv-primary); }

.site-footer__contact-row {
    display: flex; flex-direction: column; gap: 2px;
    color: inherit; text-decoration: none;
    padding: var(--dv-space-2) 0;
    transition: color var(--dv-transition);
}
.site-footer__contact-row strong { color: #fff; font-weight: 700; font-size: 1rem; }
.site-footer__contact-row span { font-size: .8rem; opacity: .65; }
.site-footer__contact-row:hover strong { color: var(--dv-primary); }

.site-footer__wa {
    flex-direction: row !important; align-items: center; gap: var(--dv-space-3);
    background: rgba(37,211,102,.1); border-radius: var(--dv-radius);
    padding: var(--dv-space-3) !important; margin-top: var(--dv-space-2);
}
.site-footer__wa img { width: 22px; height: 22px; flex-shrink: 0; }
.site-footer__wa strong { color: var(--dv-accent); }
.site-footer__wa span { display: block; }
.site-footer__wa:hover strong { color: #fff; }
.site-footer__wa:hover { background: rgba(37,211,102,.2); }

.site-footer__address {
    margin: var(--dv-space-4) 0 0;
    font-size: .85rem; line-height: 1.6; opacity: .7;
    white-space: normal;
}

.site-footer__socials {
    display: flex; gap: var(--dv-space-2); margin-top: var(--dv-space-4);
}
.site-footer__socials a {
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: 50%;
    background: rgba(255,255,255,.08); color: #CDD1D8;
    transition: var(--dv-transition);
}
.site-footer__socials a:hover { background: var(--dv-primary); color: #fff; }

.site-footer__bottom { background: rgba(0,0,0,.25); padding: var(--dv-space-4) 0; }
.site-footer__bottom-inner {
    display: flex; justify-content: space-between; align-items: center; gap: var(--dv-space-4);
    flex-wrap: wrap;
    font-size: .85rem; opacity: .75;
}
.site-footer__bottom-links { display: flex; gap: var(--dv-space-4); flex-wrap: wrap; }
.site-footer__bottom-links a { color: inherit; text-decoration: none; }
.site-footer__bottom-links a:hover { color: var(--dv-primary); opacity: 1; }
.site-footer__copy a { color: var(--dv-primary); text-decoration: none; }

@media (max-width: 1024px) {
    .site-footer__grid { grid-template-columns: 1fr 1fr; }
    .site-footer__col--brand { grid-column: span 2; }
    .site-footer__col--contact { grid-column: span 2; }
}
@media (max-width: 640px) {
    .site-footer__grid { grid-template-columns: 1fr; }
    .site-footer__col--brand,
    .site-footer__col--contact { grid-column: span 1; }
    .site-footer__bottom-inner { justify-content: center; text-align: center; flex-direction: column; }
}


/* ============================================================
 * BUTTONS / CTA
 * ============================================================ */
.button, .book-now, .wa-form__submit, .hero-slide__btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: var(--dv-space-2);
    padding: var(--dv-space-3) var(--dv-space-5);
    border-radius: var(--dv-radius); font-weight: 600;
    font-family: var(--dv-font-body); border: 0; cursor: pointer; text-decoration: none; line-height: 1.2;
    background: var(--dv-primary); color: #fff;
    transition: background var(--dv-transition), transform var(--dv-transition);
}
.button:hover, .book-now:hover, .wa-form__submit:hover, .hero-slide__btn:hover { background: var(--dv-primary-dark); transform: translateY(-1px); }

.button[href*="wa.me"], .book-now[href*="wa.me"], .wa-form__submit { background: var(--dv-accent); }
.button[href*="wa.me"]:hover, .book-now[href*="wa.me"]:hover, .wa-form__submit:hover { background: var(--dv-accent-dark); }


/* ============================================================
 * WhatsApp CTA — button mode
 * ============================================================ */
.whatsapp-cta.is-button { display: inline-flex; flex-wrap: wrap; gap: var(--dv-space-3); align-items: center; }
.whatsapp-cta.is-button .wa-icon { display: block; width: 22px; height: 22px; filter: brightness(0) invert(1); }
.whatsapp-cta.is-button .tel-link {
    color: var(--dv-text); text-decoration: none; font-weight: 600;
    padding: var(--dv-space-3) var(--dv-space-4); border: 1px solid var(--dv-border);
    border-radius: var(--dv-radius); transition: var(--dv-transition);
}
.whatsapp-cta.is-button .tel-link:hover { border-color: var(--dv-primary); color: var(--dv-primary); }


/* ============================================================
 * WhatsApp CTA — form mode
 * ============================================================ */
.whatsapp-cta.is-form {
    background: var(--dv-bg); border: 1px solid var(--dv-border);
    border-radius: var(--dv-radius-lg);
    padding: var(--dv-space-6);
    box-shadow: var(--dv-shadow-md);
}
.band--cta-form .whatsapp-cta.is-form { background: var(--dv-bg); }

.whatsapp-cta.is-form .wa-form-title {
    margin: 0 0 var(--dv-space-2);
    font-family: var(--dv-font-display);
    font-size: clamp(1.25rem, 1rem + 1vw, 1.625rem);
    font-weight: 400;
    color: var(--dv-text);
}
.whatsapp-cta.is-form .wa-form-sub {
    margin: 0 0 var(--dv-space-5);
    color: var(--dv-text-muted); font-size: .92rem;
}
.whatsapp-cta.is-form .wa-form__row {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: var(--dv-space-3); margin-bottom: var(--dv-space-3);
}
.whatsapp-cta.is-form .wa-field { display: flex; flex-direction: column; gap: var(--dv-space-1); }
.whatsapp-cta.is-form .wa-field--full { width: 100%; margin-bottom: var(--dv-space-3); }
.whatsapp-cta.is-form .wa-field__label { font-size: .85rem; color: var(--dv-text-muted); font-weight: 500; }
.whatsapp-cta.is-form .wa-field__label .req { color: var(--dv-primary); }
.whatsapp-cta.is-form input,
.whatsapp-cta.is-form textarea {
    width: 100%; padding: var(--dv-space-3); box-sizing: border-box;
    border: 1px solid var(--dv-border); border-radius: var(--dv-radius);
    background: var(--dv-bg); font: inherit; color: var(--dv-text);
    transition: border-color var(--dv-transition);
}
.whatsapp-cta.is-form input:focus,
.whatsapp-cta.is-form textarea:focus { outline: 0; border-color: var(--dv-primary); box-shadow: 0 0 0 3px rgba(255,59,0,.15); }
.whatsapp-cta.is-form input.is-error,
.whatsapp-cta.is-form textarea.is-error { border-color: #e63946; background: #fef0f1; }
.whatsapp-cta.is-form .wa-form__submit { width: 100%; padding: var(--dv-space-4); font-size: 1.05rem; margin-top: var(--dv-space-2); }
.whatsapp-cta.is-form .wa-form__submit .wa-icon { filter: brightness(0) invert(1); }
.whatsapp-cta.is-form .wa-form__note { margin: var(--dv-space-3) 0 0; font-size: .8rem; color: var(--dv-text-muted); text-align: center; }
@media (max-width: 640px) {
    .whatsapp-cta.is-form { padding: var(--dv-space-4); }
    .whatsapp-cta.is-form .wa-form__row { grid-template-columns: 1fr; }
}


/* ============================================================
 * TOUR PAGE (single-product)
 * ============================================================ */
.tour-page__head {
    position: relative;
    min-height: clamp(360px, 50vh, 480px);
    background-size: cover; background-position: center; background-color: #2E2E2E;
    color: #fff; display: flex; align-items: flex-end; overflow: hidden;
}
.tour-page__head-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.8), rgba(0,0,0,.2) 60%, transparent 100%); }
.tour-page__head-inner { position: relative; z-index: 2; padding: var(--dv-space-10) var(--dv-container-pad) var(--dv-space-8); width: 100%; }
.tour-page__country {
    display: inline-block; padding: 4px 12px; background: var(--dv-primary); color: #fff;
    border-radius: 100px; font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
    margin: 0 0 var(--dv-space-3);
}
.tour-page__title {
    margin: 0;
    font-family: var(--dv-font-display);
    font-size: clamp(1.75rem, 1.25rem + 2.5vw, 3rem); font-weight: 400; line-height: 1.1;
    text-shadow: 0 2px 24px rgba(0,0,0,.4);
}

.tour-page__gallery { padding: var(--dv-space-6) 0 0; }
.tour-page__gallery img { border-radius: var(--dv-radius); }

.tour-page__body { padding: var(--dv-space-8) 0 var(--dv-space-10); }
.tour-page__grid {
    display: grid; grid-template-columns: 1fr 360px;
    gap: var(--dv-space-8);
    align-items: start;
}
@media (max-width: 1024px) { .tour-page__grid { grid-template-columns: 1fr; } }

.tour-block { margin-bottom: var(--dv-space-8); }
.tour-block__title { font-family: var(--dv-font-display); font-size: 1.75rem; font-weight: 400; margin: 0 0 var(--dv-space-4); line-height: 1.15; color: var(--dv-text); }
.tour-block__body { line-height: 1.7; color: var(--dv-text); }
.tour-block__body p { margin: 0 0 var(--dv-space-3); }

.tour-aside.is-sticky { position: sticky; top: 96px; }
.tour-aside {
    background: var(--dv-bg);
    border: 1px solid var(--dv-border);
    border-radius: var(--dv-radius-lg);
    padding: var(--dv-space-5);
    box-shadow: var(--dv-shadow-sm);
}
.tour-aside__price { display: flex; align-items: baseline; gap: var(--dv-space-2); margin-bottom: var(--dv-space-4); padding-bottom: var(--dv-space-4); border-bottom: 1px solid var(--dv-border); }
.tour-aside__from { color: var(--dv-text-muted); font-size: .9rem; }
.tour-aside__amount { font-family: var(--dv-font-display); font-size: 1.875rem; font-weight: 400; color: var(--dv-primary); }
.tour-aside__amount .woocommerce-Price-amount { color: inherit; }
.tour-aside .whatsapp-cta.is-button { display: flex; flex-direction: column; gap: var(--dv-space-2); width: 100%; align-items: stretch; }
.tour-aside .whatsapp-cta.is-button .button,
.tour-aside .whatsapp-cta.is-button .book-now { width: 100%; padding: var(--dv-space-4); justify-content: center; }
.tour-aside .whatsapp-cta.is-button .tel-link { width: 100%; text-align: center; padding: var(--dv-space-3); }
.tour-aside__nav { list-style: none; padding: 0; margin: var(--dv-space-4) 0 0; border-top: 1px solid var(--dv-border); padding-top: var(--dv-space-4); }
.tour-aside__nav li { padding: var(--dv-space-1) 0; }
.tour-aside__nav a { color: var(--dv-text-muted); text-decoration: none; font-size: .92rem; transition: color var(--dv-transition); }
.tour-aside__nav a:hover { color: var(--dv-primary); }


/* ============================================================
 * ACCORDION (info о стране на single-product)
 * ============================================================ */
.accordion { border: 1px solid var(--dv-border); border-radius: var(--dv-radius-lg); overflow: hidden; background: var(--dv-bg); }
.accordion__item + .accordion__item { border-top: 1px solid var(--dv-border); }
.accordion__head {
    display: flex; align-items: center; gap: var(--dv-space-3);
    width: 100%; padding: var(--dv-space-4) var(--dv-space-5);
    background: transparent; border: 0;
    text-align: left; font: inherit; color: var(--dv-text);
    transition: background var(--dv-transition);
}
.accordion__head:hover { background: var(--dv-bg-light); }
.accordion__country {
    flex-shrink: 0; padding: 2px 10px; background: var(--dv-primary); color: #fff;
    border-radius: 100px; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
}
.accordion__title { flex: 1 1 auto; font-weight: 600; font-size: 1rem; }
.accordion__chevron {
    flex-shrink: 0; width: 20px; height: 20px; position: relative;
    transition: transform var(--dv-transition);
}
.accordion__chevron::before {
    content: ''; position: absolute; top: 4px; left: 5px;
    width: 8px; height: 8px;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
}
.accordion__item.is-open .accordion__chevron { transform: rotate(180deg); }
.accordion__body {
    max-height: 0; overflow: hidden;
    transition: max-height 300ms ease, padding 300ms ease;
    padding: 0 var(--dv-space-5);
    line-height: 1.7;
}
.accordion__item.is-open .accordion__body { max-height: 2000px; padding: 0 var(--dv-space-5) var(--dv-space-5); }


/* ============================================================
 * FLOATING BUTTONS (mobile fix)
 * ============================================================ */
@media (max-width: 768px) {
    .callto_btns { right: 1rem !important; bottom: 5rem !important; }
    .callto_btns a { width: 3.5rem !important; height: 3.5rem !important; line-height: 3.5rem !important; }
    body { padding-bottom: 5rem; }
}


/* ============================================================
 * PAGE-CONTENT / CONTACTS / PAYMENT / PRIVACY / SITEMAP
 * ============================================================ */
.firstsection { padding: var(--dv-space-8) 0; }
.firstsection h1 { font-family: var(--dv-font-display); font-size: clamp(1.75rem, 1.25rem + 2vw, 2.75rem); font-weight: 400; margin: 0 0 var(--dv-space-5); line-height: 1.15; }
.flex100f { width: 100%; }

.html-sitemap .sitemap-h2 { font-family: var(--dv-font-display); font-weight: 400; }

.page-payment .payment-content,
.page-privacy .privacy-content { max-width: 800px; margin: 2rem auto; padding: 0 var(--dv-container-pad); line-height: 1.7; }
.page-payment .payment-cta,
.page-privacy .privacy-cta {
    background: var(--dv-bg-light); border-radius: var(--dv-radius-lg);
    padding: var(--dv-space-8) var(--dv-container-pad); margin: var(--dv-space-6) 0;
    text-align: center;
}
.page-payment .payment-cta .whatsapp-cta,
.page-privacy .privacy-cta .whatsapp-cta { display: inline-flex; gap: var(--dv-space-3); margin-top: var(--dv-space-4); }


/* ============================================================
 * BREADCRUMBS
 * ============================================================ */
.breadcrumbs { padding: 0; }
.breadcrumbs .wrap_float { padding: 0; }
.tour-page__head .breadcrumbs,
.landing-hero .breadcrumbs { color: rgba(255,255,255,.85); font-size: .85rem; margin-bottom: var(--dv-space-3); }
.tour-page__head .breadcrumbs a,
.landing-hero .breadcrumbs a { color: rgba(255,255,255,.85); text-decoration: none; }


/* ============================================================
 * MISC LEGACY OVERRIDES
 * ============================================================ */
/* убираем прежний "болтающийся" блок calltosimple если был встроен в hero */
.destinations > .wrap > .wrap_float > h3.title { font-family: var(--dv-font-display); font-weight: 400; }

/* старая шапка top_panel — сборная разметка из header.php; сейчас site-header перебивает */
.top_panel { display: none !important; }


/* ============================================================
 * ANIMATIONS
 * ============================================================ */
.fade-in { opacity: 0; transform: translateY(16px); transition: opacity 600ms ease, transform 600ms ease; }
.fade-in.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
    .fade-in { opacity: 1; transform: none; transition: none; }
    .tour_item:hover, .story-card:hover { transform: none; }
}
