/* === Utility: Cookie Banner + Scroll-to-top + Accessibility === */
/**
 * Утилитарные компоненты: cookie-баннер, кнопка "Наверх",
 * а также глобальный блок prefers-reduced-motion (WCAG 2.3.3).
 * Из inc/cookie-banner.php, inc/scroll-to-top.php
 *
 * @package SchoolKarjera
 */


/* ================================================================
 * Cookie-баннер (из inc/cookie-banner.php)
 * ================================================================ */

.sk-cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: var(--z-modal);
    background: var(--sk-white);
    box-shadow: 0 -4px 20px rgba(0,0,0,0.1);
    border-top: 1px solid rgba(0,0,0,0.06);
    padding: 20px 24px;
    transform: translateY(100%);
    transition: transform 0.4s ease;
}

.sk-cookie-banner--visible {
    transform: translateY(0);
}

.sk-cookie-banner__inner {
    max-width: var(--sk-container);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.sk-cookie-banner__text {
    font-size: 0.875rem;
    color: var(--sk-muted);
    margin: 0;
    line-height: 1.6;
}

.sk-cookie-banner__text a {
    color: var(--sk-primary);
    text-decoration: underline;
}

.sk-cookie-banner__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.sk-cookie-banner__accept {
    padding: 10px 24px;
    font-size: 0.875rem;
}

.sk-cookie-banner__decline {
    padding: 10px 16px;
    font-size: 0.8125rem;
    background: none;
    border: none;
    color: var(--sk-muted);
    cursor: pointer;
    font-family: var(--sk-font-body);
    transition: color var(--sk-transition);
}

.sk-cookie-banner__decline:hover {
    color: var(--sk-text);
}

@media (max-width: 640px) {
    .sk-cookie-banner__inner {
        flex-direction: column;
        text-align: center;
    }
}


/* ================================================================
 * Кнопка "Наверх" (из inc/scroll-to-top.php)
 * ================================================================ */

.sk-scroll-top {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: var(--z-sticky);
    width: 48px;
    height: 48px;
    background: var(--sk-primary);
    color: var(--sk-white);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--sk-shadow-md);
    opacity: 0;
    transform: translateY(16px);
    transition: all var(--sk-transition);
}

.sk-scroll-top--visible {
    opacity: 1;
    transform: translateY(0);
}

.sk-scroll-top:hover {
    background: var(--sk-primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--sk-shadow-lg);
}


/* ================================================================
 * CSS Scroll-Driven Animations (Progressive Enhancement)
 *
 * Браузеры с поддержкой animation-timeline используют нативные CSS
 * анимации вместо JS IntersectionObserver. Остальные — JS fallback.
 * ================================================================ */

@supports (animation-timeline: view()) {
    .sk-reveal {
        animation: sk-reveal-in linear both;
        animation-timeline: view();
        animation-range: entry 0% entry 100%;
    }

    /* Класс sk-visible перебивает animation-fill-mode: both */
    .sk-reveal.sk-visible {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }

    @keyframes sk-reveal-in {
        from {
            opacity: 0;
            transform: translateY(30px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}


/* ================================================================
 * Accessibility: prefers-reduced-motion
 *
 * Отключает/минимизирует ВСЕ анимации и transitions с движением
 * для пользователей, предпочитающих уменьшенное движение.
 * WCAG 2.3.3 Animation from Interactions (AAA).
 *
 * Примечание: chatbot.css имеет собственный reduced-motion блок.
 * ================================================================ */

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

    /* -- Универсальный fallback -- */
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    /* -- Hero: bounce scroll indicator -- */
    .sk-hero__scroll {
        animation: none !important;
    }

    /* -- Hero: crossfade карусели (мгновенная смена) -- */
    .sk-hero__slide {
        transition: none !important;
    }

    /* -- Hero: точки карусели -- */
    .sk-hero__dot {
        transition: none !important;
    }
    .sk-hero__dot:hover {
        transform: none !important;
    }

    /* -- Header: dropdown -- */
    .sk-header__dropdown {
        transition: none !important;
    }

    /* -- Header: burger -- */
    .sk-header__burger-line {
        transition: none !important;
    }

    /* -- Mobile nav: slide -- */
    .sk-mobile-nav {
        transition: none !important;
    }

    /* -- Карточки: hover translateY (все компоненты) -- */
    .sk-programs__card:hover,
    .sk-advantages__card:hover,
    .sk-testimonials__card:hover,
    .sk-news__card:hover,
    .sk-contact-card:hover,
    .sk-extras__club:hover,
    .sk-documents__card:hover,
    .sk-staff__card:hover,
    .sk-footer-info__social:hover,
    .sk-scroll-top:hover {
        transform: none !important;
    }

    .sk-programs__card,
    .sk-advantages__card,
    .sk-testimonials__card,
    .sk-news__card,
    .sk-contact-card,
    .sk-extras__club,
    .sk-documents__card,
    .sk-staff__card,
    .sk-footer-info__social,
    .sk-scroll-top {
        transition: none !important;
    }

    /* -- Картинки: zoom при hover (все компоненты) -- */
    .sk-programs__image img,
    .sk-news__image img,
    .sk-gallery__item img,
    .sk-extras__club-image img,
    .sk-staff__photo img {
        transition: none !important;
    }

    .sk-programs__card:hover .sk-programs__image img,
    .sk-news__card:hover .sk-news__image img,
    .sk-gallery__item:hover img,
    .sk-extras__club:hover .sk-extras__club-image img,
    .sk-staff__card:hover .sk-staff__photo img {
        transform: none !important;
    }

    /* -- Галерея: overlay fade -- */
    .sk-gallery__overlay {
        transition: none !important;
    }

    /* -- Новости: стрелка-ссылка -- */
    .sk-news__link {
        transition: none !important;
    }

    /* -- Footer: ссылки с padding-left смещением -- */
    .sk-footer-info__links a {
        transition: none !important;
    }
    .sk-footer-info__links a:hover {
        padding-left: 0 !important;
    }

    /* -- FAQ: аккордеон и иконка -- */
    .sk-faq__answer {
        transition: none !important;
    }
    .sk-faq__icon {
        transition: none !important;
    }

    /* -- Cookie-баннер: slide up -- */
    .sk-cookie-banner {
        transition: none !important;
    }

    /* -- Scroll-to-top: появление -- */
    .sk-scroll-top {
        transition: none !important;
    }

    /* -- Header: общий transition -- */
    .sk-header {
        transition: none !important;
    }
}
