/* --------------- Global Reset ---------- */
body {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    background-color: #333;
    color: #222;
    line-height: 1.5;
}

.html, body {
    margin:0;
    padding: 0;
    width: 100%;
    overflow-x: hidden;
}

header{
border-bottom: 1px solid #333;
}

.header-top {
    background-color: #333;
    padding: 15px 0; /*space around logo */
    text-align: center; /*centers logo*/
}
/* ------------ Navigation Bar ------------ */
nav {
    max-width: 1000vh;
    background-color: rgb(70, 14, 123);
    border-bottom: 1px solid #333;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    padding: 10px;
}

/*navigation drop down */

.nav-item.has-dropdown {
    position: relative;
}

.nav-item.has-dropdown .dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: white;
    list-style: none;
    padding: 10px 0;
    min-width: 180px;
    z-index: 1000;
    box-shadow: 0 4px 12px #000;
    text-align: center;
}

.nav-item.has-dropdown .dropdown li a {
    display: block;
    padding: 10px 15px;
    white-space: nowrap;
    text-decoration: none;
    color: black;
}

.nav-item.has-dropdown:hover .dropdown {
    display:block;
}

.nav-item.has-dropdown .dropdown li a:hover {
    background:   rgb(42, 174, 42);
    color: white;
}

/* top level nav */
.nav-list {
    list-style: none;
    align-items: center;
    max-width: 1200px;
    gap: 20px;
    margin: 0 auto;
    padding: 0;
    display: flex;
    justify-content: space-between;
    position: relative;
}

.logo{
    width: 175px; /* makes the logo smaller*/
    height: auto;
}

/* Main nav links */
.nav-item > a {
    text-decoration: none;
    color: white;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 1.1rem;
    transition: color 0.3s ease;
    padding: 8px 12px;
}

.nav-item > a:hover {
    color: #0A5f8a;
}


/*----Section 1 mission statement----*/
.mission {
    position: relative;
    background: none;
    color: white;
    align-items: center;
    padding: 5px;
    margin-top: 8px;
}
.mission img {
    height: 600px;
    width: 100%;
} 


/*----MEET THE BOARD----*/


.team-carousel {
    width: 100%;
    position: relative;
    padding: 50px 0;
}

.carousel-title {
    font-size: 3rem;
    font-weight: bold;
    margin-bottom: 30px;
    letter-spacing: 2px;
    text-align: center;
    text-transform: uppercase;
    color: white;
}

.carousel-title::after {
    content: "";
    display: block;
    width: 450px;
    height: 4px;
    margin: 0 auto 0 auto;
    background: rgb(70, 14, 123);
    border-radius: 2px;
}

.carousel-track-container {
    overflow: hidden;
    width: 100%;
}
.carousel-track {
    display: flex;
    transition: transform 0.5s ease-in-out;
}

.carousel-slide {
    min-width: 33.33%;
    display: flex;
    justify-content: center;
    margin-right: 10px;
}

.carousel-slide img{
    width: 160px;
    height: 300px;
    object-fit: cover;
    border-radius: 30px; /* round edges*/
}

/*------team cards-----*/
.person-card {
    position: relative;
    width: 230px;
    height: 350px !important;
    border-radius: 20px;
    overflow: hidden;
    margin: 0 10px;
}

.person-card img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
}

/* overlay for hover effect */
.card-overlay {
    position: absolute;
    inset: 0;
    background: rgb(70, 14, 123); 
    display: flex;
    flex-direction: column;
    justify-content: center; /* vertically center text */
    align-items: center; /* horizontally center text */
    opacity: 0; /* hide overlay intially */
    pointer-events: none;

}

.card-overlay  h3, p {
    color: white;
    font-family: Georgia, 'Times New Roman', Times, serif;
}

.person-card:hover .card-overlay {
    opacity: 1; /* show overlay on hover */
}

.carousel-slide h3{
    margin: 5px 0 0;
    color: #000;
}

.carousel-slide p {
    color: #000;
    font-size: 1.2rem;
}

.carousel-btn.next {
    background: #333;
    color: rgb(42, 174, 42);
    width: 100px;
    height: 150px;
    font-size: 60px;
    position: absolute;
    right: -40px;
    top: 50%;
    transform: translateY(30px);
    cursor: pointer;
}

/*-----event section-----*/

.events-carousel-container {
    display: flex;
    gap: 10px; /* space between carousel and details */
    align-items: flex-start;
    background-color: rgb(70, 14, 123);
}

.section-title {
    text-align: center;
    font-family: 'Montserrat' , sans-serif;
    font-size: 4rem;
    font-weight: 600;
    margin-bottom: 10px;
    margin-top: 20px;
    background-color: rgb(70, 14, 123);
    color: white;
    transform: translateY(20px);
}
.section-title::after {
    content: "";
    display: block;
    width: 400px;
    height: 4px;
    margin: 0 auto 0 auto;
    background: rgb(42, 174, 42);
    border-radius: 2px;
}

.carousel-left {
    width: 55%;
    max-width: 55%;
    position: relative;
    width: 100%; /* fixed width for flyers */
    padding-left: 75px;
}

.track-container {
    overflow: hidden;
    width: 100%;
    height: 500px;
    position: relative;
}

.track {
    display: flex;
    transition: transform 0.3s ease-in-out;
}

.slide {
    flex: 0 0 100%; /* each slide fills the container*/
    min-width: 100%;
    display: flex;
}

.slide img {
    width: 100%;
    max-height: 500px; /* all images the same height*/
    height: auto;
    object-fit: contain; /* ensures horizontal and vertical images fit same box */
    border-radius: 8px; 
}

.carousell-btn.next {
    position: absolute;
    top: 50%;
    background: rgb(70, 14, 123);
    width: 60px;
    height: 60px;
    font-size: 30px;
    right: -525px;
    transform: translateY(-60%);
    color: rgb(42, 174, 42);
    cursor: pointer;

}

.carousel-right {
    flex: 1;
    display:flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
    transform: translateY(20px);
    height: 100%;
    padding: 10px;
}

.event-text {
    display: none;
    opacity: 0;
    transition: opacity 0.4s ease, transform 0.4s ease;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 450px;
}

.event-text.active {
    display: block;
    opacity: 1;
    transform: translateY(0);
    margin-top: 40px;
}

.event-details h3 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: large;
    margin-bottom: 10px;
    color: white;
}

.event-details h3::after {
    content: "";
    display: block;
    width: 50px;
    height: 4px;
    margin: 5px auto 0 auto;
    background: rgb(42, 174, 42);
    border-radius: 2px;
}

.event-details p {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    margin-bottom: 8px;
    color: white;
}

/*----ABOUT US----*/

.about-us {
    background-color: #333;
    font-family: 'Montserrat', sans-serif;
    width: 100%;
    display: flex;
}

.about-container {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 40px; /* space between text and image */
}

.about-text {
    flex: 0 0 55%; /* text takes at least 500px but can grow */
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 0;
}

.about-text h2 {
    font-size: 4rem;
    font-weight: 700;
    margin-bottom: 30px;
    text-align: center;
    color: white;
}

.about-section {
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid #ddd; /* subtle divider line */
}

.about-section.vision,
.about-section.core-values {
    color: white;
    border-radius: 8px;
    text-align: center;
}

.about-section h3 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 10px;
    color: white;
    text-align: center;
}

.about-section p, 
.about-section li {
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 5px;
    color: white;
    text-align: center;
}

.about-section ul {
    list-style-type: disc;
    padding-left: 20px;
    text-align: center;
}

.about-image {
    transform: scale(0.7);
    display: flex;
    justify-content: center;
    align-items: center;
}

.about-image img {
    max-width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
/* responsiveness */
@media (max-width: 900px) {
    .about-container {
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }
    .about-text, .about-image {
        flex: 1 1 100%;
    }
    .about-text h2 {
        text-align: center;
    }
    .about-section h3, .about-section p, .about-section li {
        text-align: center;
    }
}

@media (max-width: 768px) {
    body, header {
        font-size: 90%;
        text-align: center;
        padding: 0 10px;
    }
    nav {
        flex-direction: column;
        align-items: center;
    }
    .nav-list {
        flex-direction: column;
        align-items: center;
        width: 100%;
    }
    .nav-item, .dropdowns {
        width: 100%
        margin: 5px 0;
        text-align: center;
    }
    .logo {
        max-width: 80%;
        height: auto;
        margin: 0 auto 10px auto;
    }
    .mission {
        text-align: center;
        padding: 10px 0;
    }
    .team-carousel {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .person-card {
        width: 90%;
        margin: 10px auto;
    }
    .person-card img {
        max-width: 100%;
        height: auto;
    }
    .person-card-overlay {
        font-size: 90%
    }
    .carousel-btn.next {
        width: 80%;
        margin: 10px auto;
    }
    .events-carousel {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .events-carousel .section-title {
        font-size: 1.2em;
        text-align: center;
        margin-bottom: 10px;
    }
    .events-carousel .slide {
        width: 100%;
        flex-directions: column;
        align-items: center;
    }
    .events-carousel .track-container {
        width: 100%;
        overflow-x: auto;
    }
    img {
        max-width: 100%;
        height: auto;
        display: block;
        margin: 0 auto;
    }
}
