:root {
    --blue-color: #1b3357;
    --red-color: #A0001F;
}

/* BASIS */
html, body {
    margin: 0;
    padding: 0;
    height: 100%;
}

body {
    font-family: Arial, sans-serif;
    overflow: hidden; /* alleen de snap-container scrollt */
}

/* CUSTOM H3 */
h3 {
  margin: 0;
  padding: 0;
  font-family: Verdana, sans-serif;
  text-transform: uppercase;
  line-height: 1.5;
  font-size: 40px;
  margin-right: 15px;
}

h3 > span {
  background-color: var(--red-color);
  color: #FFF;
  box-shadow: -10px 0px 0 7px var(--red-color),
    10px 0px 0 7px var(--red-color),
    0 0 0 7px var(--red-color);
  box-decoration-break: clone;
}

/* NAVIGATIE */
nav {
    background: white;
    z-index: 10;
    position: absolute;
    left: 0; 
    right: 0; 
    margin-inline: auto;
}

.nav-container {
    margin:auto;
    max-width:1024px;
    height:75px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 15px;
}

.sitenaam {
    font-size:24px;
    font-weight: 900;
    color:#121212;
    text-transform: uppercase;
}

.socials a {
    text-decoration: none;
}

.socials svg {
    fill: #343434;
    height:24px;
}

/* SNAP-CONTAINER */
.snap-container {
    padding-top: 75px; /* ruimte voor nav */
    height: 100vh;
    overflow-y: auto;
    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-y: contain;
}

/* SECTIES */
.snap-section {
    height: 100vh;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 75px; /* ruimte voor nav (desktop) */
    width: 1024px;
    max-width:100%;
    margin: auto;
}

/* Inner wrapper */
.section-inner {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* BANNER */
.banner-section {
    position: relative;
}

.banner-wrapper {
    top:75px;
    text-align: center;
    position: absolute;
    background-color: #063D70;
    height:100%;
    width: 1024px;
}

.banner-section img {
    width: 100%;
    object-fit: contain;
}

.skyline {
        position: absolute;
    bottom: 8dvh;
    opacity: 0.45;
}

.scroll-indicator {
    position: absolute;
    bottom: 8dvh;
    left: 50%;
    transform: translateX(-50%);
}

/* VIDEO-SECTIES – BASIS */
.video-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Tekst onderin de video (desktop) */
.video-text-overlay {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 20px;
    background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
    color: white;
    box-sizing: border-box;
}

.video-text-scroll {
    max-height: 40vh;
    overflow-y: auto;
    font-size: 22px;
    line-height: 1.4em;
    padding: 20px 0 10px 0;
}

/* Deel-knop */
.share-btn {
    margin-top: 10px;
    background: var(--blue-color);
    color: white;
    border: none;
    padding: 10px 18px;
    cursor: pointer;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 18px;
}

/* ============================
   MOBIEL: PREVIEW + OVERLAY
   ============================ */

.mobile-preview {
    display: none;
}

.mobile-overlay {
    display: none;
}

.video-text {
    display: none; /* bron-tekst voor JS */
}

/* DESKTOP: video links, tekst rechts, geen nested scroll */
@media (min-width: 900px) {

    .section-inner {
        padding-inline: 40px;
    }

    .video-wrapper {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 40px;
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
        height: auto;
    }

    video {
        width: auto;
        height: 80vh;
        border-radius: 10px;
    }

    .video-text-overlay {
        position: static;
        background: none;
        color: black;
        width: 400px;
        padding: 0;
    }

    .video-text-scroll {
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }

    .mobile-preview,
    .mobile-overlay {
        display: none !important;
    }
}

/* FOOTER */
.footer-section {
    background: #0a2440;
    color: white;
}

.footer-section footer {
    text-align: center;
}

.footer-section footer img {
    margin-bottom:30px;
    display: block;
}

@media (min-width: 900px) {
    .desktop-text-inner p {
        font-size: 19px;
        line-height:1.3em;
    }
    .overlay-toggle {
        display: none !important;
    }
}

/* ============================================
   MOBIEL: SCHOON EN STABIEL
============================================ */
@media (max-width: 899px) {

    .skyline {
        opacity: 1;
    }

    /* 1. secties mogen geen dubbele top-padding hebben */
    .snap-section,
    .section-inner {
        padding-top: 0 !important;
        height: auto !important;
        min-height: 100vh; /* vult scherm, maar mag groeien */
    }

        .video-section {
        background-color: var(--blue-color);
    }

    /* 2. video netjes onder de navigatie */
    video {
        width: 100%;
        height: calc(100vh - 75px - 40px); 
        /* 75px nav + 40px veilige marge voor browser UI */
        object-fit: cover;
        display: block;
    }

    /* 3. teaser overlay */
    .mobile-preview {
        display: block;
        position: absolute;
        bottom: 0;
        width: 100%;
        padding: 25px 20px;
        background: linear-gradient(
            to top,
            rgba(27,51,87,1) 10%,
            rgba(27,51,87,0.5) 85%,
            transparent 100%
        );
        color: white;
        z-index: 3;
        box-sizing: border-box;
    }

        /* 5. h3 verbergen in teaser */
    .mobile-preview h3 {
        display: none !important;
    }

    .mobile-preview .teaser-text {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-size: 18px;
        line-height: 1.45em;
    }

    .read-more-btn {
        margin-top: 15px;
        color: var(--red-color);
        font-weight: bold;
        cursor: pointer;
        font-size: 18px;
        text-transform: uppercase;
        display: block;
    }

    /* 4. overlay */
    .mobile-overlay {
        position: absolute;
        bottom: 0;
        width: 100%;
        height: 70%;
        background: rgba(27,51,87,0.95);
        color: white;
        padding: 25px 20px;
        display: none;
        z-index: 4;
        overflow: hidden;
        box-sizing: border-box;
    }

    .overlay-toggle {
        display: none;
    }

    .overlay-toggle:checked ~ .mobile-overlay {
        display: block;
    }

    .overlay-scroll {
        margin-top: 40px;
        height: calc(100% - 120px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding-right: 10px;
        font-size: 20px;
        line-height: 1.4em;
    }

    /* 5. desktop tekst verbergen */
    .desktop-text {
        display: none !important;
    }
}
