/*
Theme Name: KT Retreat
Theme URI: https://soft.rotterdam010.com/
Author: KT Retreat
Description: Rustig en premium retreatthema voor WordPress.
Version: 1.3.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: kt-retreat
*/
:root{--base:#fbfaf7;--cream:#f3f0e8;--ink:#283129;--olive:#4d594d;--muted:#697168;--gold:#b59b72}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--base);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.7}a{text-decoration:none;color:inherit}
.wrap{max-width:1180px;margin:auto;padding:0 24px}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.12}h1{font-size:clamp(50px,7vw,90px)}h2{font-size:clamp(38px,5vw,62px)}h3{font-size:30px}
.site-header{position:absolute;top:0;left:0;right:0;z-index:10;color:#fff}.nav{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{font:400 28px Georgia,"Times New Roman",serif;letter-spacing:.02em;white-space:nowrap}.menu{display:flex;align-items:center;gap:20px;font-size:14px}.menu a{color:#fff}.menu .cta-link{padding:12px 18px;background:var(--base);color:var(--ink);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.hero{min-height:720px;padding:150px 24px 100px;color:#fff;display:flex;align-items:center;background:linear-gradient(135deg,#667367,#a7a99a 48%,#d5ccb9)}.hero-inner{width:100%;max-width:1180px;margin:auto}.kicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase}.hero h1{max-width:850px;margin:18px 0}.hero p{max-width:600px;font-size:18px}.btn{display:inline-block;padding:14px 24px;background:var(--base);color:var(--ink);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.btn.dark{background:var(--olive);color:#fff}
.section{padding:100px 24px}.cream{background:var(--cream)}.intro{max-width:800px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:var(--cream);padding:32px;min-height:220px}.retreat{display:grid;grid-template-columns:1.15fr .85fr}.visual{min-height:520px;background:linear-gradient(145deg,#879184,#d5cdbd)}.panel{padding:65px;background:var(--olive);color:#fff}.timeline{border-top:1px solid #ddd9cf}.day{display:grid;grid-template-columns:130px 1fr;padding:28px 0;border-bottom:1px solid #ddd9cf}.day strong{font:400 22px Georgia,serif}.location{background:var(--ink);color:#fff}.quote{max-width:900px;margin:auto;text-align:center;font:400 clamp(28px,4vw,48px)/1.3 Georgia,serif}.cta{background:var(--cream);text-align:center;padding:115px 24px}.footer{padding:55px 24px;background:#202821;color:#d9ddd7}.footer-inner{display:flex;justify-content:space-between;gap:30px}.page{padding:180px 24px 90px;background:var(--cream)}.content{padding:90px 24px}.content-inner{max-width:800px;margin:auto}
@media(max-width:900px){.menu{gap:12px}.menu a:not(.cta-link){display:none}.grid,.retreat{grid-template-columns:1fr}.panel{padding:45px 30px}.section{padding:75px 24px}.day{grid-template-columns:90px 1fr}.footer-inner{flex-direction:column}}

/* KT Retreat 1.1.2 navigation */
.site-header{position:relative;background:#b59b72;color:#5b3a73;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.site-header .nav{min-height:82px}
.site-header .brand{color:#5b3a73}
.site-header .menu a{color:#5b3a73}
.site-header .menu .cta-link{background:#5b3a73;color:#fff}
.site-header .menu .current-menu-item>a,
.site-header .menu a:hover{color:#3f2750}

/* KT Retreat 1.1.6 – reserveringsflow (Reservering v2) */
.booking-page{padding:70px 24px 100px;background:var(--base)}
.booking-shell{max-width:760px;margin:0 auto}
.booking-card{background:#fff;border:1px solid #e6e2d8;border-radius:12px;padding:48px 44px;box-shadow:0 10px 40px rgba(40,49,41,.06)}
.booking-progress{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:28px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.booking-progress span{padding:6px 12px;border-radius:999px;background:var(--cream)}
.booking-progress .is-active{background:var(--ink);color:#fff}
.booking-progress .is-done{background:#e3dccd;color:var(--ink)}
.booking-title{font:700 clamp(32px,4.5vw,40px)/1.15 Arial,Helvetica,sans-serif;margin:0 0 30px;color:#1f2937}
.booking-form fieldset{border:0;padding:0;margin:0;min-width:0}
.booking-form .booking-step{margin:0 0 36px}
.question{display:block;font:600 20px/1.3 Arial,Helvetica,sans-serif;color:#1f2937;margin:0 0 14px}
h2.question{margin-top:10px}
.req{color:var(--muted);font-size:14px;vertical-align:super;margin-left:2px}
.small{font-size:14px;margin:10px 0 0}
.kt-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* Keuze-pills (A / B) */
.choice-list{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.choice{position:relative;display:flex;align-items:center;gap:14px;cursor:pointer}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.choice .pill{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border:1px solid #d7d2c6;border-radius:8px;background:#fff;font-size:17px;line-height:1.3;color:#1f2937;transition:border-color .15s,box-shadow .15s,background .15s}
.choice kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:5px;background:#4b5563;color:#fff;font:700 12px Arial,Helvetica,sans-serif}
.choice:hover .pill{border-color:#9aa39a}
.choice input:focus-visible+.pill{outline:2px solid var(--gold);outline-offset:2px}
.choice input:checked+.pill{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb inset;background:#f5f8ff}
.choice input:checked+.pill kbd{background:#2563eb}
.choice .price-hint{font-size:14px;color:var(--muted)}

/* Datumlijst (vierkante vinkjes, één keuze) */
.date-list{display:flex;flex-direction:column;gap:12px}
.check{position:relative;display:flex;align-items:center;gap:12px;cursor:pointer;font-size:17px;color:#1f2937}
.check input{position:absolute;opacity:0;width:1px;height:1px}
.check .box{width:20px;height:20px;border:1px solid #c9c4b8;border-radius:5px;background:#fff;flex:0 0 20px;position:relative;transition:background .15s,border-color .15s}
.check input:checked+.box{background:#2563eb;border-color:#2563eb}
.check input:checked+.box::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.check input:focus-visible+.box{outline:2px solid var(--gold);outline-offset:2px}
.check .badge{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px;margin-left:4px}
.check .badge-full{background:#fee2e2;color:#b91c1c}
.check .badge-warn{background:#fef3c7;color:#92400e}
.check.is-blocked .badge{background:#fee2e2;color:#b91c1c}
.check .badge-deal{background:#dcfce7;color:#166534}
.check.is-blocked .badge-deal,.check.is-full .badge-deal{display:none}
.total-discount{font-size:14px;font-weight:400;color:#166534;margin-left:6px}
.confirm-row.deal strong{color:#166534}
.confirm-row s{color:#9ca3af;font-weight:400}
.gender-field>span{display:block;margin-bottom:8px}
.gender-field .choice-list{flex-direction:row;flex-wrap:wrap;gap:10px}
.check.is-full,.check.is-blocked{cursor:not-allowed;color:#b91c1c}
.check.is-full .date-text,.check.is-blocked .date-text{text-decoration:line-through;text-decoration-color:#b91c1c}
.check.is-full .box,.check.is-blocked .box{background:#fee2e2;border-color:#fca5a5}

/* Totaal, knoppen, fouten */
.booking-total{margin:0 0 26px;padding:14px 18px;background:var(--cream);border-radius:8px;font-size:17px}
.booking-total strong{font-size:20px}
.booking-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:8px 0 24px}
.booking-actions .btn{border:0;cursor:pointer;font-family:Arial,Helvetica,sans-serif;border-radius:6px}
.booking-actions .btn.dark{background:#1f2937}
.booking-actions .btn.dark:hover{background:#111827}
.link-back{border:0;background:none;padding:0;margin:0 0 18px;color:var(--muted);font:14px Arial,Helvetica,sans-serif;cursor:pointer}
.link-back:hover{color:var(--ink)}
.booking-error{margin:0 0 26px;padding:16px 18px;border:1px solid #f1c3c3;background:#fff5f5;border-radius:8px;color:#8a1f1f}
.booking-error ul{margin:8px 0 0 18px;padding:0}

/* Overzicht (stap 2) en bevestiging (stap 3) */
.confirm-box{border:1px solid #e6e2d8;border-radius:10px;overflow:hidden;margin:0 0 20px}
.confirm-row{display:flex;justify-content:space-between;gap:20px;padding:14px 18px;border-bottom:1px solid #eeeae1;font-size:16px}
.confirm-row:last-child{border-bottom:0}
.confirm-row span{color:var(--muted)}
.confirm-row.total{background:var(--cream)}
.confirm-row.total strong{font-size:20px}
.booking-note{margin:0 0 30px;font-size:15px;color:#1f2937}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}
.field.full{grid-column:1/-1}
.address-grid{grid-template-columns:2fr 1fr 1fr;margin-top:16px}
.field-grid+.field-grid{margin-top:16px}
.field input,.field textarea{width:100%;padding:12px 14px;border:1px solid #d7d2c6;border-radius:8px;font:16px Arial,Helvetica,sans-serif;color:var(--ink);background:#fff}
.field input:focus,.field textarea:focus{outline:2px solid #2563eb;outline-offset:1px;border-color:#2563eb}

@media(max-width:640px){.booking-card{padding:30px 22px;border-radius:0;border-left:0;border-right:0}.booking-page{padding:40px 0 70px}.field-grid,.address-grid{grid-template-columns:1fr}.confirm-row{flex-direction:column;gap:4px}}

/* 1.1.7 */
.field input[type=date]{min-height:46px}
/* 1.3.0 – bemiddeling, akkoord, informatieblok */
.agent-notice{margin:-10px 0 26px;padding:12px 16px;background:#f6f3ec;border-left:3px solid #8a7a5c;font-size:14.5px;color:#374151;border-radius:0 8px 8px 0}
.agent-notice a{color:#5b4b2e;text-decoration:underline}
.consent-step{margin:0 0 30px;padding:18px 20px;border:1px solid #e5e0d3;border-radius:12px;background:#fbfaf6}
.consent-step .question{margin-top:0}
.consent{display:flex;gap:12px;align-items:flex-start;margin:12px 0 0;font-size:15px;line-height:1.5;cursor:pointer}
.consent input{margin-top:5px;width:18px;height:18px;flex:0 0 18px}
.consent a{text-decoration:underline}
.booking-info{margin:0 0 26px;padding:16px 20px;background:#eef6f1;border:1px solid #cfe5d8;border-radius:12px;font-size:15px}
.booking-info p{margin:0 0 10px}.booking-info p:last-child{margin:0}
.small{font-size:13.5px}
.kt-staffel{width:100%;border-collapse:collapse;margin:14px 0 22px;font-size:15px}
.kt-staffel th,.kt-staffel td{padding:10px 12px;border:1px solid #e5e0d3;text-align:left;vertical-align:top}
.kt-staffel th{background:#f6f3ec}
