* { margin: 0; padding: 0; box-sizing: border-box; }
/* 10. Responsive Media Queries */
@media (max-width: 480px) {
    .slide-overlay { padding-top: 15px; }
    .slide-overlay h2 { font-size: 1.25rem; }
    .slide-overlay p { font-size: 0.8rem; }
}

@media (min-width: 900px) {
    .menu-toggle { display: none; }
    .nav-links { display: flex; gap: 1.5rem; }
    .nav-links a { text-decoration: none; color: #333; font-weight: 500; }
}

/* 3. Slider Container */
.slider-container {
    width: 100vw;
    height: 25vw; 
    min-height: 150px; 
    overflow: hidden;
    position: relative;
    background: #ffffff; 
    display: block;
}

/* 4. Slide Framework */
.slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    opacity: 0;
    z-index: 1;
    transition: opacity 1s ease-in-out; 
}

.slide.active {
    opacity: 1;
    z-index: 3; 
}

/* Keeps exit slide layered correctly while it completes its 1s fade out */
.slide.exit {
    opacity: 0;
    z-index: 2; 
}

/* 5. Image Canvas & Fixed Zoom Fix */
.image-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.slide img {
    width: 100%;
    height: 100%;
    object-fit: contain; 
    object-position: top center; 
    display: block;
    transform-origin: center top; 
    transform: scale(1);
}

/* Zoom runs for 5s total (4s visibility + 1s fade duration) to eliminate the reset jump */
.slide.active img,
.slide.exit img {
    animation: elementorZoomIn 5s linear forwards;
}

/* 6. 50% Opaque Black Background Overlay Layer */
.dark-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.50);
    z-index: 5;
    pointer-events: none;
}

/* 7. Text Overlay */
.slide-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; 
    z-index: 10;
    display: flex;
    flex-direction: column;
    justify-content: flex-start; 
    align-items: flex-end;       
    text-align: right;           
    padding-top: 2vw;            
    padding-right: 10vw;         
    color: #ffffff;
    pointer-events: none;    
}

.slide-overlay h2 {
    font-size: 3vw; 
    margin-bottom: 0.5vw;
}

.slide-overlay p {
    font-size: 1.5vw;
}

/* 8. Zoom Keyframes */
@keyframes elementorZoomIn {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.12); /* Image reaches maximum scale completely hidden */
    }
}
