@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap');

:root {
    --groen: #6f8a3a;
    --groen-2: #4e6425;
    --bruin: #5a4628;
    --beige: #f7f5ee;
    --wit: #fff;
    --tekst: #2d2d2d;
    --shadow: 0 6px 16px rgba(0, 0, 0, .08)
}

* {
    box-sizing: border-box
}

/* Achtergrond blijft staan */
.popup {
    background: #ffcc66;
    border-bottom: 3px solid #e69500;
    padding: 15px;
    text-align: center;
    font-size: 15px;
    position: relative;
    overflow: hidden;
    /* VERBERGT de tekst terwijl die buiten beeld zit */
}



html,
body {
    margin: 0;
    padding: 0;
    height: 100%
}

body {
    font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
    background: var(--beige);
    color: var(--tekst);
    line-height: 1.65
}

a {
    color: var(--groen);
    text-decoration: none;
    transition: color .2s ease
}

a:hover {
    color: var(--groen-2)
}

header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--groen-2);
    color: var(--wit);
    box-shadow: 0 2px 6px rgba(0, 0, 0, .08)
}

nav ul {
    list-style: none;
    margin: 0;
    padding: 0 5%;
    display: flex;
    gap: .25rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap
}

nav ul li {
    position: relative
}

nav ul li a {
    display: block;
    padding: 12px 16px;
    color: var(--wit);
    font-weight: 500;
    border-radius: 8px;
    transition: background .25s ease
}

nav ul li a:hover,
nav ul li a.active {
    background: rgba(255, 255, 255, .15)
}

.submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: var(--wit);
    border-radius: 10px;
    box-shadow: var(--shadow);
    padding: 6px 0
}

.has-submenu:hover .submenu {
    display: block
}

.submenu li a {
    color: var(--tekst);
    padding: 10px 14px;
    border-radius: 0
}

.submenu li a:hover {
    background: var(--groen);
    color: var(--wit)
}

.hero {
    position: relative;
    text-align: center;
    overflow: hidden
}

.hero .overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .35);
    z-index: 1
}

.hero-image {
    width: 100%;
    height: 68vh;
    min-height: 360px;
    object-fit: cover;
    display: block;
    filter: brightness(80%)
}

.hero-text {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    padding: 0 1rem
}

.hero-text h1 {
    font-size: clamp(2rem, 4vw, 3rem);
    margin: .2rem 0;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, .5)
}

.hero-text p {
    margin: .25rem 0 0
}

.page-hero {
    position: relative;
    height: 70vh;
    min-height: 280px;
    overflow: hidden
}

.page-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(75%)
}

.page-hero .page-hero-text {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    text-align: center;
    padding: 0 1rem
}

.page-hero .page-hero-text h1 {
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    margin: 0;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, .5)
}

.page-content {
    max-width: 1000px;
    margin: -60px auto 60px;
    background: var(--wit);
    border-radius: 14px;
    box-shadow: var(--shadow);
    padding: 28px
}

main {
    max-width: 1100px;
    margin: 40px auto;
    padding: 0 20px
}

.content {
    background: var(--wit);
    padding: 26px;
    border-radius: 14px;
    box-shadow: var(--shadow);
    margin: 0 0 32px
}

.content p {
    text-align: justify
}

.takken-section {
    background: var(--beige);
    padding: 60px 10%;
    text-align: center
}

.takken-section h2 {
    color: var(--groen-2);
    margin: 0 0 36px
}

.takken-grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr))
}

.tak-card {
    background: var(--wit);
    border-radius: 14px;
    padding: 22px;
    box-shadow: var(--shadow);
    transition: transform .25s ease, box-shadow .25s ease
}

.tak-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .12)
}

.tak-img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: 10px
}

.tak-card h3 {
    color: var(--groen);
    margin: 14px 0 6px
}

.tak-card .leeftijd {
    font-weight: 600;
    color: #8ea85f;
    margin: 0 0 6px
}

.tak-card p {
    margin: 0 0 10px
}

.tak-card .btn {
    display: inline-block;
    background: var(--groen);
    color: #fff;
    border-radius: 8px;
    padding: 8px 14px;
    font-weight: 600
}

.tak-card .btn:hover {
    background: var(--groen-2)
}

.jaarkenteken-content {
    display: flex;
    gap: 32px;
    align-items: flex-start;
    flex-wrap: wrap
}

.jaarkenteken-text {
    flex: 1 1 380px;
    text-align: justify
}

.jaarkenteken-image {
    flex: 0 0 260px
}

.jaarkenteken-image img {
    width: 100%;
    border-radius: 10px;
    box-shadow: var(--shadow)
}

.tabel-13x2,
table.calendar {
    width: 100%;
    border-collapse: collapse;
    margin: 18px 0;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e7e7e7;
    box-shadow: var(--shadow)
}

.tabel-13x2 td,
table.calendar td,
table.calendar th {
    padding: 10px 12px;
    border-right: 1px solid #efefef;
    text-align: center
}

.tabel-13x2 td:last-child,
table.calendar td:last-child {
    border-right: 0
}

table.calendar th {
    background: var(--bruin);
    color: #fff;
    text-align: left
}

table.calendar tr:nth-child(even) {
    background: #f7f7f7
}

.gallery {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    justify-items: center;
    align-items: start;
    margin-top: 30px;
}

/* Elke figuur */
.gallery figure {
    background: #fff;
    border-radius: 14px;
    box-shadow: var(--shadow);
    overflow: hidden;
    text-align: center;
    width: 100%;
    max-width: 420px;
    /* voorkomt dat ze te breed worden op groot scherm */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Afbeeldingen binnenin */
.gallery img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block;
}

/* Hover-effect */
.gallery figure:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
}

/* Tekst onder foto */
.gallery figcaption {
    padding: 10px;
    font-weight: 600;
    color: var(--groen-2);
}

/* Mobiel */
@media (max-width: 768px) {
    .gallery img {
        height: 200px;
    }
}

/* Extra breed scherm — houdt drie kolommen aan */
@media (min-width: 1300px) {
    .gallery {
        grid-template-columns: repeat(3, 1fr);
    }
}


.gallery img {
    max-width: 100%;
    height: auto;
    border-radius: 8px
}

.gallery figcaption {
    margin-top: 8px;
    font-size: .95rem
}

form {
    display: flex;
    flex-direction: column;
    gap: 10px
}

form label {
    font-weight: 600
}

form input,
form textarea {
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    width: 100%
}

form textarea {
    resize: vertical;
    min-height: 120px
}

.doorverwijzing {
    align-self: flex-start;
    margin-top: 6px;
    padding: 10px 16px;
    border: none;
    border-radius: 10px;
    background: var(--bruin);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease, transform .2s
}

.doorverwijzing:hover {
    background: #46361f;
    transform: translateY(-1px)
}


form button {
    align-self: flex-start;
    margin-top: 6px;
    padding: 10px 16px;
    border: none;
    border-radius: 10px;
    background: var(--bruin);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease, transform .2s
}

form button:hover {
    background: #46361f;
    transform: translateY(-1px)
}

footer {
    background: var(--groen-2);
    color: #fff;
    text-align: center;
    padding: 22px 10px;
    margin-top: 50px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 140px
}

footer a {
    color: #fff;
    text-decoration: underline
}

@media (max-width:980px) {
    main {
        margin: 28px auto
    }

    .page-content {
        margin: -48px auto 48px;
        padding: 22px
    }
}

@media (max-width:768px) {
    nav ul {
        flex-direction: column;
        gap: 0;
        padding: 0
    }

    nav ul li a {
        border-radius: 0;
        width: 100%;
        text-align: center
    }

    .hero-image {
        height: 52vh
    }

    .page-hero {
        height: 36vh
    }

    .jaarkenteken-content {
        flex-direction: column
    }

    .jaarkenteken-image {
        flex: 1 1 auto
    }

    .gallery {
        flex-direction: column
    }
}

/* ===== Hero op subpagina's (vaste foto + tekst over de volle breedte) ===== */
:root {
    --hero-h: 55vh;
    /* hoogte van de afbeelding */
    --overlap: 20vh;
    /* hoeveel de tekst overlapt met de foto */
}

/* Hero-sectie */
body:not(.home) .page-hero {
    position: relative;
    width: 100%;
    height: var(--hero-h);
    min-height: 320px;
    overflow: hidden;
    z-index: 0;
}

/* Foto blijft staan (alleen bovenaan, niet hele pagina) */
body:not(.home) .page-hero img {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--hero-h);
    object-fit: cover;
    filter: brightness(70%);
    z-index: -1;
}

/* Tekst op de foto */
body:not(.home) .page-hero .page-hero-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-align: center;
    padding: 0 1rem;
    z-index: 2;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.6);
}

/* ===== Doorlopende content over volledige breedte ===== */
body:not(.home) main {
    position: relative;
    background: var(--wit);
    z-index: 1;
    margin-top: calc(var(--hero-h) - var(--overlap));
    /* schuift over foto */
    padding: 40px 5vw;
    /* volle breedte, met wat marge links/rechts */
    box-shadow: none;
}

body:not(.home) .page-content {
    max-width: none;
    /* niet meer centreren in blok */
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

/* Optionele fade aan onderkant van foto */
body:not(.home) .page-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 120px;
    background: linear-gradient(to bottom, rgba(0, 0, 0, .2), rgba(0, 0, 0, 0));
    pointer-events: none;
}

/* Mobiel iets minder hoog en overlap */
@media (max-width: 768px) {
    :root {
        --hero-h: 45vh;
        --overlap: 14vh;
    }

    body:not(.home) main {
        padding: 28px 6vw;
    }
}


/* === SUBPAGINA FIX: geen zwevende blokken, volle breedte === */

/* 1) Body is gewoon doorlopend wit op subpagina's */
body:not(.home) {
    background: var(--wit);
}

/* 2) Hero met vaste foto bovenaan, tekst schuift erover */
body:not(.home) .page-hero {
    position: relative;
    width: 100%;
    height: 55vh;
    /* mag je tweaken */
    min-height: 320px;
    overflow: hidden;
    z-index: 0;
}

body:not(.home) .page-hero img {
    position: fixed;
    /* blijft staan */
    top: 0;
    left: 0;
    width: 100%;
    height: 55vh;
    /* exact zelfde hoogte als de hero */
    object-fit: cover;
    filter: brightness(70%);
    z-index: -1;
}

body:not(.home) .page-hero .page-hero-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-align: center;
    padding: 0 1rem;
    z-index: 2;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, .6);
}

/* 3) Tekst start onder de foto, over de VOLLE breedte (geen kaart) */
body:not(.home) main {
    max-width: none;
    /* verwijdert de centrale kolom */
    margin: 0;
    padding: 40px 5vw;
    /* lucht aan zijkanten, maar volle breedte */
    background: var(--wit);
    box-shadow: none;
    border-radius: 0;
    position: relative;
    z-index: 1;
    margin-top: 35vh;
    /* laat de tekst al 'over' de foto komen
                            (maak kleiner/groter naar smaak) */
}

/* 4) Nuke alle “kaart”-stijlen die nog kunnen blijven hangen */
body:not(.home) .page-content {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body:not(.home) .content {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 0 24px !important;
    /* enkel ondermarge voor ritme */
}

/* 5) Optioneel: zachte fade aan onderkant van de foto */
body:not(.home) .page-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 120px;
    background: linear-gradient(to bottom, rgba(0, 0, 0, .22), rgba(0, 0, 0, 0));
    pointer-events: none;
}

/* 6) Mobiel: iets compacter */
@media (max-width: 768px) {
    body:not(.home) .page-hero {
        height: 46vh;
    }

    body:not(.home) .page-hero img {
        height: 46vh;
    }

    body:not(.home) main {
        margin-top: 28vh;
        padding: 28px 6vw;
    }
}

/* === INSCHRIJVEN FIX: foto blijft staan, geen transparantie === */
body:not(.home) {
    background: var(--wit);
    position: relative;
    z-index: 0;
}

/* Hero-foto blijft 'vast' staan */
body:not(.home) .page-hero {
    position: relative;
    width: 100%;
    height: 55vh;
    overflow: hidden;
}

body:not(.home) .page-hero img {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 75vh;
    object-fit: cover;
    filter: brightness(70%);
    z-index: -1;
}

/* Tekst op de foto */
body:not(.home) .page-hero .page-hero-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.6);
    z-index: 1;
}

/* Witte content start ONDER de foto */
body:not(.home) main {
    background: var(--wit);
    position: relative;
    z-index: 2;
    margin-top: 55vh;
    /* exact de hoogte van de foto */
    padding: 40px 5vw;
}

/* Geen rare fade of transparantie */
body:not(.home) .page-hero::after {
    display: none;
}

/* Zorg dat contentblokken echt wit zijn */
body:not(.home) .content,
body:not(.home) .page-content {
    background: var(--wit);
    box-shadow: none;
}

body:not(.home) main {
    flex: 1;
}

/* === Contactpagina: Google Maps === */

.map-container {
    position: relative;
    width: 100%;
    max-width: 1200px;
    /* optioneel: begrenst de maximale breedte */
    margin: 40px auto;
    /* centreren en ruimte boven/onder */
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--shadow);
    aspect-ratio: 16 / 9;
    /* moderne manier om hoogte te behouden */
}

/* Zorg dat de kaart altijd 100% van de container vult */
.map-container iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    filter: brightness(95%);
    /* subtiel effect, optioneel */
    transition: filter 0.3s ease;
}

.map-container iframe:hover {
    filter: brightness(100%);
}

/* Mobiel iets meer hoogte */
@media (max-width: 768px) {
    .map-container {
        aspect-ratio: 4 / 3;
        margin: 28px auto;
    }
}

/* === Scroll-gallery effect === */
.scroll-gallery {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.scroll-gallery .panel {
    position: relative;
    width: 100%;
    height: 100vh;
    /* één foto per schermhoogte */
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
}

.scroll-gallery .panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
}

/* Tekst standaard onzichtbaar */
.scroll-gallery h2 {
    position: relative;
    z-index: 2;
    font-size: clamp(2rem, 4vw, 3rem);
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1.2s ease, transform 1.2s ease;
}

/* Zodra zichtbaar in viewport */
.scroll-gallery .panel.visible h2 {
    opacity: 1;
    transform: translateY(0);
}


/* === Scroll-sectie met afwisselend beeld en tekst === */

.scroll-sections {
    width: 100%;
}

/* FOTO-panelen */
.scroll-sections .panel.image {
    position: relative;
    width: 100%;
    height: 100vh;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    text-align: center;
}

.scroll-sections .panel.image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.4));
}

.scroll-sections .panel.image h1,
.scroll-sections .panel.image h2 {
    position: relative;
    z-index: 2;
    font-size: clamp(2rem, 4vw, 3rem);
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1.2s ease, transform 1.2s ease;
}

/* Tekstblokken */
.scroll-sections .panel.text {
    background: var(--wit);
    color: var(--tekst);
    padding: 60px 10%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.scroll-sections .panel.text .inner {
    max-width: 900px;
    text-align: justify;
}

.scroll-sections .panel.text h3 {
    color: var(--groen-2);
    margin-top: 0;
}

/* Fade-in effect */
.scroll-sections .panel.visible h1,
.scroll-sections .panel.visible h2 {
    opacity: 1;
    transform: translateY(0);
}

/* Mobiel: geen parallax (sneller laden) */
@media (max-width: 768px) {
    .scroll-sections .panel.image {
        background-attachment: scroll;
    }
}

/* Fade-in effect voor witte tekstblokken */
.scroll-sections .panel.text {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s ease, transform 1s ease;
}

.scroll-sections .panel.text.visible {
    opacity: 1;
    transform: translateY(0);
}

header.scrolled {
    background: rgba(78, 100, 37, 0.95);
    backdrop-filter: blur(6px);
    transition: background 0.3s ease, backdrop-filter 0.3s ease;
}

h1,
h2 {
    letter-spacing: 1px;
}

h3 {
    font-weight: 600;
    color: var(--groen);
}

ul li {
    margin-bottom: 0.4em;
}

section.kapoen ul,
section.welp ul,
section.pio ul,
section.jonggiver ul,
section.giver ul,
section.jin ul {
    background: var(--beige);
    padding: 20px 30px;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    list-style: none;
}

section.kapoen li,
section.welp li,
section.pio li,
section.jonggiver li,
section.giver li,
section.jin li {
    margin-bottom: 12px;
}


/* === FOTO GALERIJ STIJL === */
.gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 24px;
    margin-top: 30px;
    padding: 0 10px;
}

.gallery a {
    text-decoration: none;
    color: inherit;
}

.gallery figure {
    background: var(--wit);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    position: relative;
}

.gallery figure:hover {
    transform: translateY(-8px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.gallery img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

/* Extra beweging op hover */
.gallery figure:hover img {
    transform: scale(1.05);
}

.gallery figcaption {
    text-align: center;
    padding: 12px;
    font-weight: 600;
    color: var(--groen-2);
    background: #fff;
    font-size: 1rem;
}

/* Mobiel optimalisatie */
@media (max-width: 768px) {
    .gallery {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
        gap: 16px;
    }

    .gallery img {
        height: 160px;
    }
}

.kalender-container {
    max-width: 1000px;
    margin: 60px auto;
    background: var(--wit);
    padding: 30px;
    border-radius: 14px;
    box-shadow: var(--shadow);
}

.calendar-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    font-size: 1rem;
}

.calendar-table th {
    background: var(--groen-2);
    color: #fff;
    text-align: left;
    padding: 10px;
}

.calendar-table td {
    padding: 10px;
    border-bottom: 1px solid #eee;
}

.calendar-table tr:nth-child(even) {
    background: #f9f9f9;
}

.calendar-table tr:hover {
    background: #f0f5ea;
    transition: background 0.2s ease;
}

.kalender-container {
    max-width: 1000px;
    margin: 60px auto;
    background: var(--wit);
    padding: 30px;
    border-radius: 14px;
    box-shadow: var(--shadow);
}

.month-selector {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}

.month-selector button {
    background: var(--groen);
    color: #fff;
    border: none;
    padding: 8px 14px;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s ease;
}

.month-selector button:hover {
    background: var(--groen-2);
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
}

/* Dagen flexibel in hoogte */
.day {
    border: 1px solid #ddd;
    padding: 6px;
    border-radius: 8px;
    background: #fff;
    min-height: 90px;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    overflow: visible;
    transition: transform .2s ease;
}

/* Datum bovenaan */
.day .date {
    font-weight: 600;
    margin-bottom: 4px;
}

/* Event-styling */
.event {
    width: 100%;
    font-size: 0.8rem;
    color: #fff;
    padding: 4px 6px;
    border-radius: 6px;
    margin-top: 4px;
    line-height: 1.2;
    word-break: break-word;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Zorg dat dag groter mag worden */
.day.has-event {
    background: #f9faf7;
    min-height: auto;
}

.day.has-event:hover {
    background: #fff;
    transform: scale(1.02);
}

/* Scroll indien heel veel events */
.day .event-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    overflow-y: auto;
    max-height: 160px;
    scrollbar-width: thin;
}

/* optioneel, mooiere scrollbar */
.day .event-list::-webkit-scrollbar {
    width: 4px;
}

.day .event-list::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
}


.day:hover {
    transform: scale(1.03);
    background: #fff;
}

.day .date {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--groen-2);
}

.day.has-event {
    border: 2px solid var(--groen);
    background: #eef3e4;
}

.event {
    background: var(--groen);
    color: #fff;
    font-size: 0.8rem;
    padding: 4px 6px;
    border-radius: 6px;
    margin-top: 4px;
}

.event {
    color: #fff;
    font-size: 0.8rem;
    padding: 4px 6px;
    border-radius: 6px;
    margin-top: 4px;
    line-height: 1.2;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.day.has-event {
    border: 2px solid rgba(0, 0, 0, 0.1);
    background: #f7f9f5;
}

.day.has-event:hover {
    background: #fff;
    transform: scale(1.03);
}

.kalender-legenda {
    margin-top: 30px;
    padding: 15px;
    background: #f9f9f9;
    border-radius: 10px;
    box-shadow: var(--shadow);
}

.kalender-legenda h3 {
    margin-top: 0;
    color: var(--groen-2);
}

.kalender-legenda ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px 16px;
}

.kalender-legenda li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95rem;
}

.kleur {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: inline-block;
    border: 1px solid rgba(0, 0, 0, 0.1);
}

/* Kleuren per tak */
.kleur.kapoenen {
    background: #FFD60A;
}

/* geel */
.kleur.welpen {
    background: #A8E10C;
}

/* lichtgroen */
.kleur.pioniers {
    background: #2E7D32;
}

/* donkergroen */
.kleur.jonggivers {
    background: #FF7F11;
}

/* oranje */
.kleur.givers {
    background: #0077B6;
}

/* blauw */
.kleur.jins {
    background: #D90429;
}

/* rood */
.kleur.algemeen {
    background: #9D4EDD;
}

/* paars (algemeen) */

.kleur.algemeen {
    background: #4DB6E3;
}

/* FOTO BLOKKEN — specifieke stijl voor de foto’s pagina */
.foto-blok {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
}

.foto-blok:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.foto-blok img {
    width: 100%;
    height: 240px;
    /* pas hier de hoogte aan */
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.foto-blok:hover img {
    transform: scale(1.05);
}

.foto-blok figcaption {
    padding: 12px;
    text-align: center;
    font-weight: 600;
    color: var(--groen-2);
}

/* === Foto's pagina (geforceerde layout) === */
.fotos .gallery {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(300px, 1fr)) !important;
    gap: 24px !important;
    max-width: 1300px !important;
    margin: 40px auto !important;
    padding: 0 10px;
}

.fotos .gallery figure {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: transform .3s ease, box-shadow .3s ease;
    cursor: pointer;
}

.fotos .gallery img {
    width: 100%;
    height: 240px;
    /* pas deze hoogte gerust aan */
    object-fit: cover;
    display: block;
}

/* Hover */
.fotos .gallery figure:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, .15);
}

/* Tablet: 2 kolommen */
@media (max-width: 1024px) {
    .fotos .gallery {
        grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
        max-width: 900px;
    }
}

/* Mobiel: 1 kolom */
@media (max-width: 600px) {
    .fotos .gallery {
        grid-template-columns: 1fr !important;
        max-width: 500px;
    }

    .fotos .gallery img {
        height: 180px;
    }
}

/* ===== Tekst uitvulling voor paragrafen ===== */
main p,
.content p,
.achtergrond p,
.page-content p {
    text-align: justify;
    text-justify: inter-word;
    /* zorgt dat het mooi tussen woorden uitlijnt */
}

.document-viewer {
    margin: 40px auto;
    max-width: 1200px;
    /* je kunt hier padding of achtergrondkleur toevoegen */
}

.document-viewer iframe {
    width: 100%;
    height: 600px;
    /* of hoger/lager naar keuze */
}

/* Layout voor Uniform-sectie */
.uniform-layout {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    flex-wrap: wrap;
}

/* Tekst neemt meer ruimte dan foto */
.uniform-tekst {
    flex: 1 1 60%;
}

/* Afbeelding rechts */
.uniform-illustratie {
    flex: 1 1 35%;
    text-align: center;
}

.uniform-illustratie img {
    width: 100%;
    height: auto;
    max-height: 480px;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
    object-fit: contain;
}

.uniform-illustratie figcaption {
    font-size: 0.9rem;
    font-style: italic;
    color: #555;
    margin-top: 0.5rem;
}

/* Op mobiele schermen onder elkaar */
@media (max-width: 768px) {
    .uniform-layout {
        flex-direction: column;
    }

    .uniform-illustratie {
        max-width: 400px;
        margin: 0 auto;
    }
}



/* =======================================================
   🌙 FINALE HEADER + NACHT VAN DE JEUGDBEWEGING EFFECT
   ======================================================= */

/* Header boven hero */
/* ================================================
   🌙 SCOUTING HEADER — blijft boven hero en scrolt mee weg
   ================================================ */

/* Header staat boven de hero, blijft zichtbaar */
.main-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    color: #fff;
    transition: background 0.4s ease, box-shadow 0.4s ease;
    background: rgba(78, 100, 37, 0.9);
    /* boven hero */
    backdrop-filter: blur(4px);
}

/* Hero moet een position hebben zodat header erboven kan liggen */
.page-hero {
    position: relative;
    z-index: 1;
}

/* Wanneer je voorbij de hero scrollt → header wordt “deel van de pagina” */
.main-header.scrollt-mee {
    position: relative;
    background: var(--groen-2);
    backdrop-filter: none;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}


/* Nachtmodus-lagen */
.main-header::before,
.main-header::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .5s ease;
    z-index: 0;
}

/* Blauwe achtergrond */
.main-header::before {
    background: radial-gradient(circle at 30% 100%, #0b0583 0%, #000020 90%);
}

/* Sterrenlaag */
.main-header::after {
    background-image:
        radial-gradient(#ffffff33 1px, transparent 1px),
        radial-gradient(#00d4ff33 1px, transparent 1px),
        radial-gradient(#ff9f2f33 1px, transparent 1px);
    background-size: 40px 40px, 60px 60px, 80px 80px;
}

/* Activeer nachtmodus */
.main-header.nacht-modus::before {
    opacity: 1;
}

.main-header.nacht-modus::after {
    opacity: .15;
}

/* Tekstkleur/glow bij nachtmodus */
.main-header.nacht-modus nav a {
    color: #d19e57;
    text-shadow:
        0 0 6px rgba(0, 212, 255, .6),
        0 0 16px rgba(255, 159, 47, .4);
}

/* Menu en submenu boven lagen */
.main-header nav,
.main-header nav ul,
.main-header nav a {
    position: relative;
    z-index: 2;
}

/* Submenu's fix */
nav ul li.has-submenu {
    position: relative;
}

nav ul li.has-submenu .submenu {
    position: absolute;
    top: 100%;
    left: 0;
    display: none;
    min-width: 220px;
    background: var(--wit);
    border-radius: 10px;
    box-shadow: var(--shadow);
    z-index: 9999;
}

nav ul li.has-submenu:hover .submenu {
    display: block;
}

/* --- De Nacht knop --- */
a.nvdjb-link {
    position: relative;
    color: inherit;
    text-decoration: none;
    padding: .5rem 1rem;
    border-radius: 8px;
    transition: all .3s ease;
    background: transparent;
}

a.nvdjb-link:hover {
    background: radial-gradient(circle at 30% 100%, #0b0583 0%, #000020 90%);
    box-shadow:
        0 0 10px rgba(0, 212, 255, .5),
        0 0 18px rgba(255, 159, 47, .4),
        0 0 40px rgba(255, 159, 47, .25);
    transform: scale(1.05);
}

a.nvdjb-link:hover span {
    background: linear-gradient(90deg, #00d4ff, #ff9f2f);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    text-shadow:
        0 0 10px rgba(0, 212, 255, .6),
        0 0 20px rgba(255, 159, 47, .4);
}

/* Gloed-animatie achter knop */
a.nvdjb-link:hover::after {
    content: "";
    position: absolute;
    inset: -8px;
    border-radius: 12px;
    background: radial-gradient(circle at 50% 120%,
            rgba(255, 159, 47, .25),
            rgba(0, 212, 255, .15),
            transparent 80%);
    z-index: -1;
    animation: pulseNacht 2s ease-in-out infinite alternate;
}

@keyframes pulseNacht {
    from {
        opacity: .5;
        transform: scale(1);
    }

    to {
        opacity: 1;
        transform: scale(1.08);
    }
}

/* Marker voor scroll-detectie */
#sticky-stop {
    position: relative;
    height: 1px;
}

/* Sentinel voor de observer */
#sticky-stop {
    position: relative;
    height: 1px;
}

/* Header blijft bovenaan tijdens hero */


/* Wanneer de hero uit beeld is → header scrolt weg */
.main-header:not(.blijft-staan) {
    position: relative;
    background: var(--groen-2);
}

/* Ruimte vasthouden zodat er geen layout-sprong is */
#header-spacer {
    height: 0;
}

.main-header.blijft-staan+#header-spacer {
    height: var(--header-h, 64px);
}

/* ===============================
   🌙 HEADER GEDRAG — blijft boven hero, scrolt daarna weg
   =============================== */

/* Header blijft vast boven de hero */
.main-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    color: #fff;
    transition: background 0.4s ease, box-shadow 0.4s ease;
    background: rgba(78, 100, 37, 0.9);
    backdrop-filter: blur(6px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

/* Zolang hij “vast” is, ligt de hero eronder */
.page-hero {
    position: relative;
    z-index: 1;
}


/* marker om ruimte te reserveren */
#hero-end {
    position: relative;
    height: 1px;
}

/* container rond header + hero */
.hero-wrap {
    position: relative;
}

/* header plakt zolang .hero-wrap nog bezig is (dus zolang hero zichtbaar is) */
.hero-wrap .main-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    color: #fff;
    background: rgba(78, 100, 37, 1);
    /* of var(--groen-2) */
    backdrop-filter: blur(6px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

/* zorg dat hero ‘achter’ de header kan liggen */
.page-hero {
    position: relative;
    z-index: 1;
}

.popuplink {
    color: black
}

.popuplink:hover {
    text-decoration: underline;
    color: black;
}