/* Tibolin Reservierungen – Formular */
.tibo-res{
	--navy:#101b32;--text:#3f4b60;--muted:#6b7587;--line:#e6e1dc;--soft:#f7f4f1;
	--orange:#f28c28;--orange-deep:#d96a0e;--cream:#fff0e2;--error:#b23a2b;
	box-sizing:border-box;max-width:880px;margin:32px auto;padding:0;color:var(--text);font-family:inherit;font-size:16px;line-height:1.55
}
.tibo-res *,.tibo-res *::before,.tibo-res *::after{box-sizing:border-box}
.tibo-res h2,.tibo-res h3{margin:0;color:var(--navy);font-family:inherit;letter-spacing:-.01em}
.tibo-res p{margin:0}
.tibo-res b{color:var(--orange-deep);font-weight:600}
.tibo-res button{font-family:inherit}
.tibo-res svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* Kopf */
.tibo-res-head{padding-bottom:28px;border-bottom:2px solid var(--navy)}
.tibo-res-eyebrow{display:block;margin-bottom:8px;color:var(--orange-deep);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.tibo-res-head h2{font-size:clamp(28px,4vw,38px);font-weight:700;line-height:1.15}
.tibo-res-head p{max-width:620px;margin-top:10px;font-size:17px}

/* Schritte */
.tibo-res-step{padding:32px 0;border-bottom:1px solid var(--line)}
.tibo-res-step__head{display:flex;align-items:baseline;gap:14px;margin-bottom:20px}
.tibo-res-step__no{flex:0 0 auto;color:var(--orange-deep);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.tibo-res-step__no::before{content:"0"}
.tibo-res-step__head h3{font-size:22px;font-weight:700}
.tibo-res-step__intro{margin:-8px 0 18px}
.tibo-res-note{margin-top:16px;color:var(--muted);font-size:14px}
.tibo-res-note strong{color:var(--navy)}

/* Personen */
.tibo-res-step{container-type:inline-size}
.tibo-res-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}
.tibo-res-count{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:10px 0;border-bottom:1px solid var(--line)}
.tibo-res-count label{display:block;margin:0;color:var(--navy);font-weight:600;line-height:1.3;cursor:default}
.tibo-res-count label small{display:block;margin-top:2px;color:var(--muted);font-size:13px;font-weight:400}
.tibo-res-stepper{display:flex;flex:0 0 auto;align-items:center;gap:4px}
.tibo-res-stepper button{display:grid;width:40px;height:40px;margin:0;padding:0;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);cursor:pointer;transition:border-color .15s,color .15s}
.tibo-res-stepper button:hover:not(:disabled){border-color:var(--orange);color:var(--orange-deep)}
.tibo-res-stepper button:disabled{opacity:.35;cursor:not-allowed}
.tibo-res-stepper input[type=number]{width:52px!important;height:40px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--navy)!important;font:inherit!important;font-size:18px!important;font-weight:700!important;text-align:center!important;-moz-appearance:textfield;appearance:textfield}
.tibo-res-stepper input::-webkit-inner-spin-button,.tibo-res-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}

/* Preis je Personengruppe */
.tibo-res-count__price{display:block;margin-top:3px;color:var(--muted);font-size:13px;font-style:normal;font-weight:500;font-variant-numeric:tabular-nums}
.tibo-res-count__price.is-active{color:var(--orange-deep);font-weight:600}

/* Personen vor Ort */
.tibo-res-extra{margin-top:18px;padding:12px 16px;border-left:3px solid var(--line);background:var(--soft);color:var(--navy);font-size:15px}
.tibo-res-extra:empty{display:none}
.tibo-res-extra strong{display:block}
.tibo-res-extra span{display:block;margin-top:2px;color:var(--text);font-size:14px}
.tibo-res-extra.is-limited{border-left:4px solid var(--orange-deep);background:var(--cream)}
.tibo-res-extra.is-limited strong{color:var(--orange-deep);font-size:17px}
.tibo-res-extra.is-full{border-left-color:var(--error);background:#fbeceb}
.tibo-res-extra.is-full strong{color:var(--error)}

/* Kalender */
.tibo-res-calendar{max-width:520px}
.tibo-res-calendar__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.tibo-res-calendar__head strong{color:var(--navy);font-size:18px;font-weight:700}
.tibo-res-calendar__head button{display:grid;width:40px;height:40px;margin:0;padding:0;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);cursor:pointer}
.tibo-res-calendar__head button:hover:not(:disabled){border-color:var(--orange);color:var(--orange-deep)}
.tibo-res-calendar__head button:disabled{opacity:.3;cursor:not-allowed}
.tibo-res-calendar__week,.tibo-res-calendar__days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.tibo-res-calendar__week{padding:8px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600;text-align:center}
.tibo-res-calendar__days{min-height:296px;padding-top:8px;align-content:start}
.tibo-res-calendar__days button{position:relative;height:46px;margin:0;padding:0;border:1px solid transparent;border-radius:12px;background:transparent;color:#b9b2ab;font-size:15px;font-weight:500;cursor:not-allowed}
.tibo-res-calendar__days button.is-full{text-decoration:line-through;text-decoration-color:#cfc8c1}
.tibo-res-calendar__days button.is-free{border-color:var(--line);background:#fff;color:var(--navy);font-weight:700;cursor:pointer}
.tibo-res-calendar__days button.is-free::after{content:"";position:absolute;bottom:7px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--orange)}
.tibo-res-calendar__days button.is-free:hover{border-color:var(--orange)}
.tibo-res-calendar__days button.is-selected{border-color:var(--navy);background:var(--navy);color:#fff}
.tibo-res-calendar__days button.is-selected::after{background:#fff}
.tibo-res-loading{grid-column:1/-1;align-self:center;padding:40px 0;color:var(--muted);text-align:center}
.tibo-res-calendar__legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px;color:var(--muted);font-size:13px}
.tibo-res-calendar__legend span{display:flex;align-items:center;gap:7px}
.tibo-res-calendar__legend i{display:block;width:14px;height:14px;border:1px solid var(--line);border-radius:4px;background:#fff}
.tibo-res-calendar__legend i.is-free{box-shadow:inset 0 -3px 0 var(--orange)}
.tibo-res-calendar__legend i.is-selected{border-color:var(--navy);background:var(--navy)}
.tibo-res-calendar__legend i.is-full{border-color:transparent;background:var(--soft)}

.tibo-res-calendar__locked{margin:0 0 10px;padding:14px 16px;border-left:4px solid var(--orange-deep);background:var(--cream);color:var(--navy)}
.tibo-res-calendar__locked[hidden]{display:none!important}
.tibo-res-calendar__locked strong{display:block;font-size:16px}
.tibo-res-calendar__locked span{display:block;margin-top:2px;color:var(--text);font-size:14px}
.tibo-res-calendar.is-locked .tibo-res-calendar__days{opacity:.45}

/* Gruppen: Zahlungshinweis */
.tibo-res-paynote{margin:0 0 22px;padding:16px 18px;border-left:4px solid var(--orange-deep);background:var(--cream);color:var(--navy)}
.tibo-res-paynote strong{display:block}
.tibo-res-paynote p{margin:6px 0 0!important;color:var(--text);font-size:15px}
.tibo-res-paynote p strong{display:inline;color:var(--navy)}

/* Uhrzeiten */
.tibo-res-times{margin-top:28px}
.tibo-res-times__title{margin-bottom:12px!important;color:var(--navy);font-weight:600}
.tibo-res-times__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.tibo-res-time{display:block;margin:0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.tibo-res-time strong{display:block;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
.tibo-res-time small{display:block;margin-top:2px;color:var(--muted);font-size:13px}
.tibo-res-time:hover:not(:disabled){border-color:var(--orange)}
.tibo-res-time.is-selected{border-color:var(--navy);background:var(--cream);box-shadow:inset 0 0 0 1px var(--navy)}
.tibo-res-time:disabled{background:var(--soft);color:#a39c95;cursor:not-allowed}
.tibo-res-time:disabled small{color:#a39c95}
.tibo-res-empty{grid-column:1/-1;color:var(--muted)}

/* Felder */
.tibo-res-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}
.tibo-res-field{display:grid!important;gap:6px;margin:0!important;color:var(--navy);font-size:14px;font-weight:600}
.tibo-res-field--wide{margin-top:18px!important}
.tibo-res-field input,.tibo-res-field textarea{width:100%;min-height:48px;margin:0;padding:11px 14px;border:1px solid #d6d0ca;border-radius:12px;background:#fff;box-shadow:none;color:var(--navy);font:inherit;font-size:16px;font-weight:400;transition:border-color .15s,box-shadow .15s}
.tibo-res-field textarea{min-height:96px;resize:vertical}
.tibo-res input:focus-visible,.tibo-res textarea:focus-visible,.tibo-res button:focus-visible{outline:0;border-color:var(--orange);box-shadow:0 0 0 3px rgba(242,140,40,.25)}
.tibo-res-field input:user-invalid,.tibo-res-field textarea:user-invalid{border-color:var(--error)}

/* Auswahl und Bestätigungen */
.tibo-res-choices{margin:0 0 24px;padding:0;border:0}
.tibo-res-choices legend{margin-bottom:10px;padding:0;color:var(--navy);font-weight:600}
.tibo-res-choice,.tibo-res-consent{display:flex!important;align-items:flex-start;gap:12px;margin:0!important;cursor:pointer}
.tibo-res-choice{padding:14px 0;border-bottom:1px solid var(--line)}
.tibo-res-choice:first-of-type{border-top:1px solid var(--line)}
.tibo-res-choice input,.tibo-res-consent input{flex:0 0 auto;width:20px;height:20px;margin:2px 0 0!important;accent-color:var(--orange-deep)}
.tibo-res-choice strong{display:block;color:var(--navy)}
.tibo-res-choice small{display:block;margin-top:2px;color:var(--muted);font-size:14px}
.tibo-res-consent{padding:10px 0;color:var(--text);font-size:15px}
.tibo-res-rules{margin-bottom:18px;padding:14px 0 14px 16px;border-left:3px solid var(--orange);color:var(--navy);font-size:15px}

/* Zweites Geburtstagskind */
.tibo-res-child2{margin-top:18px;padding-top:18px;border-top:1px dashed var(--line)}
.tibo-res-child2[hidden]{display:none!important}
.tibo-res-child2__title{grid-column:1/-1;color:var(--navy);font-weight:600}

/* Zahlung Geburtstag: Anzahlung deutlich, Rest vor Ort */
.tibo-res-pay{border-top:2px solid var(--navy)}
.tibo-res-pay__now{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin:0;padding:18px 18px 16px;border-left:4px solid var(--orange-deep);background:var(--cream)}
.tibo-res-pay__now span{color:var(--navy);font-size:17px;font-weight:700}
.tibo-res-pay__now strong{color:var(--orange-deep);font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.tibo-res-pay__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}
.tibo-res-pay__row span{color:var(--text)}
.tibo-res-pay__row strong{color:var(--navy);font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
.tibo-res-pay__rest span{color:var(--navy);font-weight:600}
.tibo-res-pay__plus{margin-top:8px!important;color:var(--muted);font-size:14px}

/* Summe und Absenden */
.tibo-res-total{padding:28px 0 0}
.tibo-res-total__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:14px;border-bottom:2px solid var(--navy)}
.tibo-res-total__row span{color:var(--navy);font-weight:600}
.tibo-res-total__row strong{color:var(--navy);font-size:32px;font-weight:700;font-variant-numeric:tabular-nums}
.tibo-res-total__row.is-struck{border-bottom:1px solid var(--line,#eadfd3);padding-bottom:10px}
.tibo-res-total__row.is-struck strong{font-size:20px;font-weight:600;color:var(--text);text-decoration:line-through;text-decoration-thickness:1px}
.tibo-res-total__discount{border-bottom:1px solid var(--line,#eadfd3);padding:10px 0}
.tibo-res-total__discount strong{font-size:20px;color:var(--orange-deep)}
.tibo-res-total__yours{padding-top:10px}
.tibo-res-total__row[hidden]{display:none}
.tibo-res-paynote p.tibo-res-paynote__discount{padding-top:8px;margin-top:10px!important;border-top:1px solid rgba(16,27,50,.12)}
.tibo-res-paynote a{color:var(--orange-deep);font-weight:600}
.tibo-res-total__slot{margin-top:12px!important;color:var(--muted)}
.tibo-res-total__slot.is-set{color:var(--navy);font-weight:600}
.tibo-res-total__note{margin-top:4px!important;color:var(--muted);font-size:14px}
.tibo-res-feedback{min-height:1px;margin:14px 0 0;color:var(--error);font-weight:600}
.tibo-res-feedback:empty{margin:0}
.tibo-res-submit{display:inline-flex;align-items:center;justify-content:center;min-width:240px;min-height:52px;margin-top:20px;padding:0 28px;border:0;border-radius:12px;background:var(--orange-deep);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:background .15s}
.tibo-res-submit:hover{background:#c25c08}
.tibo-res-submit:disabled{opacity:.6;cursor:wait}
.tibo-res-notice{max-width:880px;margin:24px auto;padding:12px 16px;border-left:3px solid var(--orange,#f28c28);background:#fff0e2;color:#101b32}

/* Termin-Bestätigung (Geburtstag) */
.tibo-res-modal[hidden]{display:none!important}
.tibo-res-modal{position:fixed;z-index:999999;inset:0;display:grid;place-items:center;padding:16px;background:rgba(16,27,50,.6);font-family:inherit}
.tibo-res-modal__box{width:min(480px,100%);padding:30px 28px 26px;border-top:4px solid #d96a0e;border-radius:12px;background:#fff;color:#3f4b60;text-align:left}
.tibo-res-modal__box h3{margin:0 0 8px;color:#101b32;font-size:22px;font-weight:700}
.tibo-res-modal__box p{margin:0}
.tibo-res-modal__box [data-birthday-confirm-date]{display:block;margin:14px 0;padding:14px 0;border-top:1px solid #e6e1dc;border-bottom:1px solid #e6e1dc;color:#101b32;font-size:19px;line-height:1.4}
.tibo-res-modal__note{color:#6b7587;font-size:14px}
.tibo-res-modal__facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0 0 14px;font-size:15px}
.tibo-res-modal__facts dt{color:#6b7587}
.tibo-res-modal__facts dd{margin:0;color:#101b32;font-weight:600}
.tibo-res-modal__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px}
.tibo-res-modal__actions button{min-height:46px;padding:0 20px;border:1px solid #e6e1dc;border-radius:12px;background:#fff;color:#101b32;font:inherit;font-weight:600;cursor:pointer}
.tibo-res-modal__actions [data-modal-confirm]{border-color:#d96a0e;background:#d96a0e;color:#fff}
.tibo-res-modal__actions [data-modal-confirm]:hover{background:#c25c08}
body.tibo-res-modal-open{overflow:hidden}

@media (max-width:640px){
	.tibo-res{margin:20px auto}
	.tibo-res-step{padding:26px 0}
	.tibo-res-counts,.tibo-res-fields{grid-template-columns:1fr}
	.tibo-res-calendar__days button{height:42px}
	.tibo-res-times__list{grid-template-columns:1fr 1fr}
	.tibo-res-submit{width:100%}
	.tibo-res-total__row strong{font-size:28px}
}

/* Formular in schmaler Spalte (z. B. neben einem Hinweisblock): Felder untereinander statt gequetscht */
@container (max-width:760px){
	.tibo-res-counts,.tibo-res-fields{grid-template-columns:1fr}
}

/* Geburtsdatum: Tag · Monat · Jahr */
.tibo-res-dob__row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr) minmax(0,1fr);gap:8px}
.tibo-res-dob select{width:100%;min-height:50px;padding:10px 12px;border:1px solid #c9ced8;border-radius:12px;background:#fff;color:var(--navy);font:inherit;font-size:16px;appearance:auto}
.tibo-res-dob select:focus-visible{outline:3px solid var(--focus,#f28c28);outline-offset:2px}
.tibo-res-dob select:invalid:not(:focus){color:var(--muted,#6b7487)}
