/* Hero Section */
.hero{
    position: relative;
    height: 100vh;
    background-image: url("./images/india.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    display: flex;
    justify-content: center;
    align-items: center;
}

.overlay{
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    background: rgba(0,0,0,0.5);
}

.hero-content{
    position: relative;
    z-index: 1;
    max-width: 800px;
}
.btn-india-orange{
    background-color: #FF9933;
    color: white;
}

.btn-india-orange:hover{
    background-color: #e68926;
    color: white;
}

.btn-india-green{
    background-color: #138808;
    color: white;
}

.btn-india-green:hover{
    background-color: #0f6e07;
    color: white;
}
.card{
    border: none;
    border-radius: 15px;
    overflow: hidden;
}
.card-img-top{
    height: 250px;
    object-fit: cover;
}
.card{
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover{
    transform: translateY(-8px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.2);
}
/* Scroll animation */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}
/* Back to top button */
#backToTop {
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    font-size: 1.3rem;
    display: none;
    z-index: 999;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.india-map-wrapper {
    max-width: 500px;
}

.india-map {
    width: 100%;
    height: auto;
}

.india-map-wrapper {
    max-width: 500px;
}

.india-map {
    width: 100%;
    height: auto;
}

.india-map path {
    fill: #FF9933;
    stroke: #ffffff;
    stroke-width: 0.5;
    cursor: pointer;
    transition: transform 0.25s ease, filter 0.25s ease, fill 0.2s ease;
    transform-box: fill-box;
    transform-origin: center;
}


/* Hover: pop out and lift, for both states and UTs */
.india-map path:hover {
    transform: scale(1.15);
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.4));
}

.india-map path:hover {
    fill: #138808;
}

/* ===========================================
            HERITAGE PAGE
=========================================== */

.heritage-hero{
    position: relative;
    height: 70vh;
    background-image: url("./images/heritage-banner.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    display: flex;
    justify-content: center;
    align-items: center;
}

.heritage-hero .overlay{
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
}

/* Cards */

.card{
    border: none;
    border-radius: 15px;
    overflow: hidden;
    transition: .3s ease;
}

.card:hover{
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(0,0,0,.2);
}

.card img{
    height:230px;
    object-fit:cover;
}

/* Buttons */

.btn-india-orange{
    background:#ff9933;
    color:white;
    border:none;
}

.btn-india-orange:hover{
    background:#e67e22;
    color:white;
}

/* Heritage Facts */

.display-5{
    font-weight:bold;
}

/* Quote */

blockquote p{
    font-style:italic;
}

/* Footer */

footer h4{
    font-weight:bold;
}


/* Festival cards */
.festival-card {
    position: relative;
    min-height: 480px;
    border-radius: 24px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
}

.festival-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
}

.festival-content {
    position: relative;
    z-index: 1;
    max-width: 650px;
    text-align: center;
    padding: 2rem;
}

.festival-emoji {
    font-size: 3.5rem;
    display: inline-block;
    margin-bottom: 0.5rem;
}

.festival-date {
    font-size: 0.95rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 600;
}

.festival-divider {
    width: 70px;
    border: none;
    border-top: 3px solid;
    margin: 1rem auto 1.25rem;
    opacity: 1;
}

.festival-desc {
    font-size: 1.1rem;
    line-height: 1.7;
}

/* Accent colors per festival */
.festival-accent-diwali   { color: #ff8c00; border-color: #ff8c00; }
.festival-accent-holi     { color: #ff4da6; border-color: #ff4da6; }
.festival-accent-durga    { color: #e53935; border-color: #e53935; }
.festival-accent-eid      { color: #4caf50; border-color: #4caf50; }
.festival-accent-christmas{ color: #ef5350; border-color: #ef5350; }
.festival-accent-nanak    { color: #ffb74d; border-color: #ffb74d; }
.festival-accent-baisakhi { color: #ffd54f; border-color: #ffd54f; }
.festival-accent-ganesh   { color: #ff7043; border-color: #ff7043; }
.festival-accent-raksha   { color: #f06292; border-color: #f06292; }

/* Masonry gallery */
.masonry-grid {
    column-count: 3;
    column-gap: 1rem;
}

.masonry-item {
    break-inside: avoid;
    margin-bottom: 1rem;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.masonry-item img {
    width: 100%;
    display: block;
    cursor: pointer;
    transition: transform 0.3s ease;
}

.masonry-item img:hover {
    transform: scale(1.04);
}

@media (max-width: 768px) {
    .masonry-grid {
        column-count: 2;
    }
}

@media (max-width: 480px) {
    .masonry-grid {
        column-count: 1;
    }
}

/* Lightbox */
.lightbox-close {
    position: absolute;
    top: -40px;
    right: 0;
}
/* Contact page */
.contact-info-card {
    background: #1a1a1a;
    color: white;
    border-radius: 20px;
    padding: 2.5rem;
    box-shadow: 0 15px 35px rgba(0,0,0,0.2);
}

.contact-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.contact-icon {
    font-size: 1.5rem;
    flex-shrink: 0;
}

.contact-item p {
    color: #ccc;
}

.social-links {
    display: flex;
    gap: 0.75rem;
}

.social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: #FF9933;
    font-size: 1.2rem;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease;
}

.social-icon:hover {
    background: #138808;
    transform: translateY(-4px);
}

.map-wrapper {
    min-height: 400px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.2);
}
.contact-form .form-control {
    border-radius: 10px;
    padding: 0.7rem 1rem;
}

.contact-form .form-control:focus {
    border-color: #FF9933;
    box-shadow: 0 0 0 0.2rem rgba(255, 153, 51, 0.25);
}