.aanmeld{padding-top:clamp(2.5rem,6vw,4.5rem)}
.aanmeld-wrap{max-width:860px}
.aanmeld-intro{margin-bottom:var(--space-8)}
.aanmeld-intro .section-title{margin:.4rem 0 1rem}
.aanmeld-alt{font-size:var(--text-sm);color:var(--muted);margin-top:.75rem}
.aanmeld-alt a,.opt-akkoord a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.aanmeld-form{gap:0;padding:0;overflow:hidden}
.blok{border:0;margin:0;padding:clamp(1.25rem,3vw,2rem);display:flex;flex-direction:column;gap:1rem;min-width:0}
.blok+.blok{border-top:1px solid var(--line)}
.blok legend{float:left;width:100%;padding:0;margin-bottom:.25rem;font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;color:var(--ink)}
.blok legend+*{clear:both}
.blok legend .mono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--human);margin-right:.5rem;vertical-align:.15em}
.hint{font-size:var(--text-xs);color:var(--muted);margin:0}
.opt-l{font-weight:400;color:var(--faint);font-family:var(--font-body);font-size:var(--text-xs)}
.sub{font-size:var(--text-xs);color:var(--muted);text-transform:none;margin:.5rem 0 0}
.lbl{font-size:var(--text-xs);color:var(--muted);font-weight:500}
.field textarea{font:inherit;font-size:var(--text-sm);padding:.75rem .9rem;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--radius-sm);width:100%;resize:vertical}
.field textarea:focus{outline:none;border-color:var(--ink)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--human)}
.field .hint{margin-top:.1rem}

.pakketten{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.pk{position:relative;cursor:pointer}
.pk input{position:absolute;opacity:0;pointer-events:none}
.pk-body{display:flex;flex-direction:column;gap:.2rem;height:100%;padding:1rem 1.1rem 1rem 2.6rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);transition:border-color .15s,box-shadow .15s}
.pk-body::before{content:"";position:absolute;left:1rem;top:1.15rem;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--faint);background:var(--surface)}
.pk input:checked+.pk-body{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.pk input:checked+.pk-body::before{border-color:var(--human);background:radial-gradient(circle,var(--human) 0 4px,var(--surface) 4.5px)}
.pk input:focus-visible+.pk-body{outline:2px solid var(--ink);outline-offset:2px}
.pk-num{font-family:var(--font-mono);font-size:.7rem;color:var(--muted)}
.pk-naam{font-family:var(--font-display);font-size:var(--text-base);font-weight:500;color:var(--ink)}
.pk-prijs{font-size:var(--text-xs);color:var(--muted);line-height:1.45}

.tijdvak{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.1rem;border-radius:var(--radius-md);background:var(--surface-2)}
.tijdvak[hidden],[data-gevallen][hidden]{display:none}
.tijdvak .sub{margin:0}
.opties{display:flex;flex-direction:column;gap:.4rem}
.opties-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.opt{display:flex;align-items:flex-start;gap:.6rem;font-size:var(--text-sm);color:var(--ink);cursor:pointer;line-height:1.4;padding:.55rem .75rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}
.opt input{accent-color:var(--human);width:16px;height:16px;margin:.15rem 0 0;flex:none}
.opt>span:not(.toeslag){flex:1;min-width:0}
.opt small{display:block;font-size:var(--text-xs);color:var(--muted)}
.opt .toeslag{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;margin-left:auto;padding-top:.1rem}
.opt:has(input:checked){border-color:var(--ink)}
.opt-akkoord{background:transparent;border:0;padding:0}
.opt-akkoord.invalid span{color:var(--human)}

.contacten{display:flex;flex-direction:column;gap:.6rem}
.contact{display:grid;grid-template-columns:.8fr 1.4fr 1fr 1.5fr 1.1fr auto;gap:.5rem;align-items:end}
.contact input{font:inherit;font-size:var(--text-sm);padding:.6rem .7rem;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--radius-sm);width:100%;min-width:0}
.contact input:focus{outline:none;border-color:var(--ink)}
.contact label{display:flex;flex-direction:column;gap:.25rem;font-size:.72rem;color:var(--muted);min-width:0}
.contact .del{border:0;background:none;color:var(--muted);font-size:1.25rem;line-height:1;padding:.55rem .4rem;cursor:pointer;border-radius:var(--radius-sm)}
.contact .del:hover{color:var(--human)}
.add-contact{align-self:flex-start}
.add-contact[hidden]{display:none}

.veld-fout{display:none;font-size:var(--text-xs);color:var(--human);margin:-.4rem 0 0}
.veld-fout.toon{display:block}
.blok-akkoord .btn{align-self:flex-start;margin-top:.25rem}
.aanmeld-klaar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.5rem,4vw,2.5rem)}
.aanmeld-klaar .section-title{margin:.4rem 0 1rem}
.aanmeld-klaar .prose{margin-bottom:1rem}
.aanmeld-klaar:focus{outline:none}

@media (max-width:720px){
  .pakketten,.opties-3{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr 1fr;padding:.75rem;border:1px solid var(--line);border-radius:var(--radius-sm);position:relative}
  .contact .c-naam,.contact .c-email{grid-column:span 2}
  .contact .del{position:absolute;top:.2rem;right:.2rem}
  .contact .c-geslacht{padding-right:2rem}
}
@media (max-width:480px){.opt{flex-wrap:wrap;row-gap:.1rem}.opt .toeslag{flex-basis:100%;margin-left:calc(16px + .6rem);padding-top:0;white-space:normal}.blok legend .opt-l{display:block;margin-top:.2rem}}
.aanmeld-form[hidden],.aanmeld-klaar[hidden]{display:none}
