:root{
  --oranje:#FF6B14; --oranje-diep:#E0520A;
  --fries:#1C3F8F; --wit:#FFFFFF; --pompebled:#D7263D;
  --lamp:#FFE3A3; --nacht:#1A1410; --tekst:#2A211B; --zacht:#6E5E52;
  --papier:#FFF8EC; --lijn:rgba(42,33,27,.14);
  --bg:var(--papier); --fg:var(--tekst); --muted:var(--zacht);
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){ --bg:#1A1410; --fg:#F6ECDD; --muted:#BFAE9C; --lijn:rgba(246,236,221,.16); --papier:#241B15; }
}
:root[data-theme="dark"]{ --bg:#1A1410; --fg:#F6ECDD; --muted:#BFAE9C; --lijn:rgba(246,236,221,.16); --papier:#241B15; }
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--fg);
  font-family:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--oranje);outline-offset:3px;border-radius:4px}

/* HERO */
.hero{position:relative;min-height:min(92svh,860px);display:flex;align-items:flex-end;overflow:hidden;background:var(--nacht);color:#FFF6E6}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(26,20,16,0) 35%,rgba(26,20,16,.72) 72%,rgba(26,20,16,.95) 100%)}
.hero-in{position:relative;z-index:1;width:100%;max-width:1080px;margin:0 auto;padding:2rem 1.25rem 2.5rem}
.hero h1{margin:0;font-weight:800;font-size:clamp(3rem,13vw,8.5rem);line-height:.86;letter-spacing:-.035em}
.hero h1 span{display:block;color:var(--oranje)}
.datum{margin:1rem 0 0;font-size:clamp(1.15rem,3.4vw,1.6rem);font-weight:600;color:var(--lamp)}
.teller{margin-top:1.5rem;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.teller b{font-size:clamp(2.2rem,8vw,3.6rem);font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.teller small{font-size:1rem;color:#E9D9C3}

/* VLAGGENLIJN */
main{max-width:1080px;margin:0 auto;padding:3.5rem 1.25rem 2rem}
.intro h2{margin:0;font-size:clamp(1.7rem,5vw,2.6rem);line-height:1.05;letter-spacing:-.02em;font-weight:800}
.intro p{margin:.75rem 0 0;max-width:36rem;color:var(--muted)}
.lijnen{margin-top:2.5rem;display:grid;gap:1.5rem}
.lijn{position:relative;padding-top:6px}
.lijn svg.touw{position:absolute;left:0;top:0;width:100%;height:28px;overflow:visible;pointer-events:none}
.lijn svg.touw path{fill:none;stroke:var(--muted);stroke-width:2}
.vlaggen{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(.3rem,1.5vw,1rem)}
.vlag{appearance:none;border:0;padding:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;transform-origin:50% 0}
.vlag .doek{width:100%;aspect-ratio:4/5;clip-path:polygon(0 0,100% 0,50% 100%);
  display:flex;justify-content:center;padding-top:14%;font-weight:800;font-size:clamp(.8rem,2.4vw,1.15rem);position:relative}
.vlag.dicht .doek{background:repeating-linear-gradient(135deg,var(--fries) 0 9px,#fff 9px 18px);color:transparent;cursor:not-allowed}
.vlag.dicht .doek::after{content:"♥";position:absolute;top:26%;color:var(--pompebled);font-size:clamp(1rem,3vw,1.5rem);
  background:#fff;border-radius:50%;width:1.6em;height:1.6em;display:grid;place-items:center;line-height:1}
.vlag.open .doek{background:var(--oranje);color:#fff}
.vlag.open:hover .doek{background:var(--oranje-diep)}
.vlag.gekozen .doek{background:var(--fries);color:#fff}
.vlag .maand{margin-top:.35rem;font-size:.8rem;color:var(--muted);font-weight:600}
.vlag.dicht{cursor:not-allowed}
.vlag.nieuw{animation:wapper 2.6s ease-in-out infinite}
@keyframes wapper{0%,100%{transform:rotate(0)}30%{transform:rotate(4deg)}60%{transform:rotate(-3deg)}}
@media (prefers-reduced-motion:reduce){.vlag.nieuw{animation:none}}

/* TIP */
.tip{margin-top:2.75rem;background:var(--papier);border:1px solid var(--lijn);border-radius:22px;padding:clamp(1.4rem,4vw,2.4rem);
  display:grid;gap:.5rem;border-left:8px solid var(--oranje)}
.tip .wanneer{margin:0;color:var(--muted);font-weight:600;font-size:.95rem}
.tip h3{margin:0;font-size:clamp(1.5rem,4.4vw,2.2rem);line-height:1.1;letter-spacing:-.015em}
.tip p.tekst{margin:.25rem 0 0;max-width:38rem;font-size:1.125rem}
.tip.leeg{border-left-color:var(--fries)}

footer{max-width:1080px;margin:0 auto;padding:2rem 1.25rem 3rem;color:var(--muted);font-size:.95rem}
footer strong{color:var(--fg)}

/* ADMIN */
.admin{max-width:760px;margin:0 auto;padding:2.5rem 1.25rem 4rem}
.admin h1{font-size:2rem;margin:0 0 .25rem;letter-spacing:-.02em}
.admin .sub{color:var(--muted);margin:0 0 2rem}
.admin form.tips{display:grid;gap:1.25rem}
.admin fieldset{border:1px solid var(--lijn);border-radius:16px;padding:1rem 1.1rem;display:grid;gap:.5rem;background:var(--papier)}
.admin legend{font-weight:800;padding:0 .4rem}
.admin legend small{font-weight:400;color:var(--muted);margin-left:.4rem}
.admin label{font-size:.9rem;font-weight:600}
.admin input[type=text],.admin input[type=password],.admin textarea{width:100%;font:inherit;padding:.6rem .75rem;border:1px solid var(--lijn);border-radius:10px;background:var(--bg);color:var(--fg)}
.admin textarea{min-height:5.5rem;resize:vertical}
.knop{appearance:none;border:0;background:var(--oranje);color:#fff;font-weight:800;padding:.8rem 1.4rem;border-radius:999px;cursor:pointer;justify-self:start}
.knop:hover{background:var(--oranje-diep)}
.melding{padding:.8rem 1rem;border-radius:12px;background:#E6F4EA;color:#1E4620;margin-bottom:1.5rem}
.melding.fout{background:#FDE7E9;color:#7A1020}
.adminlinks{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.adminlinks a{color:var(--fries);font-weight:600}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .adminlinks a{color:var(--lamp)}}
.voorproefbalk{background:var(--fries);color:#fff;text-align:center;padding:.5rem 1rem;font-weight:600;font-size:.9rem}
.voorproefbalk a{color:var(--lamp)}
.vlag .doek{text-decoration:none}
a.vlag{text-decoration:none;color:inherit}

/* AANMELDEN & LEDEN */
main > .melding{margin-bottom:2rem}
.meedoen{background:var(--fries);color:#fff;border-radius:22px;padding:clamp(1.4rem,4vw,2.4rem);margin-bottom:3.5rem}
.meedoen h2{margin:0;font-size:clamp(1.7rem,5vw,2.6rem);line-height:1.05;letter-spacing:-.02em;font-weight:800}
.meedoen p{margin:.6rem 0 0;max-width:36rem;color:#DCE4F5}
.meedoen p.klein{font-size:.9rem;margin-top:1rem}
.aanmeldform{margin-top:1.4rem;display:grid;grid-template-columns:1fr 1.4fr auto;gap:.75rem;align-items:end}
.aanmeldform .veld{display:grid;gap:.3rem}
.aanmeldform label{font-weight:600;font-size:.9rem}
.aanmeldform label small{font-weight:400;opacity:.75}
.aanmeldform input{width:100%;font:inherit;padding:.75rem .9rem;border-radius:12px;border:2px solid transparent;background:#fff;color:#2A211B}
.aanmeldform input:focus-visible{outline:none;border-color:var(--oranje)}
.aanmeldform .knop{padding:.85rem 1.6rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:640px){.aanmeldform{grid-template-columns:1fr}.aanmeldform .knop{justify-self:stretch}}
.lidbalk{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;justify-content:space-between;
  padding:1rem 1.2rem;border:1px solid var(--lijn);border-radius:16px;margin-bottom:3rem}
.lidbalk p{margin:0}
.lidbalk form{display:flex;gap:1rem}
.tekstknop{appearance:none;background:none;border:0;padding:0;cursor:pointer;color:var(--muted);text-decoration:underline;text-underline-offset:3px;font-size:.95rem}
.tekstknop:hover{color:var(--fg)}
.tip a{color:var(--oranje-diep);font-weight:600}
.adminlinks a[aria-current]{color:var(--fg);text-decoration:none;border-bottom:3px solid var(--oranje)}
.tabelwrap{overflow-x:auto;margin-top:1.5rem;border:1px solid var(--lijn);border-radius:14px}
table.leden{width:100%;border-collapse:collapse;font-size:.95rem;min-width:620px}
table.leden th,table.leden td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--lijn)}
table.leden th{font-size:.85rem;color:var(--muted);font-weight:600}
table.leden tr:last-child td{border-bottom:0}
