:root {
    --reis-ink: #102541;
    --reis-ink-soft: #294563;
    --reis-muted: #61758e;
    --reis-line: #d9e2ec;
    --reis-paper: #f3f7fb;
    --reis-paper-deep: #e9f0f7;
    --reis-navy: #102a4b;
    --reis-navy-dark: #07192f;
    --reis-blue: #1f5aa6;
    --reis-blue-dark: #174781;
    --reis-blue-soft: #eaf2fb;
    --reis-goud: #c39a55;
    --reis-coral: #c85b45;
    --reis-green: #2b7a55;
    --reis-radius-lg: 18px;
    --reis-radius-md: 12px;
    --reis-shadow: 0 22px 60px rgba(16, 42, 75, .10);
}

* { box-sizing: border-box; }

/*
 * `hidden` BETEKENT VERBORGEN. ALTIJD.
 * ------------------------------------
 * Het HTML-attribuut `hidden` werkt via de stijl van de browser zelf
 * (`[hidden] { display: none }`), en die verliest van élke eigen regel die een
 * `display` zet. Deze stijlbladen zetten `display: flex` op `.reis-prijsregel`,
 * `display: block` op `.reis-hint`, enzovoort - dus bleef een regel die het
 * formulier op `hidden` zette, gewoon staan.
 *
 * Zo bleef "Toeslag eenpersoonskamer + € 50,00" rechts staan terwijl er een
 * tweepersoonskamer gekozen was (14 september 2026): de PHP zette `hidden`, de
 * JavaScript zette `hidden`, en het stond er nog altijd. Een bedrag dat de
 * bezoeker niet betaalt.
 *
 * Het is vier keer eerder ad hoc opgelost, telkens voor één klasse
 * (`.reis-kinderbedevaart-optie[hidden]`, `.reis-section[hidden]`,
 * `.reis-kamergenoot-blok[hidden]`, …). Dat is geen regel maar een reeks
 * uitzonderingen: de volgende klasse met een eigen `display` breekt opnieuw, en
 * zwijgend. Daarom hier één regel, en `!important` omdat ze per definitie van
 * alles moet winnen - er bestaat geen geval waarin een element met `hidden`
 * toch hoort te verschijnen.
 */
[hidden] { display: none !important; }
html { background: var(--reis-paper); }
body.reis-pagina { background: radial-gradient(circle at 86% 0%, rgba(208, 226, 243, .72), transparent 31rem), var(--reis-paper); color: var(--reis-ink); font-family: "Avenir Next", Avenir, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; margin: 0; }
body.reis-pagina::before { background: linear-gradient(90deg, rgba(255,255,255,.5), transparent); content: ""; inset: 0; pointer-events: none; position: fixed; z-index: -1; }
body.reis-pagina a { color: var(--reis-blue); }
button, input, select, textarea { font-family: inherit; }

.reis-shell { margin: 0 auto; max-width: 1240px; padding: 24px 28px 56px; }
.reis-top { align-items: center; background: rgba(255, 255, 255, .92); border: 1px solid rgba(217, 226, 236, .95); border-radius: 16px; box-shadow: 0 8px 30px rgba(16, 42, 75, .06); display: flex; justify-content: space-between; margin-bottom: 28px; min-height: 68px; padding: 10px 16px 10px 18px; }
.reis-merk { align-items: center; color: var(--reis-navy) !important; display: inline-flex; gap: 12px; min-width: 0; text-decoration: none; }
.reis-merk:hover { color: var(--reis-blue) !important; text-decoration: none; }
.reis-merk-mark { align-items: center; background: var(--reis-navy); border: 4px solid #dfeaf7; border-radius: 50%; color: #fff; display: inline-flex; flex: 0 0 auto; font-size: .86rem; font-weight: 800; height: 44px; justify-content: center; letter-spacing: -.04em; width: 44px; }
.reis-merk-copy { display: flex; flex-direction: column; min-width: 0; }
.reis-merk-copy strong { color: var(--reis-navy); font-size: .98rem; letter-spacing: .01em; line-height: 1.2; }
.reis-merk-copy small { color: var(--reis-muted); font-size: .68rem; letter-spacing: .06em; line-height: 1.3; margin-top: 2px; text-transform: uppercase; }
.reis-taal { align-items: center; color: #a0afbf; display: flex; flex: 0 0 auto; font-size: .72rem; font-weight: 800; gap: 7px; letter-spacing: .12em; }
.reis-taal a { align-items: center; border-bottom: 2px solid transparent; color: inherit; display: inline-flex; min-height: 44px; padding: 8px 3px 6px; text-decoration: none; }
.reis-taal a.is-actief { border-bottom-color: var(--reis-blue); color: var(--reis-blue-dark); }
.reis-taal a:hover { color: var(--reis-blue); text-decoration: none; }

.reis-hero { background: var(--reis-navy) url("../../lourdesachtergrond.png") right top / cover no-repeat; border-radius: var(--reis-radius-lg); box-shadow: 0 22px 58px rgba(16, 42, 75, .20); color: #fff; isolation: isolate; margin-bottom: 28px; min-height: 0; overflow: hidden; position: relative; }
.reis-hero::before { background: linear-gradient(90deg, rgba(7, 25, 47, .96) 0%, rgba(10, 38, 75, .86) 39%, rgba(12, 46, 87, .27) 76%, rgba(12, 46, 87, .12) 100%); content: ""; inset: 0; position: absolute; z-index: 0; }
.reis-hero::after { border: 1px solid rgba(255,255,255,.18); border-radius: 50%; content: ""; height: 280px; position: absolute; right: -105px; top: -105px; width: 280px; z-index: 0; }
.reis-hero-inhoud { max-width: 900px; padding: clamp(32px, 4vw, 42px) clamp(30px, 5vw, 54px) clamp(28px, 3.5vw, 36px); position: relative; z-index: 1; }
.reis-hero .reis-eyebrow { color: #d9e9fa; }
.reis-hero h1 { color: #fff; font-size: clamp(2.15rem, 5vw, 4.15rem); font-weight: 800; letter-spacing: -.055em; line-height: .98; margin: 10px 0 13px; max-width: none; white-space: nowrap; }
.reis-hero p { color: rgba(255,255,255,.82); font-size: clamp(.98rem, 1.7vw, 1.15rem); line-height: 1.45; margin: 0; max-width: 620px; }
.reis-hero-glow { background: rgba(255,255,255,.12); border-radius: 50%; filter: blur(1px); height: 220px; position: absolute; right: 23%; top: -180px; width: 220px; }
.reis-start-hero { margin-bottom: 24px; }
.reis-start-hero .reis-hero-inhoud { min-height: 270px; }
.reis-start-hero p { max-width: 700px; }
.reis-start-hero-fr { display: block; font-size: .82em; margin-top: 3px; opacity: .76; }
.reis-start-title-fr { display: block; font-size: .42em; letter-spacing: -.02em; line-height: 1.08; margin-top: 10px; opacity: .82; white-space: normal; }
.reis-start-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 20px; margin-top: 22px; }
.reis-start-meta-item { align-items: center; color: rgba(255,255,255,.9); display: inline-flex; font-size: .82rem; gap: 8px; }
.reis-start-meta-item strong { display: flex; flex-direction: column; line-height: 1.2; }
.reis-start-meta-item small { color: rgba(255,255,255,.68); display: block; font-size: .73rem; font-weight: 600; line-height: 1.35; margin-top: 2px; }
.reis-start-meta-mark { align-items: center; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; color: #fff; display: inline-flex; font-size: .95rem; height: 28px; justify-content: center; line-height: 1; width: 28px; }

.reis-intro { margin-bottom: 26px; max-width: 790px; }
.reis-eyebrow { color: var(--reis-blue); font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.reis-intro h1 { color: var(--reis-ink); font-size: clamp(1.9rem, 4.2vw, 3.1rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.05; margin: 10px 0 15px; }
.reis-intro p { color: var(--reis-muted); font-size: 1.03rem; line-height: 1.6; margin: 0; max-width: 670px; }
.reis-intro-medisch { color: var(--reis-blue-dark) !important; font-size: .9rem !important; margin-top: 14px !important; max-width: 68ch; }
.reis-form-legende { color: var(--reis-muted); font-size: .76rem; line-height: 1.5; margin: -4px 0 20px; }
.reis-form-legende .reis-verplicht { font-size: 1rem; font-weight: 800; }

.reis-voortgang { align-items: center; display: flex; gap: 9px; margin: 0 0 22px; max-width: 920px; padding: 0 6px; }
.reis-stap { align-items: center; color: #90a1b5; display: flex; font-size: .75rem; font-weight: 800; gap: 8px; white-space: nowrap; }
.reis-stap-link { color: inherit; text-decoration: none; }
.reis-stap-link:hover { color: var(--reis-blue); text-decoration: none; }
.reis-stap-link:focus-visible { border-radius: 8px; box-shadow: 0 0 0 3px rgba(31, 90, 166, .18); outline: 0; }
.reis-stap-nr { align-items: center; background: #edf2f7; border: 2px solid #d3deea; border-radius: 50%; display: inline-flex; font-size: .78rem; height: 32px; justify-content: center; width: 32px; }
.reis-stap.is-actief { color: var(--reis-blue-dark); }
.reis-stap.is-actief .reis-stap-nr { background: var(--reis-blue); border-color: var(--reis-blue); color: #fff; box-shadow: 0 5px 14px rgba(31, 90, 166, .25); }
.reis-stap.is-klaar { color: var(--reis-green); }
.reis-stap.is-klaar .reis-stap-nr { background: #e4f4ec; border-color: #83b89f; color: var(--reis-green); }
.reis-stap-lijn { background: #d7e2eb; height: 2px; min-width: 18px; width: 100%; }

.reis-layout { align-items: start; display: grid; gap: 24px; grid-template-columns: minmax(0, 1.62fr) minmax(285px, .74fr); }
.reis-kaart { background: rgba(255,255,255,.97); border: 1px solid var(--reis-line); border-radius: var(--reis-radius-lg); box-shadow: var(--reis-shadow); padding: clamp(24px, 4vw, 42px); }
.reis-kaart h2 { color: var(--reis-ink); font-size: clamp(1.35rem, 2.6vw, 1.75rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.15; margin: 0 0 9px; }
.reis-kaart-intro { color: var(--reis-muted); font-size: .91rem; line-height: 1.6; margin: 0 0 26px; }
.reis-keuze-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reis-keuze-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.reis-keuze { background: #fff; border: 1px solid var(--reis-line); border-radius: var(--reis-radius-md); cursor: pointer; display: block; min-height: 140px; padding: 19px; position: relative; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.reis-keuze:hover { border-color: #9db8d8; box-shadow: 0 9px 24px rgba(16, 42, 75, .09); transform: translateY(-2px); }
.reis-keuze input { opacity: 0; position: absolute; }
.reis-keuze:has(input:checked) { background: var(--reis-blue-soft); border-color: var(--reis-blue); box-shadow: 0 0 0 2px rgba(31, 90, 166, .13); }
.reis-keuze:has(input:focus-visible), .reis-taalkeuze-optie:focus-visible { border-color: var(--reis-blue); box-shadow: 0 0 0 3px rgba(31, 90, 166, .2); outline: 0; }
.reis-keuze-uitgeschakeld { background: #f7f9fb; border-color: #e2e8ee; cursor: not-allowed; opacity: .78; }
.reis-keuze strong { color: var(--reis-ink); display: block; font-size: .92rem; line-height: 1.32; margin-bottom: 8px; }
.reis-keuze span { color: var(--reis-muted); display: block; font-size: .77rem; line-height: 1.5; }

.reis-accueil-notitie { margin: 16px 0 0; }
.reis-begeleider-velden { background: linear-gradient(135deg, #f8fbfe 0%, #eef5fc 100%); border: 1px solid #d4e2f0; border-radius: var(--reis-radius-md); margin-top: 22px; padding: 20px; }
.reis-begeleider-kop { border-bottom: 1px solid #d7e4f0; margin-bottom: 1px; padding-bottom: 15px; }
.reis-begeleider-label { color: var(--reis-blue-dark); display: block; font-size: .86rem; font-weight: 800; margin-bottom: 2px; }
.reis-begeleider-velden .reis-veld label { font-size: .76rem; }
.reis-begeleider-velden .reis-hint { font-size: .72rem; }
.reis-kinderbedevaart-optie { border-top: 1px solid #d7e4f0; margin-top: 16px; padding-top: 14px; }

/* ── Steun van de Vrienden van Lourdes ───────────────────────────────────────
   Het blok was een kop, een kaal vinkje en drie velden op één rij, met de zin
   over het attest los eronder. Niets zei dat die velden bij dat vinkje hoorden
   (Tim, 14 september 2026).

   Nu is het vinkje een keuzekaart - dezelfde vorm als de keuzes elders op dit
   formulier - en staat wat je daarna invult in een eigen vlak eronder, zoals
   het begeleidersblok op stap 2. De zin over het attest staat ín dat vlak,
   want ze hoort bij wat je daar invult. */
.reis-vrienden-vink {
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--reis-line);
    border-radius: var(--reis-radius-md);
    cursor: pointer;
    display: flex;
    gap: 12px;
    margin: 0;
    padding: 15px 16px;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.reis-vrienden-vink:hover { border-color: #b6cde6; }
.reis-vrienden-vink:has(input:checked) { background: #f4f9ff; border-color: var(--reis-blue); box-shadow: 0 0 0 1px var(--reis-blue) inset; }
.reis-vrienden-vink:has(input:focus-visible) { border-color: var(--reis-blue); box-shadow: 0 0 0 3px rgba(31, 90, 166, .2); outline: 0; }
.reis-vrienden-vink input { accent-color: var(--reis-blue); flex: 0 0 auto; height: 18px; margin-top: 2px; width: 18px; }
.reis-vrienden-vink strong { color: var(--reis-ink); display: block; font-size: .88rem; line-height: 1.35; }
.reis-vrienden-vink small { color: var(--reis-muted); display: block; font-size: .77rem; line-height: 1.5; margin-top: 5px; }

.reis-vrienden-velden {
    background: linear-gradient(135deg, #f8fbfe 0%, #eef5fc 100%);
    border: 1px solid #d4e2f0;
    border-radius: var(--reis-radius-md);
    margin-top: 12px;
    padding: 18px;
}
.reis-vrienden-velden .reis-veld label { font-size: .76rem; }
.reis-vrienden-velden .reis-hint { font-size: .72rem; }
.reis-vrienden-attest { background: #fff; margin: 16px 0 0; }

.reis-start-layout { align-items: start; display: grid; gap: 24px; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .78fr); }
.reis-start-layout .reis-taalkeuze { max-width: none; }
.reis-taalkeuze h2 span { color: var(--reis-blue); display: block; font-size: .48em; font-weight: 700; letter-spacing: .02em; margin-top: 8px; }
.reis-start-card-fr { display: block; font-size: .9em; letter-spacing: .12em; margin-top: 3px; opacity: .76; }
.reis-taalkeuze-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 30px; }
.reis-taalkeuze-optie { background: #fff; border: 1px solid var(--reis-line); border-radius: var(--reis-radius-md); color: var(--reis-ink) !important; display: block; min-height: 176px; padding: 23px; position: relative; text-decoration: none; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.reis-taalkeuze-optie:first-child { background: var(--reis-blue-soft); border-color: #a9c1dd; }
.reis-taalkeuze-optie:hover { background: var(--reis-blue-soft); border-color: #a9bcd6; box-shadow: 0 8px 22px rgba(16, 42, 75, .08); text-decoration: none; transform: translateY(-2px); }
.reis-taalkeuze-optie:first-child:hover { background: #e1eefb; }
.reis-taalkeuze-code { color: var(--reis-blue); display: block; font-size: .7rem; font-weight: 800; letter-spacing: .16em; margin-bottom: 20px; }
.reis-taalkeuze-optie strong { display: block; font-size: 1.3rem; font-weight: 800; margin-bottom: 7px; }
.reis-taalkeuze-optie > span:not(.reis-taalkeuze-code):not(.reis-taalkeuze-pijl) { color: var(--reis-muted); display: block; font-size: .82rem; line-height: 1.45; }
.reis-taalkeuze-pijl { bottom: 18px; color: var(--reis-blue); font-size: 1.2rem; position: absolute; right: 20px; }
.reis-taalkeuze-zekerheid { align-items: flex-start; color: var(--reis-muted); display: flex; font-size: .76rem; gap: 9px; line-height: 1.55; margin-top: 21px; }
.reis-taalkeuze-zekerheid-mark { align-items: center; background: #e4f4ec; border-radius: 50%; color: var(--reis-green); display: inline-flex; flex: 0 0 auto; font-size: .76rem; font-weight: 800; height: 23px; justify-content: center; width: 23px; }
.reis-taalkeuze-zekerheid em { color: #8394a7; font-style: normal; }
.reis-start-zijbalk > * + * { margin-top: 14px; }
.reis-start-info { background: #fff; border: 1px solid var(--reis-line); border-radius: var(--reis-radius-md); box-shadow: 0 12px 30px rgba(16, 42, 75, .06); padding: 20px; }
.reis-start-info-kop { align-items: flex-start; display: flex; gap: 12px; }
.reis-start-info-mark { align-items: center; background: var(--reis-navy); border-radius: 9px; color: #fff; display: inline-flex; flex: 0 0 auto; font-size: .7rem; font-weight: 800; height: 38px; justify-content: center; letter-spacing: .08em; width: 38px; }
.reis-start-info-mark-licht { background: var(--reis-blue-soft); color: var(--reis-blue); font-size: 1.05rem; }
.reis-start-info .reis-eyebrow { font-size: .6rem; letter-spacing: .12em; margin: 2px 0 4px; }
.reis-start-info h3 { color: var(--reis-ink); font-size: 1rem; font-weight: 800; line-height: 1.2; margin: 0; }
.reis-start-info h3 span { color: var(--reis-blue); display: block; font-size: .72em; font-weight: 700; margin-top: 3px; }
.reis-start-info p { color: var(--reis-muted); font-size: .78rem; line-height: 1.6; margin: 17px 0 0; }
.reis-start-info p > span { display: block; }
.reis-start-info-fr { color: #8394a7; margin-top: 5px; }
.reis-start-stappen { border-top: 1px solid var(--reis-line); display: grid; gap: 11px 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 18px; padding-top: 16px; }
.reis-start-stappen > span { align-items: flex-start; color: var(--reis-ink-soft); display: flex; font-size: .74rem; gap: 7px; }
.reis-start-stappen > span > span { display: block; line-height: 1.15; }
.reis-start-stappen em { color: #8394a7; display: block; font-size: .64rem; font-style: normal; margin-top: 3px; }
.reis-start-stappen b { align-items: center; background: var(--reis-blue-soft); border-radius: 50%; color: var(--reis-blue); display: inline-flex; font-size: .62rem; height: 23px; justify-content: center; width: 23px; }
.reis-start-contact { background: linear-gradient(145deg, #fff 0%, #f4f8fd 100%); border-color: #cbdced; }
.reis-start-contact p { margin-bottom: 13px; }
.reis-start-contact a { color: var(--reis-blue); display: block; font-size: .86rem; font-weight: 800; text-decoration: none; }
.reis-start-contact a:hover { text-decoration: underline; }
.reis-start-contact a + .reis-start-uren { color: var(--reis-muted); display: block; font-size: .7rem; margin-top: 3px; }
.reis-start-uren > span { display: block; }

.reis-form-grid { display: grid; gap: 17px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reis-form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.reis-veld { min-width: 0; }
.reis-veld-breed { grid-column: 1 / -1; }
/* Geboortedatum in drie vakjes (ronde Jean-Michel, 17 oktober 2026): dag,
   maand als keuzelijst, jaar met 4 cijfers. Een fieldset met de veldnaam als
   legende; de drie deelvakjes hebben elk een klein eigen label. */
.reis-datum-veld { border: 0; margin: 0; min-width: 0; padding: 0; }
.reis-datum-veld > .reis-legende { padding: 0; }
.reis-datum-delen { display: grid; gap: 8px; grid-template-columns: minmax(4.2em, 1fr) minmax(0, 2.4fr) minmax(5.4em, 1.3fr); }
.reis-veld .reis-datum-deel label { color: var(--reis-muted); font-size: .69rem; font-weight: 600; margin-bottom: 4px; }
.reis-datum-deel input, .reis-datum-deel select { text-align: left; }
.reis-veld.is-fout .reis-datum-deel label { color: #a44135; }
.reis-veld label, .reis-legende { color: var(--reis-ink); display: block; font-size: .77rem; font-weight: 800; margin-bottom: 7px; }
.reis-verplicht { color: var(--reis-coral); }
.reis-hint { color: var(--reis-muted); display: block; font-size: .71rem; font-weight: 400; line-height: 1.5; margin-top: 5px; }
.reis-veld input[type=text], .reis-veld input[type=email], .reis-veld input[type=tel], .reis-veld input[type=date], .reis-veld input[type=number], .reis-veld select, .reis-veld textarea { appearance: none; background: #fff; border: 1px solid #c8d5e3; border-radius: 8px; color: var(--reis-ink); font: inherit; font-size: .88rem; min-height: 47px; padding: 11px 13px; transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease; width: 100%; }
.reis-veld textarea { min-height: 120px; resize: vertical; }
.reis-veld input:focus, .reis-veld select:focus, .reis-veld textarea:focus { background: #fff; border-color: var(--reis-blue); box-shadow: 0 0 0 4px rgba(31, 90, 166, .13); outline: 0; }
.reis-veld.is-fout label { color: #a44135; }
.reis-veld.is-fout input, .reis-veld.is-fout select, .reis-veld.is-fout textarea { background: #fff9f7; border-color: #c85b4c; }
.reis-veld.is-fout input:focus, .reis-veld.is-fout select:focus, .reis-veld.is-fout textarea:focus { border-color: #b44738; box-shadow: 0 0 0 3px rgba(196, 91, 76, .18); }

.reis-keuze-rij { display: flex; flex-wrap: wrap; gap: 9px; }
.reis-diensten-keuzes { align-items: flex-start; }
.reis-dienst-item { display: flex; flex: 1 1 220px; flex-wrap: wrap; min-width: 220px; }
.reis-chip { align-items: center; background: #fff; border: 1px solid var(--reis-line); border-radius: 8px; color: var(--reis-ink-soft); cursor: pointer; display: inline-flex; font-size: .79rem; gap: 7px; padding: 10px 12px; }
.reis-chip:has(input:checked) { background: var(--reis-blue-soft); border-color: #9fb4cf; color: var(--reis-blue-dark); }
.reis-chip input, .reis-radio input { accent-color: var(--reis-blue); }
.reis-dienst-chip { flex-wrap: wrap; }
.reis-info-knop { align-items: center; background: #edf4fb; border: 1px solid #aec5dc; border-radius: 50%; color: var(--reis-blue-dark); cursor: pointer; display: inline-flex; font: inherit; height: 20px; justify-content: center; line-height: 1; margin-left: 2px; padding: 0; width: 20px; }
.reis-info-knop i { font-size: .72rem; font-style: normal; font-weight: 800; }
.reis-info-knop:focus-visible { box-shadow: 0 0 0 3px rgba(31, 90, 166, .2); outline: 0; }
.reis-dienst-uitleg { background: #f5f9fc; border-left: 3px solid var(--reis-blue); color: var(--reis-muted); flex-basis: 100%; font-size: .72rem; line-height: 1.45; margin: 3px 0 0 25px; padding: 7px 9px; }
.reis-diensten-uitleg { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; width: 100%; }
.reis-diensten-uitleg .reis-dienst-uitleg { margin: 0; }
.reis-dienst-uitleg strong { color: var(--reis-ink); display: block; margin-bottom: 2px; }
.reis-dienst-uitleg span { display: block; }
.reis-gift-uitleg-inline { align-self: start; background: #f5f9fc; border-left: 3px solid var(--reis-blue); color: var(--reis-muted); font-size: .75rem; line-height: 1.55; margin-top: 29px; padding: 10px 12px; }
.reis-gift-uitleg-inline p { margin: 0 0 6px; }
.reis-gift-uitleg-inline p:last-child { margin-bottom: 0; }
.reis-radio-rij { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 4px; }
.reis-radio { align-items: center; color: var(--reis-ink); display: inline-flex; font-size: .85rem; gap: 6px; }
.reis-section { border-top: 1px solid var(--reis-line); margin-top: 30px; padding-top: 26px; }
.reis-section h3 { color: var(--reis-ink); font-size: .98rem; font-weight: 800; margin: 0 0 14px; }
.reis-kamergenoot-blok { border-top: 1px solid var(--reis-line); margin-top: 20px; padding-top: 20px; }
.reis-single-toeslag { color: var(--reis-blue-dark); font-weight: 700; }
.reis-notitie { align-items: flex-start; background: #f8fbfd; border: 1px solid #dbe7ee; border-radius: 9px; color: #587086; display: flex; font-size: .78rem; gap: 9px; line-height: 1.55; margin: 18px 0; padding: 13px 14px; }
.reis-compact-grid { margin-top: 16px; }
.reis-notitie strong { color: var(--reis-ink); }
.reis-notitie i { color: var(--reis-blue); font-style: normal; font-weight: 800; }
.reis-fout { background: #fff2ef; border: 1px solid #f0c9bf; border-radius: 9px; color: #9a4434; font-size: .8rem; line-height: 1.5; margin-bottom: 20px; padding: 13px 15px; scroll-margin-top: 18px; }
.reis-fout ul { margin: 5px 0 0 17px; padding: 0; }
.reis-fout:focus { box-shadow: 0 0 0 4px rgba(200, 91, 69, .13); outline: 0; }
.reis-inline-fout { color: #a44135; display: block; font-size: .75rem; font-weight: 700; line-height: 1.4; margin-top: 6px; }
.reis-veld.is-fout .reis-hint { color: #a44135; }
.reis-checkbox { align-items: flex-start; color: #516a7f; display: flex; font-size: .8rem; gap: 9px; line-height: 1.5; margin: 12px 0; }
.reis-checkbox.is-fout { background: #fff2ef; border: 1px solid #f0c9bf; border-radius: 8px; padding: 10px; }
.reis-checkbox.is-fout span { color: #8d3e32; }
.reis-checkbox input { accent-color: var(--reis-blue); flex: 0 0 auto; height: 17px; margin-top: 1px; width: 17px; }

.reis-acties { align-items: center; border-top: 1px solid var(--reis-line); display: flex; gap: 12px; justify-content: space-between; margin-top: 30px; padding-top: 21px; }
.reis-knop { align-items: center; border: 1px solid transparent; border-radius: 9px; cursor: pointer; display: inline-flex; font-size: .84rem; font-weight: 800; gap: 8px; justify-content: center; min-height: 47px; padding: 0 19px; text-decoration: none; transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.reis-knop:hover { text-decoration: none; transform: translateY(-1px); }
.reis-knop:focus-visible { box-shadow: 0 0 0 4px rgba(31, 90, 166, .18); outline: 0; }
.reis-knop-primair { background: var(--reis-blue); border-color: var(--reis-blue); color: #fff !important; box-shadow: 0 8px 18px rgba(31, 90, 166, .18); }
.reis-knop-primair:hover { background: var(--reis-blue-dark); border-color: var(--reis-blue-dark); }
.reis-knop-secundair { background: #fff; border-color: var(--reis-line); color: #587086 !important; }
.reis-knop-secundair:hover { border-color: #a9bcd6; color: var(--reis-blue-dark) !important; }
.reis-knop:disabled { cursor: wait; opacity: .68; transform: none; }
.reis-formulier-verzenden .reis-acties { opacity: .82; }

.reis-samenvatting { background: var(--reis-blue-soft); border: 1px solid #cbd8ec; border-radius: var(--reis-radius-md); padding: 19px; }
.reis-samenvatting h3 { color: var(--reis-blue-dark); font-size: .83rem; font-weight: 800; margin: 0 0 13px; }
.reis-prijsregel { align-items: baseline; border-bottom: 1px solid rgba(31, 90, 166, .13); color: #526985; display: flex; font-size: .77rem; gap: 10px; justify-content: space-between; padding: 9px 0; }
.reis-prijsregel strong { color: var(--reis-ink); font-size: .84rem; text-align: right; }
.reis-prijs-totaal { color: var(--reis-blue-dark); display: flex; font-size: .88rem; font-weight: 800; justify-content: space-between; padding-top: 14px; }
.reis-samenvatting small { color: #66829c; display: block; font-size: .7rem; line-height: 1.5; margin-top: 12px; }
/* ── De nakijkpagina ─────────────────────────────────────────────────────────
   Stap 5 toonde vijf regels; alles wat op stap 2, 3 en 4 werd ingevuld stond er
   niet. Je kon dus niet nakijken wat je verstuurde, terwijl dat precies is wat
   die stap belooft (Tim, 14 september 2026).

   Nu staat het per blok, in dezelfde volgorde als de stappen, en elk blok
   draagt een knop terug naar de stap waar je het aanpast. Een regel die
   ontbreekt terwijl ze belangrijk is - een opstapplaats bijvoorbeeld - staat er
   in een andere kleur, want dat is wat je moet zien. */
.reis-controleblok { border: 1px solid var(--reis-line); border-radius: var(--reis-radius-md); margin-bottom: 14px; padding: 4px 16px 12px; }
.reis-controleblok-kop { align-items: baseline; border-bottom: 1px solid var(--reis-line); display: flex; gap: 12px; justify-content: space-between; margin-bottom: 4px; padding: 12px 0 10px; }
.reis-controleblok-kop h3 { color: var(--reis-ink); font-size: .88rem; font-weight: 800; margin: 0; }
.reis-controleblok-wijzig {
    align-items: center;
    color: var(--reis-blue);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .76rem;
    font-weight: 800;
    min-height: 32px;
    text-decoration: underline;
}
.reis-controleblok-wijzig:focus-visible { border-radius: 5px; outline: 2px solid var(--reis-blue); outline-offset: 3px; }
.reis-controlerij { align-items: baseline; border-bottom: 1px solid #eef2f7; color: #526985; display: flex; font-size: .77rem; gap: 14px; justify-content: space-between; padding: 9px 0; }
.reis-controlerij:last-child { border-bottom: 0; }
.reis-controlerij > span { flex: 0 0 auto; }
.reis-controlerij strong { color: var(--reis-ink); font-size: .82rem; font-weight: 700; text-align: right; }
/* Wat ontbreekt en wel ingevuld hoort te zijn. Geen rood: dit is een
   herinnering, geen fout - je mag dit formulier gerust zo versturen. */
.reis-controlerij.is-leeg strong { color: #9a6a12; font-style: italic; font-weight: 600; }
.reis-controlebedragen { margin-top: 18px; }

.reis-bewaard { color: #7c8ba0; font-size: .72rem; margin: 4px 0 0; }

.reis-zijbalk { position: sticky; top: 18px; }
.reis-zijbalk > * + * { margin-top: 14px; }
.reis-overzicht-kaart { background: #fff; border: 1px solid var(--reis-line); border-radius: var(--reis-radius-md); box-shadow: 0 12px 30px rgba(16, 42, 75, .06); overflow: hidden; }
.reis-overzicht-foto { aspect-ratio: 16 / 9; background: linear-gradient(160deg, var(--reis-navy), var(--reis-blue) 60%, #2e5590) center/cover no-repeat; display: block; object-fit: cover; width: 100%; }
/*
 * De foto van een hotel of een uitstap toont VOLLEDIG.
 *
 * `.reis-overzicht-foto` snijdt bij op 16:9 (`object-fit: cover`), en dat is
 * juist voor de vaste reiskaart onderaan - die is versiering. Bij de foto van
 * een hotel is het dat niet: van een staande foto blijft er dan een strook
 * gevel over, en de bedevaarder weet niet waar hij naar kijkt (14 september
 * 2026). Hier dus de eigen verhouding van de foto, met een bovengrens zodat een
 * heel hoge foto de rest van de kolom niet wegduwt.
 */
.reis-overzicht-foto-volledig { aspect-ratio: auto; background: var(--reis-paper-deep); height: auto; max-height: 340px; object-fit: contain; }

.reis-overzicht-tekst { padding: 15px 17px 17px; }
.reis-overzicht-tekst strong { color: var(--reis-ink); display: block; font-size: .86rem; margin-bottom: 3px; }
.reis-overzicht-tekst span { color: var(--reis-muted); display: block; font-size: .74rem; line-height: 1.5; }
/* De omschrijving bij een hotel, een uitstap of de solidariteitsgift. Komt uit
   het beheer en kan meerdere alinea's tellen; daarom een eigen regelafstand en
   een scheiding van de prijsregels erboven. */
.reis-zijblok-tekst { border-top: 1px solid var(--reis-line); margin-top: 11px; padding-top: 11px; }
.reis-zijblok-tekst p { color: var(--reis-muted); font-size: .75rem; line-height: 1.6; margin: 0 0 8px; }
.reis-zijblok-tekst p:last-child { margin-bottom: 0; }
.reis-overzicht-tekst .reis-prijsregel { font-size: .75rem; }
.reis-zijblok { background: #fff; border: 1px solid var(--reis-line); border-radius: var(--reis-radius-md); padding: 19px; }
.reis-zijblok h3 { color: var(--reis-ink); font-size: .83rem; font-weight: 800; margin: 0 0 9px; }
.reis-zijblok p { color: var(--reis-muted); font-size: .75rem; line-height: 1.6; margin: 0; }
.reis-zijblok-contact p + p { margin-top: 9px; }
.reis-zijblok-contact a { color: var(--reis-blue); font-weight: 800; text-decoration: none; }
.reis-zijblok-contact a:hover { text-decoration: underline; }
.reis-rekening { background: linear-gradient(145deg, #fff 0%, #f4f8fd 100%); border-color: #cbdced; }
.reis-rekening h3 { color: var(--reis-blue-dark); font-size: .92rem; letter-spacing: .01em; }
.reis-rekening p { font-size: .78rem; }
.reis-rekening-totaal { align-items: baseline; border-top: 1px solid #c4d5e7; color: var(--reis-blue-dark); display: flex; font-size: .88rem; font-weight: 800; justify-content: space-between; margin-top: 5px; padding-top: 14px; }
.reis-rekening-totaal strong { font-size: 1.04rem; }
.reis-rekening-voorschot { align-items: baseline; color: var(--reis-muted); display: flex; font-size: .73rem; justify-content: space-between; margin-top: 12px; }
.reis-rekening-voorschot strong { color: var(--reis-ink); }
.reis-zijblok-veilig { align-items: flex-start; display: flex; gap: 10px; }
.reis-zijblok-veilig-mark { align-items: center; background: #e4f4ec; border-radius: 50%; color: var(--reis-green); display: inline-flex; flex: 0 0 auto; font-size: .95rem; font-weight: 800; height: 30px; justify-content: center; width: 30px; }

.reis-bevestiging { max-width: 760px; }
.reis-bevestiging-mark { align-items: center; background: #e4f4ec; border-radius: 50%; color: var(--reis-green); display: inline-flex; font-size: 1.7rem; height: 52px; justify-content: center; margin-bottom: 16px; width: 52px; }
.reis-referentie { background: var(--reis-paper); border: 1px solid var(--reis-line); border-radius: 8px; color: var(--reis-blue-dark); display: inline-block; font-family: Consolas, monospace; font-size: 1.05rem; letter-spacing: .08em; margin: 12px 0; padding: 12px 15px; }
.reis-hp { left: -9999px; position: absolute; top: -9999px; }
.reis-footer { background: var(--reis-navy); border-radius: var(--reis-radius-lg); color: rgba(255,255,255,.72); font-size: .74rem; line-height: 1.65; margin-top: 30px; padding: 22px 25px; }
.reis-footer strong { color: #fff; }
.sr-only { height: 1px; margin: -1px; overflow: hidden; position: absolute; width: 1px; clip: rect(0, 0, 0, 0); }

@media (max-width: 900px) {
    .reis-layout { grid-template-columns: 1fr; }
    .reis-zijbalk { position: static; }
    .reis-start-layout { grid-template-columns: 1fr; }
    .reis-start-zijbalk { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .reis-start-zijbalk > * + * { margin-top: 0; }
    .reis-hero h1 { font-size: clamp(2.15rem, 5.2vw, 4.15rem); }
}

@media (max-width: 700px) {
    /* Label en waarde onder elkaar: op een telefoon perst een lange waarde
       ("Kan zelf lopen tot het voertuig, niet verder") het label anders tot één
       letter per regel. */
    .reis-controlerij { align-items: flex-start; flex-direction: column; gap: 3px; }
    .reis-controlerij strong { text-align: left; }
    .reis-controleblok { padding: 2px 13px 10px; }
    .reis-shell { padding: 14px 12px 42px; }
    .reis-top { border-radius: 13px; margin-bottom: 18px; min-height: 62px; padding: 8px 11px 8px 13px; }
    .reis-merk { gap: 9px; }
    .reis-merk-mark { border-width: 3px; height: 38px; width: 38px; }
    .reis-merk-copy strong { font-size: .82rem; }
    .reis-merk-copy small { font-size: .58rem; letter-spacing: .04em; }
    .reis-hero { background-position: right top; border-radius: 14px; margin-bottom: 20px; }
    .reis-hero::before { background: linear-gradient(90deg, rgba(7,25,47,.97), rgba(10,38,75,.77) 72%, rgba(10,38,75,.42)); }
    .reis-hero-inhoud { padding: 27px 24px 24px; }
    .reis-start-hero .reis-hero-inhoud { min-height: 245px; }
    .reis-hero h1 { font-size: clamp(2.05rem, 11vw, 3rem); white-space: normal; }
    .reis-start-meta { align-items: flex-start; flex-direction: column; gap: 8px; margin-top: 18px; }
    .reis-voortgang { gap: 4px; margin-bottom: 17px; padding: 0; }
    .reis-stap { flex-direction: column; font-size: .61rem; gap: 4px; text-align: center; }
    .reis-stap-link { min-height: 44px; min-width: 44px; }
    .reis-stap-lijn { margin-top: 14px; min-width: 4px; } /* zes stappen met Franse labels pasten niet op 390 px (26 oktober 2026) */
    .reis-stap-nr { height: 29px; width: 29px; }
    .reis-kaart { border-radius: 14px; padding: 23px 18px; }
    .reis-keuze-grid, .reis-keuze-grid-3, .reis-taalkeuze-grid, .reis-form-grid, .reis-form-grid-3, .reis-radio-rij { grid-template-columns: 1fr; }
    .reis-keuze { min-height: 0; padding: 18px; }
    .reis-veld-breed { grid-column: auto; }
    .reis-begeleider-velden { margin-top: 19px; padding: 17px; }
    .reis-veld label, .reis-legende { font-size: .88rem; }
    .reis-veld input[type=text], .reis-veld input[type=email], .reis-veld input[type=tel], .reis-veld input[type=date], .reis-veld input[type=number], .reis-veld select, .reis-veld textarea { font-size: 16px; min-height: 49px; }
    .reis-hint { font-size: .81rem; }
    .reis-checkbox { font-size: .9rem; min-height: 44px; }
    .reis-chip, .reis-radio { font-size: .9rem; min-height: 44px; }
    .reis-acties { align-items: stretch; flex-direction: column-reverse; }
    .reis-knop { min-height: 49px; width: 100%; }
    .reis-zijbalk { display: grid; gap: 14px; }
    .reis-zijbalk > * + * { margin-top: 0; }
    .reis-start-zijbalk { display: grid; gap: 14px; grid-template-columns: 1fr; }
    .reis-start-info { padding: 18px; }
    .reis-taalkeuze h2 span { font-size: .5em; }
}

@media (prefers-reduced-motion: reduce) {
    .reis-keuze, .reis-taalkeuze-optie, .reis-knop { transition: none; }
    .reis-keuze:hover, .reis-taalkeuze-optie:hover, .reis-knop:hover { transform: none; }
}

/* Beheermodus (17 oktober 2026): het secretariaat schrijft in namens een
   bedevaarder. Een balk die niemand kan missen, zodat het formulier nooit
   per ongeluk als het publieke formulier gelezen wordt. */
.reis-beheerbalk { align-items: center; background: #fff6e5; border: 1px solid #efc87a; border-radius: 12px; color: #5a3d06; display: flex; flex-wrap: wrap; font-size: .82rem; gap: 6px 14px; line-height: 1.5; margin: 0 0 18px; padding: 12px 16px; }
.reis-beheerbalk strong { background: #8a5a00; border-radius: 999px; color: #fff; font-size: .72rem; letter-spacing: .06em; padding: 3px 10px; text-transform: uppercase; }
.reis-beheerbalk span { flex: 1 1 380px; }
.reis-beheerbalk a { color: #5a3d06; font-weight: 700; }

/* Op heel smalle schermen (≤ 400 px) blijft alleen het label van de huidige stap
   zichtbaar; de andere stappen tonen hun nummer of vinkje. Zes stappen met
   Franse labels pasten er anders niet naast elkaar (26 oktober 2026). Het label
   blijft voor schermlezers beschikbaar. */
@media (max-width: 400px) {
    .reis-stap:not(.is-actief) > span:not(.reis-stap-nr) { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; }
}
