/* ==========================================================
   Bailey's Grove Baptist Church Website
   Version 2
========================================================== */


/* =========================
RESET
========================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

:root{

    --blue:#173A63;
    --gold:#B38B59;
    --dark:#222;
    --white:#fff;
    --light:#f5f5f5;

    --radius:15px;
    --shadow:0 10px 30px rgba(0,0,0,.08);
    --transition:.3s ease;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:Arial,Helvetica,sans-serif;
    color:var(--dark);
    line-height:1.7;
    background:white;

}

img{

    display:block;
    width:100%;

}

section{

    padding:75px 20px;

}

h1,h2,h3{

    line-height:1.25;

}

h2{

    text-align:center;
    color:var(--blue);
    margin-bottom:30px;
    font-size:2rem;

}

p{

    font-size:1.05rem;
    margin-bottom:18px;

}



/* =========================
HEADER
========================= */

header{

    background:white;
    position:sticky;
    top:0;
    z-index:1000;
    box-shadow:0 2px 12px rgba(0,0,0,.08);

}

nav{

    max-width:1200px;
    margin:auto;
    padding:18px 20px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;

}

.logo{

    color:var(--blue);
    font-size:1.35rem;
    font-weight:bold;

}

.nav-links{

    display:flex;
    gap:10px;
    flex-wrap:wrap;
    list-style:none;

}

.nav-links a{

    color:white;
    background:var(--blue);
    text-decoration:none;
    padding:10px 15px;
    border-radius:8px;
    transition:var(--transition);

}

.nav-links a:hover{

    background:var(--gold);

}



/* =========================
BUTTONS
========================= */

.button{

    display:inline-block;
    background:var(--gold);
    color:white;
    padding:14px 28px;
    border-radius:8px;
    text-decoration:none;
    transition:var(--transition);

}

.button:hover{

    background:var(--blue);

}



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

.hero{

    height:90vh;
    min-height:650px;
    position:relative;
    overflow:hidden;
    display:flex;
    justify-content:center;
    align-items:center;

}

.hero-image{

    position:absolute;
    inset:0;

}

.hero-image img{

    width:100%;
    height:100%;
    object-fit:cover;

}

.hero-overlay{

    position:absolute;
    inset:0;
    background:rgba(0,0,0,.45);

}

.hero-content{

    position:relative;
    color:white;
    text-align:center;
    max-width:850px;
    padding:20px;

}

.hero-content h1{

    font-size:4rem;
    margin-bottom:25px;
    text-shadow:2px 2px 10px black;

}

.hero-content p{

    font-size:1.15rem;
    text-shadow:2px 2px 8px black;

}



/* =========================
INTRO
========================= */

.intro{

    max-width:900px;
    margin:auto;
    text-align:center;

}



/* =========================
MINISTRIES
========================= */

.ministries{

    background:var(--light);

}

.section-description{

    text-align:center;
    max-width:700px;
    margin:0 auto 40px;

}

.ministry-grid{

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

}

.ministry-card{

    background:white;
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);
    transition:var(--transition);

}

.ministry-card:hover{

    transform:translateY(-6px);

}

/* -------- Carousel -------- */

.photo-gallery{

    position:relative;
    width:100%;
    aspect-ratio:1/1;
    overflow:hidden;
    background:#ddd;

}

.photo-gallery img{

    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;

    opacity:0;

    transition:opacity .7s ease;

}

.photo-gallery img.active{

    opacity:1;

}

.gallery-arrow{

    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:40px;
    height:40px;

    border:none;
    border-radius:50%;
    background:rgba(0,0,0,.55);
    color:white;
    cursor:pointer;
    font-size:22px;
    z-index:20;

}

.gallery-arrow.left{

    left:10px;

}

.gallery-arrow.right{

    right:10px;

}

.gallery-arrow:hover{

    background:var(--gold);

}

.ministry-card h3{

    padding:20px;
    text-align:center;

}



/* =========================
MISSION / INVITATION
========================= */

.mission,
.invitation{

    text-align:center;
    max-width:900px;
    margin:auto;

}

.invitation{

    background:var(--light);

}
/* =========================
INNER PAGE HERO
========================= */

.page-hero{

    height:55vh;
    min-height:400px;
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    overflow:hidden;

}


.page-hero-image{

    position:absolute;
    inset:0;

}


.page-hero-image img{

    width:100%;
    height:100%;
    object-fit:cover;

}


.page-overlay{

    position:absolute;
    inset:0;
    background:rgba(0,0,0,.45);

}


.page-title{

    position:relative;
    color:white;
    text-align:center;
    padding:20px;

}


.page-title h1{

    font-size:3rem;
    margin-bottom:15px;
    text-shadow:2px 2px 8px black;

}


.page-title p{

    text-shadow:2px 2px 8px black;

}



/* =========================
CONTENT SECTIONS
========================= */


.content-section{

    max-width:900px;
    margin:auto;
    text-align:center;

}


.content-section p{

    margin-bottom:25px;

}


.content-section.light{

    background:var(--light);
    max-width:none;

}


.content-section.light p{

    max-width:900px;
    margin-left:auto;
    margin-right:auto;

}



/* =========================
HISTORY PAGE
========================= */


.timeline{

    background:var(--light);

}


.timeline-item{

    max-width:900px;
    margin:0 auto 50px;
    background:white;
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);

}


.timeline-photo{

    width:100%;
    aspect-ratio:1/1;
    overflow:hidden;

}


.timeline-photo img{

    width:100%;
    height:100%;
    object-fit:cover;

}


.timeline-text{

    padding:30px;
    text-align:center;

}


.timeline-text h3{

    color:var(--blue);
    font-size:1.8rem;
    margin-bottom:15px;

}


.future-photo{

    max-width:900px;
    height:350px;
    margin:0 auto 35px;
    overflow:hidden;
    border-radius:var(--radius);

}


.future-photo img{

    width:100%;
    height:100%;
    object-fit:cover;

}



/* =========================
EXPECT PAGE
========================= */


.expect-grid{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:25px;

}


.expect-card{

    background:white;
    padding:25px;
    border-radius:var(--radius);
    box-shadow:var(--shadow);

}


.expect-card h3{

    color:var(--blue);
    margin-bottom:15px;

}


.expect-photo{

    width:100%;
    aspect-ratio:4/3;
    overflow:hidden;
    margin-bottom:20px;
    border-radius:10px;

}


.expect-photo img{

    width:100%;
    height:100%;
    object-fit:cover;

}



/* =========================
SERVICE TIMES
========================= */


.service-times{

    background:var(--light);
    text-align:center;

}


.times{

    max-width:900px;
    margin:auto;

}


.times p{

    background:white;
    padding:25px;
    border-radius:12px;
    margin-bottom:20px;
    box-shadow:var(--shadow);

}


.times strong{

    color:var(--blue);

}



/* =========================
BUS MINISTRY
========================= */


.bus-section{

    background:var(--light);
    text-align:center;

}


.bus-routes{

    max-width:1200px;
    margin:auto;

}


.bus-grid{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:25px;

}


.bus-card{

    background:white;
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);
    transition:var(--transition);

}


.bus-card:hover{

    transform:translateY(-5px);

}


.bus-photo{

    aspect-ratio:1/1;
    overflow:hidden;

}


.bus-photo img{

    width:100%;
    height:100%;
    object-fit:cover;

}


.bus-info{

    padding:20px;
    text-align:center;

}


.bus-info h3{

    color:var(--blue);
    margin-bottom:10px;

}


.bus-info p{

    font-size:.95rem;

}



/* =========================
CONTACT PAGE
========================= */


.contact-info{

    max-width:900px;
    margin:auto;
    text-align:center;

}


.leader-section{

    padding:75px 20px;

}


.leader-section.light{

    background:var(--light);

}


.leader-card{

    max-width:900px;
    margin:auto;
    background:white;
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);

}


.leader-photo{

    height:350px;
    overflow:hidden;

}


.leader-photo img{

    width:100%;
    height:100%;
    object-fit:cover;

}


.leader-info{

    padding:30px;
    text-align:center;

}


.leader-info h3{

    color:var(--blue);
    margin-bottom:15px;

}
/* =========================
LOCATION
========================= */


.location{

    max-width:1200px;
    margin:auto;

}


.location-grid{

    display:grid;
    grid-template-columns:1fr;
    gap:40px;
    align-items:center;

}


.location-map{

    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);

}


.location-map img{

    width:100%;
    height:100%;
    object-fit:cover;

}


.location-text{

    text-align:center;

}


.location-buttons{

    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:15px;

}



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


footer{

    background:#111;
    color:white;
    text-align:center;
    padding:50px 20px;

}


footer p{

    margin:0;

}



/* =========================
DESKTOP
========================= */


@media(min-width:768px){


    nav{

        padding:20px 40px;

    }


    .hero-content h1{

        font-size:4rem;

    }


    .hero-content p{

        font-size:1.2rem;

    }


    .location-grid{

        grid-template-columns:1fr 1fr;

    }


    .leader-card{

        display:flex;
        align-items:center;

    }


    .leader-photo{

        width:40%;
        height:400px;

    }


    .leader-info{

        width:60%;

    }


    .bus-grid{

        grid-template-columns:repeat(3,1fr);

    }

}



/* =========================
TABLET
========================= */


@media(max-width:900px){


    .bus-grid{

        grid-template-columns:repeat(2,1fr);

    }


}



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


@media(max-width:767px){


    section{

        padding:55px 15px;

    }


    nav{

        display:block;
        text-align:center;

    }


    .logo{

        margin-bottom:15px;
        font-size:1.15rem;

    }


    .nav-links{

        justify-content:center;

    }


    .nav-links a{

        font-size:.75rem;
        padding:8px 10px;

    }


    .hero{

        min-height:550px;
        height:auto;

    }


    .hero-content h1{

        font-size:2.2rem;

    }


    .page-title h1{

        font-size:2.2rem;

    }


    h2{

        font-size:1.7rem;

    }


    p{

        font-size:1rem;

    }



    .ministry-grid{

        grid-template-columns:1fr;

    }



    /*
       Two bus cards per row
       for easier mobile viewing
    */

    .bus-grid{

        grid-template-columns:repeat(2,1fr);
        gap:12px;

    }


    .bus-info{

        padding:12px;

    }


    .bus-info h3{

        font-size:.9rem;

    }


    .bus-info p{

        font-size:.75rem;
        line-height:1.4;

    }


    .leader-photo{

        height:280px;

    }


    .location-buttons{

        flex-direction:column;

    }


    .button{

        width:100%;
        text-align:center;

    }


}



/* =========================
SMALL PHONES
========================= */


@media(max-width:420px){


    .bus-grid{

        grid-template-columns:1fr;

    }


    .hero-content h1{

        font-size:1.9rem;

    }


    .nav-links a{

        font-size:.7rem;

    }


}
.hero-video{

    width:100%;
    max-width:900px;
    margin:auto;
    border-radius:15px;
    overflow:hidden;
    box-shadow:0 20px 50px rgba(0,0,0,.35);

}

.hero-video video{

    width:100%;
    display:block;

}