/* General Styles */




body {
    margin: 0;
    /*overflow-x: hidden;*/
    /* Primary decorative font */
    /*font-family: 'Mountains of Christmas', cursive;*/ 
    
    /*font-family: "Griffy", system-ui;*/
    /*font-family: "Alumni Sans", sans-serif;*/
    /*font-family: "ZCOOL XiaoWei", sans-serif;*/
    font-family: "Sansita", sans-serif;
    /*font-family: "Fjalla One", sans-serif;*/
    /*font-family: "Oswald", sans-serif;*/
    /*font-family: "Mystery Quest", system-ui;*/
    /*font-family: "Henny Penny", system-ui;*/
    /*font-family: "Modern Antiqua", serif;*/
    /*font-family: "Noto Sans Hatran", sans-serif;*/
    
    background-color: #1c1c1c;
    color: #fff;
}

/* Header and Hero Section */
header {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    height: 56vw; /* Aspect ratio matching the video */
    overflow: hidden;
}

p {
    font-family: 'Roboto', sans-serif; /* Modern sans-serif font for paragraph text */
    line-height: 1.6;
    color: #fff;
}

/* Navbar Styles */
.navbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 0.5rem 100px 0.5rem 2rem; /* Navbar padding */
    position: relative;
    top: 0;
    left: 0;
    width: calc(100% - 100px); /* Account for padding on the right */
    z-index: 100;
    background-color: rgba(0, 0, 0, 0); /* Transparent background by default */
    transition: background-color 0.3s ease;
}

.navbar:hover {
    background-color: rgba(0, 0, 0, 0.2); /* Darken background on hover */
}

.nav-links {
    list-style: none;
    display: flex;
    gap: 2rem;
    font-size: 1.2rem;
}

.nav-links li a {
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: bold;
    transition: color 0.3s ease;
}

.nav-links li a:hover {
    color: gold;
    text-shadow: 0 0 10px gold; /* Glow effect on hover */
}

/* Hamburger Menu Styles */
.hamburger {
    display: none; /* Hidden by default, shown on mobile */
    flex-direction: column;
    cursor: pointer;
    z-index: 20;
}

.bar {
    width: 25px;
    height: 3px;
    background-color: #fff;
    margin: 4px 0;
    transition: 0.4s;
}

/* Mobile Navbar */
@media (max-width: 768px) {
    .navbar {
        justify-content: space-between;
    }

    .nav-links {
        display: none; /* Hide nav-links by default on mobile */
        flex-direction: column;
        width: 100%;
        position: absolute;
        top: 60px; /* Adjust based on navbar height */
        left: 0;
        background-color: rgba(0, 0, 0, 0.9);
        padding: 1rem;
        text-align: center; /* Center-align the links */
    }

    .nav-links.active {
        display: flex; /* Show nav-links when active */
    }

    .nav-links li {
        padding: 1rem 0;
        width: 100%;
    }

    .hamburger {
        display: flex; /* Show hamburger icon on mobile */
    }
}

/* --------------Hero Section-------------- */

.hero-section {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%; /* Full viewport height */
    overflow: hidden;
}

.hero-section iframe {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures the video covers the entire section */
    pointer-events: none; /* Prevent interaction with the video */
    border: none;
}

.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, 1) 20%, rgba(0, 0, 0, 0) 60%); /* Black gradient overlay */
    z-index: 5;
}

.logo-img {
    width: 50%;
    position: absolute;
    top: 80%; /* Position logo in the bottom fifth */
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
}

.subtitle {
    position: absolute;
    top: 90%; /* Position subtitle just below the logo */
    left: 50%;
    transform: translateX(-50%);
    font-size: 2vw; /* Responsive font size */
    color: #fff;
    text-align: center;
    z-index: 10;
}

/* Section Styles */
.section {
    padding: 5rem 2rem;
    text-align: center;
}

/* --------------About Section-------------- */
.about-section {
    position: relative;
    background-color: #0a1a2f; /* Base color for the section */
    color: #fff;
    width: 100%;
    padding: 2rem;
    overflow: hidden;
    box-sizing: border-box; /* Ensures padding is included in the width */
}

.about-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('images/gallery/12.21.34.png') no-repeat left top; /* Aligns the image to the top */
    background-size: cover; /* Ensures the image covers the entire section */
    opacity: 0.25; /* Semi-transparent */
    z-index: 1;
    pointer-events: none; /* Allows interactions with content above */
}

.about-section .content-wrapper {
    position: relative;
    z-index: 2; /* Ensures content appears above the background image */
    max-width: 50%;
    width: 100%;
    margin: 0 auto; /* Centers the content */
    padding: 0 1rem; /* Adds some padding to avoid the content touching the edges */
    text-align: left;
    box-sizing: border-box; /* Ensures padding is included in the width */
}

.about-section p {
    font-family: 'Roboto', sans-serif; /* Modern sans-serif font */
    text-align: left;
    line-height: 1.6;
    color: #fff;
}


/* Expand Container */
.expand-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem; /* Space between the button and icon */
    margin-top: 1rem;
}

/* Expand Button Style */
.expand-link {
    display: inline-block;
    padding: 0.8rem 1.5rem;
    border: 2px solid #fff;
    color: #fff;
    text-transform: uppercase;
    text-decoration: none;
    background-color: transparent;
    transition: background 0.3s ease, color 0.3s ease;
    cursor: pointer;
}

.expand-link:hover {
    background-color: gold;
    color: #000;
}



.expand-icon {
    cursor: pointer;
    font-size: 1.5rem;
    color: gold;
    text-align: center;
    margin-top: 1rem;
}

/* Hidden Content Style */
.hidden-content {
    display: none;
    background-color: #9b2c1f; /* Red background matching the contact section */
    color: #fff;
    padding: 2rem;
    margin-top: 1rem;
    border-radius: 5px;
    transition: max-height 0.3s ease-in-out;
    max-width: 100%; /* Ensure it doesn't go wider than its container */
    width: 100%; /* Make it match the content width */
    box-sizing: border-box; /* Include padding in the width */
}

.hidden-content.active {
    display: block;
    max-width: inherit; /* Inherit the width of the content wrapper */
}




@media (max-width: 768px) {
    .about-section .content-wrapper {
        max-width: 100%;
        padding: 0 1rem; /* Ensures content doesn't touch the edges on smaller screens */
    }
}

/* Thumbnail Styles */
.thumbnails {
    display: flex;
    justify-content: top;
    gap: 1rem;
    margin-top: 1rem;
}

.thumbnail {
    height: 20vh;
    width: 100%;
    justify-content: top;
    margin-bottom: 4rem; /* Adds space below each video thumbnail */
}

.thumbnail iframe {
    width: 100%; /* Ensures the iframe takes up the full width of its container */
    height: 100%; /* Maintains aspect ratio */
}

/* A new class for a 16:9 thumbnail player */
.thumbnail-16x9 {
  position: relative;
  width: 100%;
  /* The magic: 16:9 ratio => 9 / 16 = 56.25% */
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  margin-bottom: 4rem; /* match your existing styling if you like */
}

.thumbnail-16x9 iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}



/* Style for the pop-out link */
.message-link-wrapper {
    margin-top: 2rem; /* Adds some space above the link */
    text-align: center; /* Centers the link within the wrapper */
}

.message-link {
    font-size: 1.2rem;
    color: gold;
    text-decoration: none;
    text-align: center;
    display: inline-block;
    background-color: #333;
    padding: 1rem;
    border-radius: 5px;
    transition: background-color 0.3s ease;
}

.message-link:hover {
    background-color: gold;
    color: #000;
    text-shadow: 0 0 10px #fff;
}

/* Pop-out Message Block Styles */
.message-popup {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #9b2c1f; /* Updated to match the red from the contact section */
    color: #fff;
    padding: 2rem;
    border-radius: 10px;
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.5);
    max-width: 80vw;
    max-height: 80vh;
    overflow-y: auto;
    z-index: 1000;
}

.popup-content {
    position: relative;
    padding: 1rem;
}

.close-popup {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 2rem;
    color: #fff;
    cursor: pointer;
    z-index: 1001;
}


/* Pop-out Link Style */
.popout-link {
    display: inline-block;
    padding: 0.8rem 1.5rem;
    border: 2px solid #fff;
    color: #fff;
    text-transform: uppercase;
    text-decoration: none;
    background-color: transparent;
    transition: background 0.3s ease, color 0.3s ease;
}

.popout-link:hover {
    background-color: gold;
    color: #000;
    text-shadow: none;
}




/* --------------Gallery Section-------------- */

.gallery-section {
    background-color: #121212;
    padding: 5rem 2rem;
    text-align: center;
    color: #fff;
}

.gallery-carousel {
    overflow: hidden;
    position: relative;
    width: 100%;
    max-width: 600px; /* Matches the width of the paragraph text in sponsors section */
    margin: 0 auto;
}

.carousel-track {
    display: flex;
    transition: transform 0.5s ease;
    will-change: transform;
}

.carousel-item {
    min-width: 100%;
    box-sizing: border-box;
}

.carousel-item img {
    width: 100%;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
}

/* Carousel Controls */
.carousel-control {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0, 0, 0, 0.5);
    border: none;
    color: #fff;
    font-size: 2rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    z-index: 100;
    transition: background-color 0.3s ease;
}

.carousel-control:hover {
    background-color: rgba(0, 0, 0, 0.7);
}

.carousel-control.prev {
    left: 0;
}

.carousel-control.next {
    right: 0;
}


/* Gallery Grid */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* Responsive grid layout */
    gap: 1.5rem; /* Spacing between images */
    justify-content: center; /* Center the grid within the section */
}

/* Gallery Item */
.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 10px; /* Rounded corners */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); /* Subtle shadow for depth */
    max-width: 380px; /* Cap the maximum width of each gallery item */
    width: 100%; /* Allow the item to shrink dynamically */
}

.gallery-item img {
    width: 100%;
    height: auto;
    transition: transform 0.3s ease, opacity 0.3s ease; /* Smooth transition for hover effects */
}

/* Hover Effect */
.gallery-item:hover img {
    transform: scale(1.05); /* Slight zoom on hover */
    opacity: 0.8; /* Slightly fade the image on hover */
}

/* Lightbox Modal */
.lightbox {
    display: none; /* Hidden by default */
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 850px; /* Maximum width of the image */
    width: 100%; /* Ensure it doesn't exceed the viewport width */
    height: auto; /* Maintain aspect ratio */
    background-color: rgba(0, 0, 0, 0.9); /* Semi-transparent background */
    padding: 10px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
    z-index: 1000;
    text-align: center;
}

/* Style for the image inside the pop-up */
.lightbox img {
    width: 100%; /* The image will scale within the pop-up */
    height: auto; /* Maintain aspect ratio */
    max-width: 850px; /* Ensure the image does not exceed this width */
    border-radius: 10px;
}

/* Close Button */
.lightbox-close {
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 2rem;
    color: #fff;
    cursor: pointer;
    z-index: 1001; /* Ensure the close button stays on top */
}

/* --------------Sponsors Section-------------- */
.sponsors-section {
    position: relative;
    background-color: #007a42; /* Base color for the section */
    color: #fff;
    width: 100%;
    padding: 2rem;
    overflow: hidden;
    box-sizing: border-box; /* Ensures padding is included in the width */
}

.sponsors-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('images/gallery/12.38.23.png') no-repeat left top; /* Background image aligned to the top */
    background-size: cover; /* Ensures the image covers the entire section */
    opacity: 0.25; /* Semi-transparent */
    z-index: 1;
    pointer-events: none; /* Allows interactions with content above */
}

.sponsors-section .content-wrapper {
    position: relative;
    z-index: 2; /* Ensures content appears above the background image */
    max-width: 50%;
    width: 100%;
    margin: 0 auto; /* Centers the content */
    padding: 0 1rem; /* Adds padding to avoid the content touching the edges */
    text-align: left;
    box-sizing: border-box; /* Ensures padding is included in the width */
}

.sponsors-section p {
    font-family: 'Roboto', sans-serif;
    text-align: left;
    line-height: 1.6;
    color: #fff;
}

.sponsors-section .btn-wrapper {
    text-align: center; /* Centers the button */
    margin-top: 1rem; /* Adds some space above the button */
}


#become-sponsor h2 {
    margin-bottom: 0.25rem; /* Adjust the value as needed */
}

#become-sponsor h1 {
    margin-top: 0; /* Removes the top margin to reduce space */
}




@media (max-width: 768px) {
    .sponsors-section .content-wrapper {
        max-width: 100%;
        padding: 0 1rem; /* Ensures content doesn't touch the edges on smaller screens */
    }
}

/* --------------Donate Section-------------- */
.donate-section {
    background-color: #121212;
    padding: 5rem 2rem;
    text-align: center;
}

.donate-section .content-wrapper {
    position: relative;
    z-index: 2; /* Ensures content appears above the background image */
    max-width: 50%; /* Match the width to About and Sponsors sections */
    width: 100%;
    margin: 0 auto; /* Centers the content */
    padding: 0 1rem; /* Adds some padding to avoid the content touching the edges */
    text-align: left;
    box-sizing: border-box; /* Ensure padding is included in the width */
}

.donate-section p {
    font-family: 'Roboto', sans-serif;
    text-align: left;
    line-height: 1.6;
    color: #fff;
    font-size: 1rem; /* Set a consistent font size */
    margin-bottom: 1.5rem;
}

.donate-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 1rem;
    margin-top: 2rem; /* Adds space between the text and the donation elements */
}

/* QR Code Image */
.qr-placeholder {
    width: 200px; /* Set the width of the QR code */
    height: auto; /* Maintain aspect ratio */
}

/* Kickstarter Button Styles */
.kickstarter-btn-wrapper {
    text-align: center; /* Centers the Kickstarter button */
    margin-top: 2rem; /* Add space above the button */
}

.kickstarter-btn img {
    width: 175px; /* Set the width of the image */
    height: 175px; /* Set the height of the image */
    transition: none; /* Remove any transition effects */
}

.kickstarter-btn img:hover {
    content: url('images/go_fund_me_down.png'); /* Change the image on hover */
}

@media (max-width: 768px) {
    .donate-section .content-wrapper {
        max-width: 100%;
        padding: 0 1rem; /* Ensures content doesn't touch the edges on smaller screens */
    }

    .donate-section p {
        font-size: 1rem; /* Keep the text size consistent on smaller screens */
    }
}




/* --------------Charities Section-------------- */
.charities-section {
    position: relative;
    background-color: #0a1a2f; /* Base color for the section */
    color: #fff;
    width: 100%;
    padding: 2rem;
    overflow: hidden;
    box-sizing: border-box; /* Ensures padding is included in the width */
}

.charities-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('images/gallery/12.24.19.png') no-repeat left top; /* Background image aligned to the top */
    background-size: cover; /* Ensures the image covers the entire section */
    opacity: 0.25; /* Semi-transparent */
    z-index: 1;
    pointer-events: none; /* Allows interactions with content above */
}

.charities-section .content-wrapper {
    position: relative;
    z-index: 2; /* Ensures content appears above the background image */
    max-width: 50%;
    width: 100%;
    margin: 0 auto; /* Centers the content */
    padding: 0 1rem; /* Adds padding to avoid the content touching the edges */
    text-align: left;
    box-sizing: border-box; /* Ensures padding is included in the width */
}

.charities-section p {
    font-family: 'Roboto', sans-serif;
    text-align: left;
    line-height: 1.6;
    color: #fff;
}

.charities-section img {
    display: block;
    margin: 2rem auto; /* Center the image */
    max-width: 150px;
    height: auto;
}

@media (max-width: 768px) {
    .charities-section .content-wrapper {
        max-width: 100%;
        padding: 0 1rem; /* Ensures content doesn't touch the edges on smaller screens */
    }
}

/* --------------Contact Section------------ */


.contact-section {
    position: relative;
    background-color: #9b2c1f; /* Base color for the section */
    padding: 5rem 2rem;
    text-align: center;
    overflow: hidden; /* Ensures content stays within the section */
}

.contact-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('images/gallery/12.33.43.png') no-repeat left top; /* Background image aligned to the top */
    background-size: cover; /* Ensures the image covers the entire section */
    opacity: 0.25; /* Semi-transparent */
    z-index: 1;
    pointer-events: none; /* Allows interactions with content above */
}

.contact-section .form-container {
    position: relative;
    z-index: 2; /* Ensures content appears above the background image */
    background-color: rgba(28, 28, 28, 0.25); /* Semi-transparent background with 25% opacity */
    padding: 2rem;
    border-radius: 10px;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box; /* Include padding in width */
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.5); /* Subtle shadow for depth */
}

/* Form Styles */
.form-container {
    background-color: #1c1c1c;
    padding: 2rem;
    border-radius: 10px;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box; /* Include padding in width */
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.5); /* Subtle shadow for depth */
}

.form-container h2 {
    margin-bottom: 1.5rem;
    font-family: 'Mountains of Christmas', cursive;
    color: #fff;
}

.form-container input,
.form-container textarea {
    background-color: rgba(44, 44, 44, 0.35); /* Semi-transparent background with 25% opacity */
    width: 100%; /* Full width of the container */
    padding: 1rem;
    margin-bottom: 1rem;
    border: 2px solid #fff;
    border-radius: 5px;
    color: #fff;
    font-size: 1rem;
    box-sizing: border-box; /* Include padding and border in the element's width */
}

.form-container textarea {
    height: 150px;
    resize: none; /* Disable resizing */
}

.form-container input::placeholder,
.form-container textarea::placeholder {
    color: #aaa;
}

.form-container button {
    padding: 0.8rem 1.5rem;
    border: 2px solid #fff;
    background-color: transparent;
    color: #fff;
    text-transform: uppercase;
    font-size: 1.2rem;
    cursor: pointer;
    transition: background-color 0.3s ease;
    border-radius: 5px;
    box-sizing: border-box;
}

.form-container button:hover {
    background-color: gold;
    color: #000;
}

/* Button Styles */
.btn {
    display: inline-block;
    padding: 0.8rem 1.5rem;
    border: 2px solid #fff;
    color: #fff;
    text-transform: uppercase;
    text-decoration: none;
    background-color: transparent;
    transition: background 0.3s ease, color 0.3s ease;
    cursor: pointer;
}

.btn h6 {
    margin: 0.5rem 0 0; /* Adjust the top margin for tighter spacing */
    font-size: 0.9rem; /* Adjust the font size of the subtitle */
    line-height: 1.2; /* Control the line height for the subtitle */
    color: #fff; /* Ensure the subtitle text color matches */
}
.btn:hover {
    background-color: gold;
    color: #000;
}

.btn-wrapper a {
    display: flex;
    flex-direction: column; /* Stack the title and subtitle vertically */
    align-items: center; /* Center align the text */
}

* Specific Styles for About Section Button */
.about-section .btn-wrapper {
    text-align: center; /* Center the content within the button */
}

.about-section .about-btn {
    display: inline-block;
    max-width: 100%; /* Ensure button doesn't exceed the container width */
}

.about-section .about-btn h6 {
    margin: 0.5rem 0 0; /* Adjust the top margin for tighter spacing */
    font-size: 0.9rem; /* Adjust the font size of the subtitle */
    line-height: 1.2; /* Control the line height for the subtitle */
    color: #fff; /* Ensure the subtitle text color matches */
}

.about-section .btn-wrapper a {
    display: flex;
    flex-direction: column; /* Stack the title and subtitle vertically */
    align-items: center; /* Center align the text */
}

.about-section .expand-icon i {
    margin-top: 1rem; /* Add some spacing between the button and the icon */
}

/* Specific Styles for Sponsor Section Button */
.sponsors-section .btn-wrapper {
    text-align: center;
}

.sponsors-section .sponsor-btn {
    display: inline-block; /* Ensure button width is based on content */
    width: auto; /* Let the button size to fit its content */
    padding: 0.8rem 1.5rem; /* Maintain padding for a consistent look */
}

/* --------------Footer Section-------------- */
footer {
    background-color: #2c3e50;
    color: white;
    padding: 20px;
    text-align: center;
}

/* Social Media Icons */
.social-media {
    margin-top: 10px;
}

.social-media a {
    color: white;
    margin: 0 10px;
    text-decoration: none;
    font-size: 24px;
}

.social-media a:hover {
    color: #f39c12; /* Color change on hover */
}
