/* A focused, compact public booking flow, shared across estate identities. */
.booking-experience .public-booking-wrap{background:#f4f5f7;padding:28px 32px 56px;color:#1a1d24}
.booking-layout{max-width:1080px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px;align-items:start}
.booking-main-column{min-width:0}
.booking-back{display:inline-flex;align-items:center;background:none;color:#626b78;font-size:13px;font-weight:550;padding:0;min-height:36px;margin:0 0 16px}
.booking-progress{display:flex;gap:0;align-items:center;margin:0 0 22px;max-width:620px}
.booking-progress>span{display:flex;align-items:center;gap:9px;flex:1;min-width:0;font-size:12px;color:#8a929f;position:relative}
.booking-progress>span:not(:last-child):after{content:'';flex:1;height:1px;background:#dce0e5;margin:0 12px}
.booking-progress i{display:grid;place-items:center;width:26px;height:26px;flex:none;border:1px solid #d7dce2;border-radius:50%;font-style:normal;font-size:11px;background:#f4f5f7}
.booking-progress b{font-size:12px;white-space:nowrap;font-weight:550}
.booking-progress .current{color:#1a1d24}.booking-progress .current i{background:var(--accent);border-color:var(--accent);color:#1a1d24;font-weight:750}
.booking-progress .complete{color:#1a1d24}.booking-progress .complete i{background:#1a1d24;border-color:#1a1d24;color:white}
.booking-experience .public-booking-wrap .booking-form{max-width:none;margin:0;background:white;border:1px solid #e1e5ea;border-radius:18px;padding:28px;box-shadow:0 3px 14px #1a1d2404}
.booking-form-heading{padding:0 0 24px;border-bottom:1px solid #edf0f3;margin-bottom:22px}
.booking-experience .booking-form .booking-kicker{font-size:12px;font-weight:600;line-height:1.5;color:#68727f;margin:0 0 8px}
.booking-experience .booking-form .booking-form-heading h2{font-size:27px;line-height:1.18;font-weight:750;letter-spacing:-.65px;font-stretch:100%;margin:0 0 10px}
.booking-experience .booking-form .booking-form-heading>p:last-child{font-size:13px;line-height:1.6;color:#77808d;margin:0}
.booking-field-section+.booking-field-section{border-top:1px solid #edf0f3;margin-top:24px;padding-top:22px}
.booking-field-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.booking-field-heading h3{font-size:15px;font-weight:700;letter-spacing:-.2px;font-stretch:100%;margin:0}
.booking-field-heading>span{font-size:11px;color:#808894}
.booking-experience .booking-form label{font-size:12px;font-weight:600;color:#4a535f;line-height:1.5;display:block;margin:14px 0 7px}
.booking-experience .booking-form .booking-field-section>label:first-child{margin-top:0}
.booking-experience .booking-form input:not([type=checkbox]),.booking-experience .booking-form select,.booking-experience .booking-form textarea{font:inherit;font-size:14px;line-height:1.4;color:#1a1d24;width:100%;min-width:0;min-height:46px;padding:11px 12px;border:1px solid #dce1e7;border-radius:10px;background:white;box-shadow:0 1px 2px #1a1d2403;margin:0}
.booking-experience .booking-form input:focus-visible,.booking-experience .booking-form select:focus-visible,.booking-experience .booking-form textarea:focus-visible,.booking-date-trigger:focus-visible{outline:2px solid #8b939f;outline-offset:2px;border-color:#7a8492}
.booking-experience .booking-form textarea{min-height:96px;resize:vertical}
.booking-experience .booking-form select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2368737f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:16px;background-position:right 13px center}
.booking-experience .booking-form .design-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.booking-time-hint,.booking-field-help{font-size:11px;line-height:1.6;color:#818a96;margin:8px 0 0}
.booking-optional{font-size:11px;color:#959da7;font-weight:400;margin-left:5px}
.booking-experience .booking-form .check-label{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:12px;line-height:1.6;margin-top:20px}
.booking-experience .booking-form input[type=checkbox]{width:18px;height:18px;min-height:18px;flex:none;margin:1px 0 0;padding:0;accent-color:#1a1d24}
.booking-experience .booking-review{padding:0 16px;margin:0 0 16px;border-color:#e8ebef;border-radius:12px}
.booking-experience .booking-review .info-row{grid-template-columns:minmax(100px,1fr) minmax(0,1.3fr);gap:16px;padding:13px 0;font-size:12px}
.booking-experience .booking-review .info-row strong{font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.booking-form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding-top:20px;border-top:1px solid #edf0f3}
.booking-form-footer>span{font-size:11px;color:#8a929e}
.booking-form-footer>div{display:flex;gap:9px}
.booking-experience .booking-form .btn{font-size:13px;min-height:44px;padding:11px 20px;border-radius:10px;font-weight:650}
.booking-experience .booking-form .btn.accent{background:var(--accent);color:#1a1d24;border:1px solid transparent}
.booking-experience .booking-form .form-error{font-size:12px;line-height:1.6;margin-top:16px;color:#b33432}
.booking-experience .booking-form .form-error:empty{display:none}
.booking-summary-slot{margin-top:100px;position:sticky;top:22px}
.booking-side{border:1px solid #e1e5ea;background:white;border-radius:18px;overflow:hidden}
.booking-venue-image{height:180px;background:#e8eced;position:relative}
.booking-venue-image img{display:block;width:100%;height:100%;object-fit:cover}
.booking-venue-image>span{position:absolute;left:14px;bottom:14px;background:#ffffffee;color:#414955;border-radius:6px;padding:6px 9px;font-size:11px;font-weight:600;max-width:calc(100% - 28px)}
.booking-side-body{padding:20px}
.booking-side-body h3{font-size:18px;line-height:1.3;font-weight:700;letter-spacing:-.3px;margin:0 0 6px}
.booking-side-body>p{font-size:12px;line-height:1.5;color:#818a95;margin:0 0 20px}
.booking-side dl{margin:0}
.booking-side dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:10px 0;border-top:1px solid #edf0f3;font-size:12px;line-height:1.5}
.booking-side dt{color:#8a939e}.booking-side dd{margin:0;text-align:right;color:#404955;font-weight:550;max-width:72%}
.booking-price{border-top:1px solid #e9ecf0;margin-top:8px;padding-top:17px}
.booking-price small{font-size:11px;color:#8a939e}.booking-price strong{font-size:20px;line-height:1.4;display:block;margin:5px 0 8px;letter-spacing:-.4px}
.booking-price p{font-size:11px;line-height:1.6;color:#8a939e;margin:0}
.booking-date-field{position:relative}
.booking-date-trigger{background:white;color:#1a1d24;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:46px;text-align:left;border:1px solid #dce1e7;border-radius:10px;padding:11px 12px;font-size:14px;gap:12px}
.booking-date-trigger svg{width:17px;height:17px;flex:none;stroke:#78828f}
.booking-date-popover{position:absolute;z-index:25;top:calc(100% + 8px);left:0;width:min(340px,100%);border:1px solid #e0e5eb;border-radius:14px;background:white;padding:12px;box-shadow:0 12px 40px #1823331c}
.booking-date-popover>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.booking-date-popover>header b{font-size:13px;font-weight:650}
.booking-date-popover>header button{width:36px;height:36px;background:none;border-radius:8px;font-size:23px;line-height:1;color:#596472}
.booking-date-popover table{table-layout:fixed;width:100%;border-collapse:collapse;font-size:12px}
.booking-date-popover th{font-size:10px;color:#8e97a2;font-weight:500;height:30px;text-align:center}
.booking-date-popover td{padding:2px;text-align:center}
.booking-date-popover td button{width:100%;height:36px;background:white;font-size:12px;color:#414c59;border-radius:8px;padding:0}
.booking-date-popover td button:hover:not(:disabled){background:#f1f3f5}
.booking-date-popover td button.selected{background:#1a1d24;color:white;font-weight:650}
.booking-date-popover td button:disabled{color:#ccd1d8;cursor:default}
.booking-date-popover button:focus-visible{outline:2px solid #1a1d24;outline-offset:1px}
.booking-date-popover>footer{border-top:1px solid #edf0f3;margin-top:10px;padding-top:8px;display:flex;justify-content:space-between}
.booking-date-popover>footer button{background:none;color:#616d7c;padding:7px;font-size:11px;min-height:34px}
.booking-experience .booking-human-check{background:#fafbfc;border-color:#e8ecf0;border-radius:12px;padding:16px;margin-top:18px}
.booking-experience .booking-human-check h3{font-size:13px}
.booking-experience .booking-human-check>div{margin-bottom:6px}
.booking-experience .booking-human-check label{font-weight:500;font-size:13px;margin:0 0 8px}
.booking-experience .booking-form .booking-human-check input{max-width:160px}
@container app (max-width:940px){.booking-layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.booking-side-body{padding:16px}.booking-experience .public-booking-wrap{padding:24px}.booking-experience .public-booking-wrap .booking-form{padding:24px}.booking-progress>span:not(:last-child):after{margin:0 8px}}
@container app (max-width:760px){
 .booking-experience .public-booking-wrap{padding:16px 16px 30px;background:#f4f5f7}
 .booking-layout{grid-template-columns:1fr;gap:0}
 .booking-summary-slot{display:none}
 .booking-back{font-size:12px;min-height:32px;margin-bottom:12px}
 .booking-progress{margin-bottom:18px}.booking-progress>span{gap:6px}.booking-progress b{font-size:11px}.booking-progress i{width:24px;height:24px;font-size:10px}.booking-progress>span:not(:last-child):after{margin:0 7px}
 .booking-experience .public-booking-wrap .booking-form{padding:20px 18px;border-radius:16px}
 .booking-form-heading{padding-bottom:18px;margin-bottom:20px}
 .booking-experience .booking-form .booking-form-heading h2{font-size:23px;line-height:1.2;letter-spacing:-.5px}
 .booking-experience .booking-form .booking-form-heading>p:last-child{font-size:12px;line-height:1.6}
 .booking-experience .booking-form .booking-kicker{font-size:11px;margin-bottom:7px}
 .booking-field-heading{margin-bottom:14px}.booking-field-heading h3{font-size:14px}.booking-field-heading>span{font-size:10px}
 .booking-experience .booking-form .design-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .booking-experience .booking-form input:not([type=checkbox]),.booking-experience .booking-form select,.booking-experience .booking-form textarea{font-size:16px;min-height:46px;padding:10px}
 .booking-experience .booking-form select{padding-right:32px;background-position:right 9px center}
 .booking-experience .booking-form label{font-size:12px}
 .booking-date-trigger{font-size:15px}
 .booking-form-footer{gap:10px}.booking-form-footer>span{font-size:10px}
 .booking-experience .booking-form .btn{font-size:12px;padding:10px 15px}
 .booking-experience .booking-review{padding:0 12px}
 .booking-experience .booking-review .info-row{grid-template-columns:90px minmax(0,1fr);gap:10px;font-size:11px}
 .booking-experience .booking-review .info-row strong{font-size:11px}
}
@media (forced-colors:active){.booking-experience .booking-form select{appearance:auto;background-image:none}}

.booking-success{max-width:600px;margin:24px auto;background:white;border:1px solid #e1e5ea;border-radius:18px;padding:32px;text-align:center}
.booking-success-mark{display:grid;place-items:center;width:48px;height:48px;background:#e9f4ee;color:#3a7759;border-radius:50%;font-size:22px;margin:0 auto 20px}
.booking-success .booking-kicker{font-size:12px;color:#818b98;margin-bottom:8px}
.booking-success h2{font-size:28px;letter-spacing:-.6px;font-stretch:100%;margin:0 0 12px}
.booking-success>p{font-size:14px;color:#687482;line-height:1.6}
.booking-success .booking-review{margin:24px 0;text-align:left}
.booking-success .booking-success-note{font-size:12px;line-height:1.6;color:#88929e}
.booking-success .form-actions{justify-content:center;margin-top:24px}
@container app (max-width:760px){.booking-success{padding:24px 18px;margin:6px 0}.booking-success h2{font-size:24px}}

.booking-experience .booking-human-check{padding:16px 0 0;border:0;border-top:1px solid #edf0f3;border-radius:0;background:transparent}
.booking-experience .booking-human-check h3{margin:0 0 12px}
#bookingTurnstile{min-height:65px;width:100%}
#bookingTurnstileStatus{font-size:11px;line-height:1.5;color:#87919d;margin:9px 0 0}

/* A standalone time field uses the full row; native AM/PM controls need room. */
.public-booking-wrap .design-form-grid:has(#bookTime):not(:has(#bookEndTime))>div:has(#bookTime){grid-column:1/-1}
