/* Istia.RegistrationForm — neutrale opmaak; kleuren/lettertype komen van de host (inherit + CSS-variabelen). */
.rf-field { display: flex; flex-direction: column; gap: .25rem; margin: 0 0 .7rem; font-weight: 500; }
.rf-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.rf-grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .7rem; }
.rf-group { border: 0; padding: 0; margin: .4rem 0 .9rem; min-width: 0; }
.rf-group__label { font-weight: 700; padding: 0; margin: 0 0 .4rem; }
.rf-note { font-size: .85rem; opacity: .8; margin: -.3rem 0 .6rem; }
.rf-note--ok { color: #15803d; opacity: 1; }
.rf-err { display: block; color: #b91c1c; font-size: .8rem; margin-top: .2rem; font-weight: 500; }
.rf-check { display: flex; align-items: center; gap: .5rem; margin: 0 0 .6rem; font-weight: 500; }
.rf-check input { width: auto; }
.rf-choices { display: flex; flex-wrap: wrap; gap: .45rem; }
.rf-choice { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .75rem; border: 1px solid rgba(127, 127, 127, .35); border-radius: 10px; cursor: pointer; font-weight: 500; }
.rf-choice.is-on { border-color: var(--brand-primary, var(--ea-accent, #1b9fd1)); box-shadow: 0 0 0 1px var(--brand-primary, var(--ea-accent, #1b9fd1)) inset; }
.rf-choice input { width: auto; margin: 0; }
@media (max-width: 480px) { .rf-grid2, .rf-grid3 { grid-template-columns: 1fr; } }
/* Wizard */
.rf-steps { margin: 0 0 1rem; }
.rf-steps__label { font-size: .9rem; margin-bottom: .4rem; }
.rf-steps__bar { display: flex; gap: .3rem; list-style: none; padding: 0; margin: 0; }
.rf-steps__bar li { flex: 1; height: 5px; border-radius: 3px; background: rgba(127, 127, 127, .25); }
.rf-steps__bar li.is-done { background: var(--brand-primary, var(--ea-accent, #1b9fd1)); opacity: .55; }
.rf-steps__bar li.is-on { background: var(--brand-primary, var(--ea-accent, #1b9fd1)); }
.rf-nav { display: flex; justify-content: space-between; gap: .6rem; margin-top: 1rem; }
.rf-price { width: 100%; border-collapse: collapse; margin: .2rem 0 1rem; }
.rf-price td { padding: .3rem 0; border-bottom: 1px solid rgba(127, 127, 127, .2); }
.rf-price__amt { text-align: right; white-space: nowrap; }
.rf-price__total td { font-weight: 700; border-bottom: 0; }
.rf-summary { margin: 0 0 1rem; display: grid; grid-template-columns: auto 1fr; gap: .2rem .9rem; font-size: .92rem; }
.rf-summary dt { opacity: .7; }
.rf-summary dd { margin: 0; }
/* Compact: korte velden naast elkaar (flow), lange velden begrensd. Op een telefoon alles volle breedte. */
.rf-flow { display: flex; flex-wrap: wrap; gap: 0 .9rem; align-items: flex-start; }
.rf-flow > * { flex: 1 1 100%; min-width: 0; }
.rf-flow > .rf-w-s { flex: 0 1 11rem; }
.rf-flow > .rf-w-m { flex: 0 1 17rem; }
.rf-flow > .rf-w-l { flex: 0 1 28rem; }
.rf-flow > .rf-w-xl { flex: 1 1 100%; max-width: 40rem; }
.rf-flow > .rf-w-xxl, .rf-flow > .rf-name { flex: 1 1 100%; max-width: 46rem; }
.rf-w-s { max-width: 11rem; }
.rf-w-m { max-width: 17rem; }
.rf-w-l { max-width: 28rem; }
.rf-name { display: grid; grid-template-columns: minmax(0, 1fr) 7rem minmax(0, 1.3fr); gap: .7rem; }
.rf-city { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.rf-date { display: flex; gap: .4rem; }
.rf-date .rf-date__d { width: 3.6rem; flex: none; }
.rf-date .rf-date__m { flex: 1; min-width: 6.5rem; }
.rf-date .rf-date__y { width: 4.8rem; flex: none; }
.rf-field { margin-bottom: .55rem; }
@media (max-width: 560px) {
    .rf-flow > .rf-w-s, .rf-flow > .rf-w-m, .rf-flow > .rf-w-l { flex: 1 1 100%; }
    .rf-w-s, .rf-w-m, .rf-w-l { max-width: none; }
    .rf-name { grid-template-columns: 1fr; }
}
/* Velden blijven binnen hun kolom: hosts kunnen een min-breedte op select zetten (EventAdmin: 200px). */
.rf-flow .rf-field input, .rf-flow .rf-field select, .rf-flow .rf-field textarea,
.rf-group .rf-field input, .rf-group .rf-field select { min-width: 0; max-width: 100%; box-sizing: border-box; }
.rf-flow .rf-date select.rf-date__m { min-width: 6.5rem; }
.rf-price__vat td { font-size: .85rem; opacity: .75; border-bottom: 0; padding-top: 0; }
/* Extra producten (docs/14) */
.rf-extras { margin: .4rem 0 1rem; }
.rf-extras__intro { margin: 0 0 .6rem; opacity: .8; font-size: .92rem; }
.rf-extra { border: 1px solid rgba(127, 127, 127, .25); border-radius: 10px; padding: .55rem .75rem; margin-bottom: .5rem; }
.rf-extra__head { display: flex; justify-content: space-between; align-items: center; gap: .8rem; }
.rf-extra__price { opacity: .8; margin-left: .3rem; white-space: nowrap; }
.rf-extra__desc { font-size: .88rem; opacity: .8; margin-top: .15rem; }
.rf-extra__hint { font-size: .8rem; opacity: .65; }
.rf-extra__hint:empty { display: none; }
.rf-extra__variants { margin-top: .4rem; display: grid; gap: .3rem; }
.rf-extra__variant { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding-left: .6rem; }
.rf-extra__left { opacity: .65; margin-left: .3rem; }
.rf-stepper { display: inline-flex; align-items: center; gap: .35rem; flex-shrink: 0; }
.rf-stepper__btn { width: 2rem; height: 2rem; border-radius: 50%; border: 1px solid rgba(127, 127, 127, .45); background: transparent; color: inherit; font-size: 1.1rem; line-height: 1; cursor: pointer; }
.rf-stepper__btn:disabled { opacity: .35; cursor: default; }
.rf-stepper__qty { min-width: 1.8rem; text-align: center; font-weight: 600; font-variant-numeric: tabular-nums; }
.rf-extras--compact .rf-extra { padding: .4rem .6rem; }
/* Aantal per inschrijving + maat per persoon (073) */
.rf-quantity { display: flex; align-items: center; gap: .8rem; margin: .4rem 0 .8rem; }
.rf-sizes { display: flex; flex-wrap: wrap; gap: .5rem .8rem; }
.rf-size { display: grid; gap: .15rem; font-size: .88rem; min-width: 7.5rem; }
.rf-other { margin: -.35rem 0 .7rem; }
/* Vaste regelovergang in de flow (na e-mail, vóór telefoon): geslacht + geboortedatum en beide telefoonnummers samen. */
.rf-break { display: block; height: 0; }
.rf-flow > .rf-break { flex: 0 0 100%; }
/* Betaalkeuze met logo's (optioneel, IconBase): logo 32×24 links van de tekst. */
.rf-choice--pay { gap: .6rem; padding: .5rem .75rem; }
.rf-paylogo { width: 32px; height: 24px; flex: none; border-radius: 4px; }
.rf-paylogo--plain { color: inherit; opacity: .8; }
/* Met logo's: één methode per regel (keuzerondje · logo · tekst), zoals gangbare betaalpagina's. Wint van host-stijlen voor labels. */
.rf-choices--pay { flex-direction: column; flex-wrap: nowrap; }
.rf-choices--pay > label.rf-choice--pay { display: flex; flex-direction: row; align-items: center; text-align: left; width: 100%; box-sizing: border-box; }
