[hidden]{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--pink);outline-offset:3px}button:disabled{opacity:.55;cursor:default;transform:none}.back-home{font-size:14px;font-weight:600;margin-left:auto}.header-note{color:var(--muted);font-size:14px;margin-left:35px}.reservation-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:85px;padding-block:54px 70px;align-items:start}.booking-intro h1{font-size:clamp(54px,5.6vw,78px);line-height:.98;letter-spacing:-1px;margin:24px 0}.booking-intro>p:not(.location){font-size:18px;line-height:1.6;color:var(--muted)}.booking-image{width:100%;max-height:250px;object-fit:cover;object-position:center 37%;border-radius:60px 12px 12px 12px;margin-top:15px}.help-box{margin-top:22px;font-size:14px;line-height:1.6}.help-box strong{display:block;font-weight:500;color:var(--muted)}.help-box a{display:inline-block;margin-top:6px;color:var(--yellow);font-weight:700}.booking-panel{background:#fff;color:#292929;border-radius:20px;padding:38px;box-shadow:0 12px 50px #0002}.booking-panel h2{font-size:43px}.panel-description{color:#626262;line-height:1.6;margin:12px 0 24px}.steps{list-style:none;display:flex;padding:0 0 25px;margin:0 0 25px;gap:14px;border-bottom:1px solid #e3e3e3;justify-content:space-between}.steps li{display:flex;gap:7px;align-items:center;color:#717171;font-size:13px;font-weight:600}.steps li span{width:27px;height:27px;display:grid;place-items:center;background:#eee;border-radius:50%;font-size:12px}.steps li[aria-current]{color:#292929}.steps li[aria-current] span{background:var(--yellow);color:#292929}.steps li.completed span{background:#292929;color:white}.booking-panel fieldset{border:0;padding:0;margin:0;min-width:0}.booking-panel legend{font-size:21px;font-weight:700;margin-bottom:24px;padding:0;line-height:1.3}.booking-panel label:not(.consent){display:block;font-weight:600;font-size:14px;margin-bottom:9px}.booking-panel input:not([type=hidden]):not([type=checkbox]),.booking-panel select,.booking-panel textarea{width:100%;min-width:0;border:1px solid #b8b8b8;border-radius:8px;min-height:49px;background:#fff;color:#292929;padding:12px 13px;margin:0 0 20px}.booking-panel select{padding-right:30px}.booking-panel textarea{resize:vertical}.booking-panel input[aria-invalid],.booking-panel select[aria-invalid]{border-color:#b71350}.booking-panel .input-hint{font-size:12px;color:#656565;margin:-10px 0 23px;line-height:1.55}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quantity{display:flex;align-items:center;gap:0;max-width:200px;margin-bottom:20px;border:1px solid #b8b8b8;border-radius:8px;overflow:hidden}.quantity button{width:50px;height:48px;flex-shrink:0;background:#f4f4f4;border:0;font-size:24px;color:#292929}.quantity input#people{border:0;border-radius:0;appearance:textfield;text-align:center;margin:0;padding:10px;min-height:48px}.quantity input::-webkit-inner-spin-button{appearance:none}.notice{font-size:13px;line-height:1.6;background:#f5f4de;border-left:3px solid #c4b900;padding:14px 16px;border-radius:0 6px 6px 0;margin:5px 0 23px}.form-actions{display:flex;gap:12px;margin-top:26px}.form-actions .yellow{margin-left:auto;flex:1}.booking-panel .outline{color:#292929;border-color:#aaa}.booking-panel .outline:hover{background:#eee}.form-footnote{font-size:11px;text-align:center;color:#737373;margin:16px 0 0}.optional{font-weight:400;color:#727272;font-size:12px}.consent{display:flex;gap:12px;font-size:13px;line-height:1.6;margin:22px 0}.consent input{width:19px;height:19px;flex-shrink:0;margin-top:2px;accent-color:#9d0054}.review-list{margin:0 0 25px}.review-list>div{display:flex;justify-content:space-between;gap:22px;padding:13px 0;border-bottom:1px solid #e3e3e3;font-size:14px}.review-list dt{color:#696969;min-width:110px}.review-list dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}.form-errors{padding:16px;background:#fff0f4;border:1px solid #e7b3c5;border-radius:8px;font-size:13px;line-height:1.6;margin-bottom:24px}.form-errors ul{padding-left:18px;margin-bottom:0}.field-error{display:block;color:#a30940;font-size:12px;margin:-12px 0 20px}.success-mark{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);font-size:32px;margin-bottom:22px}.status-pill{background:#f4f1d3;padding:7px 12px;border-radius:30px;display:inline-block;font-size:12px;font-weight:700}.receipt-code{font-size:25px;font-weight:800;letter-spacing:2px;margin:23px 0}.wide{width:100%}.secondary-link{display:block;text-align:center;font-size:14px;text-decoration:underline;text-underline-offset:4px;margin-top:22px;line-height:1.5}.admin-wrap{padding-block:45px 70px}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}.admin-heading h1{font-size:58px;margin:0}.admin-login{max-width:470px;margin:50px auto}.admin-login .button{width:100%}.filter-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:25px}.filter-tabs a{padding:10px 16px;border:1px solid #777;border-radius:30px;font-size:14px}.filter-tabs a[aria-current]{background:var(--yellow);color:#292929;border-color:var(--yellow)}.reservation-card{background:#fff;color:#292929;padding:25px;border-radius:14px;margin-bottom:18px}.reservation-card header{display:flex;justify-content:space-between;align-items:center;gap:20px}.reservation-card h2{font-family:var(--body);font-size:21px;letter-spacing:0}.reservation-card .review-list{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin:15px 0}.reservation-card form{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:20px}.reservation-card select{padding:12px;border-radius:6px}.reservation-card .outline{color:#292929}.reservation-card .outline:hover{background:#eee}.reservation-card .notes{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6;background:#f5f5f5;padding:12px}.admin-message{background:#f5ef37;color:#292929;padding:14px;border-radius:8px;margin-bottom:20px}.empty{padding:40px;text-align:center;border:1px solid #555;border-radius:15px;color:var(--muted)}
@media(max-width:1000px){.reservation-layout{gap:38px;grid-template-columns:.75fr 1.25fr}.booking-panel{padding:28px}.booking-intro h1{font-size:60px}}
@media(max-width:720px){.header-note{display:none}.reservation-layout{display:block;padding-block:27px 35px}.booking-intro h1{font-size:48px;line-height:1;margin:18px 0}.booking-intro h1 br{display:none}.booking-intro h1{max-width:320px}.booking-intro>p:not(.location){font-size:16px;margin-bottom:25px}.booking-image,.help-box{display:none}.booking-panel{padding:25px 21px;border-radius:15px}.booking-panel h2{font-size:37px}.panel-description{font-size:14px;margin:12px 0 22px}.steps{gap:7px;margin-bottom:24px;padding-bottom:22px}.steps li{font-size:12px;gap:5px}.steps li span{height:23px;width:23px}.booking-panel legend{font-size:19px}.field-grid{grid-template-columns:1fr;gap:0}.booking-panel label:not(.consent){font-size:13px}.booking-panel input,.booking-panel select,.booking-panel textarea{font-size:16px}.booking-page footer{padding-bottom:30px}.review-list>div{font-size:13px;gap:16px}.review-list dt{min-width:80px}.form-actions .button{padding:13px;font-size:14px;min-height:50px}.admin-heading{align-items:flex-start}.admin-heading h1{font-size:40px}.admin-heading .button{padding:12px;min-height:45px;font-size:13px}.reservation-card{padding:20px}.reservation-card .review-list{grid-template-columns:1fr}.reservation-card header{align-items:start}.reservation-card h2{font-size:18px}.reservation-card header .status-pill{margin:0}.admin-login{margin-top:25px}.back-home{font-size:13px}}
/* Availability calendar */
.demo-notice{padding:12px 14px;background:#f5f0ff;border:1px solid #dfd1ee;border-radius:8px;margin:0 0 22px;font-size:12px;line-height:1.6}.demo-notice strong,.demo-notice span{display:block}.demo-notice strong{color:#6b357e}.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.calendar-heading h3{font-size:21px;text-transform:capitalize;margin:0;font-weight:700}.calendar-heading button{width:36px;height:36px;border:1px solid #ddd;border-radius:8px;background:white;font-size:25px}.calendar-legend{display:flex;gap:15px;font-size:11px;color:#555;margin-bottom:18px;flex-wrap:wrap}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-legend i{width:7px;height:7px;border-radius:50%}.calendar-legend .free{background:#23805c}.calendar-legend .limited{background:#b86b00}.calendar-legend .full{background:#b74661}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{text-align:center;font-size:12px;color:#777;margin-bottom:8px}.calendar-day{min-width:0;min-height:50px;padding:7px 2px;border:1px solid transparent;background:#eff7f1;border-radius:8px;color:#245f43;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:15px}.calendar-day i{width:4px;height:4px;background:currentColor;border-radius:50%}.calendar-day.limited{background:#fff4db;color:#8c590c}.calendar-day.full{background:#faedf0;color:#a7475d}.calendar-day.past{background:#f6f6f6;color:#aaa}.calendar-day:disabled{opacity:1;cursor:not-allowed}.calendar-day.past i{visibility:hidden}.calendar-day.selected{background:var(--yellow);border:2px solid #292929;color:#292929}.calendar-day:not(:disabled):hover{border-color:#292929}.calendar-status{font-size:12px;line-height:1.5;color:#696969;margin:15px 0 25px}.slots-title{font-size:16px;margin-bottom:14px;line-height:1.5}.calendar-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.slot{min-height:64px;border:1px solid #c6d8cb;border-radius:8px;background:#fff;padding:10px 5px;color:#292929}.slot strong{display:block;font-size:16px}.slot small{display:block;font-size:10px;margin-top:5px;color:#37744d;line-height:1.4}.slot:disabled{background:#f5f5f5;color:#888;border-color:#e6e6e6;opacity:1}.slot:disabled small{color:#888}.slot.selected{background:var(--yellow);border:2px solid #292929}.slot.selected small{color:#292929}.selection-summary{padding:13px;background:#f6f6f6;border-radius:8px;font-size:13px;line-height:1.5;margin:17px 0 22px}.calendar-retry{border:0;background:transparent}.booking-panel .quantity{margin-bottom:20px}@media(max-width:720px){.calendar-day{min-height:43px;font-size:14px}.calendar-days,.weekdays{gap:4px}.calendar-heading h3{font-size:18px}.calendar-legend{gap:9px;font-size:10px}.calendar-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day{border-radius:6px}}
