/* QuickCal's form, scoped to the booking dialog. Keep the site's Red Hat Display and Staatliches fonts. */
body.roeselare-booking-ui .booked-modal{position:fixed!important;inset:0!important;margin:0!important;padding:24px!important;display:grid!important;place-items:center;isolation:isolate}
body.roeselare-booking-ui .booked-modal .bm-overlay{background:#000c;backdrop-filter:blur(7px)}
body.roeselare-booking-ui .booked-modal .bm-window{position:relative;width:760px!important;max-width:100%!important;max-height:calc(100dvh - 48px)!important;min-width:0;margin:0!important;padding:72px 0 0!important;border:1px solid #ffffff30;border-top:3px solid var(--primary-color);border-radius:3px!important;background:#112129!important;box-shadow:0 25px 100px #000b;overflow:hidden;color:#eee;box-sizing:border-box;color-scheme:dark}
body.roeselare-booking-ui .booked-modal .bm-window *{box-sizing:border-box}
body.roeselare-booking-ui .booked-modal.bm-loading .bm-window{border:0;background:transparent!important;box-shadow:none}
body.roeselare-booking-ui .booked-modal .bm-window p.booked-title-bar{position:absolute;inset:0 0 auto;height:72px;margin:0;padding:19px 78px 18px 28px;background:linear-gradient(110deg,#a61738,#790e28)!important;border-bottom:1px solid #ffffff20;border-radius:0!important;color:#fff;font-family:var(--secondary-font);font-size:30px;line-height:1.1;display:flex;align-items:center}
body.roeselare-booking-ui .booked-modal .bm-window p.booked-title-bar small{font:inherit!important;line-height:inherit!important;margin:0!important;color:#fff;letter-spacing:.01em}
body.roeselare-booking-ui .booked-modal .bm-window a.close{position:absolute;top:13px;right:16px;display:grid;place-items:center;width:42px;height:42px;color:#fff!important;border:1px solid #ffffff45;background:#0002;border-radius:2px;text-decoration:none;font-size:20px;line-height:1;z-index:2}
body.roeselare-booking-ui .booked-modal .bm-window a.close:hover{background:#ffffff20;border-color:#fff}
body.roeselare-booking-ui .booked-modal .bm-window .booked-scrollable{padding:26px 28px 28px!important;max-height:calc(100dvh - 123px)!important;overflow-y:auto;overflow-x:hidden;background:linear-gradient(135deg,#20333d,#0c171d 70%)!important;border-radius:0!important;box-sizing:border-box!important;overscroll-behavior:contain;scrollbar-color:#5f737f #112129;scrollbar-width:thin;font-family:var(--primary-font);font-size:14px;line-height:1.7;color:#e1e1e1}
body.roeselare-booking-ui .booked-modal .bm-window .booked-scrollable>*{transform:none!important}
body.roeselare-booking-ui .booked-modal .booked-form{color:#e1e1e1!important}
body.roeselare-booking-ui .booked-modal .bm-window p{font-family:var(--primary-font);font-size:13px;line-height:1.75;color:#bdc7cd;margin:0 0 18px}
body.roeselare-booking-ui .booked-modal .bm-window p strong{font-size:inherit;font-weight:700;text-transform:none;color:#eee}
body.roeselare-booking-ui .booked-modal .bm-window a:not(.close){color:#f1a1b5;text-decoration:underline;text-underline-offset:3px}
body.roeselare-booking-ui .booked-modal .booked-appointments{margin:0 0 24px}
body.roeselare-booking-ui .booked-modal .booked-appointment-details{padding:16px 18px!important;border:1px solid #ffffff25!important;border-left:3px solid var(--primary-color)!important;background:#0003;box-shadow:none;margin:0 0 12px!important}
body.roeselare-booking-ui .booked-modal .bm-window p.calendar-name{font-family:var(--secondary-font);font-size:27px;font-weight:400;line-height:1.2;text-transform:uppercase;color:#fff;margin:0 0 7px}
body.roeselare-booking-ui .booked-modal .bm-window p.appointment-info{font-size:13px;line-height:1.6;font-variant-numeric:tabular-nums;color:#d0dbe1;margin:0}
body.roeselare-booking-ui .booked-modal .appointment-info i{color:var(--secondary-color)}
body.roeselare-booking-ui .booked-modal .booked-form .field{margin:0 0 18px;min-width:0}
body.roeselare-booking-ui .booked-modal .booked-form .cf-block{margin:0}
body.roeselare-booking-ui .booked-modal .booked-form label.field-label{display:block;padding:0;margin:0 0 9px;font-family:var(--primary-font);font-size:13px;font-weight:700;line-height:1.65;color:#f5f5f5}
body.roeselare-booking-ui .booked-modal .booked-form p.field-small-p{margin:0 0 12px;font-size:12px;color:#a7b6bf}
body.roeselare-booking-ui .booked-modal .required-asterisk{color:#f1a1b5;font-size:8px;vertical-align:super;margin-left:5px}
body.roeselare-booking-ui .booked-modal .booked-form .field :is(input[type=text],input[type=email],input[type=tel],input[type=password],textarea,select){appearance:none;-webkit-appearance:none;display:block;float:none;width:100%!important;max-width:100%;min-height:48px;height:auto;margin:0!important;padding:12px 14px;border:1px solid #5f737f;border-radius:2px!important;box-shadow:none;background-color:#0c171d!important;font-family:var(--primary-font);font-size:14px;line-height:1.5;color:#f5f5f5!important;transition:border-color .15s,box-shadow .15s}
body.roeselare-booking-ui .booked-modal .booked-form .field textarea{min-height:112px;resize:vertical}
body.roeselare-booking-ui .booked-modal .booked-form .field select{padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23e2d5ca' stroke-width='2'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 16px center!important;background-size:14px 9px!important;cursor:pointer}
body.roeselare-booking-ui .booked-modal select option{background:#112129;color:#fff}
body.roeselare-booking-ui .booked-modal .field input::placeholder,body.roeselare-booking-ui .booked-modal .field textarea::placeholder{color:#a7b6bf;opacity:1}
body.roeselare-booking-ui .booked-modal .booked-form .field :is(input,textarea,select):focus-visible{outline:2px solid #f1a1b5;outline-offset:2px;border-color:var(--primary-color);box-shadow:0 0 0 3px #a6173830}
body.roeselare-booking-ui .booked-modal .roeselare-name-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
body.roeselare-booking-ui .booked-modal .roeselare-name-fields::after{display:none}
body.roeselare-booking-ui .booked-modal .roeselare-input-group{min-width:0}
body.roeselare-booking-ui .booked-modal .checkbox-radio-block{display:flex!important;align-items:flex-start;gap:12px;padding:12px 14px!important;border:1px solid #ffffff20;background:#ffffff04;border-radius:2px}
body.roeselare-booking-ui .booked-modal .booked-form .checkbox-radio-block label{position:static;flex:1;padding:0!important;margin:0;font-family:var(--primary-font);font-weight:400;font-size:13px;line-height:1.7;color:#e1e1e1;cursor:pointer}
body.roeselare-booking-ui .booked-modal .booked-form :is(input[type=checkbox],input[type=radio]){appearance:none!important;-webkit-appearance:none!important;position:static!important;opacity:1!important;display:inline-block!important;float:none!important;flex:0 0 20px;width:20px!important;height:20px!important;min-height:20px!important;margin:1px 0 0!important;padding:0!important;border:1px solid #748995!important;border-radius:2px!important;background:#0c171d!important;box-shadow:none;cursor:pointer}
body.roeselare-booking-ui .booked-modal :is(input[type=checkbox],input[type=radio])::before,body.roeselare-booking-ui .booked-modal :is(input[type=checkbox],input[type=radio])::after{content:none!important;display:none!important}
body.roeselare-booking-ui .booked-modal .booked-form input[type=checkbox]:checked{border-color:#c62850!important;background:var(--primary-color) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat!important}
body.roeselare-booking-ui .booked-modal .booked-form input[type=radio]{border-radius:50%!important}
body.roeselare-booking-ui .booked-modal .booked-form input[type=radio]:checked{background:var(--primary-color)!important;box-shadow:inset 0 0 0 4px #0c171d;border-color:#c62850!important}
body.roeselare-booking-ui .booked-modal .booked-text-content{margin-top:0!important}
body.roeselare-booking-ui .booked-modal .booked-text-content p{font-size:12px;line-height:1.8;color:#bdc7cd}
body.roeselare-booking-ui .booked-modal .booked-text-content p strong[style]{border:0!important;text-transform:none;font-weight:400}
body.roeselare-booking-ui .booked-modal .field:has(>#submit-request-appointment){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding-top:22px;border-top:1px solid #ffffff25;margin:22px 0 0}
body.roeselare-booking-ui .booked-modal :is(input[type=submit],button.cancel){float:none!important;width:100%;min-width:0;min-height:48px;height:auto!important;padding:12px 20px!important;margin:0!important;border:1px solid transparent;border-radius:2px!important;box-shadow:none!important;text-shadow:none;line-height:1.3!important;cursor:pointer}
body.roeselare-booking-ui .booked-modal input[type=submit]{font-family:var(--secondary-font)!important;font-size:23px!important;font-weight:400!important;color:#fff!important;background:linear-gradient(120deg,var(--primary-color),#850f2b)!important;border-color:var(--primary-color)!important;white-space:normal}
body.roeselare-booking-ui .booked-modal input[type=submit]:hover{background:#bd1b42!important;border-color:#f1a1b5!important}
body.roeselare-booking-ui .booked-modal button.cancel{font-family:var(--primary-font)!important;font-size:13px!important;font-weight:600!important;color:#d0dbe1!important;background:#ffffff06!important;border-color:#5f737f!important;min-width:120px}
body.roeselare-booking-ui .booked-modal button.cancel:hover{background:#ffffff12!important;color:#fff!important;border-color:#a7b6bf!important}
body.roeselare-booking-ui .booked-modal :is(a,button,input[type=submit]):focus-visible{outline:2px solid #fff;outline-offset:3px}
body.roeselare-booking-ui .booked-modal :disabled{opacity:.5;cursor:wait}
body.roeselare-booking-ui .booked-modal .bm-window p.status{color:#ffc5d4;border-left:3px solid #c62850;background:#a6173830;padding:12px 14px;font-size:13px;line-height:1.7;margin:14px 0}
body.roeselare-booking-ui .booked-modal .status:empty{display:none}
body.roeselare-booking-ui .booked-modal .field :is(input,textarea,select).error,body.roeselare-booking-ui .booked-modal .field [aria-invalid=true]{border-color:#f1a1b5!important}
body.roeselare-booking-ui .booked-modal .bm-window #customerChoices{background:#20333d;border-color:#ffffff25;color:#eee}
@media(max-width:600px){
 body.roeselare-booking-ui .booked-modal{padding:10px!important}
 body.roeselare-booking-ui .booked-modal .bm-window{padding-top:64px!important;max-height:calc(100dvh - 20px)!important}
 body.roeselare-booking-ui .booked-modal .bm-window p.booked-title-bar{height:64px;padding:16px 64px 16px 18px;font-size:25px}
 body.roeselare-booking-ui .booked-modal .bm-window a.close{right:10px;top:10px;width:40px;height:40px}
 body.roeselare-booking-ui .booked-modal .bm-window .booked-scrollable{padding:20px 18px 24px!important;max-height:calc(100dvh - 87px)!important}
 body.roeselare-booking-ui .booked-modal .roeselare-name-fields{grid-template-columns:1fr;gap:16px}
 body.roeselare-booking-ui .booked-modal .booked-form .field :is(input[type=text],input[type=email],input[type=tel],input[type=password],textarea,select){font-size:16px}
 body.roeselare-booking-ui .booked-modal .field:has(>#submit-request-appointment){grid-template-columns:1fr}
 body.roeselare-booking-ui .booked-modal button.cancel{min-height:44px}
}
@media(prefers-reduced-motion:reduce){body.roeselare-booking-ui .booked-modal .field :is(input,textarea,select){transition:none}}
body.roeselare-booking-ui .booked-modal .booked-form .booked-appointments{padding:0!important;background:transparent!important;border:0;box-shadow:none;border-radius:0}
body.roeselare-booking-ui .booked-modal .booked-form .field input:-webkit-autofill{box-shadow:0 0 0 1000px #0c171d inset!important;-webkit-text-fill-color:#f5f5f5!important;caret-color:#fff}
/* Constrain against the viewport, including QuickCal's mobile grid sizing. */
body.roeselare-booking-ui .booked-modal{grid-template-columns:minmax(0,1fr)}
body.roeselare-booking-ui .booked-modal .bm-window{width:min(760px,calc(100vw - 48px))!important;max-width:calc(100vw - 48px)!important}
@media(max-width:600px){body.roeselare-booking-ui .booked-modal .bm-window{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important}}
/* Fixed review badges must not cover mobile form controls. */
body.roeselare-booking-open .rpi-tag{visibility:hidden!important;pointer-events:none!important}
