.booking-wizard { --ww-ink:#1c1917; --ww-text:#57534e; --ww-line:#d6d3d1; color:var(--ww-text); font-family:Lato,sans-serif; max-width:1240px; margin:32px auto 64px; padding:0 24px; text-align:left; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); column-gap:72px; align-items:start; }
.booking-wizard *, .booking-wizard *::before, .booking-wizard *::after { box-sizing:border-box; box-shadow:none !important; text-shadow:none !important; }
.booking-wizard [hidden] { display:none !important; }
.booking-wizard .ww-page-heading { grid-column:1 / -1; padding:0 0 40px; }
.booking-wizard .ww-back-link { color:var(--ww-text); display:inline-block; padding:12px 0; margin-bottom:16px; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.booking-wizard h1,.booking-wizard h2,.booking-wizard h3,.booking-wizard legend { font-family:Lato,sans-serif !important; font-weight:700; text-transform:none !important; letter-spacing:0 !important; color:var(--ww-ink); text-align:left; }
.booking-wizard h1 { font-size:40px !important; line-height:1.15 !important; margin:0; max-width:800px; }
.booking-wizard h2 { font-size:27px !important; line-height:1.25 !important; margin:0 0 12px; scroll-margin-top:130px; }
.booking-wizard h3 { font-size:20px !important; line-height:1.35; margin:0 0 16px; }
.booking-wizard p { line-height:1.6; }
.booking-wizard .ww-visual { grid-column:1; grid-row:2 / span 2; align-self:stretch; min-width:0; }
.booking-wizard .ww-visual-sticky { position:sticky; top:116px; }
.booking-wizard .ww-gallery { margin:0; }
.booking-wizard .ww-gallery > img { width:100%; height:auto; aspect-ratio:4 / 3; object-fit:contain; background:#fafaf9; display:block; }
.booking-wizard .ww-gallery figcaption { font-size:13px; line-height:1.5; padding:16px 0; }
.booking-wizard .ww-gallery-choices { display:flex; gap:20px; }
.booking-wizard .ww-gallery-choice { border:0; border-bottom:2px solid transparent; border-radius:0; background:#fff; padding:8px 0 12px; color:var(--ww-text); font:14px/1.4 Lato,sans-serif; display:flex; align-items:center; gap:10px; text-align:left; cursor:pointer; }
.booking-wizard .ww-gallery-choice[aria-pressed=true] { border-bottom-color:var(--ww-ink); color:var(--ww-ink); }
.booking-wizard .ww-gallery-choice img { width:44px; height:38px; object-fit:cover; }
.booking-wizard .ww-session { padding:24px 0; margin:0; background:#fff; }
.booking-wizard .ww-session p { margin:0; line-height:1.5; }
.booking-wizard .ww-session-date { color:var(--ww-ink); font-size:16px; font-weight:700; }
.booking-wizard .ww-session-venue { padding-top:8px; font-size:15px; }
.booking-wizard .ww-session-venue a { color:inherit; text-decoration:underline; }
.booking-wizard .ww-session-address { padding-top:8px; font-size:14px; }
.booking-wizard form { grid-column:2; grid-row:2; min-width:0; padding:0; background:#fff; margin:0; }
.booking-wizard .ww-progress { margin:0 0 20px; }
.booking-wizard .ww-progress p { font-size:13px; margin:0; padding:0 0 16px; }
.booking-wizard .ww-progress-track { height:2px; background:#e7e5e4; }
.booking-wizard #ww-progress-fill { height:2px; background:var(--ww-ink); transition:width .35s cubic-bezier(.22,1,.36,1); }
.booking-wizard .ww-step { padding:24px 0; }
.booking-wizard .ww-section-toggle { border:0; background:none; color:var(--ww-ink); width:100%; padding:0; display:flex; gap:16px; justify-content:space-between; align-items:center; text-align:left; cursor:pointer; font:700 23px/1.3 Lato,sans-serif; }
.booking-wizard .ww-section-toggle:disabled { cursor:default; color:#78716c; }
.booking-wizard .ww-section-action { font:14px/1.4 Lato,sans-serif; text-decoration:underline; text-underline-offset:4px; }
.booking-wizard .ww-section-summary { margin:0; padding:16px 0 0; font-size:15px; overflow-wrap:anywhere; }
.booking-wizard .ww-step-body { display:grid; grid-template-rows:1fr; transition:grid-template-rows .35s cubic-bezier(.22,1,.36,1); }
.booking-wizard .ww-step-body > div { min-height:0; overflow:hidden; padding:4px; margin:-4px; }
.booking-wizard .ww-step.is-collapsed .ww-step-body { grid-template-rows:0fr; }
.booking-wizard .ww-step.is-collapsed .ww-step-body > div { visibility:hidden; }
.booking-wizard .ww-step.is-collapsed { border-top:1px solid #e7e5e4; }
.booking-wizard .ww-step.is-active .ww-section-toggle { display:none; }
.booking-wizard .ww-helper { margin:0; padding:16px 0; font-size:15px; }
.booking-wizard label { display:block; font:15px/1.4 Lato,sans-serif; text-transform:none; letter-spacing:0; color:var(--ww-ink); margin:0 0 9px; }
.booking-wizard input:not([type=radio]):not([type=checkbox]):not([type=hidden]),.booking-wizard select,.booking-wizard textarea { width:100%; min-height:54px; padding:14px 16px; border:1px solid var(--ww-line); border-radius:0; background:#fff; color:var(--ww-ink); font:16px/1.4 Lato,sans-serif; max-width:100%; }
.booking-wizard input:focus-visible,.booking-wizard select:focus-visible,.booking-wizard textarea:focus-visible,.booking-wizard button:focus-visible,.booking-wizard summary:focus-visible,.booking-wizard a:focus-visible { outline:2px solid var(--ww-ink); outline-offset:4px; }
.booking-wizard select:focus { outline:none; border-color:var(--ww-ink); box-shadow:none; }
.booking-wizard select:focus-visible { outline:none; border:2px solid var(--ww-ink); padding:13px 15px; }
.booking-wizard input[type=radio],.booking-wizard input[type=checkbox] { display:inline-block !important; position:static !important; opacity:1 !important; visibility:visible !important; appearance:auto; width:20px; height:20px; min-width:20px; accent-color:var(--ww-ink); margin:0 10px 0 0; clip:auto; }
.booking-wizard input[type=radio]+span::before,.booking-wizard input[type=radio]+span::after,.booking-wizard input[type=checkbox]+span::before,.booking-wizard input[type=checkbox]+span::after,.booking-wizard label::before,.booking-wizard label::after { content:none !important; }
.booking-wizard fieldset { border:0; margin:0; padding:0; min-width:0; }
.booking-wizard legend { font-size:18px; float:none; width:auto; padding:0; margin:0 0 16px; }
.booking-wizard .ww-count-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:center; margin:8px 0 24px; }
.booking-wizard .ww-count-row .ww-helper { font-size:14px; }
.booking-wizard .ww-child { margin:24px 0 32px; padding:0; }
.booking-wizard .ww-child:last-child { margin-bottom:0; }
.booking-wizard .ww-fields { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:16px; }
.booking-wizard .ww-field { margin:0 0 20px; }
.booking-wizard .ww-guardian-choice { margin-top:24px; }
.booking-wizard .ww-guardian-choice legend { font-size:15px; margin-bottom:8px; }
.booking-wizard .ww-guardian-choice label { display:inline-flex; align-items:center; margin:0 24px 0 0; min-height:44px; }
.booking-wizard .ww-attribute { margin:20px 0 28px; }
.booking-wizard .ww-attribute legend { font-size:17px; }
.booking-wizard .ww-option { position:relative; display:flex; align-items:flex-start; gap:12px; padding:20px; border:2px solid #e7e5e4; margin:0 0 12px; cursor:pointer; background:#fff; transition:border-color .2s ease; }
.booking-wizard .ww-option:hover { border-color:var(--ww-line); }
.booking-wizard .ww-option:has(input:checked) { border-color:var(--ww-ink); background:#f0f0f0; }
.booking-wizard .ww-popular { display:table; padding:6px 10px; margin:0 0 16px; background:var(--ww-ink); color:#fff; font:700 12px/1.4 Lato,sans-serif; }
.booking-wizard .ww-option:has(input:focus-visible) { outline:2px solid var(--ww-ink); outline-offset:4px; }
.booking-wizard .ww-option:has(input:disabled) { cursor:default; }
.booking-wizard .ww-option input[type=radio],.booking-wizard .ww-option input[type=checkbox] { position:absolute !important; width:1px; height:1px; min-width:0; clip:rect(0,0,0,0); clip-path:inset(50%); overflow:hidden; margin:0; }
.booking-wizard .ww-selection-mark { width:18px; flex:0 0 18px; color:var(--ww-ink); font-size:18px; line-height:1.4; visibility:hidden; }
.booking-wizard .ww-option:has(input:checked) .ww-selection-mark { visibility:visible; }
.booking-wizard .ww-option-copy { display:block; flex:1; min-width:0; }
.booking-wizard .ww-option-title { display:flex; justify-content:space-between; gap:16px; }
.booking-wizard .ww-option strong { font-size:16px; font-weight:700; line-height:1.45; }
.booking-wizard .ww-option-price { font-size:14px; font-weight:400; text-align:right; white-space:normal; }
.booking-wizard .ww-option-description { display:block; color:var(--ww-text); font-size:14px; line-height:1.55; padding:16px 0 0; }
.booking-wizard .ww-option-image { width:64px; height:64px; object-fit:contain; float:right; margin:0 0 10px 12px; }
.booking-wizard .ww-color { display:inline-block; width:26px; height:26px; vertical-align:middle; margin-right:12px; border:1px solid var(--ww-line); }
.booking-wizard .ww-quantity { margin:16px 0 24px; max-width:160px; }
.booking-wizard .ww-quantity input { margin-top:8px; }
.booking-wizard .ww-child-heading { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:16px 0; }
.booking-wizard .ww-child-heading h3 { margin:0; }
.booking-wizard .ww-child-heading span { font-size:14px; }
.booking-wizard .ww-child-total,.booking-wizard .ww-total { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px 0; }
.booking-wizard .ww-child-total { font-size:14px; }
.booking-wizard .ww-attributes .ww-guardian-summary { display:none; }
.booking-wizard .ww-guardian-summary { overflow-wrap:anywhere; font-size:14px; padding:16px 0; }
.booking-wizard .ww-footer { margin-top:16px; padding:16px 0 0; }
.booking-wizard .ww-total { color:var(--ww-ink); font-size:17px; }
.booking-wizard .ww-total strong { font-size:27px; text-align:right; }
.booking-wizard .ww-price-note { padding:16px 0; margin:0; font-size:13px; }
.booking-wizard .ww-actions { display:flex; gap:16px; padding:16px 0; }
.booking-wizard .ww-primary,.booking-wizard .ww-secondary { font:700 16px/1.3 Lato,sans-serif; display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:14px 24px; border:0; border-radius:0; cursor:pointer; }
.booking-wizard .ww-primary { flex:1; background:#d6447a; color:#fff !important; }
.booking-wizard .ww-primary:hover,.booking-wizard .ww-primary:focus-visible { background:#c9376e; color:#fff !important; text-decoration:none; }
.booking-wizard .ww-primary:disabled { background:#78716c; color:#fff !important; cursor:wait; }
.booking-wizard .ww-secondary { background:#f0f0f0; color:var(--ww-ink); }
.booking-wizard .ww-text-button { border:0; background:none; color:var(--ww-text); text-decoration:underline; font:14px/1.5 Lato,sans-serif; padding:16px 0; cursor:pointer; }
.booking-wizard .ww-errors { border:0; padding:16px 0; margin:0 0 24px; color:var(--ww-text); background:transparent; font-size:15px; line-height:1.6; }
.booking-wizard .ww-errors p { margin:0 0 8px; padding:0; color:var(--ww-ink); font-weight:700; }
.booking-wizard .ww-errors ul { margin:0; padding:0; list-style:none; }
.booking-wizard .ww-errors li { margin:0; padding:0; }
.booking-wizard .ww-errors li + li { margin-top:8px; }
.booking-wizard .ww-errors:focus { outline:none; }
.booking-wizard .ww-review-child { padding:0 0 20px; overflow-wrap:anywhere; }
.booking-wizard .ww-review-child p { margin:0; padding:8px 0; }
.booking-wizard .ww-help { grid-column:2; padding:24px 0; margin:16px 0 0; border-top:1px solid #e7e5e4; background:#fff; min-width:0; }
.booking-wizard .ww-help summary { color:var(--ww-ink); cursor:pointer; font-size:16px; font-weight:700; padding:8px 0; }
.booking-wizard .ww-help > div { padding-top:16px; }
.booking-wizard .ww-help h2 { font-size:19px !important; margin:16px 0; }
.booking-wizard .ww-help p { padding:16px 0; margin:0; font-size:15px; }
.booking-wizard .ww-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.booking-wizard .ww-design-story { margin:0 0 16px; }
.booking-wizard .ww-design-story p { font-size:15px; margin:0; padding:16px 0; }
.booking-wizard .ww-design-story a { color:var(--ww-ink); text-decoration:underline; text-underline-offset:4px; font-size:14px; line-height:1.5; }
.booking-wizard > .ww-step { grid-column:2; }
.master-wrapper-content:has(.booking-wizard) { padding-bottom:0; background:#fff; }
.master-wrapper-page:has(.booking-wizard) { background:#fff; }
body:has(.booking-wizard) { overflow-x:clip; overflow-y:visible; }
@media (max-width:1000px) {
 .booking-wizard { gap:32px; padding:0 20px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .booking-wizard .ww-visual-sticky { top:100px; }
 .booking-wizard .ww-gallery-choices { gap:12px; flex-wrap:wrap; }
}
@media (max-width:760px) {
 .booking-wizard { display:block; margin:16px auto 32px; padding:0 20px 220px; }
 .booking-wizard .ww-page-heading { padding-bottom:24px; }
 .booking-wizard h1 { font-size:30px !important; }
 .booking-wizard h2 { font-size:24px !important; }
 .booking-wizard .ww-visual-sticky { position:static; }
 .booking-wizard .ww-gallery > img { max-height:270px; }
 .booking-wizard .ww-gallery-choices { flex-wrap:nowrap; gap:16px; }
 .booking-wizard .ww-gallery-choice { font-size:12px; }
 .booking-wizard .ww-gallery-choice img { width:32px; height:32px; }
 .booking-wizard .ww-session { padding:24px 0 32px; }
 .booking-wizard .ww-count-row { gap:16px; }
 .booking-wizard .ww-fields { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:12px; }
 .booking-wizard .ww-option { padding:16px; gap:8px; }
 .booking-wizard .ww-option-title { gap:12px; }
 .booking-wizard .ww-option-price { max-width:105px; }
 .booking-wizard .ww-footer { position:fixed; bottom:0; left:0; right:0; z-index:1000; background:#fff; padding:8px 20px env(safe-area-inset-bottom,0px); margin:0; border-top:1px solid #e7e5e4; }
 .booking-wizard .ww-total { padding:8px 0; }
 .booking-wizard .ww-total strong { font-size:23px; }
 .booking-wizard .ww-price-note { font-size:12px; padding:8px 0; }
 .booking-wizard .ww-actions { padding:8px 0 16px; gap:12px; }
 .booking-wizard .ww-primary,.booking-wizard .ww-secondary { padding:12px 16px; min-height:48px; font-size:15px; }
}
@media (prefers-reduced-motion:reduce) { .booking-wizard .ww-step-body,.booking-wizard #ww-progress-fill,.booking-wizard .ww-option { transition:none; } }
