@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Poppins:wght@300;400;500;600&display=swap");
:root{
  --gold:#d8b46a;
  --gold-dark:#b88a33;
}
/* =========================
   FESTIVAL SECTION
========================= */
.festival-section{
    padding:80px 0;
    background:linear-gradient(180deg,#fff 0%,#fcfaf6 100%);
}
.festival-container{
    width:min(1280px,calc(100% - 40px));
    margin:auto;
}
/* Heading */
.festival-heading{
    text-align:center;
    max-width:720px;
    margin:0 auto 45px;
}
.festival-heading span{
    display:inline-block;
    color:var(--gold-dark);
    font:600 11px "Poppins",sans-serif;
    letter-spacing:3px;
    text-transform:uppercase;
    margin-bottom:12px;
}
.festival-heading h2{
    margin:0;
    color:#222;
    font:500 clamp(34px,5vw,56px) "Cinzel",serif;
}
.festival-heading p{
    margin-top:18px;
    color:#666;
    font:400 15px/1.8 "Poppins",sans-serif;
}
/* Cards */
.festival-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}
.festival-card{
    background:#fff;
    border:1px solid rgba(216,180,106,.25);
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 12px 35px rgba(0,0,0,.06);
    transition:.35s ease;
}
.festival-card:hover{
    transform:translateY(-8px);
    box-shadow:0 22px 45px rgba(184,138,51,.18);
}
.festival-card.featured{
    border:2px solid var(--gold);
}
.festival-image{
    height:220px;
    overflow:hidden;
}
.festival-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s ease;
}
.festival-card:hover .festival-image img{
    transform:scale(1.08);
}
.festival-content{
    padding:24px;
}
.festival-content h3{
    margin:0 0 12px;
    color:#222;
    font:500 24px "Cinzel",serif;
}
.festival-content p{
    margin:0;
    color:#666;
    font:400 14px/1.7 "Poppins",sans-serif;
}
/* Tablet */
@media(max-width:992px){
    .festival-grid{
        grid-template-columns:repeat(2,1fr);
    }
}
/* Mobile */
@media(max-width:576px){
    .festival-section{
        padding:60px 0;
    }
    .festival-container{
        width:calc(100% - 24px);
    }
    .festival-grid{
        grid-template-columns:1fr;
    }
    .festival-image{
        height:200px;
    }
    .festival-content{
        padding:20px;
    }
    .festival-content h3{
        font-size:22px;
    }
}