/*
Theme Name: GeneratePress Дочерняя
Template: generatepress
Theme URI: https://generatepress.com
Description: Дочерняя тема для GeneratePress с кастомным дизайном
Author: Ваше имя
Author URI: https://ваш-сайт.by
Version: 2.4.0
*/


/* =========================================================
   1. БАЗОВЫЙ СБРОС
   ========================================================= */

html {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    scroll-behavior: smooth;
}

body {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;

    display: flex !important;
    flex-direction: column !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    font-family:
        'Inter',
        -apple-system,
        BlinkMacSystemFont,
        'Segoe UI',
        Roboto,
        Oxygen,
        Ubuntu,
        sans-serif;

    background: #ffffff;
}

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

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

button,
input,
textarea,
select {
    font-family: inherit;
}


/* =========================================================
   2. ГЛАВНАЯ СТРУКТУРА WORDPRESS
   ========================================================= */

/*
   ВАЖНО:

   body
       ↓
   #page
       ↓
   header
   content
   footer

   Если footer находится внутри #page —
   #page растягивается на экран.

   Если footer находится непосредственно в body —
   body также корректно прижимает его вниз.
*/

#page {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    min-height: 100vh !important;
    min-height: 100dvh !important;

    display: flex !important;
    flex-direction: column !important;

    position: relative !important;

    overflow: visible !important;

    flex: 1 0 auto !important;
}


/* GeneratePress */

.site {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    min-height: 100% !important;

    display: flex !important;
    flex-direction: column !important;

    position: relative !important;

    overflow: visible !important;
}


/* =========================================================
   3. ОСНОВНОЙ КОНТЕНТ
   ========================================================= */

.site-content,
#page > .site-content,
.site > .site-content {

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    height: auto !important;

    /*
       Контент занимает всё свободное место,
       но при увеличении контента
       его высота увеличивается естественно.
    */
    flex: 1 0 auto !important;

    min-height: 0 !important;

    position: relative !important;

    z-index: 1 !important;

    overflow: visible !important;

    background: transparent !important;
}


/* Основная область */

.site-main {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    height: auto !important;
    min-height: 0 !important;

    position: relative !important;

    z-index: 1 !important;

    overflow: visible !important;

    background: transparent !important;
}


/* Content area */

.content-area {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    height: auto !important;
    min-height: 0 !important;

    position: relative !important;

    z-index: 1 !important;

    overflow: visible !important;

    background: transparent !important;
}


/* Статья */

.inside-article {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    height: auto !important;
    min-height: 0 !important;

    position: relative !important;

    z-index: 1 !important;

    overflow: visible !important;

    background: transparent !important;

    box-shadow: none !important;
}


/* Содержимое статьи */

.entry-content {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    height: auto !important;
    min-height: 0 !important;

    position: relative !important;

    z-index: 1 !important;

    overflow: visible !important;

    background: transparent !important;
}


/* =========================================================
   4. КОНТЕЙНЕРЫ
   ========================================================= */

.wrapper,
.container,
.grid-container,
.inside-container,
.elementor-section-wrap,
.elementor-section {
    width: 100% !important;
    max-width: 100% !important;
}

.elementor-container {
    width: 100% !important;
    max-width: 1400px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    padding-left: 20px !important;
    padding-right: 20px !important;
}


/* =========================================================
   5. АНИМАЦИИ
   ========================================================= */

@keyframes fadeIn {
    0% {
        opacity: 0;
        transform: translateY(15px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLeft {
    0% {
        opacity: 0;
        transform: translateX(-30px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes menuOpen {
    0% {
        opacity: 0;
        transform: translateX(-20px) scale(0.97);
    }

    100% {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

@keyframes pulse {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }

    100% {
        transform: scale(1);
    }
}


/* =========================================================
   6. ЛОГОТИП
   ========================================================= */

.logo-animate {
    display: inline-block !important;

    color: #ffffff !important;

    text-decoration: none !important;

    cursor: pointer !important;

    transition:
        transform 0.3s ease,
        color 0.3s ease,
        text-shadow 0.3s ease !important;
}

.logo-animate:hover {
    transform: scale(1.05) !important;

    color: #8cc4f5 !important;

    text-shadow:
        0 0 30px rgba(140, 196, 245, 0.4) !important;
}

#site-header .logo-animate,
#site-header .logo-animate a {
    font-size: 20px !important;

    font-weight: 800 !important;

    color: #ffffff !important;

    letter-spacing: 1px !important;

    line-height: 1.2 !important;

    white-space: nowrap !important;

    text-decoration: none !important;

    text-shadow:
        0 2px 20px rgba(0, 0, 0, 0.3) !important;

    transition:
        transform 0.3s ease,
        color 0.3s ease,
        text-shadow 0.3s ease !important;
}

#site-header .logo-animate:hover,
#site-header .logo-animate a:hover {
    color: #8cc4f5 !important;

    transform: scale(1.05) !important;

    text-shadow:
        0 0 30px rgba(140, 196, 245, 0.4) !important;
}


/* =========================================================
   7. ФИКСИРОВАННАЯ ШАПКА
   ========================================================= */

#site-header {
    position: fixed !important;

    top: 0 !important;
    left: 0 !important;

    width: 100% !important;

    min-height: 50px !important;

    margin: 0 !important;
    padding: 10px 0 !important;

    z-index: 99999 !important;

    background:
        rgba(10, 30, 60, 0.55) !important;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.08) !important;

    box-shadow:
        0 4px 30px rgba(0, 0, 0, 0.12) !important;

    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;

    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

#site-header.hidden {
    transform: translateY(-110%) !important;

    opacity: 0 !important;

    pointer-events: none !important;
}

#site-header.visible {
    transform: translateY(0) !important;

    opacity: 1 !important;

    pointer-events: auto !important;
}


/* =========================================================
   8. КОНТЕЙНЕР ШАПКИ
   ========================================================= */

#site-header > div {
    width: 100% !important;

    max-width: 1400px !important;

    min-height: 30px !important;

    margin: 0 auto !important;

    padding: 0 20px !important;

    display: flex !important;

    align-items: center !important;

    justify-content: space-between !important;

    gap: 20px !important;

    position: relative !important;

    z-index: 1 !important;
}

#site-header > div > div:first-child {
    display: flex !important;

    align-items: center !important;

    gap: 8px !important;

    min-width: 0 !important;
}

#site-header > div > div:last-child {
    display: flex !important;

    align-items: center !important;

    justify-content: flex-end !important;

    gap: 15px !important;

    flex-wrap: wrap !important;

    min-width: 0 !important;
}


/* =========================================================
   9. ГЛАВНОЕ МЕНЮ
   ========================================================= */

.main-menu {
    display: flex !important;

    flex-direction: row !important;

    align-items: center !important;

    gap: 10px !important;

    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
}

.main-menu li {
    display: inline-block !important;

    margin: 0 !important;
    padding: 0 !important;

    opacity: 0;

    animation:
        fadeIn 0.5s ease forwards;
}

.main-menu li:nth-child(1) {
    animation-delay: 0.1s;
}

.main-menu li:nth-child(2) {
    animation-delay: 0.2s;
}

.main-menu li:nth-child(3) {
    animation-delay: 0.3s;
}

.main-menu li:nth-child(4) {
    animation-delay: 0.4s;
}

.main-menu li:nth-child(5) {
    animation-delay: 0.5s;
}

.main-menu li:nth-child(6) {
    animation-delay: 0.6s;
}

.main-menu li:nth-child(7) {
    animation-delay: 0.7s;
}

.main-menu li:nth-child(8) {
    animation-delay: 0.8s;
}

.main-menu li:nth-child(9) {
    animation-delay: 0.9s;
}

.main-menu li:nth-child(10) {
    animation-delay: 1s;
}

.main-menu a {
    position: relative !important;

    display: inline-block !important;

    padding: 2px 0 !important;

    color: #ffffff !important;

    font-size: 13px !important;

    font-weight: 600 !important;

    line-height: 1.4 !important;

    letter-spacing: 0.5px !important;

    text-decoration: none !important;

    opacity: 0.85 !important;

    text-shadow:
        0 1px 8px rgba(0, 0, 0, 0.3) !important;

    transition:
        color 0.3s ease,
        opacity 0.3s ease,
        transform 0.3s ease !important;
}

.main-menu a:hover {
    color: #8cc4f5 !important;

    opacity: 1 !important;

    transform: translateY(-2px) !important;
}

.main-menu a::after {
    content: '';

    position: absolute;

    left: 0;

    bottom: -2px;

    width: 0;

    height: 2px;

    border-radius: 2px;

    background:
        linear-gradient(
            90deg,
            #8cc4f5,
            #2a6bb0
        );

    transition: width 0.4s ease;
}

.main-menu a:hover::after {
    width: 100%;
}

.main-menu .current-menu-item a {
    color: #8cc4f5 !important;

    opacity: 1 !important;
}

.main-menu .current-menu-item a::after {
    width: 100%;
}


/* =========================================================
   10. ССЫЛКИ В ШАПКЕ
   ========================================================= */

#site-header > div > div:last-child a:not([href*="yandex"]) {
    display: inline-flex !important;

    align-items: center !important;

    justify-content: center !important;

    color: #ffffff !important;

    font-size: 14px !important;

    font-weight: 500 !important;

    line-height: 1.3 !important;

    padding: 6px 0 !important;

    text-decoration: none !important;

    border-bottom:
        2px solid transparent !important;

    transition:
        color 0.3s ease,
        border-color 0.3s ease !important;
}

#site-header > div > div:last-child a:not([href*="yandex"]):hover {
    color: #8cc4f5 !important;

    border-bottom-color: #8cc4f5 !important;
}

#site-header > div > div:last-child span {
    color:
        rgba(255, 255, 255, 0.1) !important;

    font-size: 16px !important;
}


/* =========================================================
   11. БУРГЕР
   ========================================================= */

#burger-menu {
    display: inline-flex !important;

    align-items: center !important;

    justify-content: center !important;

    width: auto !important;

    padding: 4px 8px 4px 4px !important;

    margin: 0 !important;

    color: #ffffff !important;

    background: transparent !important;

    border: none !important;

    font-size: 24px !important;

    font-weight: 900 !important;

    line-height: 1 !important;

    letter-spacing: 2px !important;

    cursor: pointer !important;

    user-select: none !important;

    transition:
        transform 0.3s ease,
        color 0.3s ease !important;
}

#burger-menu:hover {
    color: #8cc4f5 !important;

    transform: scale(1.1) !important;
}


/* =========================================================
   12. ПОИСК
   ========================================================= */

.header-search-form {
    display: inline-flex !important;

    align-items: center !important;

    margin-left: 10px !important;
}

.search-form {
    display: flex !important;

    align-items: center !important;

    margin: 0 !important;
}

.search-form label {
    display: flex !important;

    align-items: center !important;

    margin: 0 !important;
}

.search-form input[type="search"],
.search-form .search-field {
    width: 140px !important;

    min-height: 34px !important;

    height: 34px !important;

    padding: 6px 14px !important;

    color: #ffffff !important;

    background:
        rgba(255, 255, 255, 0.08) !important;

    border:
        1px solid rgba(255, 255, 255, 0.2) !important;

    border-radius: 50px !important;

    outline: none !important;

    font-size: 13px !important;

    line-height: 1.4 !important;

    backdrop-filter: blur(10px) !important;

    -webkit-backdrop-filter: blur(10px) !important;

    transition:
        width 0.3s ease,
        border-color 0.3s ease,
        background 0.3s ease,
        box-shadow 0.3s ease !important;
}

.search-form input[type="search"]:focus,
.search-form .search-field:focus {
    width: 200px !important;

    background:
        rgba(255, 255, 255, 0.15) !important;

    border-color: #8cc4f5 !important;

    box-shadow:
        0 0 20px rgba(140, 196, 245, 0.1) !important;
}

.search-form input[type="search"]::placeholder,
.search-form .search-field::placeholder {
    color:
        rgba(255, 255, 255, 0.5) !important;
}

.search-form .search-submit,
.search-form button[type="submit"] {
    width: auto !important;

    min-width: auto !important;

    margin: 0 !important;

    padding: 6px 8px 6px 4px !important;

    color:
        rgba(255, 255, 255, 0.6) !important;

    background: transparent !important;

    border: none !important;

    font-size: 18px !important;

    line-height: 1 !important;

    cursor: pointer !important;

    transition:
        color 0.3s ease !important;

    clip-path: none !important;

    text-indent: 0 !important;
}

.search-form .search-submit:hover,
.search-form button[type="submit"]:hover {
    color: #8cc4f5 !important;

    background: transparent !important;
}

.search-form .screen-reader-text {
    display: none !important;
}


/* =========================================================
   13. DROPDOWN
   ========================================================= */

#dropdown-menu {
    position: absolute !important;

    background: #0d2240 !important;

    background-color: #0d2240 !important;

    border:
        1px solid rgba(42, 107, 176, 0.3) !important;

    border-radius: 16px !important;

    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.8) !important;

    overflow: hidden !important;

    transition:
        opacity 0.3s ease,
        transform 0.3s ease !important;

    z-index: 99998 !important;
}

#dropdown-menu[style*="display: block"] {
    animation:
        menuOpen 0.4s cubic-bezier(
            0.22,
            1,
            0.36,
            1
        ) forwards !important;
}


/* =========================================================
   14. SCROLLBAR DROPDOWN
   ========================================================= */

#dropdown-menu::-webkit-scrollbar {
    width: 4px;
}

#dropdown-menu::-webkit-scrollbar-track {
    background: transparent;
}

#dropdown-menu::-webkit-scrollbar-thumb {
    background:
        rgba(255, 255, 255, 0.2);

    border-radius: 10px;
}

#dropdown-menu::-webkit-scrollbar-thumb:hover {
    background:
        rgba(255, 255, 255, 0.3);
}


/* =========================================================
   15. ЛЕВОЕ МЕНЮ
   ========================================================= */

.left-dropdown-menu {
    list-style: none !important;

    margin: 0 !important;

    padding: 0 !important;
}

.left-dropdown-menu > li {
    position: relative !important;

    margin: 0 !important;

    padding: 0 !important;

    opacity: 0 !important;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.05) !important;

    animation:
        slideInLeft 0.4s ease forwards !important;
}

.left-dropdown-menu > li:last-child {
    border-bottom: none !important;
}

.left-dropdown-menu > li:nth-child(1) {
    animation-delay: 0.05s;
}

.left-dropdown-menu > li:nth-child(2) {
    animation-delay: 0.10s;
}

.left-dropdown-menu > li:nth-child(3) {
    animation-delay: 0.15s;
}

.left-dropdown-menu > li:nth-child(4) {
    animation-delay: 0.20s;
}

.left-dropdown-menu > li:nth-child(5) {
    animation-delay: 0.25s;
}

.left-dropdown-menu > li:nth-child(6) {
    animation-delay: 0.30s;
}

.left-dropdown-menu > li:nth-child(7) {
    animation-delay: 0.35s;
}

.left-dropdown-menu > li:nth-child(8) {
    animation-delay: 0.40s;
}

.left-dropdown-menu > li:nth-child(9) {
    animation-delay: 0.45s;
}

.left-dropdown-menu > li:nth-child(10) {
    animation-delay: 0.50s;
}

.left-dropdown-menu a {
    position: relative !important;

    display: flex !important;

    align-items: center !important;

    gap: 15px !important;

    padding: 14px 25px !important;

    color: #ffffff !important;

    background: transparent !important;

    text-decoration: none !important;

    font-size: 17px !important;

    font-weight: 500 !important;

    line-height: 1.3 !important;

    border-left:
        3px solid transparent !important;

    overflow: hidden !important;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        padding-left 0.3s ease,
        transform 0.3s ease,
        border-color 0.3s ease !important;
}

.left-dropdown-menu a::before {
    content: '';

    position: absolute;

    top: 0;

    left: -100%;

    width: 100%;

    height: 100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(140, 196, 245, 0.05),
            transparent
        );

    transition: left 0.5s ease;
}

.left-dropdown-menu a:hover::before {
    left: 100%;
}

.left-dropdown-menu a:hover {
    background:
        rgba(140, 196, 245, 0.15) !important;

    border-left-color:
        #8cc4f5 !important;

    color: #8cc4f5 !important;

    padding-left: 30px !important;

    transform: translateX(5px) !important;
}

.left-dropdown-menu a span {
    color: #ffffff !important;
}

.left-dropdown-menu a .menu-icon {
    color: #8cc4f5 !important;

    flex-shrink: 0 !important;
}

.left-dropdown-menu a .menu-text {
    color: #ffffff !important;
}

.left-dropdown-menu a:hover span,
.left-dropdown-menu a:hover .menu-text {
    color: #8cc4f5 !important;
}


/* =========================================================
   16. АКТИВНЫЙ ПУНКТ
   ========================================================= */

.left-dropdown-menu .current-menu-item > a {
    background:
        rgba(140, 196, 245, 0.2) !important;

    border-left-color:
        #8cc4f5 !important;

    color: #8cc4f5 !important;
}

.left-dropdown-menu .current-menu-item > a span,
.left-dropdown-menu .current-menu-item > a .menu-text {
    color: #8cc4f5 !important;
}


/* =========================================================
   17. ПОДМЕНЮ
   ========================================================= */

.left-submenu {
    list-style: none !important;

    margin: 0 !important;

    padding: 0 !important;

    background:
        rgba(0, 0, 0, 0.2) !important;

    border-radius:
        0 0 12px 12px !important;

    overflow: hidden !important;
}

.left-submenu li {
    margin: 0 !important;

    padding: 0 !important;
}

.left-submenu a {
    padding:
        10px 25px 10px 55px !important;

    color: #aac3e0 !important;

    font-size: 15px !important;

    font-weight: 400 !important;

    opacity: 0.8 !important;
}

.left-submenu a::before {
    content: '▸ ' !important;

    position: static !important;

    width: auto !important;

    height: auto !important;

    background: none !important;

    color: #8cc4f5 !important;

    transition: none !important;
}

.left-submenu a:hover {
    padding-left: 60px !important;

    color: #8cc4f5 !important;

    opacity: 1 !important;
}


/* =========================================================
   18. СТРЕЛКА ПОДМЕНЮ
   ========================================================= */

.menu-arrow {
    margin-left: auto !important;

    color:
        rgba(255, 255, 255, 0.3) !important;

    font-size: 12px !important;

    transition:
        transform 0.3s ease !important;
}

.left-dropdown-menu > li:hover .menu-arrow {
    transform: rotate(180deg) !important;
}


/* =========================================================
   19. ВЕРХ DROPDOWN
   ========================================================= */

#dropdown-menu > div:first-child {
    background: #0a1a30 !important;

    border-bottom:
        2px solid #2a6bb0 !important;
}

#dropdown-menu > div:first-child span {
    color: #ffffff !important;
}

#dropdown-menu > div:first-child span:first-child {
    color: #8cc4f5 !important;
}


/* =========================================================
   20. НИЗ DROPDOWN
   ========================================================= */

#dropdown-menu > div:last-child {
    background: #0a1a30 !important;

    border-top:
        2px solid #2a6bb0 !important;
}

#dropdown-menu > div:last-child a {
    color: #aac3e0 !important;

    text-decoration: none !important;
}

#dropdown-menu > div:last-child a:hover {
    color: #8cc4f5 !important;
}

#dropdown-menu > div:last-child a span {
    color: #8cc4f5 !important;
}


/* =========================================================
   21. HEADER SLIDER
   ========================================================= */

.header-slider {
    position: relative;

    width: 100%;

    height: 480px;

    margin: 0;

    padding: 0;

    overflow: hidden;

    user-select: none;

    z-index: 1;
}

.header-slider-track {
    display: flex;

    width: 100%;

    height: 100%;

    cursor: grab;

    transition:
        transform 0.7s cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );
}

.header-slider-track:active {
    cursor: grabbing;
}

.header-slide {
    position: relative;

    min-width: 100%;

    height: 100%;

    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    background-position: center;

    background-size: cover;

    background-repeat: no-repeat;
}

.header-slide::after {
    content: '';

    position: absolute;

    inset: 0;

    width: 100%;

    height: 100%;

    background:
        rgba(0, 0, 0, 0.35);

    z-index: 0;

    pointer-events: none;
}

.header-slide > div {
    position: relative;

    z-index: 1;

    max-width: calc(100% - 40px);

    padding: 28px 45px;

    color: #ffffff;

    text-align: center;

    background:
        rgba(0, 0, 0, 0.3);

    border:
        1px solid rgba(255, 255, 255, 0.1);

    border-radius: 12px;

    backdrop-filter: blur(5px);

    -webkit-backdrop-filter: blur(5px);
}

.header-slide h1 {
    margin: 0 0 8px;

    color: #ffffff;

    font-size: 38px;

    font-weight: 800;

    line-height: 1.15;

    letter-spacing: 2px;
}

.header-slide p {
    margin: 0;

    color: #ffffff;

    font-size: 17px;

    line-height: 1.5;

    opacity: 0.9;
}


/* =========================================================
   22. СТРЕЛКИ HEADER SLIDER
   ========================================================= */

.header-slider-prev,
.header-slider-next {
    position: absolute;

    top: 50%;

    z-index: 10;

    width: 44px;

    height: 44px;

    margin: 0;

    padding: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    transform: translateY(-50%);

    color: #ffffff;

    font-size: 24px;

    line-height: 1;

    background:
        rgba(255, 255, 255, 0.15);

    border:
        1px solid rgba(255, 255, 255, 0.2);

    border-radius: 50%;

    backdrop-filter: blur(10px);

    -webkit-backdrop-filter: blur(10px);

    cursor: pointer;

    transition:
        background 0.3s ease,
        transform 0.3s ease;
}

.header-slider-prev:hover,
.header-slider-next:hover {
    background:
        rgba(255, 255, 255, 0.3);

    transform:
        translateY(-50%) scale(1.05);
}

.header-slider-prev {
    left: 20px;
}

.header-slider-next {
    right: 20px;
}


/* =========================================================
   23. HEADER DOTS
   ========================================================= */

.header-dot {
    width: 10px;

    height: 10px;

    padding: 0;

    margin: 0;

    display: block;

    border: none;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, 0.4);

    cursor: pointer;

    transition:
        transform 0.3s ease,
        background 0.3s ease,
        box-shadow 0.3s ease;
}

.header-dot:hover {
    transform: scale(1.2);
}

.header-dot.active {
    background: #ffffff;

    box-shadow:
        0 0 15px rgba(255, 255, 255, 0.5);
}


/* =========================================================
   24. CUSTOM SLIDER
   ========================================================= */

.custom-slider-wrapper {
    position: relative;

    width: calc(100% - 40px);

    max-width: 1400px;

    margin: 40px auto;

    overflow: hidden;

    background: #0d2240;

    border-radius: 16px;

    box-shadow:
        0 4px 30px rgba(0, 0, 0, 0.1);

    z-index: 1 !important;
}

.custom-slider {
    display: flex;

    width: 100%;

    cursor: grab;

    user-select: none;

    touch-action: pan-y;

    transition:
        transform 0.6s cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );
}

.custom-slider:active {
    cursor: grabbing;
}

.custom-slide {
    min-width: 100%;

    flex-shrink: 0;
}

.custom-slide img {
    display: block;

    width: 100%;

    height: 500px;

    object-fit: cover;

    user-select: none;

    -webkit-user-drag: none;
}


/* =========================================================
   25. КНОПКИ CUSTOM SLIDER
   ========================================================= */

.slider-prev,
.slider-next {
    width: 50px;

    height: 50px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0;

    padding: 0;

    color: #ffffff;

    font-size: 24px;

    line-height: 1;

    background:
        rgba(255, 255, 255, 0.2);

    border:
        1px solid rgba(255, 255, 255, 0.3);

    border-radius: 50%;

    backdrop-filter: blur(10px);

    -webkit-backdrop-filter: blur(10px);

    cursor: pointer;

    transition:
        background 0.3s ease,
        transform 0.3s ease;
}

.slider-prev:hover,
.slider-next:hover {
    background:
        rgba(255, 255, 255, 0.4);

    transform: scale(1.05);
}


/* =========================================================
   26. DOTS CUSTOM SLIDER
   ========================================================= */

.slider-dot {
    width: 10px;

    height: 10px;

    padding: 0;

    margin: 0;

    border: none;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, 0.4);

    cursor: pointer;

    transition:
        width 0.3s ease,
        transform 0.3s ease,
        background 0.3s ease;
}

.slider-dot:hover {
    transform: scale(1.15);
}

.slider-dot.active {
    width: 30px;

    border-radius: 5px;

    background: #ffffff;
}


/* =========================================================
   27. ФУТЕР — ГЛАВНОЕ ИСПРАВЛЕНИЕ
   ========================================================= */

/*
   ФУТЕР НЕ FIXED.
   ФУТЕР НЕ ABSOLUTE.

   Если контента мало:
   footer прижимается к низу.

   Если контента много:
   footer идёт ПОСЛЕ всего контента.

   Именно margin-top: auto
   делает нижнее прилипание.
*/

footer,
.site-footer {

    position: relative !important;

    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    width: 100% !important;
    max-width: 100% !important;

    height: auto !important;
    min-height: 0 !important;

    margin-top: auto !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;

    padding: 35px 0 20px !important;

    /*
       Нельзя сжимать footer.
    */
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;

    display: block !important;

    clear: both !important;

    /*
       Footer должен быть непрозрачным.
    */
    background: #0d2240 !important;
    background-color: #0d2240 !important;

    color: #aac3e0 !important;

    border-top:
        3px solid #2a6bb0 !important;

    opacity: 1 !important;

    visibility: visible !important;

    /*
       Никаких transform.
    */
    transform: none !important;

    /*
       Footer НЕ обрезает соседний контент.
    */
    overflow: hidden !important;

    /*
       Footer находится выше обычного контента
       только по слоям, но не перекрывает его.
    */
    z-index: 10 !important;
}


/*
   Убираем любые псевдоэлементы GeneratePress,
   которые могут создавать дополнительный слой.
*/

footer::before,
footer::after,
.site-footer::before,
.site-footer::after {
    content: none !important;
    display: none !important;
}


/* =========================================================
   28. КОНТЕЙНЕР ФУТЕРА
   ========================================================= */

.footer-container {

    width: 100% !important;

    max-width: 1400px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    padding-left: 20px !important;
    padding-right: 20px !important;

    position: relative !important;

    z-index: 1 !important;

    box-sizing: border-box !important;
}


/* =========================================================
   29. ВЕРХНЯЯ ЧАСТЬ ФУТЕРА
   ========================================================= */

.footer-top {

    width: 100% !important;

    display: flex !important;

    align-items: center !important;

    justify-content: space-between !important;

    gap: 25px !important;

    margin: 0 !important;

    padding: 0 0 20px !important;

    position: relative !important;

    z-index: 1 !important;
}


/* =========================================================
   30. НИЖНЯЯ ЧАСТЬ ФУТЕРА
   ========================================================= */

.footer-bottom {

    width: 100% !important;

    display: flex !important;

    flex-direction: column !important;

    gap: 7px !important;

    margin: 0 !important;

    padding: 15px 0 0 !important;

    border-top:
        1px solid rgba(255, 255, 255, 0.08) !important;

    position: relative !important;

    z-index: 1 !important;
}


/* =========================================================
   31. ЭЛЕМЕНТЫ ФУТЕРА
   ========================================================= */

.site-footer .footer-copyright,
.site-footer .footer-links,
.site-footer .footer-info {

    position: relative !important;

    z-index: 1 !important;

    margin: 0 !important;
}


/* Копирайт */

.footer-copyright p {

    margin: 0 !important;

    padding: 0 !important;

    color: #aac3e0 !important;

    font-size: 14px !important;

    line-height: 1.5 !important;
}


/* Ссылки */

.site-footer a {

    color: #aac3e0 !important;

    text-decoration: none !important;

    transition:
        color 0.25s ease,
        opacity 0.25s ease !important;
}

.site-footer a:hover {

    color: #8cc4f5 !important;

    opacity: 1 !important;
}


/* Навигация */

.footer-links {

    display: flex !important;

    align-items: center !important;

    justify-content: flex-end !important;

    gap: 20px !important;

    flex-wrap: wrap !important;
}

.footer-links a {

    font-size: 14px !important;

    line-height: 1.4 !important;
}


/* Информация */

.footer-info {

    color: #aac3e0 !important;

    font-size: 13px !important;

    line-height: 1.5 !important;
}

.footer-info span {

    color: #aac3e0 !important;
}

.footer-info a {

    overflow-wrap: break-word !important;

    word-break: normal !important;
}


/* =========================================================
   32. НОВОСТИ — НЕ МОГУТ ЗАЛЕЗАТЬ НА FOOTER
   ========================================================= */

.site-content,
.site-main,
.content-area,
.inside-article,
.entry-content {

    z-index: 1 !important;
}


/* Карточки */

.news-card,
.news-item,
.post-card,
.blog-card,
.elementor-post,
.elementor-post__card {

    position: relative !important;

    z-index: 1 !important;

    height: auto !important;

    min-height: 0 !important;

    overflow: visible !important;
}


/* Картинки */

.news-card img,
.news-item img,
.post-card img,
.blog-card img,
.elementor-post img {

    position: relative !important;

    z-index: 1 !important;
}


/* Сетки новостей */

.news-grid,
.news-list,
.posts-grid,
.blog-grid {

    height: auto !important;

    min-height: 0 !important;

    overflow: visible !important;
}


/* Elementor */

.elementor,
.elementor-section,
.elementor-container,
.elementor-widget-wrap {

    min-height: 0 !important;
}


/* =========================================================
   33. УБИРАЕМ ОПАСНЫЕ Z-INDEX У КОНТЕНТА
   ========================================================= */

.site-content [style*="z-index: 99999"],
.site-content [style*="z-index:99999"],
.site-content [style*="z-index: 999999"],
.site-content [style*="z-index:999999"],

.site-main [style*="z-index: 99999"],
.site-main [style*="z-index:99999"],
.site-main [style*="z-index: 999999"],
.site-main [style*="z-index:999999"] {

    z-index: 1 !important;
}


/* =========================================================
   34. КНОПКА «НАВЕРХ»
   ========================================================= */

#scrollToTopBtn {

    position: fixed !important;

    right: 30px !important;

    bottom: 30px !important;

    z-index: 999999 !important;

    width: 50px !important;

    height: 50px !important;

    display: flex !important;

    align-items: center !important;

    justify-content: center !important;

    margin: 0 !important;

    padding: 0 !important;

    color: #ffffff !important;

    font-size: 24px !important;

    line-height: 1 !important;

    background: #2a6bb0 !important;

    border: none !important;

    border-radius: 50% !important;

    cursor: pointer !important;

    box-shadow:
        0 4px 15px rgba(42, 107, 176, 0.4) !important;

    opacity: 0 !important;

    visibility: hidden !important;

    pointer-events: none !important;

    transform: translateY(10px) !important;

    transition:
        opacity 0.3s ease,
        visibility 0.3s ease,
        transform 0.3s ease,
        background 0.3s ease !important;
}


/*
   Когда JS добавляет is-visible —
   кнопка появляется.
*/

#scrollToTopBtn.is-visible {

    opacity: 1 !important;

    visibility: visible !important;

    pointer-events: auto !important;

    transform: translateY(0) !important;
}

#scrollToTopBtn:hover {

    background: #1a4b80 !important;

    transform: scale(1.1) !important;
}


/* =========================================================
   35. ПЛАНШЕТ
   ========================================================= */

@media (max-width: 1024px) {

    .footer-container {

        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .footer-top {

        gap: 15px !important;
    }
}


/* =========================================================
   36. ТЕЛЕФОН — АДАПТАЦИЯ ШАПКИ И СЛАЙДЕРА
   ========================================================= */

@media (max-width: 768px) {

    /* ---------- ОСНОВНАЯ СТРУКТУРА ---------- */

    body {
        min-height: 100vh !important;
        min-height: 100dvh !important;
        display: flex !important;
        flex-direction: column !important;
    }

    #page {
        min-height: 100vh !important;
        min-height: 100dvh !important;
        height: auto !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .site-content {
        height: auto !important;
        min-height: 0 !important;
        flex: 1 0 auto !important;
        overflow: visible !important;
    }


    /* =====================================================
       КОМПАКТНАЯ ШАПКА
       ===================================================== */

    #site-header {
        min-height: 44px !important;
        height: 44px !important;
        padding: 4px 0 !important;
    }

    #site-header > div {
        width: 100% !important;
        max-width: 1400px !important;
        min-height: 36px !important;
        height: 36px !important;
        padding: 0 12px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        gap: 8px !important;
    }

    #site-header > div > div:first-child {
        width: 100% !important;
        min-width: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        gap: 8px !important;
    }

    #site-header > div > div:last-child {
        display: none !important;
    }

    #site-header .logo-animate,
    #site-header .logo-animate a {
        display: inline-block !important;
        visibility: visible !important;
        opacity: 1 !important;

        max-width: calc(100vw - 70px) !important;

        font-size: 15px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        letter-spacing: 0.5px !important;

        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    #burger-menu {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        flex-shrink: 0 !important;

        width: 34px !important;
        height: 34px !important;

        padding: 2px !important;
        margin: 0 !important;

        font-size: 21px !important;
        line-height: 1 !important;
        letter-spacing: 1px !important;
    }


    /* =====================================================
       HEADER SLIDER
       ===================================================== */

    .header-slider {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;

        aspect-ratio: 16 / 9 !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: hidden !important;
    }

    .header-slider-track {
        width: 100% !important;
        height: 100% !important;
    }

    .header-slide {
        width: 100% !important;
        min-width: 100% !important;
        height: 100% !important;

        background-size: contain !important;
        background-position: center !important;
        background-repeat: no-repeat !important;

        background-color: #000000 !important;
    }

    .header-slide > div {
        max-width: calc(100% - 24px) !important;

        padding: 14px 16px !important;

        border-radius: 10px !important;
    }

    .header-slide h1 {
        margin: 0 0 5px !important;

        font-size: 24px !important;
        line-height: 1.15 !important;
        letter-spacing: 0.5px !important;
    }

    .header-slide p {
        margin: 0 !important;

        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    .header-slider-prev,
    .header-slider-next {
        width: 34px !important;
        height: 34px !important;

        font-size: 18px !important;
    }

    .header-slider-prev {
        left: 8px !important;
    }

    .header-slider-next {
        right: 8px !important;
    }


    /* =====================================================
       ОСНОВНОЙ CUSTOM SLIDER
       КАРТИНКА ПОКАЗЫВАЕТСЯ ПОЛНОСТЬЮ
       ===================================================== */

    .custom-slider-wrapper {
        width: 100% !important;
        max-width: 100% !important;

        margin: 15px 0 !important;

        border-radius: 0 !important;
    }

    .custom-slider {
        width: 100% !important;
        touch-action: pan-y !important;
    }

    .custom-slide {
        width: 100% !important;
        min-width: 100% !important;

        height: auto !important;
    }

    .custom-slide img {
        display: block !important;

        width: 100% !important;
        height: auto !important;

        max-width: 100% !important;
        max-height: none !important;

        object-fit: contain !important;
        object-position: center center !important;

        user-select: none !important;
        -webkit-user-drag: none !important;
    }


    /* =====================================================
       КНОПКИ CUSTOM SLIDER
       ===================================================== */

    .slider-prev,
    .slider-next {
        width: 36px !important;
        height: 36px !important;

        font-size: 18px !important;
    }


    /* =====================================================
       FOOTER
       ===================================================== */

    footer,
    .site-footer {
        position: relative !important;

        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;

        margin-top: auto !important;
        margin-right: 0 !important;
        margin-bottom: 0 !important;
        margin-left: 0 !important;

        padding: 25px 0 15px !important;

        flex: 0 0 auto !important;
        flex-shrink: 0 !important;

        overflow: hidden !important;
        z-index: 10 !important;
    }

    .footer-container {
        width: 100% !important;
        padding: 0 15px !important;
    }

    .footer-top {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;

        gap: 12px !important;
        padding-bottom: 15px !important;
    }

    .footer-links {
        width: 100% !important;

        display: flex !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;

        flex-wrap: wrap !important;
        gap: 15px !important;
    }

    .footer-bottom {
        gap: 6px !important;
        padding-top: 12px !important;
    }

    .footer-copyright p {
        font-size: 13px !important;
    }

    .footer-links a {
        font-size: 13px !important;
    }

    .footer-info {
        font-size: 11px !important;
        line-height: 1.45 !important;
    }

    #scrollToTopBtn {
        right: 20px !important;
        bottom: 20px !important;

        width: 44px !important;
        height: 44px !important;

        font-size: 20px !important;
    }
}


/* =========================================================
   37. МАЛЕНЬКИЕ ТЕЛЕФОНЫ
   ========================================================= */

@media (max-width: 480px) {

    /* ---------- ШАПКА ---------- */

    #site-header {
        min-height: 42px !important;
        height: 42px !important;
        padding: 3px 0 !important;
    }

    #site-header > div {
        min-height: 36px !important;
        height: 36px !important;

        padding: 0 10px !important;
    }

    #site-header > div > div:first-child {
        display: flex !important;

        width: 100% !important;

        align-items: center !important;
        justify-content: space-between !important;
    }

    #site-header > div > div:last-child {
        display: none !important;
    }

    #site-header .logo-animate,
    #site-header .logo-animate a {
        display: inline-block !important;
        visibility: visible !important;
        opacity: 1 !important;

        font-size: 14px !important;
    }

    #burger-menu {
        display: inline-flex !important;

        width: 32px !important;
        height: 32px !important;

        font-size: 20px !important;
    }


    /* ---------- СЛАЙДЕР ---------- */

    .custom-slider-wrapper {
        width: 100% !important;

        margin: 10px 0 !important;

        border-radius: 0 !important;
    }

    .custom-slide {
        height: auto !important;
    }

    .custom-slide img {
        width: 100% !important;
        height: auto !important;

        max-height: none !important;

        object-fit: contain !important;
    }

    .slider-prev,
    .slider-next {
        width: 32px !important;
        height: 32px !important;

        font-size: 16px !important;
    }
}


/* =========================================================
   38. ОЧЕНЬ МАЛЕНЬКИЕ ЭКРАНЫ
   ========================================================= */

@media (max-width: 380px) {

    .footer-container {
        padding: 0 10px !important;
    }

    .footer-copyright p {
        font-size: 11px !important;
    }

    .footer-links {
        gap: 10px !important;
    }

    .footer-links a {
        font-size: 11px !important;
    }

    .footer-info {
        font-size: 9px !important;
        line-height: 1.4 !important;
    }

    #site-header .logo-animate,
    #site-header .logo-animate a {
        font-size: 13px !important;
    }
}


/* =========================================================
   39. АЛЬБОМНАЯ ОРИЕНТАЦИЯ ТЕЛЕФОНА
   ========================================================= */

@media (max-width: 850px) and (orientation: landscape) {

    footer,
    .site-footer {
        position: relative !important;
        margin-top: auto !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        z-index: 10 !important;
    }

    .custom-slide img {
        height: auto !important;
        max-height: 70vh !important;
        object-fit: contain !important;
    }
}


/* =========================================================
   40. ДОСТУПНОСТЬ
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
/* =========================================================
   41. СТРАНИЦА ПОИСКА — ПОЛНОСТЬЮ УБИРАЕМ КАРТИНКИ
   ========================================================= */

/* Убираем все изображения из результатов поиска */

.search img,
.search-results img {
    display: none !important;
}


/* Убираем контейнеры изображений */

.search .post-image,
.search .featured-image,
.search .post-image-above-header,
.search .post-image-below-header,

.search-results .post-image,
.search-results .featured-image,
.search-results .post-image-above-header,
.search-results .post-image-below-header {
    display: none !important;
}


/* Убираем миниатюры WordPress */

.search .wp-post-image,
.search-results .wp-post-image {
    display: none !important;
}


/* На случай, если картинка находится внутри статьи */

.search .inside-article img,
.search-results .inside-article img,

.search .entry-content img,
.search-results .entry-content img {
    display: none !important;
}


/* Убираем пустые блоки, которые могли остаться после картинки */

.search .post-image,
.search .featured-image,
.search-results .post-image,
.search-results .featured-image {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
}
