/* General Styles */
:root {
    --primary-color: #FF8C42;
    /* Warm orange */
    --background-color: #FFF8F0;
    /* Soft warm beige */
    --text-color: #333333;
    /* Dark gray for text */
    --card-background: #FFE4C4;
    /* Warm light orange */
}

[data-theme="dark"] {
    --primary-color: #FF6B35;
    /* Darker warm orange for dark mode */
    --background-color: #1E1E1E;
    /* Dark background */
    --text-color: #FFFFFF;
    /* White text for dark mode */
    --card-background: #2E2E2E;
    /* Dark card background */
}

body {
    font-family: 'Poppins', sans-serif;
    margin: 0;
    padding: 0;
    background-color: var(--background-color);
    color: var(--text-color);
    transition: background-color 0.3s, color 0.3s;
    /* Added for footer positioning */
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Added for footer positioning */
main {
    flex: 1;
    /* Allows main content to grow and push footer down */
}

/* Header and Navigation */
header {
    background-color: var(--primary-color);
    /* Warm orange */
    padding: 1rem 2rem;
}

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    font-size: 1.5rem;
    font-weight: 600;
    color: white;
}

.nav-links {
    list-style: none;
    display: flex;
    gap: 1.5rem;
}

.nav-links a {
    color: white;
    text-decoration: none;
    transition: opacity 0.3s;
}

.nav-links a:hover {
    opacity: 0.8;
}

.theme-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: white;
}

.switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 24px;
}

.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: 0.4s;
    border-radius: 24px;
}

.slider:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 2px;
    bottom: 2px;
    background-color: white;
    transition: 0.4s;
    border-radius: 50%;
}

input:checked+.slider {
    background-color: var(--primary-color);
}

input:checked+.slider:before {
    transform: translateX(26px);
}

.hamburger {
    display: none;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
}

.hamburger .line {
    width: 25px;
    height: 3px;
    background-color: white;
}

.\31 8-section {
    /* Escaped class name starting with a number */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2rem;
}

/* Age Verification Popup */
.popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.popup-content {
    background: var(--background-color);
    padding: 2rem;
    border-radius: 10px;
    text-align: center;
    max-width: 400px;
    width: 90%;
}

.popup-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-top: 1.5rem;
}

.popup-buttons button {
    padding: 0.8rem 1.5rem;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 600;
    transition: background-color 0.3s;
}

#confirm-age {
    background-color: var(--primary-color);
    color: white;
}

#confirm-age:hover {
    background-color: #ff6b35;
}

#deny-age {
    background-color: #ccc;
    color: var(--text-color);
}

#deny-age:hover {
    background-color: #bbb;
}

/* Image Section */
.picture-section {
    text-align: center;
    padding: 2rem;
}

.image-card {
    max-width: 800px;
    margin: 1rem auto;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.image-card img {
    width: 100%;
    height: auto;
    display: block;
}

/* Attribution Text */
.attribution-text {
    text-align: center;
    font-size: 0.9rem;
    color: #666;
    margin: 1rem 0;
}

.attribution-text a {
    color: var(--primary-color);
    text-decoration: none;
}

.attribution-text a:hover {
    text-decoration: underline;
}

/* About Section */
.about-section {
    padding: 4rem 2rem;
    background-color: var(--background-color);
}

.about-container {
    max-width: 1200px;
    margin: 0 auto;
}

.about-section h1 {
    font-size: 3rem;
    text-align: center;
    margin-bottom: 0.5rem;
}

.about-section .highlight {
    color: var(--primary-color);
}

.about-section .tagline {
    text-align: center;
    font-size: 1.2rem;
    color: var(--text-color);
    margin-bottom: 3rem;
}

.about-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.about-card {
    background-color: var(--card-background);
    padding: 2rem;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s, box-shadow 0.3s;
}

.about-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
}

.about-card h2 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: var(--primary-color);
}

.about-card p {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--text-color);
}

.about-card ul {
    list-style: disc;
    padding-left: 1.5rem;
}

.about-card li {
    margin-bottom: 0.5rem;
    color: var(--text-color);
}

.contact-section {
    text-align: center;
    margin-top: 3rem;
}

.contact-section h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: var(--primary-color);
}

.contact-link {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: 600;
}

.contact-link:hover {
    text-decoration: underline;
}

/* Hero Section */
.hero {
    text-align: center;
    padding: 5rem 2rem;
    background: linear-gradient(135deg, var(--primary-color), #3700b3);
    color: white;
}

.hero h1 {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.hero p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
}

/* General CTA Button Style */
.cta-button {
    padding: 0.8rem 2rem;
    background-color: var(--primary-color);
    color: white;
    border: none;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.3s, color 0.3s, border 0.3s;
    /* Added transitions */
    text-decoration: none;
    /* Ensure links look like buttons */
    display: inline-block;
    /* Ensure padding/margins work correctly */
}

.cta-button:hover {
    /* Default hover */
    background-color: #ff6b35;
    /* Slightly darker orange */
    transform: translateY(-2px);
}

/* Specific CTA Button for Hero */
.hero .cta-button {
    background-color: white;
    color: var(--primary-color);
    border: 2px solid transparent;
    /* Add border for hover effect */
}

.hero .cta-button:hover {
    background-color: var(--primary-color);
    color: white;
    border: 2px solid white;
}


/* Content Grid */
.content-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(250px, 1fr));
    /* Force exactly 3 columns */
    gap: 2rem;
    padding: 2rem;
    max-width: 1400px;
    /* Consider matching video container's max-width */
    margin: 0 auto;
    /* Center the grid */
}

.card {
    background-color: var(--card-background);
    padding: 1.5rem;
    border-radius: 10px;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
}

.card:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

.card h2 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.card p {
    font-size: 1rem;
    margin-bottom: 1.5rem;
}

.card-link {
    padding: 0.5rem 1rem;
    background-color: var(--primary-color);
    color: white;
    text-decoration: none;
    border-radius: 5px;
    transition: opacity 0.3s;
}

.card-link:hover {
    opacity: 0.8;
}

/* Update the age warning card */
.age-warning-card {
    grid-column: 1 / 4;
    /* Span across all 3 columns */
    text-align: center;
    padding: 0 2rem;
    /* Remove vertical padding */
    margin: 1rem 0;
}

.age-warning-button {
    width: 100%;
    padding: 3rem 0;
    background-color: #ff4757;
    color: white;
    border: none;
    border-radius: 15px;
    font-size: 4rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.age-warning-button:hover {
    transform: scale(1.02);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* Movie Section */
.movie-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* Center everything horizontally */
    justify-content: center;
    /* Center everything vertically */
    text-align: center;
    /* Center text */
    padding: 2rem;
    /* Add some padding */
    min-height: 30vh;
    /* Ensure the section takes up enough vertical space */
}

#movie-container {
    width: 100%;
    max-width: 1200px;
    /* Limit the container's maximum width */
    margin: 2rem auto;
    /* Center the container */
    padding: 0 1rem;
    /* Add some padding */
    box-sizing: border-box;
}

#load-movie {
    margin-top: 2rem;
    /* Add space above the button */
}

/* Video Section */
.video-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem 2rem;
    /* Reduced top padding */
    min-height: 20vh;
}

/* --- Styles for Ad + Video Layout --- */

.ad-video-layout-wrapper {
    display: flex;
    /* Arrange children (ad, video) side-by-side */
    align-items: flex-start;
    /* Align items to the top */
    gap: 20px;
    /* Space between ad and video (adjust as needed) */
    width: 100%;
    /* Take full width available in parent */
    max-width: 1400px;
    /* Match max-width of original video container concept */
    margin: 2rem auto;
    /* Center the whole wrapper */
    padding: 0 1rem;
    /* Add padding to the sides */
    box-sizing: border-box;
    /* Include padding in width calculation */
}

.ad-container-left {
    /* Define the width or basis for your ad. Adjust '300px' based on the ad size */
    flex-basis: 300px;
    /* Suggest initial width */
    flex-shrink: 0;
    /* Prevent the ad container from shrinking */
    /* Add min-height or height if needed, depending on ad behavior */
    min-height: 250px;
    /* Example: Ensure it has some height, adjust based on ad unit */
    /* background-color: #eee;    Optional: for visualizing the container during dev */
}

/* Styles for the specific ad unit placeholder */
.ad-container-left .eas6a97888e2 {
    display: block;
    /* Ensures it takes block-level space */
    /* Add width/height constraints if the ad script doesn't handle it well */
    max-width: 100%;
    /* Don't overflow the container */
    /* min-height: 250px; */
    /* Example: Match container or common ad sizes */
}

/* Adjust original video container styles for Flexbox */
#video-container {
    flex-grow: 1;
    /* Allow video container to take remaining space */
    width: auto;
    /* Width is now determined by flexbox */
    max-width: 100%;
    /* Ensure it doesn't overflow flex item */
    margin: 0;
    /* Remove auto margin, parent wrapper handles centering */
    padding: 0;
    /* Remove padding, parent wrapper handles padding */
    /* background-color: #ddd;    Optional: for visualizing */
    /* The original max-width: 1400px is now on the wrapper */
}

/* Adjust iframe styles within the flex item */
#video-container iframe {
    width: 100%;
    /* Make iframe fill the #video-container flex item */
    height: auto;
    /* Keep height automatic */
    aspect-ratio: 16 / 9;
    /* Maintain 16:9 aspect ratio */
    max-width: 100%;
    /* Limit iframe width to its container */
    border: none;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    display: block;
    /* Prevents potential bottom space */
}

/* --- End of Ad + Video Layout Styles --- */
/* --- Add these new rules and modify the responsive block --- */
/* --- You can place these near the other ad/video styles --- */

/* Style the container for the ad on the right */
.ad-container-right {
    /* Define the width or basis similar to the left ad. Adjust if this ad is different size */
    flex-basis: 300px;
    flex-shrink: 0;
    /* Prevent shrinking */
    min-height: 250px;
    /* Example: Match left ad or adjust based on new ad unit */
    /* background-color: #ccf; /* Optional: for visualizing */
}

/* Optional: Adjust the general ad unit style if needed, or make it more specific */
/* This rule targets BOTH ad units with class .eas6a97888e2 inside the wrapper */
.ad-video-layout-wrapper .eas6a97888e2 {
    display: block;
    max-width: 100%;
    /* You might need specific min-heights if ads differ significantly */
    /* Example: min-height: 250px; */
}

/* Remove the older more specific rule if you had one: */
/* .ad-container-left .eas6a97888e2 { ... } */


/* --- Modify the existing Responsive Block --- */
@media (max-width: 900px) {

    /* Breakpoint for stacking Ad and Video */
    .ad-video-layout-wrapper {
        flex-direction: column;
        /* Stack items vertically */
        align-items: center;
        /* Center items when stacked */
        gap: 25px;
        /* Adjust gap for vertical stacking */
    }

    /* Define order for vertical stacking: Video -> Left Ad -> Right Ad */
    #video-container {
        order: 0;
        /* Video first */
        width: 100%;
        max-width: 700px;
    }

    .ad-container-left {
        order: 1;
        /* Left ad second */
        flex-basis: auto;
        /* Reset basis for column layout */
        width: 100%;
        max-width: 400px;
        min-height: 100px;
        /* Adjust height for vertical layout */
    }

    .ad-container-right {
        order: 2;
        /* Right ad last */
        flex-basis: auto;
        /* Reset basis for column layout */
        width: 100%;
        max-width: 400px;
        /* Match left ad max-width? Adjust as needed */
        min-height: 100px;
        /* Adjust height for vertical layout */
    }
}

/* --- Ensure the rest of your style.css remains the same --- */
/* --- Add these new CSS rules --- */
/* --- Place them near the other ad container styles or general layout styles --- */

/* Styles for the ad container below the button */
.ad-container-bottom {
    width: 100%;
    /* Take full width of the video-section container */
    max-width: 728px;
    /* Optional: Limit width (e.g., common banner ad width). Adjust as needed. */
    margin: 25px auto 0 auto;
    /* Add space above (25px), center horizontally, no space below */
    text-align: center;
    /* Center the ad content within the container */
    min-height: 90px;
    /* Example: Typical height for a 728x90 banner. Adjust based on ad size. */
    /* background-color: #cfc; /* Optional: for visualizing */
}

/* Optional: Style the ad unit itself within this container if needed */
.ad-container-bottom .eas6a97888e2 {
    display: inline-block;
    /* Allows text-align:center to work well */
    /* Or display: block; margin: 0 auto; */
    max-width: 100%;
    /* Explicit width/height might be needed if ad script doesn't set it */
    /* width: 728px; */
    /* height: 90px; */
}

/* --- No changes needed to the @media queries specifically for this ad's position --- */
/* --- Ensure the rest of your style.css remains the same --- */
/* --- Add these CSS rules to your existing style.css --- */

/* Adjustments for #movie-container WHEN inside the flex wrapper */
.ad-video-layout-wrapper>#movie-container {
    flex-grow: 1;
    /* Allow movie container to take remaining space */
    width: auto;
    /* Width is now determined by flexbox */
    max-width: 100%;
    /* Ensure it doesn't overflow flex item */
    margin: 0;
    /* Remove auto margin, parent wrapper handles centering */
    padding: 0;
    /* Remove padding, parent wrapper handles padding */
    /* background-color: #ddf; /* Optional: for visualizing */
}

/* Ensure the iframe within the movie container fills its space */
.ad-video-layout-wrapper>#movie-container iframe {
    width: 100%;
    /* Make iframe fill the #movie-container flex item */
    height: auto;
    /* Keep height automatic */
    aspect-ratio: 16 / 9;
    /* Maintain 16:9 aspect ratio */
    max-width: 100%;
    /* Limit iframe width to its container */
    border: none;
    /* Assuming no border needed */
    border-radius: 10px;
    /* Keep rounded corners */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    /* Keep shadow */
    display: block;
    /* Prevents potential bottom space */
}


/* --- Modify the Responsive Block for Movies Page --- */
/* Update the existing @media query to handle #movie-container stacking */
@media (max-width: 900px) {

    /* Keep the existing rules for .ad-video-layout-wrapper */
    .ad-video-layout-wrapper {
        flex-direction: column;
        /* Stack items vertically */
        align-items: center;
        /* Center items when stacked */
        gap: 25px;
        /* Adjust gap for vertical stacking */
    }

    /* Define order for vertical stacking (adjust as needed) */
    /* Apply specifically when parent is the wrapper */

    /* Movie Player First */
    .ad-video-layout-wrapper>#movie-container {
        order: 0;
        /* Movie player first */
        width: 100%;
        max-width: 700px;
        /* Adjust max-width as desired for stacked view */
        /* Reset flex properties not needed in column layout */
        flex-grow: 0;
    }

    /* Also apply stacking rules to #video-container if present */
    .ad-video-layout-wrapper>#video-container {
        order: 0;
        width: 100%;
        max-width: 700px;
        flex-grow: 0;
    }


    /* Left Ad Second */
    .ad-video-layout-wrapper>.ad-container-left {
        order: 1;
        /* Left ad second */
        flex-basis: auto;
        /* Reset basis for column layout */
        width: 100%;
        max-width: 400px;
        min-height: 100px;
        /* Adjust height for vertical layout */
    }

    /* Right Ad Last (if present on videos page) */
    .ad-video-layout-wrapper>.ad-container-right {
        order: 2;
        /* Right ad last */
        flex-basis: auto;
        /* Reset basis for column layout */
        width: 100%;
        max-width: 400px;
        /* Match left ad max-width? Adjust as needed */
        min-height: 100px;
        /* Adjust height for vertical layout */
    }
}

/* --- Ensure the rest of your style.css remains the same --- */
/* Load Video Button (if separate from general CTA) */
#load-video {
    margin-top: 1.5rem;
    /* Space above the button */
}

/* Category Buttons */
.category-buttons {
    display: flex;
    flex-wrap: wrap;
    /* Allow buttons to wrap on smaller screens */
    gap: 0.75rem;
    /* Adjust gap */
    justify-content: center;
    margin: 1.5rem 0 2rem 0;
    /* Adjust margins */
}

.category-button {
    padding: 0.6rem 1.2rem;
    /* Adjust padding */
    background-color: var(--card-background);
    color: var(--text-color);
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.3s, color 0.3s;
    font-size: 0.9rem;
    /* Adjust font size */
}

.category-button.active {
    background-color: var(--primary-color);
    color: white;
}

.category-button:hover {
    transform: translateY(-2px);
    background-color: var(--primary-color);
    /* Hover effect consistent with active */
    color: white;
}

/* Footer */
footer {
    background-color: var(--primary-color);
    /* Warm orange */
    color: white;
    text-align: center;
    padding: 1.5rem 1rem;
    /* Adjusted padding */
    margin-top: 3rem;
    /* Increased top margin for separation */
    /* position: relative; Removed, using flexbox on body now */
    width: 100%;
    box-sizing: border-box;
    /* Include padding in width */
}

/* Movie Player Specific Styles (if needed, separate from video section) */
.movie-player {
    text-align: center;
    margin: 2rem auto;
    max-width: 800px;
    padding: 0 1rem;
    /* Add padding for smaller screens */
    box-sizing: border-box;
}

.movie-player iframe {
    width: 100%;
    height: auto;
    /* Use aspect-ratio for consistency */
    aspect-ratio: 16 / 9;
    /* height: 360px; Replaced by aspect-ratio */
    max-width: 100%;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    display: block;
}


/* Responsive Design */

/* Responsive Ad/Video Layout */
@media (max-width: 900px) {

    /* Breakpoint for stacking Ad and Video */
    .ad-video-layout-wrapper {
        flex-direction: column;
        /* Stack ad and video vertically */
        align-items: center;
        /* Center items when stacked */
        gap: 25px;
        /* Adjust gap for vertical stacking */
    }

    .ad-container-left {
        flex-basis: auto;
        /* Reset basis */
        width: 100%;
        /* Allow ad container to take full width */
        max-width: 400px;
        /* Optional: Limit ad width, adjust as needed */
        min-height: 100px;
        /* Reduce min-height or set to auto */
        order: 1;
        /* Optional: Place Ad below video if desired */
    }

    #video-container {
        width: 100%;
        /* Ensure video container takes full width */
        max-width: 700px;
        /* Optional: Limit video width */
        order: 0;
        /* Optional: Ensure Video comes first if ad order is changed */
    }
}

/* General Responsive Styles */
@media (max-width: 768px) {

    /* Header/Nav */
    .nav-links {
        display: none;
        /* Hide links by default */
        flex-direction: column;
        position: absolute;
        top: 60px;
        /* Adjust based on header height */
        left: 0;
        width: 100%;
        background-color: var(--primary-color);
        padding: 1rem 0;
        text-align: center;
    }

    .nav-links.active {
        display: flex;
        /* Show when active */
    }

    .hamburger {
        display: flex;
        /* Show hamburger */
    }

    /* Grid Layouts */
    .content-grid {
        grid-template-columns: 1fr;
        /* Single column */
        padding: 1rem;
        /* Adjust padding */
        max-width: 100%;
    }

    .about-grid {
        grid-template-columns: 1fr;
        /* Single column */
    }

    /* Age Warning */
    .age-warning-card {
        grid-column: 1 / 2;
        /* Adjust for single column grid */
        padding: 0 1rem;
    }

    .age-warning-button {
        font-size: 2.5rem;
        padding: 2rem 0;
    }

    /* Movie Player */
    .movie-player iframe {
        /* aspect-ratio handles height */
    }

    /* Video Container Iframe (already responsive with aspect-ratio) */
    #video-container iframe {
        /* width: 100%; */
        /* Already set */
        /* height: auto; */
        /* Already set */
        /* aspect-ratio: 16 / 9; */
        /* Already set */
    }

    /* Buttons */
    .cta-button {
        padding: 0.7rem 1.6rem;
        /* Slightly smaller */
        font-size: 0.9rem;
    }

    .category-buttons {
        gap: 0.5rem;
        /* Reduce gap */
    }

    .category-button {
        padding: 0.5rem 1rem;
        /* Smaller buttons */
        font-size: 0.85rem;
    }

    /* Section Padding */
    .video-section,
    .movie-section,
    .picture-section,
    .about-section,
    .hero {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    /* Font Sizes */
    h1 {
        font-size: 2rem;
        /* Adjust heading sizes */
    }

    .hero h1 {
        font-size: 2.5rem;
    }

    .about-section h1 {
        font-size: 2.2rem;
    }
}

/* Further adjustments for very small screens if needed */
@media (max-width: 480px) {
    .logo {
        font-size: 1.3rem;
    }

    header {
        padding: 0.8rem 1rem;
    }

    .hero {
        padding: 3rem 1rem;
    }

    .hero h1 {
        font-size: 2rem;
    }

    .hero p {
        font-size: 1rem;
    }

    .age-warning-button {
        font-size: 1.8rem;
        padding: 1.5rem 0;
    }

    .popup-content {
        padding: 1.5rem;
    }

    .popup-buttons button {
        padding: 0.6rem 1rem;
    }

    .ad-container-left {
        max-width: 100%;
        /* Allow ad to take full width if needed */
        flex-basis: auto;
    }
}