body#vob-page { margin:0; background:#eef1f5; }
body.vob-booking-embedded .vob-cookie-notice { display:none !important; }
.vob-booking-page { box-sizing:border-box; max-width:980px; min-height:100svh; margin:0 auto; padding:20px 12px; }
.vob-booking { --booking-ink:#132039; --booking-blue:#2b70e8; --booking-blue-dark:#1c55bb; --booking-pale:#f1f6ff; --booking-line:#d8e3f2; --booking-muted:#73839a; max-width:760px; margin:0 auto; padding:24px; border:1px solid var(--booking-line); border-radius:20px; background:#fff; color:var(--booking-ink); font-family:Manrope,Arial,sans-serif; font-size:14px; box-shadow:0 14px 34px rgba(19,32,57,.08); }
.vob-booking-head { display:grid; gap:8px; margin-bottom:24px; }
.vob-booking-kicker { margin:0; color:var(--booking-blue); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.vob-booking h1,.vob-booking h2 { margin:0; font-family:Unbounded,Manrope,Arial,sans-serif; letter-spacing:-.04em; }
.vob-booking h1 { font-size:clamp(28px,4vw,46px); line-height:1.04; }
.vob-booking-intro { margin:0; color:var(--booking-muted); font-size:14px; line-height:1.5; }
.vob-booking-status { min-height:24px; margin:0 0 18px; color:var(--booking-muted); font-size:13px; line-height:1.4; }
.vob-booking-status[data-state="error"] { color:#b42318; }
.vob-booking-status[data-state="success"] { color:#18794e; }
.vob-booking-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.85fr); gap:24px; }
.vob-booking-grid[data-booking-screen="calendar"] { grid-template-columns:minmax(0,720px); justify-content:center; }
.vob-booking-grid[data-booking-screen="calendar"] .vob-booking-calendar { width:100%; margin:0 auto; }
.vob-booking-grid[data-booking-screen="stage"] { grid-template-columns:minmax(0,1fr); }
.vob-booking-grid[data-booking-screen="stage"] .vob-booking-stage { width:min(100%,720px); margin:0 auto; }
.vob-booking-calendar[hidden],.vob-booking-stage[hidden] { display:none !important; }
.vob-booking-calendar,.vob-booking-stage { min-width:0; }
.vob-booking-section-label { display:block; margin:0 0 10px; color:var(--booking-ink); font-size:13px; font-weight:800; }
.vob-booking-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.vob-booking-date,.vob-booking-slot { width:100%; border:1px solid var(--booking-line); border-radius:12px; background:#fff; color:var(--booking-ink); font:inherit; cursor:pointer; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.vob-booking-date { min-height:68px; padding:10px 8px; text-align:left; }
.vob-booking-date strong,.vob-booking-date small { display:block; }
.vob-booking-date strong { font-size:14px; }
.vob-booking-date small { margin-top:5px; color:var(--booking-muted); font-size:11px; }
.vob-booking-date:hover,.vob-booking-date:focus-visible,.vob-booking-slot:hover,.vob-booking-slot:focus-visible { border-color:var(--booking-blue); outline:none; transform:translateY(-1px); }
.vob-booking-date[aria-pressed="true"],.vob-booking-slot[aria-pressed="true"] { border-color:var(--booking-blue); background:var(--booking-pale); box-shadow:0 0 0 2px rgba(43,112,232,.12); }
.vob-booking-date--weekend { border-color:#d7dde6; background:#f4f6f8; }
.vob-booking-date--weekend[aria-pressed="true"] { border-color:var(--booking-blue); background:var(--booking-pale); box-shadow:0 0 0 2px rgba(43,112,232,.12); }
.vob-booking-date--unavailable,.vob-booking-date--unavailable small { color:#b42318; }
.vob-booking-date--unavailable { border-color:#f0caca; background:#fff7f7; cursor:default; }
.vob-booking-date--unavailable:hover { border-color:#f0caca; transform:none; }
.vob-booking-date:disabled { opacity:1; }
.vob-booking-dates-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; }
.vob-booking-timezone { margin:16px 0 0; padding:9px 12px; border-left:3px solid var(--booking-blue); border-radius:8px; background:var(--booking-pale); color:var(--booking-blue-dark); font-size:13px; font-weight:800; line-height:1.35; }
.vob-booking-next { display:flex; width:100%; min-height:68px; box-sizing:border-box; align-items:center; justify-content:center; gap:9px; padding:10px 9px; border:1px solid #cfddf1; border-radius:14px; background:linear-gradient(135deg,#f8fbff 0%,#edf4ff 100%); color:var(--booking-blue-dark); font:inherit; font-size:13px; font-weight:800; line-height:1.2; text-align:center; box-shadow:0 5px 14px rgba(43,112,232,.08); cursor:pointer; transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.vob-booking-next:hover,.vob-booking-next:focus-visible { border-color:var(--booking-blue); background:linear-gradient(135deg,#f0f6ff 0%,#e2edff 100%); color:var(--booking-blue-dark); outline:none; box-shadow:0 8px 18px rgba(43,112,232,.14); transform:translateY(-1px); }
.vob-booking-nav-arrow { display:grid; width:28px; height:28px; flex:0 0 28px; place-items:center; border-radius:50%; background:#fff; color:var(--booking-blue); font-size:20px; font-weight:500; line-height:1; box-shadow:0 2px 6px rgba(43,112,232,.12); }
.vob-booking-nav-label { display:grid; gap:3px; justify-items:start; text-align:left; }
.vob-booking-nav-label small { color:var(--booking-muted); font-size:11px; font-weight:800; letter-spacing:.02em; }
.vob-booking-next-cell { text-decoration:none; }
.vob-booking-slots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:18px; scroll-margin-top:12px; }
.vob-booking-slot { padding:12px 10px; font-size:14px; font-weight:800; }
.vob-booking-slot--current { border-color:#18794e; background:#f4fbf7; color:#146c43; }
.vob-booking-empty { margin:10px 0 0; color:var(--booking-muted); font-size:13px; line-height:1.45; }
.vob-booking-empty--unavailable { margin-top:12px; padding:10px 12px; border:1px solid #f0b8b8; border-radius:10px; background:#fff0f0; color:#b42318; font-weight:800; }
.vob-booking-qualification,.vob-booking-form { display:grid; min-width:0; align-content:start; gap:12px; padding:20px; border-radius:16px; background:var(--booking-pale); overflow:hidden; }
.vob-booking-qualification[hidden],.vob-booking-form[hidden] { display:none; }
.vob-booking-stage { display:grid; align-content:start; gap:24px; }
.vob-booking-stage-kicker { margin:0; color:var(--booking-blue); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.vob-booking-stage-intro { margin:0; color:var(--booking-muted); font-size:12px; line-height:1.45; }
.vob-booking-selected { margin:0 0 3px; padding:11px 12px; border-radius:10px; background:#fff; color:var(--booking-blue-dark); font-size:13px; line-height:1.4; }
.vob-booking-field { display:grid; min-width:0; gap:6px; color:var(--booking-ink); font-size:12px; font-weight:700; overflow-wrap:anywhere; }
.vob-booking-field input,.vob-booking-field select { width:100%; max-width:100%; min-height:46px; box-sizing:border-box; padding:0 12px; border:1px solid var(--booking-line); border-radius:10px; background:#fff; color:var(--booking-ink); font:inherit; }
.vob-booking-field input:focus,.vob-booking-field select:focus { border-color:var(--booking-blue); outline:3px solid rgba(43,112,232,.16); }
.vob-booking-submit { min-height:48px; margin-top:4px; padding:10px 14px; border:0; border-radius:10px; background:var(--booking-blue); color:#fff; font:inherit; font-size:12px; line-height:1.25; font-weight:800; white-space:normal; cursor:pointer; }
.vob-booking-submit:hover,.vob-booking-submit:focus-visible { background:var(--booking-blue-dark); outline:3px solid rgba(43,112,232,.2); outline-offset:2px; }
.vob-booking-submit:disabled { opacity:.55; cursor:wait; }
.vob-booking-note { margin:0; color:var(--booking-muted); font-size:10px; line-height:1.45; }
.vob-booking-success { display:grid; gap:12px; padding:28px; border:1px solid #cfe4d8; border-radius:18px; background:linear-gradient(135deg,#f4fbf7 0%,#eaf7ef 100%); color:var(--booking-ink); scroll-margin-top:16px; }
.vob-booking-success[hidden] { display:none; }
.vob-booking-success h2 { margin:0; font-family:Unbounded,Manrope,Arial,sans-serif; font-size:clamp(24px,4vw,34px); line-height:1.12; }
.vob-booking-success p { margin:0; color:#557064; font-size:13px; line-height:1.5; }
.vob-booking-success p[data-booking-success-slot] { color:#18794e; font-weight:800; }
.vob-booking-site-nav { margin-bottom:18px; }
.vob-booking-site-nav a,.vob-booking-back { display:inline-flex; align-items:center; min-height:38px; box-sizing:border-box; padding:8px 12px; border:1px solid var(--booking-line); border-radius:10px; background:#fff; color:var(--booking-blue-dark); font-size:12px; font-weight:800; text-decoration:none; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.vob-booking-site-nav a:hover,.vob-booking-site-nav a:focus-visible,.vob-booking-back:hover,.vob-booking-back:focus-visible { border-color:var(--booking-blue); background:var(--booking-pale); outline:none; transform:translateY(-1px); }
.vob-booking-success-links { display:grid; gap:10px; margin-top:4px; padding-top:16px; border-top:1px solid #cfe4d8; }
.vob-booking-success-links-title { color:#557064 !important; font-size:12px !important; }
.vob-booking-success-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.vob-booking-success-actions a { display:flex; min-height:44px; box-sizing:border-box; align-items:center; justify-content:space-between; gap:8px; padding:10px 12px; border:1px solid #cfe4d8; border-radius:10px; background:#fff; color:#18794e; font-size:12px; font-weight:800; text-decoration:none; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.vob-booking-success-actions a:hover,.vob-booking-success-actions a:focus-visible { border-color:#18794e; background:#f2fbf5; outline:none; transform:translateY(-1px); }
.vob-booking-success-actions a span { font-size:16px; line-height:1; }
.vob-booking-notice[hidden] { display:none; }
.vob-booking-notice { position:fixed; z-index:1000; inset:0; }
.vob-booking-notice-backdrop { display:grid; min-height:100%; box-sizing:border-box; place-items:center; padding:16px; background:rgba(19,32,57,.42); backdrop-filter:blur(3px); }
.vob-booking-notice-dialog { position:relative; display:grid; width:min(100%,420px); box-sizing:border-box; gap:10px; padding:26px 22px 22px; border:1px solid var(--booking-line); border-radius:18px; background:#fff; color:var(--booking-ink); box-shadow:0 24px 70px rgba(19,32,57,.22); }
.vob-booking-notice-dialog h2 { margin:0; font-family:Unbounded,Manrope,Arial,sans-serif; font-size:clamp(20px,4vw,28px); line-height:1.15; }
.vob-booking-notice-dialog p { margin:0; color:var(--booking-muted); font-size:13px; line-height:1.5; }
.vob-booking-notice[data-state="error"] [data-booking-notice-kicker] { color:#b42318; }
.vob-booking-notice[data-state="success"] [data-booking-notice-kicker] { color:#18794e; }
.vob-booking-notice-close { position:absolute; top:8px; right:10px; width:32px; height:32px; border:0; border-radius:50%; background:#f1f4f8; color:var(--booking-muted); font:inherit; font-size:22px; line-height:1; cursor:pointer; }
.vob-booking-notice-close:hover,.vob-booking-notice-close:focus-visible { background:#e5ebf3; color:var(--booking-ink); outline:none; }
.vob-booking-notice-action { min-height:44px; margin-top:4px; padding:10px 14px; border:0; border-radius:10px; background:var(--booking-blue); color:#fff; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.vob-booking-notice-action:hover,.vob-booking-notice-action:focus-visible { background:var(--booking-blue-dark); outline:3px solid rgba(43,112,232,.2); outline-offset:2px; }
body.vob-booking-notice-open { overflow:hidden; }
@media(max-width:680px){.vob-booking-page{padding:8px 6px}.vob-booking{padding:18px 12px;border-radius:16px}.vob-booking-grid{grid-template-columns:1fr}.vob-booking-dates{grid-template-columns:repeat(2,minmax(0,1fr))}.vob-booking-qualification,.vob-booking-form{padding:16px}.vob-booking-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.vob-booking-slot{padding:11px 6px;font-size:13px}}
@media(max-width:380px){.vob-booking-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.vob-booking-success-actions{grid-template-columns:1fr}}
.vob-booking-time-step { display:grid; gap:8px; margin:0 0 18px; }
.vob-booking-calendar [hidden] { display:none !important; }
.vob-booking-time-step[hidden] { display:none; }
.vob-booking-time-back { justify-self:start; min-height:38px; padding:8px 12px; border:1px solid var(--booking-line); border-radius:10px; background:#fff; color:var(--booking-blue-dark); font:inherit; font-size:12px; font-weight:800; cursor:pointer; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.vob-booking-time-back:hover,.vob-booking-time-back:focus-visible { border-color:var(--booking-blue); background:var(--booking-pale); outline:none; transform:translateY(-1px); }
.vob-booking-time-date { margin:0; color:var(--booking-ink); font-size:14px; font-weight:800; }
.vob-booking-optional { color:var(--booking-muted); font-size:10px; font-weight:600; }
.vob-booking-contact-note { margin:0; color:var(--booking-muted); font-size:11px; line-height:1.4; }
.vob-booking-review { display:grid; gap:10px; margin:4px 0 0; padding:14px; border:1px solid var(--booking-line); border-radius:12px; background:#fff; }
.vob-booking-review[hidden] { display:none; }
.vob-booking-review-title { margin:0; color:var(--booking-ink); font-size:12px; font-weight:800; }
.vob-booking-review-list { display:grid; gap:8px; margin:0; }
.vob-booking-review-list div { display:grid; gap:3px; }
.vob-booking-review-list dt { color:var(--booking-muted); font-size:10px; font-weight:800; }
.vob-booking-review-list dd { margin:0; color:var(--booking-ink); font-size:12px; line-height:1.4; white-space:pre-line; }
.vob-booking-status:not([data-state="error"]) { display: none !important; }
.vob-booking-qualification > h2,
.vob-booking-stage-intro { display: none !important; }
.vob-booking-fallback { display:grid; gap:10px; margin-top:22px; padding:16px; border:1px solid rgba(216,255,69,.72); border-radius:14px; background:#f7fbdc; text-align:center; }
.vob-booking-fallback p { margin:0; color:#59664d; font-size:12px; line-height:1.45; }
.vob-booking-fallback button { justify-self:stretch; min-height:42px; border:1px solid #b7d62f; border-radius:10px; padding:10px 14px; background:#d8ff45; color:var(--booking-ink); font:inherit; font-size:12px; font-weight:800; line-height:1.4; cursor:pointer; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.vob-booking-fallback button:hover,.vob-booking-fallback button:focus-visible { border-color:#9fbd1f; background:#c9f035; outline:3px solid rgba(216,255,69,.28); outline-offset:2px; transform:translateY(-1px); }
