/* --- Global Styles & Variables --- */
:root {
    --gold-color: #D4AF37;
    --dark-slate: #2D3748;
    --light-slate: #4A5568;
    --background-light: #F8F7F4;
    --background-white: #FFFFFF;
    --text-color: #2D3748;
    --text-light: #718096;
}

body {
    font-family: 'Poppins', sans-serif;
    background-color: var(--background-light);
    color: var(--text-color);
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}

html {
    scroll-behavior: smooth;
}

.body-no-scroll {
    overflow: hidden;
}


/* --- Page & Scroll Animations --- */
body.fade-out {
    opacity: 0;
}

[data-scroll-anim] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1.2s ease-out, transform 3s ease-out;
}

[data-scroll-anim].is-visible {
    opacity: 1;
    transform: translateY(0);
}
[data-scroll-anim="slide-in-left"] {
    transform: translateX(-50px);
}
[data-scroll-anim="slide-in-right"] {
    transform: translateX(50px);
}

[data-scroll-anim="slide-in-left"].is-visible,
[data-scroll-anim="slide-in-right"].is-visible {
    transform: translateX(0);
}


/* --- Utility Classes --- */
.gold-accent { color: var(--gold-color); }
.gold-bg { background-color: var(--gold-color); }
.gold-bg:hover { background-color: #c09d31; }

.section-title::after {
    content: '';
    display: block;
    width: 80px;
    height: 4px;
    background-color: var(--gold-color);
    margin: 1rem auto 0;
    border-radius: 2px;
}
.text-center .section-title::after { margin-left: auto; margin-right: auto; }
.md\:text-left .section-title::after { margin-left: 0; margin-right: auto; }

.page-title-bg {
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}


/* --- Header & Navigation --- */
header nav a.active {
    color: var(--gold-color);
    font-weight: 700;
}

#language-switcher { position: relative; }

/* --- Text Gradient for Logo --- */
.text-gradient {
    /* Створення градієнтного фону */
    background: linear-gradient(to right, #9333ea, #3b82f6); /* Фіолетовий -> Синій */

    /* Обрізка фону за формою тексту */
    -webkit-background-clip: text;
    background-clip: text;
    
    /* Робимо сам текст прозорим, щоб було видно фон */
    -webkit-text-fill-color: transparent;
    color: transparent; /* Для сумісності */
}

/* --- Hero Section (All Pages) --- */
.hero-bg {
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}
.index-hero-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1541888946425-d81bb19240f5?auto=format&fit=crop&w=1920&q=80');
}
.onas-hero-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.unsplash.com/photo-1581092446347-a84a631622f9?auto=format&fit=crop&w=1920&q=80');
}
.sluzby-hero-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.unsplash.com/photo-1512414573931-a8a47019a1a8?auto=format&fit=crop&w=1920&q=80');
}
.reference-hero-bg {
     background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.unsplash.com/photo-1512917774080-9991f1c4c750?auto=format&fit=crop&w=1920&q=80');
}


/* --- Index Page: Services & Projects Carousel --- */
.home-service-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.home-service-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}
.home-projects-carousel .swiper-slide {
    transition: transform 0.5s ease, opacity 0.5s ease;
    transform: scale(0.7);
    opacity: 0.5;
    height: 400px;
    width: 60%;
}
.home-projects-carousel .swiper-slide-active {
    transform: scale(1);
    opacity: 1;
}


/* --- Partners Section --- */
.logo-scroller {
    width: 100%;
    overflow: hidden;
    padding: 2rem 0;
    -webkit-mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
    mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
}
.logo-scroller-inner {
    display: flex;
    width: fit-content;
    animation: scroll 30s linear infinite;
}
.logo-scroller-inner img {
    height: 60px;
    margin: 0 40px;
    filter: grayscale(0%);
    opacity: 0.6;
    transition: filter 0.3s, opacity 0.3s;
}
.logo-scroller-inner:hover {
    animation-play-state: paused;
}
.logo-scroller-inner img:hover {
    filter: grayscale(0%);
    opacity: 1;
}
@keyframes scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}


/* --- O Nas Page --- */
.onas-hero-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.pexels.com/photos/209315/pexels-photo-209315.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2');
    background-size: cover;
    background-position: center;
}

.goal-card, .team-card {
    background-color: var(--background-white);
    padding: 2rem;
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-align: center;
}
.goal-card:hover, .team-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.goal-icon {
    background-color: rgba(212, 175, 55, 0.1);
    color: var(--gold-color);
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    flex-shrink: 0;
}
.goal-icon svg { width: 32px; height: 32px; }

.team-photo-container {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    margin: 0 auto 1rem;
    border: 4px solid var(--gold-color);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f0e9d6;
}
.certificate-item {
    transition: transform 0.3s ease;
}
.certificate-item:hover {
    transform: scale(1.05);
}


/* --- Sluzby Page --- */
.sluzby-hero-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.pexels.com/photos/157811/pexels-photo-157811.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2');
}

.service-card-v2 {
    background-color: var(--background-white);
    padding: 2.5rem 2rem;
    border-radius: 0.5rem;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border-bottom: 4px solid var(--gold-color);
}

.service-card-v2:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

.service-card-v2 .service-icon {
    margin: 0 auto 1.5rem auto;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(212, 175, 55, 0.1);
    color: var(--gold-color);
}

.service-card-v2 .service-icon svg {
    width: 32px;
    height: 32px;
}

.sluzby-cta-bg {
     background-image: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url('https://images.pexels.com/photos/2219024/pexels-photo-2219024.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2');
}


/* --- Reference Page --- */
.project-carousel {
    width: 100%;
    height: 700px;
    border-radius: 0.5rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}
.swiper-slide {
    text-align: center;
    font-size: 18px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-position: center;
    color: white;
}
.slide-overlay {
    background: rgba(0, 0, 0, 0.6);
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 2rem;
}
.open-modal-btn {
    border: 2px solid white;
    padding: 0.75rem 2rem;
    border-radius: 9999px;
    font-weight: 600;
    transition: all 0.3s ease;
}
.open-modal-btn:hover {
    background-color: white;
    color: #2D3748;
}
.swiper-button-next, .swiper-button-prev {
    color: var(--gold-color) !important;
}
.swiper-pagination-bullet-active {
    background: var(--gold-color) !important;
}
/* Modal & Gallery Styles */
.modal-overlay {
    background-color: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(5px);
}
.modal-window {
    max-height: 90vh;
}
.gallery-section h3 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--gold-color);
}
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 1rem;
}
.gallery-grid img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: 0.375rem;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.gallery-grid img:hover {
    transform: scale(1.05);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
}
/* Lightbox Styles */
#lightbox {
    transition: opacity 0.3s ease;
}
#lightbox-img {
    border-radius: 0.5rem;
    box-shadow: 0 0 40px rgba(255, 255, 255, 0.2);
}
#lightbox-close {
    cursor: pointer;
    transition: transform 0.2s ease;
}
#lightbox-close:hover {
    transform: scale(1.2);
}


/* --- Kontakt Page --- */
.kontakt-hero-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.pexels.com/photos/3184465/pexels-photo-3184465.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2');
    background-size: cover;
    background-position: center;
}

.contact-info-block {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    height: 90px;
}

.contact-icon-wrapper {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(212, 175, 55, 0.1); /* Light gold */
    color: var(--gold-color);
}

.management-card {
    background-color: var(--background-light);
    padding: 2rem;
    text-align: center;
    border-radius: 0.5rem;
    border-top: 4px solid var(--gold-color);
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.management-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

/* --- Footer --- */
.footer-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
    align-items: center;
    text-align: center;
}
@media (min-width: 768px) {
    .footer-grid {
        grid-template-columns: 2fr 1fr 1fr;
        text-align: left;
    }
}
.social-icons {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
}
@media (min-width: 768px) {
    .social-icons {
        justify-content: flex-end;
    }
}
/* --- New Footer Styles --- */
.footer-social-icon {
    background-color: #4A5568;
    border-radius: 9999px;
    width: 2.5rem; /* 40px */
    height: 2.5rem; /* 40px */
    display: flex;
    align-items: center;
    justify-content: center;
    color: #4A5568; /* text-gray-600 */
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    transition: all 0.2s ease-in-out;
}
.footer-social-icon:hover {
    background-color: #f3f4f6; /* bg-gray-100 */
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

@media (max-width: 768px) {
    .page-title-bg,
    .hero-bg {
        background-attachment: scroll;
    }
}


/* --- To Top Button --- */
#to-top-btn {
    display: none;
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 50;
}

/* --- Cookie Consent Customization --- */
.cc-window {
    font-family: 'Poppins', sans-serif !important;
}
.cc-btn {
    font-weight: 600 !important;
}
/* --- Force Hide Cookie Revoke Button --- */
.cc-revoke {
    display: none !important;
}

/* --- Legal Pages Hero BGs --- */
.cookies-hero-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.pexels.com/photos/327540/pexels-photo-327540.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2');
}

.terms-hero-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.pexels.com/photos/261621/pexels-photo-261621.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2');
}

/* --- Styling for Legal Content Pages --- */
.legal-content h2, .legal-content h3 {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700; /* font-bold */
    color: var(--dark-slate);
    margin-top: 2.5rem; /* mt-10 */
    margin-bottom: 1rem; /* mb-4 */
    padding-bottom: 0.5rem; /* pb-2 */
    border-bottom: 2px solid var(--gold-color-light);
}

/* Прибираємо верхній відступ у першого заголовка */
.legal-content h2:first-of-type, .legal-content h3:first-of-type {
    margin-top: 0;
}

.legal-content p {
    line-height: 1.75; /* leading-relaxed */
    color: #4A5568; /* text-gray-700 */
    margin-bottom: 1.5rem; /* mb-6 */
}

.legal-content ul {
    list-style-type: disc;
    list-style-position: inside;
    margin-left: 1rem;
    margin-bottom: 1.5rem;
    color: #4A5568; /* text-gray-700 */
}

.legal-content li {
    margin-bottom: 0.5rem;
    line-height: 1.75;
}