.booking-dialog{border:1px solid var(--line);border-radius:7px;background:var(--cream);color:var(--ink);width:min(610px,calc(100% - 28px));max-height:90dvh;overflow:auto;padding:36px 38px;position:relative}.booking-dialog::backdrop{background:#302019b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body:has(.booking-dialog[open]){overflow:hidden}.booking-dialog h2{font-size:42px}.booking-dialog .eyebrow{margin-bottom:19px}.booking-dialog .booking-lead{color:var(--muted);font-size:13px;margin:15px 0 21px}.booking-dialog .close-dialog{position:absolute;right:14px;top:10px;font-size:28px;padding:0 8px}.booking-dialog .button{width:100%;margin-top:12px}.booking-progress{display:flex;gap:30px;border-block:1px solid var(--line);padding:14px 0;margin-bottom:24px;color:var(--muted);font-size:11px}.booking-progress span{display:flex;gap:9px}.booking-progress [aria-current=step]{color:var(--terracotta)}.booking-progress b{font-weight:500}.booking-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.booking-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;min-width:0}.booking-field label{font-size:12px;font-weight:600}.booking-field label span{font-size:10px;font-weight:400;color:var(--muted)}.booking-dialog input,.booking-dialog select,.booking-dialog textarea{width:100%;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:14px var(--sans);padding:12px;min-height:45px}.booking-dialog input:focus,.booking-dialog select:focus,.booking-dialog textarea:focus{outline:2px solid var(--terracotta);outline-offset:1px}.booking-dialog textarea{resize:vertical}.slot-heading{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:600;margin-bottom:9px}.slot-heading small{font-size:10px;font-weight:400;color:var(--muted)}.booking-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.booking-slots button{border:1px solid var(--line);border-radius:4px;font-size:13px;padding:10px 4px;background:var(--paper)}.booking-slots button[aria-pressed=true]{background:var(--terracotta);color:var(--cream);border-color:var(--terracotta)}.booking-slots button:hover{border-color:var(--terracotta)}.booking-dialog .availability-message{color:var(--muted);font-size:11px;margin:13px 0;line-height:1.5}.booking-dialog .booking-help{color:var(--muted);font-size:11px;text-align:center;margin:15px 0 0}.booking-help a{text-decoration:underline}.booking-dialog button:disabled{cursor:wait;opacity:.5;transform:none}.booking-back{font-size:11px;padding:0;margin-bottom:14px}.booking-summary{border:1px solid var(--line);border-radius:4px;padding:12px;background:#eee0ce;font-size:12px;margin-bottom:19px}.booking-consent{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.5;margin-bottom:6px}.booking-dialog .booking-consent input{width:16px;height:16px;min-height:16px;margin:2px 0;padding:0;accent-color:var(--terracotta);flex:none}.booking-consent a{text-decoration:underline}.booking-dialog .booking-policy{color:var(--muted);font-size:10px;margin:10px 0;line-height:1.6}.booking-dialog .booking-error{font-size:12px;background:#f8e6de;color:#7c2c1c;border-left:3px solid var(--terracotta);padding:12px;margin:18px 0 0;text-align:left}.booking-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.booking-restart{display:flex;margin:13px auto 0;font-size:11px}.booking-success{text-align:center}.booking-success .success-symbol{width:54px;height:54px;border-radius:50%;background:var(--terracotta);color:var(--cream);display:grid;place-items:center;font-size:26px;margin:0 auto 16px}.booking-success h3{font:28px var(--serif);font-weight:400}.booking-success p{color:var(--muted);font-size:13px;margin:14px 0}.booking-success .booking-summary{text-align:left}.another-booking{display:flex;margin:13px auto 0;font-size:11px}.booking-dialog [hidden]{display:none!important}@media (max-width:760px){.booking-dialog{padding:30px 23px;width:calc(100% - 20px)}.booking-dialog h2{font-size:36px}.booking-slots{grid-template-columns:repeat(4,1fr)}.booking-dialog input,.booking-dialog select,.booking-dialog textarea{font-size:16px}.booking-row{gap:12px}.booking-dialog .booking-help{font-size:10px}}
