.public-booking{max-width:1180px;padding:28px 28px 64px}.public-booking h2{margin:0 0 18px;scroll-margin-top:24px;font-size:26px}.public-booking form{max-width:none}.demo-banner{border:1px solid #d8c699;border-left:3px solid var(--gold);background:#fffaf0;border-radius:12px;padding:14px 18px;font-size:13px}.demo-banner strong{letter-spacing:1px;color:#6b5528;font-size:11px}.demo-banner p{margin:5px 0;line-height:1.5}.date-shortcut{min-height:34px;color:var(--brand);background:#fff;border:1px solid #ccb989;margin:4px;padding:6px 11px;font-size:12px}.date-shortcut:hover{background:#f7edda}.steps{counter-reset:step;gap:8px;margin:26px 0;padding:0;list-style:none;display:flex}.steps li{color:var(--muted);border-bottom:2px solid var(--line);flex:1;align-items:center;gap:8px;padding:10px 8px;font-size:12px;display:flex}.steps .step-number{width:25px;height:25px;color:var(--brand);background:#e8edf4;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.steps .current{border-color:var(--brand);color:var(--brand);font-weight:700}.steps .current .step-number{background:var(--brand);color:#fff}.steps .completed{border-color:#9fbed1}.steps .completed .step-number{background:var(--wash)}.booking-card{margin:22px 0;padding:30px;box-shadow:0 5px 24px #00256106}.booking-card form>label{max-width:600px}.booking-card form>p{max-width:760px}.booking-card input[type=date]{max-width:330px}.actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.choice{text-align:left;color:var(--brand);background:#fff;border:1px solid #b8c7d9;border-radius:14px;min-height:155px;padding:22px;line-height:1.5;display:block;position:relative}.choice:hover{background:#f2f8fb}.choice span{color:var(--muted);margin-top:12px;font-size:13px;font-weight:400;display:block}.choice.selected{border:2px solid var(--brand);background:#edf5fb;padding:21px}.choice.selected:after{content:"✓";color:var(--brand);position:absolute;top:10px;right:12px}.separate-note{border-left:3px solid var(--gold);background:#faf7ef;border-radius:0 9px 9px 0;padding:14px 18px;font-size:13px}.ticket-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ticket-row{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:16px;display:flex}.ticket-row small,.summary small{color:var(--muted);margin-top:5px;font-weight:400;display:block}.ticket-row input{font-variant-numeric:tabular-nums;flex:none;width:78px;margin:0}.public-error{color:#94332d;background:#fff0ee;border:1px solid #dfaaa3;border-radius:12px;padding:16px 20px}.summary{border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#fafcfe;border-radius:12px;margin:20px 0;padding:0 20px}.summary ul{margin:0;padding:0;list-style:none}.summary li,.summary .total{border-bottom:1px solid var(--line);justify-content:space-between;gap:18px;padding:16px 0;display:flex}.summary li strong{white-space:nowrap}.summary .total{color:var(--brand);border:0;margin:0;font-size:24px}.accept{align-items:flex-start;gap:12px;margin-top:24px;line-height:1.6;display:flex}.accept input{margin-top:3px}.policy{border:1px solid var(--line);border-radius:10px;margin:14px 0;padding:16px}.policy summary{font-size:14px}.policy-text{white-space:pre-wrap;max-height:420px;color:var(--muted);margin-top:18px;font-size:14px;line-height:1.7;overflow:auto}.protocol{overflow-wrap:anywhere;color:var(--brand);background:var(--wash);font-variant-numeric:tabular-nums;border-radius:10px;padding:14px 18px;font-size:clamp(17px,3vw,27px);font-weight:700;display:inline-block}.public-booking p,.summary li span,.policy-text{overflow-wrap:anywhere}.receipt-status{border-left:3px solid var(--brand);background:#f0f5fb;border-radius:0 8px 8px 0;padding:10px 16px;display:block}.map-toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.map-toolbar p{max-width:590px;font-size:14px}.map-toolbar button{flex:none;font-size:12px}.map-legend{border:1px solid var(--line);background:#f2f6fa;border-radius:10px;flex-wrap:wrap;gap:10px 16px;margin:12px 0;padding:12px 16px;font-size:11px;list-style:none;display:flex}.map-legend li{align-items:center;gap:7px;display:flex}.state-dot{background:#69798a;border:1px solid #ffffff80;border-radius:50%;flex:none;width:12px;height:12px}.state-dot.available{background:#276c4d}.state-dot.held{background:#9b660d}.state-dot.confirmed{background:#68558b}.state-dot.selected-dot{background:var(--brand);box-shadow:0 0 0 2px #c5a14c}.map-workspace{grid-template-columns:minmax(0,1.65fr) minmax(245px,1fr);align-items:start;gap:22px;display:grid}.map-pane,.map-side{min-width:0}.map-controls{color:var(--muted);align-items:center;gap:12px;margin:14px 0;font-size:11px;display:flex}.map-controls button{flex:none;min-height:36px;padding:8px 14px;font-size:12px}.map-scroll{overscroll-behavior:contain;background:#dfebdd;border:1px solid #b6c9d7;border-radius:14px;max-height:650px;overflow:auto}.map-canvas{width:100%;min-width:560px;line-height:0;position:relative}.map-canvas.zoomed{min-width:1000px}.map-canvas img{width:100%;height:auto;display:block}.public-booking .map-pin{color:#fff;white-space:nowrap;background:#566879;border:2px solid #fff;border-radius:10px;min-width:44px;min-height:44px;padding:5px 7px;font-size:11px;line-height:1.1;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 7px #00256160}.public-booking .map-pin.available{background:#276c4d}.public-booking .map-pin.held{background:#915e10}.public-booking .map-pin.confirmed{background:#68558b}.public-booking .map-pin:disabled{opacity:.85}.public-booking .area-pin{font-size:12px}.area-pin small{margin-top:4px;font-size:10px;display:block}.map-standby{color:#fff;white-space:nowrap;background:#536373;border-radius:8px;padding:8px;font-size:11px;line-height:1.2;position:absolute;transform:translate(-50%,-50%)}.map-unit-list{margin-top:14px;scroll-margin-top:20px}.map-unit-list h3{margin:14px 0 8px}.map-unit-list p{font-size:12px}.area-switch{gap:8px;margin:14px 0;display:flex}.area-switch button{min-height:38px;padding:8px 16px;font-size:12px}.area-switch button[aria-pressed=true]{background:var(--brand);color:#fff}.map-list-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:390px;padding:3px;display:grid;overflow:auto}.public-booking .map-unit{text-align:left;color:var(--ink);border:1px solid var(--line);background:#fff;border-left:3px solid #69798a;border-radius:9px;min-width:0;padding:12px;line-height:1.4;display:block}.map-unit span,.map-unit small{margin-top:4px;font-size:11px;font-weight:400;display:block}.public-booking .map-unit.available{border-left-color:#276c4d}.public-booking .map-unit.held{border-left-color:#9b660d}.public-booking .map-unit.confirmed{border-left-color:#68558b}.public-booking .pin-selected{outline-offset:1px;outline:2px solid #d5b667;background:var(--brand)!important;color:#fff!important}.map-detail{background:#f1f6fb;border:1px solid #bccde1;border-radius:12px;margin:18px 0;padding:18px;scroll-margin-top:20px}.map-detail h3{margin-top:0}.map-detail p{margin:8px 0;font-size:13px}.map-detail button{width:100%;font-size:12px}.map-selection{background:var(--wash);color:var(--brand);border-radius:10px;padding:12px;font-size:13px;font-weight:600}@media (max-width:800px){.map-workspace{grid-template-columns:1fr}.map-scroll{max-height:460px}.map-list-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:none}.map-side .map-unit-list{margin-top:0}}@media (max-width:640px){.public-booking{padding:24px 16px 48px}.booking-card{padding:22px 16px}.choice-grid,.ticket-list{grid-template-columns:1fr}.choice{min-height:110px;padding:20px}.choice.selected{padding:19px}.steps{flex-wrap:wrap;gap:4px;margin:20px 0}.steps li{flex:0 0 calc(33.333% - 3px);gap:5px;padding:7px 3px;font-size:11px}.steps .step-number{width:22px;height:22px}.actions button{flex:1;min-width:140px}.summary{padding:0 14px}.summary li{font-size:13px}.summary .total{font-size:21px}.demo-banner{padding:12px 14px}.public-booking h2{font-size:23px}.map-toolbar{display:block}.map-toolbar button{width:100%}.map-controls{align-items:flex-start}.map-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-legend{gap:8px 10px;padding:10px}.map-detail{padding:16px}.resource-experience{min-width:0}.map-scroll{max-height:430px}.public-booking .public-hero h1{font-size:38px}}@media print{.public-booking .public-hero,.demo-banner,.steps,.actions,.public-booking footer,.public-booking>.back-link{display:none}.public-booking{padding:0}.booking-card{box-shadow:none;border:0}.protocol{background:0 0;padding:0}.summary{background:#fff}}@media (max-width:640px){.public-booking .public-hero{gap:8px;margin:16px 0 20px}.public-booking .public-hero img{height:120px}.public-booking .public-hero h1{margin:10px 0;font-size:34px}.public-booking .public-hero p{margin:8px 0;font-size:14px}.public-booking .demo-banner{font-size:12px}}.public-booking .area-pin{flex-direction:column;gap:0}.public-booking{max-width:1260px;padding-top:24px}.booking-links{flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:15px;display:flex}.booking-links a{align-items:center;min-height:44px;display:inline-flex}.public-booking .public-hero{gap:28px;margin:18px 0 28px}.public-booking .public-hero h1{font-size:clamp(38px,4vw,58px)}.public-booking .public-hero p{font-size:18px}.public-booking .public-hero img{max-height:220px}.public-booking h2{scroll-margin-top:140px;font-size:clamp(26px,2.5vw,32px)}.public-booking .booking-card{border-radius:20px;padding:32px}.public-booking .booking-card p{max-width:72ch}.public-booking button{min-height:46px;font-size:16px}.demo-banner{font-size:15px}.demo-banner strong{letter-spacing:.06em;font-size:13px}.step-progress{color:var(--brand);margin:22px 0 8px;font-size:16px;font-weight:650}.steps{margin:0 0 22px}.steps li{min-width:0;font-size:14px}.steps li button{min-height:44px;color:var(--brand);font:inherit;background:0 0;border:0;border-radius:4px;justify-content:flex-start;align-items:center;gap:8px;padding:0;display:flex}.steps li button:hover{text-decoration:underline}.booking-context{border:1px solid var(--line);background:#edf4fa;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.booking-context small{color:var(--muted);margin-top:5px;font-size:15px;display:block}.booking-context button{flex:none}.date-options{margin:20px 0}.date-options p{margin-bottom:8px;font-size:15px}.public-booking .date-shortcut{min-height:46px;margin:0 8px 8px 0;font-size:15px}.date-shortcut[aria-pressed=true]{background:var(--brand);color:#fff;border-color:var(--brand)}.field-help{font-size:15px}.choice strong{font-size:19px}.choice span{font-size:16px}.separate-note{font-size:15px}.ticket-row{flex-wrap:wrap;align-items:center;gap:16px}.ticket-row small,.summary small{font-size:15px}.quantity-control{align-items:center;gap:4px;display:flex}.public-booking .quantity-control button{width:44px;min-width:44px;padding:0;font-size:22px}.quantity-control input{text-align:center;width:60px;margin:0;padding-inline:4px}.availability-info{margin-bottom:20px;font-size:15px}.ticket-total{font-size:20px}.public-booking .map-toolbar p,.public-booking .map-unit-list p,.public-booking .map-detail p,.map-selection{font-size:16px}.public-booking .map-toolbar button,.public-booking .map-detail button{font-size:15px}.map-unit span,.map-unit small{font-size:14px}.map-legend{font-size:13px}.public-booking .map-unit{min-height:108px}.policy summary,.policy-text{font-size:16px}@media (max-width:800px){.steps li{font-size:13px}.choice-grid{grid-template-columns:1fr}.choice{min-height:0}}@media (max-width:640px){.public-booking{padding:18px 16px 40px}.public-booking .public-hero{margin:12px 0 22px;display:block}.public-booking .public-hero img{display:none}.public-booking .public-hero h1{font-size:38px}.public-booking .public-hero p{font-size:17px}.public-booking .booking-card{padding:24px 18px}.public-booking .demo-banner{font-size:15px}.steps{gap:8px}.steps li{flex:0 0 calc(33.333% - 6px);font-size:13px}.booking-context{flex-wrap:wrap;padding:16px}.booking-context button{min-height:44px}.actions{flex-direction:column-reverse}.public-booking .actions button{width:100%}.summary li{flex-wrap:wrap;font-size:16px}.choice span{margin-top:8px}}.public-booking .visit-calendar{max-width:480px;margin:20px 0}.visit-month{justify-content:space-between;align-items:center;gap:10px;display:flex}.visit-month strong{text-transform:capitalize;font-size:17px}.public-booking .visit-month button{min-width:44px;padding:8px}.public-booking .visit-calendar-help{margin:12px 0;font-size:14px}.visit-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.visit-days>span{text-align:center;color:var(--muted);padding:5px 0;font-size:12px}.public-booking .visit-day{color:#205435;background:#e8f4ed;border:1px solid #76a789;border-radius:8px;flex-direction:column;gap:1px;min-width:0;min-height:56px;padding:6px 2px;display:flex}.visit-day strong{font-size:16px}.visit-day small{font-size:10px}.public-booking .visit-day:disabled{opacity:1;color:#737d89;cursor:not-allowed;background:#f0f2f5;border-color:#e0e5ec}.public-booking .visit-day:disabled strong{text-decoration:line-through}.public-booking .visit-day[aria-pressed=true]:not(:disabled){background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 2px #c8a85c}.public-booking .visit-selection{margin:16px 0 0;font-size:14px;font-weight:600}@media (max-width:420px){.visit-days{gap:4px}.public-booking .visit-day{min-height:48px}.visit-month strong{font-size:15px}}.public-booking .saved-reservation,.public-booking .receipt-next{background:var(--wash);border:1px solid var(--line);border-radius:10px;margin:20px 0;padding:18px}.public-booking .saved-reservation p,.public-booking .private-key p{margin:8px 0;font-size:14px}.public-booking .private-key{margin:18px 0}.public-booking .private-key input{font-family:monospace;font-size:14px}.public-booking .reservation-help{border-top:1px solid var(--line);margin-top:18px;padding:16px 0}.public-booking .reservation-help>summary{cursor:pointer;font-size:16px;font-weight:650}.public-booking .reservation-help h3{font-size:18px}.public-booking .receipt-next h3{margin-top:0}.public-booking .receipt-next p{font-size:15px}.booking-links .team-access{color:var(--brand);background:#fff;border:1px solid #afbed3;border-radius:8px;margin-left:auto;padding:8px 16px;font-weight:650;text-decoration:none}@media (max-width:480px){.booking-links{gap:6px 12px}.booking-links .team-access{font-size:14px}}.private-key-notice{background:#eff7fa;border:1px solid #bad3df;border-left:4px solid #2d6684;border-radius:8px;margin:18px 0;padding:16px}.private-key-notice h3{color:#234f68;margin:0 0 8px}.private-key-notice p{font-size:.9rem;line-height:1.5}.private-key-notice .actions{gap:8px}.private-key-notice input{overflow-wrap:anywhere;font-family:monospace;font-size:.8rem}
