.booking-cta-row{margin-top:20px}
.booking-dialog{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px;background:rgba(18,24,22,.48)}
.booking-dialog[hidden]{display:none}
.booking-dialog-backdrop{position:absolute;inset:0}
.booking-dialog-panel{position:relative;z-index:1;width:min(100%,1050px);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border:1px solid var(--line,#dcdedc);border-top:3px solid var(--red,#c83434);border-radius:0;box-shadow:0 20px 70px rgba(12,24,19,.28)}
.booking-dialog-panel>h2{font-family:'Caveat','Segoe Print',cursive;font-size:clamp(26px,2.4vw,32px);font-weight:600;color:var(--ink,#171717);margin:0;padding:22px 64px 18px 24px;line-height:1.15}
.booking-dialog-close{position:absolute;top:12px;right:14px;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 11px;border:1px solid var(--line,#dcdedc);border-radius:0;background:#fff;color:var(--muted,#636363);font:600 12px/1.2 Arial,Helvetica,sans-serif;cursor:pointer}
.booking-dialog-close:hover,.booking-dialog-close:focus-visible{color:var(--ink,#171717);border-color:var(--ink,#171717)}
body.booking-dialog-open{overflow:hidden}
.booking-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line,#dcdedc)}
.booking-grid-inperson{grid-template-columns:repeat(3,minmax(0,1fr))}
.booking-option{display:flex;flex-direction:column;min-width:0;padding:22px 24px;border-right:1px solid var(--line,#dcdedc)}
.booking-grid-online .booking-option:nth-child(3n),.booking-grid-inperson .booking-option:nth-child(3n){border-right:0}
.booking-option h3{font-family:'Caveat','Segoe Print',cursive;font-size:clamp(21px,1.8vw,26px);font-weight:600;line-height:1.2;margin:0 0 8px;color:var(--ink,#171717)}
.booking-mode,.booking-place,.booking-meta{font:14px/1.5 Arial,Helvetica,sans-serif;color:var(--muted,#636363);margin:0}
.booking-place{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin:0 0 9px;color:var(--ink,#171717)}
.booking-mode{margin:0 0 16px}
.booking-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding-top:20px}
.booking-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 17px;border-radius:0;background:var(--red,#c83434);color:#fff;font:600 13px/1.25 Arial,Helvetica,sans-serif;letter-spacing:.01em;text-decoration:none;text-align:center;transition:background .18s ease,color .18s ease}
.booking-btn:hover,.booking-btn:focus-visible{background:var(--red2,#a82828);color:#fff}
.booking-btn:focus-visible{outline:2px solid var(--ink,#171717);outline-offset:3px}
@media(max-width:900px){.booking-grid,.booking-grid-inperson{grid-template-columns:1fr}.booking-option{border-right:0;border-bottom:1px solid var(--line,#dcdedc)}.booking-option:last-child{border-bottom:0}}
@media(max-width:640px){.booking-dialog{padding:10px}.booking-dialog-panel{max-height:calc(100vh - 20px)}.booking-dialog-panel>h2{padding:18px 58px 14px 20px;font-size:26px}.booking-option{padding:20px}.booking-foot{flex-direction:column;align-items:stretch;gap:12px}.booking-btn{width:100%}}
