/* =====================================================
   ROOT
===================================================== */

:root {

    --primary: #12304c;
    --primary-light: #328ccc;

    --bg-soft: #f8fafc;

    --border: #d9e7f2;

    --text: #243447;
    --muted: #607286;

    --radius-lg: 32px;
    --radius-md: 24px;

    --shadow-soft:
        0 10px 35px rgba(15, 23, 42, 0.08);

    --shadow-hover:
        0 18px 50px rgba(15, 23, 42, 0.14);

}

/* =====================================================
   BASE
===================================================== */

body {

    margin: 0;

    background: #fff;

    color: var(--text);

    font-family: 'Inter', sans-serif;

    line-height: 1.8;

    overflow-x: hidden;

}

h1,
h2,
h3,
h4 {

    font-weight: 700;

    letter-spacing: -0.03em;

    color: var(--primary);

}

a {

    text-decoration: none;

    color: inherit;

}

.section {

    padding: 6rem 0;

}

/* =====================================================
   HERO
===================================================== */

.hero {

    padding: 0.5rem 0 1rem;

    background:
        linear-gradient(180deg,
            #ffffff 0%,
            var(--bg-soft) 100%);

    border-bottom: 1px solid rgba(0, 0, 0, 0.04);

    position: relative;

    overflow: hidden;

}

.hero::before {

    content: "";

    position: absolute;

    top: -180px;

    right: -180px;

    width: 420px;

    height: 420px;

    background:
        radial-gradient(circle,
            rgba(50, 140, 204, 0.10) 0%,
            rgba(50, 140, 204, 0) 70%);

}

.hero-logo {

    width: 100%;

    max-width: 980px;

    height: auto;

    display: inline-block;

    object-fit: contain;

}

/* =====================================================
   CARD SYSTEM
===================================================== */

.card-modern {

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

    border: 1px solid rgba(0, 0, 0, 0.05);

    border-radius: var(--radius-lg);

    padding: 2.5rem;

    box-shadow: var(--shadow-soft);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;

    height: 100%;

    backdrop-filter: blur(12px);

}

.card-modern:hover {

    transform: translateY(-6px);

    box-shadow: var(--shadow-hover);

}

/* =====================================================
   FEATURE CARDS
===================================================== */

.feature-card {

    composes: card-modern;

}

.feature-icon {

    width: 76px;

    height: 76px;

    border-radius: 24px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 1.8rem;

    margin-bottom: 1.5rem;

}

/* =====================================================
   FESTIVAL
===================================================== */

.festival-box {

    background:
        linear-gradient(180deg,
            rgba(255, 255, 255, 0.96) 0%,
            rgba(248, 250, 252, 0.96) 100%);

    border-radius: 36px;

    padding: 3rem;

    border: 1px solid rgba(0, 0, 0, 0.05);

    box-shadow: var(--shadow-soft);

}

.festival-badge {

    display: inline-flex;

    align-items: center;

    padding: 0.5rem 1rem;

    border-radius: 999px;

    background: rgba(13, 110, 253, 0.08);

    color: #0d6efd;

    font-size: 0.82rem;

    font-weight: 700;

    letter-spacing: 0.08em;

    text-transform: uppercase;

}

/* =====================================================
   PUBLISHER GRID
===================================================== */

.publisher-grid {

    display: grid;

    grid-template-columns:
        repeat(auto-fit, minmax(260px, 1fr));

    gap: 1rem;

}

.publisher-grid div {

    background: #fff;

    border-radius: 18px;

    padding: 1rem 1.2rem;

    border: 1px solid rgba(0, 0, 0, 0.05);

    box-shadow:
        0 4px 16px rgba(15, 23, 42, 0.05);

    transition: 0.2s ease;

}

.publisher-grid div:hover {

    transform: translateY(-3px);

}

/* =====================================================
   QUICK BOX
===================================================== */

.quick-box {

    background:
        linear-gradient(180deg,
            #ffffff 0%,
            var(--bg-soft) 100%);

    border-radius: var(--radius-lg);

    padding: 2.5rem;

    border: 1px solid rgba(0, 0, 0, 0.05);

    box-shadow: var(--shadow-soft);

}

/* =====================================================
   GALLERY
===================================================== */

.gallery-slide {

    min-width: calc(25% - 1rem);

    overflow: hidden;

    border-radius: 28px;

    box-shadow:
        0 8px 24px rgba(0, 0, 0, 0.08);

}

.gallery-slide img {

    width: 100%;

    height: 280px;

    object-fit: cover;

    transition: transform 0.5s ease;

}

.gallery-slide:hover img {

    transform: scale(1.04);

}

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

.footer {

    background:
        linear-gradient(180deg,
            #1e293b 0%,
            #0f172a 100%);

    color: rgba(255, 255, 255, 0.75);

    border-top: 4px solid #0d6efd;

}

/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 991.98px) {

    .section {

        padding: 4rem 0;

    }

    .festival-box,
    .quick-box,
    .card-modern {

        padding: 2rem;

        border-radius: 24px;

    }

    .gallery-slide {

        min-width: calc(50% - 1rem);

    }

}

@media (max-width: 576px) {

    .gallery-slide {

        min-width: 100%;

    }

    .gallery-slide img {

        height: 220px;

    }

    .hero {

        padding: 0.25rem 0 0.5rem;

    }

}