/*
Theme Name: Турклуб Водник — GoWilds
Description: Оформление Home 3 и собственный каталог Турклуба Водник на основе GoWilds.
Template: gowilds
Version: 0.11.1
Text Domain: turservice-child
*/

:root, body {
    --vodnik-accent: #63AB45;
    --gowilds-theme-color: var(--vodnik-accent);
    --gowilds-hover-color: var(--vodnik-accent);
    --gowilds-footer-color-link-hover: var(--vodnik-accent);
    --e-global-color-primary: var(--vodnik-accent);
    --gowilds-font-sans-serif: 'Manrope', sans-serif;
    --gowilds-heading-font-family: 'Manrope', sans-serif;
    --e-global-typography-primary-font-family: 'Manrope';
    --e-global-typography-secondary-font-family: 'Manrope';
    --e-global-typography-text-font-family: 'Manrope';
    --e-global-typography-accent-font-family: 'Manrope';
}
/* Elementor kits set their own primary token on body. Keep one brand green. */
body[class*="elementor-kit-"] { --e-global-color-primary: var(--vodnik-accent); }
html { scroll-behavior: smooth; scroll-padding-top: 105px; }
#activities { scroll-margin-top: 100px; }
@media (max-width: 767px) { #activities { scroll-margin-top: 40px; } }
/* Keep activity navigation discoverable without a mouse on smaller screens. */
@media (max-width: 1199px) {
    .vodnik-home-three [data-id="3dd5bf2a"] .swiper-nav-next,
    .vodnik-home-three [data-id="3dd5bf2a"] .swiper-nav-prev {
        opacity: 1;
        width: 44px;
        height: 44px;
        line-height: 44px;
        margin-top: -22px;
    }
    .vodnik-home-three [data-id="3dd5bf2a"] .swiper-nav-next { right: 8px !important; }
    .vodnik-home-three [data-id="3dd5bf2a"] .swiper-nav-prev { left: 8px !important; }
    .vodnik-home-three [data-id="3dd5bf2a"] .swiper-button-disabled {
        opacity: .4;
        pointer-events: none;
    }
    .vodnik-home-three [data-id="3dd5bf2a"] .swiper-button-lock { display: none; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.vodnik-hero { background-color: var(--e-global-color-accent); }
.vodnik-hero .elementor-heading-title { max-width: 900px; }
.vodnik-hero .elementor-button {
    background-color: var(--e-global-color-primary);
    color: white;
    padding: 0 40px;
    font-size: 18px;
    line-height: 58px;
    letter-spacing: 0;
    border-radius: 6px;
}
.vodnik-hero .elementor-button:hover { background-color: var(--vodnik-accent); opacity: 1; }
/* Fit the vertical mark inside GoWilds' existing navigation row. */
@media (min-width: 768px) {
    .vodnik-topbar > .elementor-container { min-height: 49px; }
}
.vodnik-header-logo .gsc-logo { padding: 8px 0; }
.vodnik-header-logo .site-branding-logo,
.vodnik-footer-logo .site-branding-logo {
    display: block;
    max-width: 100%;
}
.vodnik-header-logo .site-branding-logo img,
.vodnik-footer-logo .site-branding-logo img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
}
.vodnik-header-logo .site-branding-logo img { max-height: 54px; }
.vodnik-footer-logo .site-branding-logo img { width: 115px; }
.header-mobile .logo-mobile img { width: auto; max-height: 44px; }
/* One compact row: boat mark and close control share the same height. */
.gva-offcanvas-content .top-canvas {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 48px;
    line-height: 1;
}
.gva-offcanvas-content .top-canvas::before,
.gva-offcanvas-content .top-canvas::after { display: none; }
.gva-offcanvas-content .top-canvas .logo-mm {
    float: none;
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    height: 48px;
    margin: 0;
    padding: 0 12px 0 25px;
}
.gva-offcanvas-content .top-canvas .logo-mm img {
    display: block;
    width: 72px;
    height: 32px;
    max-height: 32px;
    object-fit: contain;
}
.gva-offcanvas-content .top-canvas .control-close-mm {
    float: none;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    margin: 0;
    padding: 0;
    line-height: 1;
}
.vodnik-services .elementor-icon-box-title { line-height: 1.5; }
/* The overlapping demo section is absent: restore space outside the final panel. */
.elementor .elementor-element.vodnik-services { margin-bottom: 90px; }
.elementor .vodnik-services > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding-bottom: 120px;
}
.vodnik-about-image .about-two__box-content {
    right: 0;
    width: 280px;
    max-width: calc(100% - 16px);
}
.vodnik-about-image .about-two__box-content-inner { padding: 16px 18px; gap: 10px; }
.vodnik-about-image .about-two__title {
    margin-right: 0;
    flex-shrink: 0;
    font-size: 32px;
    line-height: 1.2;
    white-space: nowrap;
}
.vodnik-about-image .about-two__desc { min-width: 0; padding-left: 0; }
.vodnik-footer a:not(.btn-theme):hover { color: var(--e-global-color-primary); }
.vodnik-footer .elementor-widget-text-editor { overflow-wrap: anywhere; }
.vodnik-footer .gsc-heading.style-3 .title > span::after { content: none; }
/* The homepage needs room for its overlapping gallery; inner pages do not. */
body:not(.home) .elementor .elementor-element.vodnik-h3-support { padding-top: 70px; }
.vodnik-count-progress { width: 122px; height: 122px; }
/* Elementor 4 adds a default bottom margin to the inline list in Header 03. */
.vodnik-h3-topbar .elementor-widget:not(:last-child) { margin-bottom: 0; }
/* Both original sections use z-index 11; keep search menus above the next row. */
.elementor .vodnik-home-three-hero > .elementor-container { z-index: 12; }
/* Swiper's measured slides must not define a flex column's minimum width. */
.vodnik-home-three .elementor-column,
.vodnik-home-three .elementor-widget-wrap,
.vodnik-home-three .elementor-widget { min-width: 0; }
/* Stretch every activity card to the tallest slide without clipping its text. */
.vodnik-home-three .gsc-icon-box-group .swiper-wrapper { align-items: stretch; }
.vodnik-home-three .gsc-icon-box-group .swiper-slide { display: flex; align-items: stretch; height: auto; }
.vodnik-home-three .gsc-icon-box-group .icon-box-item { display: flex; width: 100%; }
.vodnik-home-three .gsc-icon-box-group .iconbox-one__single { flex: 1; }
/* Preserve the theme's typography; separate words without widening letters. */
.vodnik-home-three .iconbox-one__desc { word-spacing: 1px; }
/* All service slides share the height of the longest description. */
#services .gsc-services .swiper-wrapper { align-items: stretch; }
#services .gsc-services .swiper-slide { display: flex; align-items: stretch; height: auto; }
#services .service-two__single { display: flex; flex: 1; width: 100%; min-width: 0; }
#services .service-two__content { width: 100%; }
#services .service-two__icon { display: flex; align-items: center; height: 80px; }
#services .service-two__icon i { font-size: 64px; line-height: 1; }
#services .service-two__title { min-height: 2.8em; }
@media (max-width: 1200px) {
    .vodnik-home-three .iconbox-one__title { min-height: 2.6em; }
}
/* Keep Home 3's 510 × 600 portrait cards for source photos of any size. */
.vodnik-home-three .banner-two__image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 17 / 20;
    object-fit: cover;
}
.vodnik-home-three .gallery-one__image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 55 / 59;
    object-fit: cover;
}
/* Use the theme's 500:360 picture format and align the six Russian examples. */
.vodnik-programs-preview .swiper-wrapper { align-items: stretch; }
.vodnik-programs-preview .swiper-slide { display: flex; height: auto; }
.vodnik-program-card { display: flex; width: 100%; }
.vodnik-program-card .trip-one__wrap { display: flex; flex-direction: column; width: 100%; }
.vodnik-program-card .trip-one__image img { display: block; width: 100%; height: auto; aspect-ratio: 25 / 18; object-fit: cover; }
.vodnik-program-card .trip-one__content { display: flex; flex: 1; flex-direction: column; }
.vodnik-program-card .trip-one__title { min-height: 2.8em; }
.vodnik-program-card .trip-one__address { min-height: 3.6em; }
.vodnik-program-card .trip-one__meta { margin-top: auto; padding-top: 20px; }
.vodnik-program-card .trip-one__price { margin-bottom: 24px; }
.vodnik-program-type { font-size: 14px; font-weight: 700; color: var(--e-global-color-primary); }
.vodnik-ruble-icon { display: inline-block; color: var(--e-global-color-primary); font-weight: 700; }
.vodnik-program-price { font-size: 15px; }
.vodnik-program-card .vodnik-ruble-icon { margin-right: 8px; }
.vodnik-news-preview a[aria-disabled], .vodnik-preview-button { cursor: default; }
.vodnik-news-preview .post-five__thumbnail img { width: 100%; height: auto; aspect-ratio: 25 / 18; object-fit: cover; }
.vodnik-budget-field .vodnik-ruble-outline { display: block; width: 35px; height: 35px; }
.vodnik-budget-field .vodnik-ruble-outline,
.vodnik-home-three .elementor-icon .vodnik-ruble-outline { fill: none; }
/* Icon tiles must retain their square shape beside descriptions of any length. */
.vodnik-home-three .bg-icon-theme .elementor-icon-box-icon { align-self: center; flex-shrink: 0; }
.vodnik-home-three .bg-icon-theme .elementor-icon { display: flex; align-items: center; justify-content: center; }
.vodnik-home-three .bg-icon-theme .vodnik-ruble-outline { width: 1em; height: 1em; }
/* Keep body copy readable on light panels. */
.vodnik-home-three .gsc-heading .title-desc,
.vodnik-home-three .elementor-icon-box-description,
.vodnik-home-three .elementor-tab-content,
.vodnik-program-card .trip-one__address,
.vodnik-program-card .trip-one__item-meta,
.vodnik-program-price { color: #656b67; }
.vodnik-home-three-hero .gsc-heading .title-desc { color: #fff; }
.vodnik-program-type { color: var(--vodnik-accent); }
/* GoWilds fades these green badges to 12%; use the solid brand colour. */
.elementor .elementor-element .gsc-heading.style-1 .sub-title .tagline {
    background: var(--vodnik-accent);
    color: #fff;
}
.elementor .gsc-heading.style-1 .sub-title .tagline::after { content: none; }
.vodnik-footer a.btn-theme, .vodnik-footer a.btn-theme:hover { color: #fff; }
.elementor .elementor-element.elementor-element-55453d6 .elementor-icon-box-title span { color: #fff; }
/* The default 20px widget margin stretches the neighbouring rotated pill. */
.vodnik-home-three .elementor-widget-icon-box.elementor-widget__width-auto { margin-bottom: 0; }
@media (max-width: 767px) {
    /* Current Elementor adds a gap alongside GoWilds' legacy mobile margin. */
    .vodnik-home-three .elementor-widget-icon-box.icon-box-left .elementor-icon-box-wrapper { gap: 0; }
}
.gva-main-menu > li > a { font-family: 'Manrope', sans-serif; }
.gva-offcanvas-content #gva-mobile-menu ul.gva-mobile-menu > li.current-menu-item > a { color: var(--vodnik-accent); }
.btn-theme:focus-visible, a:focus-visible { outline: 3px solid var(--e-global-color-primary); outline-offset: 4px; }
@media (max-width: 1024px) {
    body:not(.home) .elementor .elementor-element.vodnik-h3-support { padding-top: 60px; }
    .vodnik-header-logo .site-branding-logo img { max-height: 44px; }
    .elementor .elementor-element.vodnik-services { margin-bottom: 50px; }
    .elementor .vodnik-services > .elementor-container > .elementor-column > .elementor-widget-wrap {
        padding-bottom: 80px;
    }
}
@media (max-width: 767px) {
    html { scroll-padding-top: 88px; }
    /* The support columns already provide 40px of mobile top spacing. */
    body:not(.home) .elementor .elementor-element.vodnik-h3-support { padding-top: 0; }
    /* Fit the original menu/search/account controls into one row at 320px. */
    .vodnik-h3-navigation .elementor-column.elementor-element-753285b { width: 35%; }
    .vodnik-h3-navigation .elementor-column.elementor-element-e86ed0e { width: 65%; }
    /* Keep the original left-aligned badge; lift it only enough to clear the title. */
    .elementor .elementor-element.vodnik-home-three-hero .elementor-element-c4c5854 .gsc-heading .sub-title {
        left: 34px;
        top: -60px;
    }
    /* GoWilds already supplies the mobile icon's 15px right margin. */
    .vodnik-footer .elementor-widget-icon-box.icon-box-left .elementor-icon-box-wrapper { gap: 0; }
    .vodnik-hero .elementor-widget-text-editor { font-size: 16px; }
    .vodnik-hero .elementor-button { padding: 0 15px; font-size: 15px; line-height: 40px; }
    .vodnik-about-image .about-two__box-content { width: 52%; max-width: 220px; padding: 8px; }
    .vodnik-about-image .about-two__box-content-inner {
        flex-direction: column;
        gap: 4px;
        padding: 10px;
        text-align: center;
    }
    .vodnik-about-image .about-two__title { font-size: 26px; }
    .vodnik-about-image .about-two__desc { font-size: 14px; line-height: 1.35; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Slider 01's block-to-right text reveal and masked button entrance.
   Start times: 380 / 1180 / 2160ms; duration: 1200ms. */
@media (prefers-reduced-motion: no-preference) {
    .vodnik-hero .elementor-element-vodhero1 { --vodnik-reveal-delay: 380ms; }
    .vodnik-hero .elementor-element-vodhero2 { --vodnik-reveal-delay: 1180ms; }
    .vodnik-hero .elementor-element-vodhero1 .elementor-heading-title,
    .vodnik-hero .elementor-element-vodhero2 p {
        position: relative;
        width: fit-content;
        max-width: min(900px, 100%);
        animation: vodnik-reveal-text 1200ms steps(1, end) var(--vodnik-reveal-delay) both;
    }
    .vodnik-hero .elementor-element-vodhero1 .elementor-heading-title::after,
    .vodnik-hero .elementor-element-vodhero2 p::after {
        content: '';
        position: absolute;
        inset: 0;
        background: #fff;
        pointer-events: none;
        animation: vodnik-reveal-block 1200ms cubic-bezier(.77, 0, .175, 1) var(--vodnik-reveal-delay) both;
    }
    .vodnik-hero .elementor-element-vodhero3 {
        overflow: clip;
        overflow-clip-margin: 8px;
    }
    .vodnik-hero .elementor-element-vodhero3 .elementor-button {
        animation: vodnik-reveal-button 1200ms cubic-bezier(.215, .61, .355, 1) 2160ms both;
    }
    .vodnik-hero:focus-within .elementor-button { animation: none; }
}
@keyframes vodnik-reveal-text {
    0% { color: transparent; }
    50%, 100% { color: #fff; }
}
@keyframes vodnik-reveal-block {
    0% { transform: scaleX(0); transform-origin: left center; }
    49.999% { transform: scaleX(1); transform-origin: left center; }
    50% { transform: scaleX(1); transform-origin: right center; }
    100% { transform: scaleX(0); transform-origin: right center; }
}
@keyframes vodnik-reveal-button {
    from { opacity: 0; transform: translateY(100%); }
    to { opacity: 1; transform: translateY(0); }
}
