:root{--wit:#fff;--tekst:#2e2c29;--mut:#7a766e;--lijn:#ebe6dc;--acc:#d2b25c;--acc-d:#a8893a;--acc-tekst:#2e2c29;--licht:#faf8f3;--fout:#a3453a}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--wit);color:var(--tekst);font:16px/1.75 "Lato",system-ui,-apple-system,"Segoe UI",sans-serif}
h1,h2,h3{font-family:"Montserrat",system-ui,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.18em;line-height:1.2;margin:0 0 .5em}
a{color:var(--acc-d)}img{max-width:100%;display:block}
.wrap{max-width:760px;margin:0 auto;padding:0 22px}
.sub{font-family:"Montserrat",sans-serif;text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;font-weight:600;color:var(--acc-d);margin:0 0 1.4em}
.streep{width:34px;height:2px;background:var(--acc);margin:22px auto}

/* navigatie */
nav.kop{position:fixed;top:0;left:0;right:0;z-index:30;transition:background .25s,box-shadow .25s}
nav.kop.vast{background:rgba(255,255,255,.96);box-shadow:0 1px 0 var(--lijn)}
nav.kop .rij{display:flex;align-items:center;gap:22px;height:60px;padding:0 22px;max-width:1200px;margin:0 auto}
nav.kop .merk{white-space:nowrap;font-family:"Montserrat",sans-serif;font-weight:700;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:#fff;margin-right:auto;font-size:.95rem}
nav.kop.vast .merk,nav.kop.vast .navrsvp{color:var(--tekst)}
nav.kop .navrsvp{color:#fff;text-decoration:none;font:600 .72rem "Montserrat",sans-serif;letter-spacing:.16em;text-transform:uppercase;border:1px solid currentColor;padding:6px 14px}
nav.kop .links{display:none;position:absolute;top:60px;right:22px;min-width:260px;flex-direction:column;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.12);max-height:calc(100vh - 80px);overflow:auto}
nav.kop.open .links{display:flex}
nav.kop .links a{color:var(--tekst)!important;padding:13px 20px;border-top:1px solid var(--lijn)}
.navrsvp{flex:none}
nav.kop .links a{color:#fff;text-decoration:none;font-family:"Montserrat",sans-serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;white-space:nowrap}
.taal{display:flex;border:1px solid rgba(255,255,255,.7);border-radius:3px;overflow:hidden;flex:none}
nav.kop.vast .taal{border-color:var(--lijn)}
.taal button{border:0;background:none;padding:4px 9px;font:600 .72rem "Montserrat",sans-serif;cursor:pointer;color:#fff;letter-spacing:.1em}
nav.kop.vast .taal button{color:var(--mut)}
.taal button.aan,nav.kop.vast .taal button.aan{background:var(--acc);color:var(--acc-tekst)}

.menu{display:block;background:none;border:0;cursor:pointer;padding:6px;color:#fff}
nav.kop.vast .menu{color:var(--tekst)}
.menu span{display:block;width:22px;height:2px;background:currentColor;margin:5px 0}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:90px 22px 60px;background:#6f6a5e center/cover no-repeat;color:#fff}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.42))}
.hero>div{position:relative}
.hero h1{font-size:clamp(2.4rem,8vw,5rem);letter-spacing:.14em;margin:0}
.hero h1 .en{color:var(--acc);margin:0 .08em}
.hero .datum{font-family:"Montserrat",sans-serif;font-size:.8rem;letter-spacing:.25em;text-transform:uppercase;margin:14px 0 26px}
.aftel{display:flex;justify-content:center;gap:26px;margin:0 0 30px}
.aftel b{display:block;font:600 1.9rem/1 "Montserrat",sans-serif}
.aftel span{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;opacity:.9}
.knop{display:inline-block;background:transparent;color:inherit;border:2px solid currentColor;padding:11px 28px;font:600 .74rem "Montserrat",sans-serif;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;cursor:pointer;border-radius:0}
.knop.vol{background:var(--acc);border-color:var(--acc);color:var(--acc-tekst)}
.knop+.knop{margin-left:10px}
.knop:disabled{opacity:.6;cursor:default}
.pijl{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:#fff;font-size:1.4rem;text-decoration:none;opacity:.8}

/* tekstblokken */
.tekstblok{padding:90px 0;text-align:center}
.tekstblok h2{font-size:clamp(1.5rem,3.6vw,2.1rem)}
.tekstblok .inhoud{max-width:600px;margin:0 auto;color:#4a4740}
.tekstblok .inhoud p{margin:.6em 0}.tekstblok .inhoud ul{text-align:left;display:inline-block}
.tekstblok.kleur{background:var(--acc);color:var(--acc-tekst)}
.tekstblok.kleur .sub{color:#fff}.tekstblok.kleur .streep{background:#fff}.tekstblok.kleur .inhoud{color:var(--acc-tekst)}
.tekstblok.licht{background:var(--licht)}
.tekstblok.opfoto{position:relative;color:#fff;background:#6f6a5e center/cover no-repeat}
.tekstblok.opfoto::before{content:"";position:absolute;inset:0;background:rgba(30,28,24,.5)}
.tekstblok.opfoto>.wrap{position:relative}.tekstblok.opfoto .inhoud,.tekstblok.opfoto .sub{color:#fff}.tekstblok.opfoto a{color:#fff}

/* foto-band tussen de tekstblokken */
.fotoband{height:62vh;min-height:300px;background:#ddd center/cover no-repeat}
@media (min-width:900px) and (hover:hover){.fotoband,.hero,.tekstblok.opfoto{background-attachment:fixed}}

/* wanneer | waar */
.ww{display:grid;grid-template-columns:1fr 1px 1fr;gap:34px;max-width:620px;margin:10px auto 34px;align-items:center}
.ww .scheid{background:currentColor;opacity:.5;height:80px}
.ww h3{font-family:"Lato",sans-serif;text-transform:none;letter-spacing:0;font-weight:700;font-size:1.05rem;margin-bottom:.3em}

/* programma */
.prog{list-style:none;padding:0;margin:10px auto 0;max-width:440px;text-align:left}
.prog li{display:flex;gap:22px;padding:13px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.prog .t{font:600 .9rem "Montserrat",sans-serif;min-width:62px;color:var(--acc-d)}

/* foto's */
.galerij{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,240px));justify-content:center;gap:8px;margin-top:10px;max-width:1100px;margin-left:auto;margin-right:auto;padding:0 22px}
.galerij figure{margin:0}.galerij img{width:100%;aspect-ratio:1;object-fit:cover;cursor:zoom-in}
.galerij figcaption{font-size:.8rem;color:var(--mut);margin-top:4px}
.groot{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:50;padding:20px;cursor:zoom-out}
.groot.open{display:flex}.groot img{max-height:90vh}

/* faq */
details{border-bottom:1px solid var(--lijn);padding:16px 0;text-align:left}
summary{cursor:pointer;font-weight:700}details p{margin:.5em 0 0}
.kaart iframe{width:100%;height:320px;border:0;margin-top:26px}

/* rsvp */
form.rsvp{background:#fff;border:1px solid var(--lijn);padding:30px;max-width:580px;margin:10px auto 0;text-align:left;color:var(--tekst)}
.veld{margin-bottom:16px}.veld label.l{display:block;font-weight:700;margin-bottom:6px;font-size:.92rem}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;padding:11px 12px;border:1px solid #d9d3c6;border-radius:0;font:inherit;background:#fff;color:var(--tekst)}
textarea{min-height:80px;resize:vertical}
.keuze{display:flex;gap:10px;flex-wrap:wrap}
.keuze label{flex:1;min-width:150px;border:1px solid #d9d3c6;padding:10px 14px;cursor:pointer;display:flex;gap:8px;align-items:center}
.keuze label:has(input:checked){border-color:var(--acc-d);background:#fbf6e8}
.twee{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hp{position:absolute;left:-9999px}
.melding{padding:14px 16px;margin-top:14px;text-align:left}
.melding.goed{background:#fbf6e8;color:var(--tekst)}.melding.fout{background:#f6e3e0;color:var(--fout)}
.klein{font-size:.82rem;color:var(--mut);font-weight:400}
.slot{padding:70px 0}
footer{text-align:center;padding:28px 20px;color:var(--mut);font-size:.82rem;font-family:"Montserrat",sans-serif;letter-spacing:.15em;text-transform:uppercase}

/* mobiel */
@media (max-width:860px){
  nav.kop .links{left:0;right:0;min-width:0}
  .navrsvp{display:none}
  nav.kop.open{background:#fff}nav.kop.open .merk,nav.kop.open .menu{color:var(--tekst)}
  nav.kop.open .taal{border-color:var(--lijn)}nav.kop.open .taal button{color:var(--mut)}
  .tekstblok{padding:64px 0}.fotoband{height:46vh;min-height:240px}
  .ww{grid-template-columns:1fr;gap:18px}.ww .scheid{height:1px;width:60px;margin:0 auto}
  .twee{grid-template-columns:1fr}form.rsvp{padding:20px}
  .aftel{gap:16px}.knop+.knop{margin:12px 0 0 0}.hero .knoppen{display:flex;flex-direction:column;align-items:center}
}

section[id]{scroll-margin-top:60px}

/* video als achtergrond */
.vidbg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:#000}
.vidbg iframe{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;transform:translate(-50%,-50%);border:0}
.vidbg video{width:100%;height:100%;object-fit:cover;display:block}
.hero::before,.tekstblok.opfoto::before{z-index:1}
.hero>div,.hero>.pijl,.tekstblok.opfoto>.wrap{z-index:2}
.hero>.vidbg,.tekstblok.opfoto>.vidbg{z-index:0;position:absolute}
.fotoband{position:relative;overflow:hidden}
.tekstblok.kleur .sub{color:var(--acc-sub,#fff)}
input[type=file]{width:100%;padding:10px;border:1px dashed #cfc8ba;background:#fff;font:inherit}
