/* =============================================
   
   Mobile-first | Emerald/Gold Theme | Animated Gradient

   ============================================= */

:root {
    --emerald: #10b981;

    --gold: #fbbf24;

    --dark-bg: #0a0a0a;

    --card-bg: #111113;

    --text: #f1f1f1;

    --text-muted: #a3a3a3;

    --input-bg: #1f1f23;

    --input-text: #f1f1f1;

}

/* Base Styles */

body {

    font-family: 'Roboto', system-ui, sans-serif;

    background-color: var(--dark-bg);

    color: var(--text);

    line-height: 1.7;

    margin: 0;

    padding: 0;

    overflow-x: hidden;

    &::before {

        content: '';

        position: fixed;

        inset: 0;

        background: linear-gradient(135deg,

                #0a0a0a 0%,
                #1a1a2e 30%,
                #0f172a 60%,
                #1e2937 100%);

        background-size: 400% 400%;

        animation: gradientShift 30s ease infinite;

        z-index: -1;

        opacity: 0.97;

    }

}

h1,
h2,
h3 {

    font-family: 'Lora', serif;

    font-weight: 700;

}

/* Smooth scrolling */

html {

    scroll-behavior: smooth;

}

/* Header */

header {

    position: sticky;

    top: 0;

    background: rgba(10, 10, 10, 0.95);

    backdrop-filter: blur(12px);

    padding: 1.2rem 5%;

    display: flex;

    align-items: center;

    justify-content: space-between;

    z-index: 1000;

    border-bottom: 1px solid rgba(16, 185, 129, 0.2);

    img {

        height: 36px;

    }

    span {

        font-size: 1.04rem;

        font-weight: 700;

        color: var(--emerald);

    }

}

/* Theme Toggle */

.theme-toggle {

    background: none;

    border: none;

    font-size: 1.8rem;

    cursor: pointer;

    color: var(--emerald);

}

/* Hero Section */

.hero {

    min-height: 100vh;

    display: flex;

    align-items: center;

    text-align: center;

    padding: 0 5%;

    .hero-content {

        max-width: 850px;

        margin: 0 auto;

        .hero-logo {

            height: 130px;

            max-width: 100%;

            margin-bottom: 2rem;

            filter: drop-shadow(0 0 35px rgba(16, 185, 129, 0.5));

        }

        h1 {

            font-size: 2.6rem;

            line-height: 1.1;

            margin-bottom: 1rem;

        }

        .tagline {

            font-size: 1.65rem;

            color: var(--emerald);

            margin-bottom: 1.5rem;

        }

        .description {

            font-size: 1.25rem;

            color: var(--text-muted);

            max-width: 650px;

            margin: 0 auto 2.8rem;

        }

    }

}

/* Buttons */

.btn-primary {

    background: var(--emerald);

    color: white;

    padding: 1.1rem 2.8rem;

    border-radius: 9999px;

    font-weight: 600;

    font-size: 1.15rem;

    border: none;

    cursor: pointer;

    transition: all 0.4s ease;

    &:hover {

        background: #059669;

        transform: translateY(-5px);

        box-shadow: 0 15px 30px rgba(16, 185, 129, 0.4);

    }

}

/* Cards & Sections */

.card,

.content-container,

.section {

    padding: 3.5rem 5%;

    background: var(--card-bg);

    margin: 2.5rem 5%;

    border-radius: 24px;

    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);

}

.certificate img {

    max-width: 100%;

    border-radius: 16px;

    margin-top: 1.5rem;

}

/* Filter Buttons */

.filterButtons {

    display: flex;

    flex-wrap: wrap;

    gap: 14px;

    justify-content: center;

    margin: 2.5rem 0;

    button {

        background: #1f1f23;

        color: white;

        border: 2px solid var(--emerald);

        padding: 0.9rem 1.8rem;

        border-radius: 9999px;

        cursor: pointer;

        font-size: 1.05rem;

        transition: all 0.3s;

        &:hover,
        &.active {

            background: var(--emerald);

            color: white;

            transform: translateY(-3px);

        }

    }

}

/* Modal */

dialog.modal {

    border: none;

    border-radius: 24px;

    padding: 0;

    max-width: 92%;

    width: 920px;

    background: var(--card-bg);

    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.7);

    .modal-content {

        padding: 2.5rem;

        position: relative;

        color: var(--text);

        .close-btn {

            position: absolute;

            top: 20px;

            right: 25px;

            background: none;

            border: none;

            font-size: 2.2rem;

            cursor: pointer;

            color: var(--emerald);

        }

        /* Nested Contact Form Styling */

        .contact-form {

            display: flex;

            flex-direction: column;

            gap: 12px;

            margin-top: 20px;
        
            input,
            textarea {

                padding: 12px;

                border: 1px solid #444;

                border-radius: 8px;

                font-size: 1rem;

                background-color: var(--input-bg);

                color: var(--input-text);

                width: 100%;

        
                &:focus {

                    outline: none;

                    border-color: var(--emerald);

                    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);

                }

            }
        
            button {

                margin-top: 10px;

            }

        }         

    }

}

/* Skip Link - Accessibility */

.skip-link {

    position: absolute;

    left: -9999px;

    top: auto;

    width: 1px;

    height: 1px;

    overflow: hidden;

    z-index: -99;

    background: #000;

    color: #fff;

    padding: 0.5rem 1rem;

    text-decoration: none;

    font-family: var(--body-font);

    font-size: 1rem;

    /* Focus state - when user tabs to it */

    &:focus {

        left: 1rem;

        top: 1rem;

        width: auto;

        height: auto;

        overflow: visible;

        z-index: 1000;

        border: 2px solid #fff;

        border-radius: 4px;

        box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.3);

    }
    
}

.form-note {

    font-size: 0.9rem;

    color: #666;

    margin-top: 15px;

    text-align: center;

}

/* Footer */

footer {

    background: #0a0a0a;

    padding: 4rem 5% 2rem;

    text-align: center;

    color: var(--text-muted);

    a {

        color: var(--emerald);

        text-decoration: none;

    }

        img {

            height: 28px;

            margin: 0 10px;

        }

}

/* Dark Mode */

body.dark-mode {

    --dark-bg: #f8fafc;

    --card-bg: #ffffff;

    --text: #0f172a;

    --text-muted: #475569;

    &::before {
        
        opacity: 0.07;
        
    }

    .modal-content,
    .contact-form input,
    .contact-form textarea {

        color: #0f172a;

    }
    
}

/* =============================================
   RESPONSIVE DESIGN
   ============================================= */

/* Small Screens - Mobile */

@media (max-width: 480px) {

    h1 {

        font-size: 2.4rem;

    }

    .hero .hero-content .hero-logo {

        height: 100px;

    }

    .tagline {

        font-size: 1.4rem;

    }

}

/* Medium Screens - Tablets */

@media (min-width: 481px) and (max-width: 1024px) {

    h1 {

        font-size: 3.3rem;

    }

    .hero .hero-content .hero-logo {

        height: 150px;

    }

}

/* Large Screens - Desktop */

@media (min-width: 1025px) {

    h1 {

        font-size: 4.2rem;

    }

    .hero .hero-content {

        max-width: 1100px;

    }

}

/* Animated Background */
@keyframes gradientShift {

    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}