/* ============================================
   BOOKING MODULE — La Truite d'Argent
   Geïntegreerde reserveringsmodule
   Kleuren afgestemd op site CSS-variabelen
   ============================================ */

/* Module variabelen (mapped op site palette) */
.booking-module {
  --bk-forest: #3d4f42;
  --bk-forest-mid: #4a6350;
  --bk-moss: #5a7a5e;
  --bk-gold: #d4af37;
  --bk-gold-light: #e8d5a0;
  --bk-cream: #e6dbc9;
  --bk-cream-warm: #ddd0bc;
  --bk-stone: #8a7968;
  --bk-stone-light: #d4c9b8;
  --bk-text-dark: #1c1a16;
  --bk-text-mid: #4a4338;
  --bk-white: #fdfaf5;
  --bk-shadow: rgba(28,46,31,.16);
  --bk-serif: 'Special Elite', Courier, monospace;
  --bk-sans: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background: var(--bk-cream);
}

/* Boekingspagina: crème achtergrond + verberg booking buttons */
.booking-page { background: #e6dbc9; }
.booking-page .sticky-booking-button,
.booking-page .mobile-book-button { display: none !important; }

/* ENTRY PAGE */
.booking-module .entry-body { max-width: 980px; margin: 0 auto; padding: 100px 20px 60px; width: 100%; }
.booking-module .entry-intro { text-align: center; margin-bottom: 40px; }
.booking-module .entry-intro p { font-family: var(--bk-serif); font-size: 1.25rem; font-weight: 400; color: var(--bk-text-mid); line-height: 1.7; }
.booking-module .entry-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media(max-width:740px) { .booking-module .entry-cards { grid-template-columns: 1fr; } }
.booking-module .entry-card { border-radius: 2px; overflow: hidden; cursor: pointer; transition: transform .3s, box-shadow .3s; background: var(--bk-white); border: 1px solid var(--bk-stone-light); display: flex; flex-direction: column; }
.booking-module .entry-card:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(28,46,31,.2); }
.booking-module .entry-card-img { height: 210px; position: relative; overflow: hidden; }
.booking-module .entry-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.booking-module .entry-card:hover .entry-card-img img { transform: scale(1.06); }
.booking-module .entry-card-badge { position: absolute; top: 14px; left: 14px; background: var(--bk-forest); color: var(--bk-gold-light); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; padding: 4px 10px; border-radius: 1px; }
.booking-module .entry-card-body { padding: 24px 22px 26px; flex: 1; display: flex; flex-direction: column; }
.booking-module .entry-card-title { font-family: var(--bk-serif); font-size: 1.55rem; font-weight: 400; color: var(--bk-forest); margin-bottom: 4px; }
.booking-module .entry-card-sub { font-size: .63rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bk-stone); margin-bottom: 14px; }
.booking-module .entry-card-desc { font-size: .82rem; color: var(--bk-text-mid); line-height: 1.65; flex: 1; margin-bottom: 20px; }
.booking-module .entry-card-price { font-family: var(--bk-serif); font-size: 1.1rem; color: var(--bk-forest); margin-bottom: 18px; }
.booking-module .entry-card-price small { font-family: var(--bk-sans); font-size: .68rem; color: var(--bk-stone); margin-left: 4px; }
.booking-module .entry-card-btn { display: block; background: var(--bk-forest); color: var(--bk-gold-light); text-align: center; padding: 13px 0; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; border: none; cursor: pointer; width: 100%; transition: background .2s; border-radius: 1px; font-family: var(--bk-sans); }
.booking-module .entry-card-btn:hover { background: var(--bk-moss); }

/* MAIN FLOW */
.booking-module .main-flow { display: none; }
.booking-module .bk-flow-title {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  font-weight: 300;
  color: #4d3428;
  text-align: center;
  padding: 100px 20px 8px;
  margin: 0;
}
.booking-module .bk-back-entry {
  display: block;
  margin: 0 auto 8px;
  background: transparent;
  border: 1px solid var(--bk-stone-light);
  border-radius: 2px;
  color: var(--bk-stone);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 7px 16px;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.booking-module .bk-back-entry:hover { border-color: var(--bk-forest); color: var(--bk-forest); }

/* PROGRESS BAR */
.booking-module .prog-bar { background: var(--bk-forest); position: sticky; top: 70px; z-index: 90; box-shadow: 0 2px 18px var(--bk-shadow); }
@media(max-width:768px) { .booking-module .prog-bar { top: 60px; } }
.booking-module .prog-inner { display: flex; max-width: 860px; margin: 0 auto; padding: 0 16px; }
.booking-module .ps { flex: 1; display: flex; align-items: center; gap: 8px; padding: 13px 0; position: relative; opacity: .35; transition: opacity .3s; cursor: default; }
.booking-module .ps.active { opacity: 1; }
.booking-module .ps.done { opacity: .65; cursor: pointer; }
.booking-module .ps.done:hover { opacity: 1; }
.booking-module .ps.active::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: var(--bk-gold); }
.booking-module .ps-num { width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--bk-gold); display: flex; align-items: center; justify-content: center; font-size: .62rem; font-weight: 500; color: var(--bk-gold); flex-shrink: 0; transition: background .3s, color .3s; }
.booking-module .ps.active .ps-num, .booking-module .ps.done .ps-num { background: var(--bk-gold); color: var(--bk-forest); }
.booking-module .ps-lbl { font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bk-cream); white-space: nowrap; }

/* WRAP & STEPS */
.booking-module .bk-wrap { max-width: 860px; margin: 0 auto; padding: 10px 20px 60px; }
.booking-module .step { display: none; animation: bkFadeUp .4s ease; }
.booking-module .step.on { display: block; }
@keyframes bkFadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.booking-module .step-title { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 1.8rem; font-weight: 400; color: var(--bk-forest); margin-bottom: 4px; }
.booking-module .step-sub { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bk-stone); margin-bottom: 28px; }

/* ACCOMMODATION CARDS (step 1) */
.booking-module .accom-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin-bottom: 28px; }
.booking-module .accom-card { border: 1.5px solid var(--bk-stone-light); border-radius: 2px; overflow: hidden; cursor: pointer; transition: border-color .2s, transform .2s, box-shadow .2s; background: var(--bk-white); position: relative; }
.booking-module .accom-card:hover { border-color: var(--bk-gold); transform: translateY(-2px); box-shadow: 0 8px 24px var(--bk-shadow); }
.booking-module .accom-card.selected { border-color: var(--bk-forest); border-width: 2px; }
.booking-module .accom-card.full { opacity: .5; cursor: not-allowed; }
.booking-module .accom-card-img { height: 150px; overflow: hidden; }
.booking-module .accom-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.booking-module .accom-card:not(.full):hover .accom-card-img img { transform: scale(1.05); }
.booking-module .accom-card-body { padding: 16px; }
.booking-module .accom-card-name { font-family: var(--bk-serif); font-size: 1.2rem; color: var(--bk-forest); margin-bottom: 2px; }
.booking-module .accom-card-sub { font-size: .63rem; letter-spacing: .08em; color: var(--bk-stone); text-transform: uppercase; margin-bottom: 10px; }
.booking-module .accom-card-price { font-family: var(--bk-serif); font-size: 1rem; color: var(--bk-text-dark); }
.booking-module .accom-card-price small { font-family: var(--bk-sans); font-size: .63rem; color: var(--bk-stone); }
.booking-module .accom-card-avail { position: absolute; top: 12px; right: 12px; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; padding: 3px 8px; border-radius: 1px; }
.booking-module .avail-ok { background: rgba(61,92,58,.12); color: var(--bk-moss); }
.booking-module .avail-low { background: rgba(201,165,90,.15); color: #7a5e1a; }
.booking-module .avail-full { background: rgba(180,100,100,.12); color: #8b2222; }
.booking-module .accom-selected-check { position: absolute; top: 12px; left: 12px; width: 26px; height: 26px; border-radius: 50%; background: var(--bk-forest); display: none; align-items: center; justify-content: center; }
.booking-module .accom-card.selected .accom-selected-check { display: flex; }
.booking-module .accom-selected-check svg { width: 13px; height: 13px; stroke: var(--bk-gold); stroke-width: 2.5; fill: none; }

/* CALENDAR */
.booking-module .cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; flex-wrap: wrap; gap: 10px; }
.booking-module .cal-nav-title { font-family: var(--bk-serif); font-size: 1.05rem; color: var(--bk-forest); }
.booking-module .cal-nav-btns { display: flex; gap: 8px; }
.booking-module .cal-nav-btn { background: var(--bk-forest-mid); border: none; border-radius: 2px; color: var(--bk-cream); padding: 6px 14px; cursor: pointer; font-size: .9rem; transition: background .2s; }
.booking-module .cal-nav-btn:hover { background: var(--bk-moss); }
.booking-module .cal-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 20px; }
@media(max-width:580px) { .booking-module .cal-wrap { grid-template-columns: 1fr; } }
.booking-module .cal-month { background: var(--bk-white); border: 1px solid var(--bk-stone-light); border-radius: 2px; overflow: hidden; }
.booking-module .cal-head { background: var(--bk-forest); padding: 12px 16px; }
.booking-module .cal-head-title { font-family: var(--bk-serif); font-size: 1rem; font-weight: 400; color: var(--bk-cream); letter-spacing: .06em; }
.booking-module .cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.booking-module .cal-dow { font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; color: var(--bk-stone); text-align: center; padding: 10px 0 8px; }
.booking-module .cal-dow.cl { color: rgba(138,121,104,.35); }
.booking-module .cal-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: .8rem; cursor: pointer; position: relative; user-select: none; transition: background .1s, color .1s; }
.booking-module .cal-day.empty { pointer-events: none; }
.booking-module .cal-day.past { color: rgba(138,121,104,.3); cursor: not-allowed; pointer-events: none; }
.booking-module .cal-day.closed { color: rgba(138,121,104,.25); cursor: not-allowed; background: rgba(180,170,158,.06); pointer-events: none; }
.booking-module .cal-day.closed::before, .booking-module .cal-day.closed::after { content: ''; position: absolute; pointer-events: none; }
.booking-module .cal-day.closed::before { border-top: 1px solid rgba(160,130,110,.35); transform: rotate(45deg); top: 50%; left: 4px; right: 4px; width: calc(100% - 8px); height: 0; }
.booking-module .cal-day.closed::after { border-top: 1px solid rgba(160,130,110,.35); transform: rotate(-45deg); top: 50%; left: 4px; right: 4px; width: calc(100% - 8px); height: 0; }
.booking-module .cal-day.full { color: rgba(138,121,104,.3); cursor: not-allowed; pointer-events: none; }
.booking-module .cal-day.full::after { content: ''; position: absolute; inset: 5px; border-radius: 50%; border: 1px solid rgba(180,100,100,.3); }
.booking-module .cal-day.partial::before { content: ''; position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: var(--bk-gold); opacity: .7; }
.booking-module .cal-day.in-range { background: rgba(61,92,58,.14); color: var(--bk-forest); }
.booking-module .cal-day.sel-start, .booking-module .cal-day.sel-end { background: var(--bk-forest) !important; color: var(--bk-gold-light) !important; border-radius: 50% !important; font-weight: 600; z-index: 2; }
.booking-module .cal-day.arrival-only { color: var(--bk-forest); cursor: pointer; background: rgba(201,165,90,.1); }
.booking-module .cal-day.arrival-only::before { content: ''; position: absolute; inset: 3px; border-radius: 50%; border: 1.5px solid rgba(201,165,90,.55); }
.booking-module .cal-day.arrival-only .cal-day-num { position: relative; z-index: 1; }
@keyframes bkCalShake { 0%,100% { transform: translateX(0); } 20% { transform: translateX(-3px); } 40% { transform: translateX(3px); } 60% { transform: translateX(-2px); } 80% { transform: translateX(2px); } }
.booking-module .cal-day.shake { animation: bkCalShake .35s ease; }
.booking-module .promo-in.error { border-color: #b44 !important; }
@media(hover:hover) and (pointer:fine) {
  .booking-module .cal-day.hover-range { background: rgba(61,92,58,.12); color: var(--bk-forest); }
  .booking-module .cal-day.hover-end { background: var(--bk-forest); color: var(--bk-gold-light) !important; border-radius: 50%; font-weight: 600; z-index: 2; }
  .booking-module .cal-day:not(.past):not(.closed):not(.full):not(.sel-start):not(.sel-end):not(.hover-end):hover { background: rgba(201,165,90,.18); }
}
.booking-module .cal-legend { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.booking-module .leg { display: flex; align-items: center; gap: 6px; font-size: .68rem; color: var(--bk-stone); }
.booking-module .leg-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }

/* STAY STRIP */
.booking-module .stay-strip { background: var(--bk-forest); border-radius: 2px; padding: 16px 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; opacity: 0; transition: opacity .4s; }
.booking-module .stay-strip.show { opacity: 1; }
.booking-module .stay-strip-left span { font-family: var(--bk-serif); font-size: 1.2rem; font-weight: 400; color: var(--bk-cream); }
.booking-module .stay-strip-left small { display: block; font-size: .63rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bk-gold-light); margin-top: 2px; }
.booking-module .stay-strip-right { text-align: right; flex-shrink: 0; }
.booking-module .stay-nights { font-family: var(--bk-serif); font-size: 1.9rem; font-weight: 400; color: var(--bk-gold); line-height: 1; }
.booking-module .stay-nights small { display: block; font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bk-stone-light); }
.booking-module .discount-badge { display: inline-flex; align-items: center; gap: 6px; background: rgba(61,92,58,.25); color: var(--bk-gold-light); font-size: .66rem; padding: 4px 10px; border-radius: 1px; margin-top: 6px; }

/* TIP */
.booking-module .tip { background: var(--bk-cream-warm); border-left: 3px solid var(--bk-gold); padding: 11px 15px; font-size: .78rem; color: var(--bk-text-mid); margin-bottom: 18px; border-radius: 0 2px 2px 0; display: none; }
.booking-module .tip.show { display: block; }
.booking-module .tip.err { border-left-color: #b44; background: #fdf0f0; color: #8b2222; }

/* ALTERNATIVES */
.booking-module .alts-panel { background: #fdf8f0; border: 1px solid #e0c090; border-radius: 2px; padding: 22px; margin-bottom: 24px; display: none; animation: bkFadeUp .3s ease; }
.booking-module .alts-panel.show { display: block; }
.booking-module .alts-panel-title { font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; color: #96650f; margin-bottom: 4px; }
.booking-module .alts-panel-msg { font-family: var(--bk-serif); font-size: 1.05rem; color: var(--bk-text-dark); margin-bottom: 18px; }
.booking-module .alts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)); gap: 12px; }
.booking-module .alt-card { background: var(--bk-white); border: 1px solid var(--bk-stone-light); border-radius: 2px; overflow: hidden; cursor: pointer; transition: border-color .2s, transform .2s; }
.booking-module .alt-card:hover { border-color: var(--bk-gold); transform: translateY(-2px); }
.booking-module .alt-card-img { height: 100px; overflow: hidden; }
.booking-module .alt-card-img img { width: 100%; height: 100%; object-fit: cover; }
.booking-module .alt-card-body { padding: 12px; }
.booking-module .alt-card-name { font-family: var(--bk-serif); font-size: .98rem; color: var(--bk-forest); margin-bottom: 5px; }
.booking-module .alt-diff { font-size: .63rem; font-weight: 500; padding: 2px 7px; border-radius: 1px; display: inline-block; margin-bottom: 8px; }
.booking-module .alt-diff-more { background: rgba(201,165,90,.15); color: #7a5e1a; }
.booking-module .alt-diff-less { background: rgba(61,92,58,.12); color: var(--bk-moss); }
.booking-module .alt-diff-same { background: rgba(138,121,104,.1); color: var(--bk-stone); }
.booking-module .alt-btn { display: block; width: 100%; background: var(--bk-forest); color: var(--bk-gold-light); border: none; padding: 8px 0; font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; border-radius: 1px; transition: background .2s; }
.booking-module .alt-btn:hover { background: var(--bk-moss); }

/* INFO BOX */
.booking-module .info-box { background: var(--bk-white); border: 1px solid var(--bk-stone-light); border-left: 3px solid var(--bk-gold); border-radius: 0 2px 2px 0; padding: 14px 18px; font-size: .82rem; color: var(--bk-text-mid); line-height: 1.65; margin-bottom: 22px; }
.booking-module .info-box:empty { display: none; }

/* EXTRAS */
.booking-module .extras-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; margin-bottom: 24px; }
.booking-module .extra-card { background: var(--bk-white); border: 1.5px solid var(--bk-stone-light); border-radius: 2px; padding: 18px; cursor: pointer; transition: border-color .2s, background .2s; display: flex; align-items: center; gap: 14px; }
.booking-module .extra-card:hover { border-color: var(--bk-gold); }
.booking-module .extra-card.selected { border-color: var(--bk-forest); background: rgba(61,79,66,.03); }
.booking-module .extra-icon { font-size: 1.8rem; flex-shrink: 0; }
.booking-module .extra-info { flex: 1; }
.booking-module .extra-name { font-family: var(--bk-serif); font-size: 1rem; color: var(--bk-forest); margin-bottom: 2px; }
.booking-module .extra-price { font-size: .72rem; color: var(--bk-stone); }
.booking-module .extra-qty { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.booking-module .extra-qty-btn { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--bk-stone-light); background: var(--bk-cream); cursor: pointer; font-size: 1rem; display: flex; align-items: center; justify-content: center; transition: border-color .2s; color: var(--bk-forest); }
.booking-module .extra-qty-btn:hover { border-color: var(--bk-gold); }
.booking-module .extra-qty-num { font-size: .9rem; font-weight: 500; color: var(--bk-forest); min-width: 14px; text-align: center; }

/* DINER / BREAKFAST CARDS */
.booking-module .sel-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: 14px; margin-bottom: 24px; }
.booking-module .sel-card { background: var(--bk-white); border: 1.5px solid var(--bk-stone-light); border-radius: 2px; padding: 16px 14px; cursor: pointer; transition: border-color .2s, background .2s; text-align: center; }
.booking-module .sel-card:hover { border-color: var(--bk-gold); }
.booking-module .sel-card.sel { border-color: var(--bk-forest); background: rgba(61,79,66,.04); }
.booking-module .sel-day { font-family: var(--bk-serif); font-size: 1.4rem; font-weight: 400; color: var(--bk-forest); margin-bottom: 2px; }
.booking-module .sel-date { font-size: .72rem; color: var(--bk-stone); margin-bottom: 10px; }
.booking-module .sel-meta { font-size: .68rem; color: var(--bk-text-mid); }

/* REVIEW BLOCK */
.booking-module .review-block { border: 1px solid var(--bk-stone-light); border-radius: 2px; overflow: hidden; margin-bottom: 28px; }
.booking-module .review-header { background: var(--bk-forest); padding: 12px 20px; display: flex; align-items: center; justify-content: space-between; }
.booking-module .review-header-title { font-family: var(--bk-serif); font-size: .95rem; font-weight: 400; color: var(--bk-cream); letter-spacing: .08em; text-transform: uppercase; }
.booking-module .review-header-dates { font-family: var(--bk-serif); font-size: 1.05rem; color: var(--bk-gold-light); }
.booking-module .review-rows { background: var(--bk-white); }
.booking-module .review-row { display: grid; grid-template-columns: 28px 1fr auto; align-items: start; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--bk-stone-light); }
.booking-module .review-row:last-child { border-bottom: none; }
.booking-module .review-icon { width: 28px; height: 28px; background: var(--bk-cream-warm); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.booking-module .review-icon svg { width: 13px; height: 13px; fill: none; stroke: var(--bk-forest); stroke-width: 1.8; }
.booking-module .review-label { font-size: .63rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bk-stone); margin-bottom: 3px; }
.booking-module .review-value { font-family: var(--bk-serif); font-size: 1.05rem; color: var(--bk-forest); line-height: 1.35; }
.booking-module .review-value small { display: block; font-family: var(--bk-sans); font-size: .72rem; color: var(--bk-stone); margin-top: 2px; }
.booking-module .review-amount { font-family: var(--bk-serif); font-size: 1.05rem; color: var(--bk-forest); text-align: right; white-space: nowrap; flex-shrink: 0; }
.booking-module .review-total-row { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; background: var(--bk-forest); }
.booking-module .review-total-label { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--bk-gold-light); }
.booking-module .review-total-amount { font-family: var(--bk-serif); font-size: 1.5rem; font-weight: 400; color: var(--bk-gold); }
.booking-module .review-edit-link { font-size: .68rem; color: var(--bk-stone); text-decoration: underline; cursor: pointer; letter-spacing: .05em; white-space: nowrap; }
.booking-module .review-edit-link:hover { color: var(--bk-forest); }

/* FORM */
.booking-module .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 28px; }
@media(max-width:580px) { .booking-module .form-grid { grid-template-columns: 1fr; } }
.booking-module .fl { display: flex; flex-direction: column; gap: 6px; }
.booking-module .fl.full { grid-column: 1/-1; }
.booking-module .fl-label { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--bk-stone); }
.booking-module .fi { background: var(--bk-white); border: 1px solid var(--bk-stone-light); border-radius: 2px; padding: 11px 14px; font-family: var(--bk-sans); font-size: .9rem; color: var(--bk-text-dark); outline: none; transition: border-color .2s; width: 100%; resize: vertical; }
.booking-module .fi:focus { border-color: var(--bk-gold); }
.booking-module .gdpr-row { display: flex; align-items: flex-start; gap: 12px; font-size: .78rem; color: var(--bk-text-mid); line-height: 1.5; }
.booking-module .gdpr-row input { flex-shrink: 0; margin-top: 3px; accent-color: var(--bk-forest); }
.booking-module .gdpr-row a { color: var(--bk-forest); }

/* PAYMENT */
.booking-module .sum-box { background: var(--bk-white); border: 1px solid var(--bk-stone-light); border-radius: 2px; overflow: hidden; margin-bottom: 24px; }
.booking-module .sum-hero { height: 160px; background-size: cover; background-position: center; position: relative; display: flex; align-items: flex-end; }
.booking-module .sum-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(61,79,66,.85), transparent); }
.booking-module .sum-hero-text { position: relative; z-index: 2; padding: 18px 22px; }
.booking-module .sum-hero-text span { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bk-gold-light); display: block; margin-bottom: 4px; }
.booking-module .sum-hero-text h2 { font-family: var(--bk-serif); font-size: 1.5rem; font-weight: 400; color: #fff; }
.booking-module .sum-r { display: flex; align-items: center; justify-content: space-between; padding: 12px 22px; border-bottom: 1px solid var(--bk-stone-light); font-size: .85rem; }
.booking-module .sum-r:last-child { border-bottom: none; }
.booking-module .sum-r.total { background: var(--bk-forest); padding: 16px 22px; }
.booking-module .sum-r.total .sum-k, .booking-module .sum-r.total .sum-v { color: var(--bk-cream); }
.booking-module .sum-r.total .sum-v strong { color: var(--bk-gold); font-family: var(--bk-serif); font-size: 1.3rem; }
.booking-module .sum-r.waarborg { background: rgba(201,165,90,.06); }
.booking-module .sum-k { color: var(--bk-text-mid); }
.booking-module .sum-v { color: var(--bk-forest); font-weight: 500; }
.booking-module .waarborg-note { font-size: .75rem; color: var(--bk-text-mid); margin-top: 14px; padding: 14px 18px; background: rgba(201,165,90,.08); border-radius: 2px; border-left: 3px solid var(--bk-gold); line-height: 1.65; }
.booking-module .promo-row { display: flex; gap: 10px; margin-bottom: 10px; }
.booking-module .promo-in { flex: 1; background: var(--bk-white); border: 1px solid var(--bk-stone-light); border-radius: 2px; padding: 11px 14px; font-family: var(--bk-sans); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; outline: none; transition: border-color .2s; }
.booking-module .promo-in:focus { border-color: var(--bk-gold); }
.booking-module .promo-btn { background: var(--bk-forest-mid); border: none; border-radius: 2px; color: var(--bk-cream); padding: 0 18px; cursor: pointer; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; transition: background .2s; }
.booking-module .promo-btn:hover { background: var(--bk-moss); }
.booking-module .promo-msg { font-size: .78rem; color: var(--bk-stone); min-height: 20px; margin-bottom: 16px; }
.booking-module .mollie-strip { display: flex; align-items: center; gap: 14px; background: var(--bk-white); border: 1px solid var(--bk-stone-light); border-radius: 2px; padding: 16px 20px; margin-bottom: 22px; }
.booking-module .pay-methods { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 5px; }
.booking-module .pm { font-size: .65rem; letter-spacing: .06em; background: var(--bk-cream); border: 1px solid var(--bk-stone-light); padding: 3px 8px; border-radius: 1px; color: var(--bk-text-mid); }

/* BUTTONS */
.booking-module .bk-btn-cta { display: block; width: 100%; background: var(--bk-forest); color: var(--bk-gold-light); border: none; border-radius: 2px; padding: 16px; font-family: var(--bk-sans); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: background .2s; }
.booking-module .bk-btn-cta:hover:not(:disabled) { background: var(--bk-moss); }
.booking-module .bk-btn-cta:disabled { opacity: .35; cursor: not-allowed; }
.booking-module .btn-back { background: transparent; border: 1px solid var(--bk-stone-light); border-radius: 2px; padding: 14px 22px; font-family: var(--bk-sans); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; color: var(--bk-stone); transition: border-color .2s, color .2s; }
.booking-module .btn-back:hover { border-color: var(--bk-forest); color: var(--bk-forest); }
.booking-module .btn-row { display: flex; gap: 12px; margin-top: 24px; }
.booking-module .btn-row .bk-btn-cta { flex: 1; }
.booking-module .skip-link { display: block; text-align: center; font-size: .72rem; color: var(--bk-stone); text-decoration: underline; cursor: pointer; margin-top: 12px; }
.booking-module .skip-link:hover { color: var(--bk-forest); }
.booking-module .trust { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 16px; }
.booking-module .trust-i { display: flex; align-items: center; gap: 7px; font-size: .68rem; color: var(--bk-stone); }

/* VARIANT SELECTOR (Lodge) */
.booking-module .variant-selector { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.booking-module .variant-opt { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 1.5px solid var(--bk-stone-light); border-radius: 2px; cursor: pointer; transition: border-color .2s, background .2s; background: var(--bk-cream); }
.booking-module .variant-opt:hover { border-color: var(--bk-gold); }
.booking-module .variant-opt.selected { border-color: var(--bk-forest); background: rgba(61,79,66,.04); }
.booking-module .variant-opt input[type=radio] { accent-color: var(--bk-forest); width: 15px; height: 15px; flex-shrink: 0; }
.booking-module .variant-opt-radio { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--bk-stone-light); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: border-color .2s; }
.booking-module .variant-opt.selected .variant-opt-radio { border-color: var(--bk-forest); }
.booking-module .variant-opt-label { flex: 1; }
.booking-module .variant-opt-name { font-family: var(--bk-serif); font-size: .98rem; color: var(--bk-forest); }
.booking-module .variant-opt-desc { font-size: .65rem; color: var(--bk-stone); letter-spacing: .04em; }
.booking-module .variant-opt-price { font-family: var(--bk-serif); font-size: 1rem; color: var(--bk-text-dark); white-space: nowrap; }
.booking-module .variant-opt-persons { font-size: .62rem; color: var(--bk-stone); text-align: right; }

/* SECTION DIVIDERS IN EXTRAS STEP */
.booking-module .section-divider { margin: 28px 0 20px; display: flex; align-items: center; gap: 14px; }
.booking-module .section-divider-line { flex: 1; height: 1px; background: var(--bk-stone-light); }
.booking-module .section-divider-title { font-family: var(--bk-serif); font-size: 1.2rem; font-weight: 400; color: var(--bk-forest); white-space: nowrap; }

/* DUO-TAG — gerecht voor 2 personen (volle gouden badge voor duidelijkheid) */
.booking-module .dish-tag.duo-tag {
    color: #fff;
    background: #c8a437;
    border-color: #b08a1f;
    font-weight: 600;
}
.booking-module .section-divider-sub { font-size: .65rem; letter-spacing: .09em; text-transform: uppercase; color: var(--bk-stone); margin-top: 3px; }