.booking-dialog{border:1px solid #dbd4c4;border-radius:28px;padding:0;background:#fbf9f2;color:#183d29;width:min(94vw,640px);max-height:92dvh;margin:auto;box-shadow:0 28px 100px #132a2370;font-family:inherit;overflow:auto;overscroll-behavior:contain}
.booking-dialog::backdrop{background:#14291fc2;backdrop-filter:blur(7px)}
.booking-shell{padding:28px 30px max(28px,env(safe-area-inset-bottom));position:relative}
.booking-header{padding-right:36px}.booking-header .eyebrow{font-size:11px;letter-spacing:.16em;color:#995f2a}.booking-header h2{font-size:clamp(25px,5vw,36px);line-height:1.15;margin:8px 0 10px;font-family:inherit}.booking-header p{font-size:14px;line-height:1.6;margin:0;color:#536558}
.booking-close{position:absolute;right:15px;top:14px;width:44px;height:44px;border:0;border-radius:50%;background:#eee9db;color:#294431;font-size:28px;cursor:pointer}
.booking-progress{display:flex;gap:8px;margin:22px 0 20px;padding:0;list-style:none;font-size:12px}.booking-progress li{flex:1;border-top:3px solid #dfddcf;padding-top:9px;color:#6b746a}.booking-progress li.active{border-color:#286c44;color:#164a2b;font-weight:700}
.booking-dialog [hidden]{display:none!important}.booking-dialog label,.booking-dialog legend{font-weight:600;font-size:14px}.booking-dialog label{display:block}.booking-dialog input,.booking-dialog select{font:inherit;width:100%;min-height:48px;padding:11px 12px;border:1px solid #bfc9bb;border-radius:12px;background:#fffefb;color:#1f3829;box-sizing:border-box;margin-top:7px}.booking-dialog input:focus-visible,.booking-dialog select:focus-visible,.booking-dialog button:focus-visible,.booking-dialog a:focus-visible{outline:3px solid #cc873f;outline-offset:3px}.booking-dialog :disabled{opacity:.6;cursor:wait}
.booking-field{margin:17px 0}.booking-help{font-size:12px;line-height:1.6;color:#697264;margin:7px 0 0}.booking-dialog fieldset{border:0;margin:20px 0;padding:0;min-width:0}.booking-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.booking-quick button{font:inherit;font-size:12px;color:#35603f;border:1px solid #c9d5bd;background:#f1f5e8;border-radius:30px;padding:10px 12px;cursor:pointer}
.booking-counts,.booking-ages{display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-ages{margin-top:14px}.booking-stepper{display:flex;align-items:center;gap:6px;margin-top:8px;padding:3px;border:1px solid #c5cebb;border-radius:13px;background:white}.booking-stepper button{flex:0 0 42px;height:42px;border:0;border-radius:10px;font-size:23px;color:#285c38;background:#f0f3e8;cursor:pointer}.booking-stepper output{text-align:center;min-width:22px;flex:1;font-weight:700;font-size:18px}.booking-stepper button:disabled{cursor:not-allowed;opacity:.35}
.booking-summary{padding:18px 20px;background:#eef1e4;border:1px solid #d4ddc3;border-radius:18px;margin:20px 0}.booking-summary dl{margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 16px;font-size:14px}.booking-summary dt{color:#4a604b}.booking-summary dd{margin:0;text-align:right;font-weight:600}.booking-summary .booking-total{border-top:1px solid #cdd7c0;padding-top:11px;margin-top:5px;font-weight:700;color:#264e30}.booking-summary .booking-deposit{color:#174b2d;font-size:17px;font-weight:700}.booking-summary p{margin:13px 0 0;font-size:12px;line-height:1.55;color:#5c6b58}
.booking-bank-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.booking-bank-choices label{display:flex;align-items:center;gap:9px;border:1px solid #c4cdbb;border-radius:14px;padding:13px;background:#fff;cursor:pointer;min-height:52px}.booking-bank-choices label:has(input:checked){border:2px solid #2d6c3e;padding:12px;background:#eef4e7}.booking-bank-choices input{width:18px;height:18px;min-height:0;margin:0;accent-color:#2d6c3e}.booking-bank-mark{font-size:17px}.booking-bank-choices small{display:block;color:#63705e;font-size:10px;margin-top:4px;font-weight:400}
.booking-consent{display:flex!important;align-items:flex-start;gap:10px;font-size:12px!important;font-weight:400!important;line-height:1.6;margin:20px 0}.booking-consent input{width:19px;height:19px;min-height:0;flex:0 0 19px;margin:2px 0 0;accent-color:#296640}
.booking-actions{display:flex;gap:10px;margin-top:20px}.booking-dialog .booking-primary{display:inline-flex;justify-content:center;align-items:center;text-align:center;gap:8px;min-height:50px;padding:14px 18px;background:#26703e;color:#fff;border:0;border-radius:13px;cursor:pointer;text-decoration:none;font:inherit;font-size:14px;font-weight:700;line-height:1.4;flex:1}.booking-dialog .booking-primary:hover{background:#1c582e}.booking-back,.booking-secondary{min-height:46px;padding:12px 15px;border:1px solid #c9d0bf;border-radius:12px;background:transparent;color:#33553b;font:inherit;font-size:13px;cursor:pointer;text-align:center;text-decoration:none}.booking-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px}.booking-secondary:hover,.booking-back:hover{background:#edf0e4}
.booking-notice{background:#fff1d9;border:1px solid #e4c89c;color:#72501e;font-size:13px;line-height:1.6;border-radius:14px;padding:14px 16px;margin:18px 0}.booking-error{background:#fbece7;border:1px solid #e4b7a6;color:#843d2a;padding:13px 15px;border-radius:12px;font-size:13px;line-height:1.5;margin-top:16px}.booking-loading{color:#5d6d58;font-size:13px;padding:12px 0}.booking-contact-link{display:block;text-align:center;margin:16px 0 0;font-size:12px;color:#4e654e;text-underline-offset:3px}
.booking-success-badge{display:inline-flex;background:#e6eed9;color:#2b6838;border-radius:30px;padding:7px 12px;font-size:12px;font-weight:700;margin-bottom:12px}.booking-reference{font-size:12px;color:#5e6e58;overflow-wrap:anywhere}.booking-payment-amount{font-size:clamp(27px,7vw,38px);font-weight:800;letter-spacing:-.03em;color:#245c35;margin:7px 0}.booking-payment-title{font-size:13px;color:#5c6a56;margin:18px 0 0}.booking-bank-details{border:1px solid #d4d8c9;background:#fffef9;border-radius:18px;padding:17px 18px;margin:18px 0}.booking-bank-details h3{font:inherit;font-weight:700;font-size:18px;margin:0 0 15px}.booking-bank-details dl{margin:0}.booking-bank-details dt{font-size:11px;color:#70806b;margin:13px 0 5px}.booking-bank-details dd{font-size:14px;line-height:1.6;margin:0;overflow-wrap:anywhere}.booking-bank-details .booking-iban{font-family:ui-monospace,SFMono-Regular,monospace;font-size:15px;font-weight:700;letter-spacing:.02em}.booking-copy-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.booking-copy-row button{font-size:12px}.booking-result-note{font-size:13px;line-height:1.7;color:#53654e}.booking-print-title{display:none}.booking-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.booking-toast{min-height:18px;font-size:12px;color:#2f683c;margin-top:10px}.booking-dialog-open{overflow:hidden}
@media(max-width:480px){.booking-dialog{width:calc(100vw - 16px);border-radius:22px;max-height:96dvh}.booking-shell{padding:24px 18px max(22px,env(safe-area-inset-bottom))}.booking-bank-choices{grid-template-columns:1fr}.booking-progress{font-size:11px}.booking-summary{padding:16px 14px}.booking-summary dl{font-size:13px;gap:10px}.booking-counts{gap:10px}.booking-stepper button{flex-basis:36px}.booking-quick{gap:6px}.booking-quick button{font-size:11px;padding:9px}.booking-copy-row .booking-secondary{flex:1}.booking-actions{flex-wrap:wrap}.booking-actions .booking-back{flex:0 0 auto}.booking-result-actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.booking-dialog,.booking-dialog *{scroll-behavior:auto!important;transition:none!important}}
@media print{body>*:not(.booking-dialog){display:none!important}.booking-dialog{position:static;max-height:none;width:100%;border:0;box-shadow:none;display:block!important;background:white;color:black}.booking-dialog::backdrop,.booking-close,.booking-progress,.booking-result-actions,.booking-copy-row,.booking-contact-link,.booking-toast{display:none!important}.booking-shell{padding:0}.booking-header{padding:0}.booking-summary,.booking-bank-details{break-inside:avoid}.booking-print-title{display:block}.booking-dialog [hidden]{display:none!important}}
