:root{font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--vb-action: linear-gradient(176deg, #3a3a3a 0%, #0a0a0a 55%, #000 100%);--vb-action-hover: linear-gradient(176deg, #4a4a4a 0%, #1a1a1a 55%, #050505 100%);--vb-action-solid: #000;--vb-control: #2196f3;--vb-control-hover: #1976d2;--app-footer-h: 34px}a{font-weight:500;color:var(--vb-control);text-decoration:inherit}a:hover{color:var(--vb-control-hover)}input[type=checkbox],input[type=radio]{accent-color:var(--vb-control)}html{scrollbar-gutter:stable;overflow-x:hidden}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--brand-primary, #646cff)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.calendar{max-width:100%;margin:0 auto;padding:1rem;background:var(--brand-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--brand-primary-100)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:0 .5rem}.calendar-title{font-size:1.25rem;font-weight:600;color:#333;margin:0}.calendar-nav{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:.25rem .75rem;border-radius:8px;transition:all .2s}.calendar-nav:hover{background:#f5f5f5;color:#333}.calendar-nav:active{transform:scale(.95)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.calendar-day-name{text-align:center;font-size:.75rem;font-weight:600;color:#666;padding:.5rem 0;text-transform:uppercase}.calendar-day{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;background:#f8f9fa;color:#333}.calendar-day.empty{background:transparent;cursor:default}.calendar-day.past,.calendar-day.beyond-window{color:#ccc;cursor:not-allowed;background:transparent;pointer-events:none}.calendar-day.today{border:2px solid var(--brand-primary);font-weight:700;color:var(--brand-primary)}.calendar-day.selected{background:var(--brand-primary);color:#fff;font-weight:700;transform:scale(1.05);box-shadow:var(--shadow-md)}.calendar-day.has-availability:not(.past):not(.empty){background:var(--color-success-bg);cursor:pointer}.calendar-day.has-availability:not(.past):not(.empty):hover{background:#c8e6c9;transform:scale(1.05)}.calendar-day.selected.has-availability:not(.past):not(.empty){background:var(--brand-primary);color:#fff}.availability-dot{position:absolute;bottom:4px;width:4px;height:4px;background:var(--color-success);border-radius:50%}.calendar-day.selected .availability-dot{background:#fff}.calendar-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee;font-size:.85rem;color:#666}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-dot{width:14px;height:14px;border-radius:4px}.legend-dot.has-availability{background:var(--color-success-bg);border:1px solid var(--color-success)}.legend-dot.unavailable{background:#f8f9fa;border:1px solid #e0e0e0}.legend-dot.today{border:2px solid var(--brand-primary);background:#fff}@media(max-width:640px){.calendar{padding:.75rem}.calendar-title{font-size:1.1rem}.calendar-day-name{font-size:.65rem;padding:.25rem 0}.calendar-day{font-size:.85rem}.calendar-grid{gap:.25rem}.calendar-legend{font-size:.75rem;gap:1rem}}.calendar-day:focus-visible{outline:2px solid #4CAF50;outline-offset:2px}.calendar-nav:focus-visible{outline:2px solid #4CAF50;outline-offset:2px}.time-slot-picker{max-width:100%;padding:1rem;background:var(--brand-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--brand-primary-100)}.time-slot-title{font-size:1.1rem;font-weight:600;color:#333;margin:0 0 1.5rem;text-align:center}.time-slot-fee-basis{text-align:center;margin:-1rem 0 1.25rem;font-size:.9rem;font-weight:600;color:#334155}.time-slot-loading,.time-slot-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:#666}.spinner{width:40px;height:40px;border:4px solid var(--brand-primary-50);border-top:4px solid var(--brand-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.time-slot-hint{font-size:.9rem;color:#999;margin-top:.5rem}.time-period-tabs{display:flex;gap:.5rem;margin:0 0 1.5rem}.time-period-tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.6rem .5rem;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;transition:all .2s;font-family:inherit;color:#333}.time-period-tab:hover{background:var(--brand-primary-50);border-color:var(--brand-primary)}.time-period-tab.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.time-period-label{font-size:1rem;font-weight:700}.time-period-sub{font-size:.72rem;opacity:.75}.time-period-tab:focus-visible{outline:3px solid #4CAF50;outline-offset:2px}@media(max-width:640px){.time-period-tabs{gap:.4rem}.time-period-tab{padding:.5rem .3rem}.time-period-label{font-size:.9rem}.time-period-sub{font-size:.65rem}}.resource-group{margin-bottom:2rem}.resource-group:last-child{margin-bottom:0}.resource-name{font-size:1rem;font-weight:600;color:#555;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #eee}.time-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.time-slot{background:#f8f9fa;border:2px solid #e0e0e0;border-radius:10px;padding:.75rem;cursor:pointer;transition:all .2s;text-align:center;font-family:inherit;position:relative}.time-slot:hover{background:var(--brand-primary-50);border-color:var(--brand-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.time-slot.selected{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.time-slot:active{transform:translateY(0)}.time-slot-soldout{background:#f1f5f9;border:2px dashed #cbd5e1;cursor:default}.time-slot-soldout:hover{transform:none;box-shadow:none;background:#f1f5f9;border-color:#cbd5e1}.time-slot-soldout .time-slot-time{color:#94a3b8}.time-slot-soldout-label{font-size:.8rem;font-weight:600;color:#64748b;margin:.1rem 0 .4rem}.time-slot-waitlist-btn{background:#fff;border:1px solid var(--brand-primary, #2563eb);color:var(--brand-primary, #2563eb);border-radius:8px;padding:.3rem .6rem;font-size:.78rem;font-weight:600;cursor:pointer}.time-slot-waitlist-btn:hover{background:var(--brand-primary, #2563eb);color:#fff}.time-slot-time{font-size:1.1rem;font-weight:700;margin-bottom:.15rem;color:inherit}.time-slot-arrive{font-size:.7rem;font-weight:600;opacity:.7;text-transform:uppercase;letter-spacing:.03em}.time-slot-starts{font-size:.78rem;opacity:.75;margin-bottom:.5rem;color:inherit}.time-slot-details{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;margin-bottom:.25rem;color:inherit}.time-slot.selected .time-slot-details{opacity:.95}.time-slot-duration{color:inherit;opacity:.8}.time-slot-price{font-weight:600;color:inherit}.time-slot-capacity{font-size:.75rem;color:inherit;opacity:.8;margin-top:.25rem}.time-slot-capacity.low-stock{color:#b45309;opacity:1;font-weight:700}.time-slot.selected .time-slot-capacity.low-stock{color:#fde68a}@media(max-width:640px){.time-slot-picker{padding:.75rem}.time-slot-title{font-size:1rem;margin-bottom:1rem}.time-slots-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem}.time-slot{padding:.6rem}.time-slot-time{font-size:1rem}.time-slot-details{font-size:.75rem}}@media(min-width:641px)and (max-width:1024px){.time-slots-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.time-slot:focus-visible{outline:3px solid #4CAF50;outline-offset:2px}@media(prefers-reduced-motion:reduce){.time-slot,.spinner{animation:none;transition:none}.time-slot:hover,.time-slot.selected{transform:none}}.wljoin-overlay{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.wljoin-modal{background:#fff;border-radius:14px;padding:1.5rem 1.5rem 1.25rem;width:min(92vw,420px);position:relative;box-shadow:0 20px 50px #00000040}.wljoin-close{position:absolute;top:.6rem;right:.7rem;background:none;border:none;font-size:1.5rem;line-height:1;color:#94a3b8;cursor:pointer}.wljoin-modal h3{margin:0 0 .5rem}.wljoin-sub{color:#475569;font-size:.9rem;margin-bottom:1rem}.wljoin-modal label{display:flex;flex-direction:column;font-size:.85rem;color:#334155;gap:.3rem;margin-bottom:.8rem}.wljoin-modal input{padding:.55rem .7rem;border:1px solid #d4d4d8;border-radius:8px;font:inherit}.wljoin-error{color:#b91c1c;font-size:.85rem;margin:0 0 .75rem}.wljoin-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.5rem}.wljoin-cancel{background:#fff;border:1px solid #d4d4d8;border-radius:9px;padding:.55rem 1rem;cursor:pointer;color:#475569}.wljoin-submit{background:var(--brand-color, #2563eb);color:#fff;border:none;border-radius:9px;padding:.55rem 1.2rem;font-weight:600;cursor:pointer}.wljoin-submit:disabled,.wljoin-cancel:disabled{opacity:.6;cursor:default}.wljoin-done{text-align:center}.wljoin-done h3{margin-bottom:.5rem}.wljoin-note{color:#64748b;font-size:.85rem;margin:.75rem 0 1rem}.availability-browser{max-width:none;margin:0 auto;padding:1rem}.availability-header{text-align:center;margin-bottom:2rem;padding:1.5rem;background:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-primary-hover) 100%);color:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.product-name{font-size:2rem;font-weight:700;margin:0 0 .5rem}.product-description{font-size:1.1rem;margin:0 0 1rem;opacity:.95}.product-info{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;font-size:1rem}.product-info .info-item{display:inline-flex;flex-direction:column;align-items:center;text-align:center;gap:.15rem;background:transparent;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25);font-size:1rem}.product-info .info-item strong{font-weight:600}.product-info .info-item .fee-basis{color:#fff}.availability-error{background:var(--color-danger-bg);color:var(--color-danger);padding:1rem;border-radius:var(--radius-lg);margin-bottom:1rem;text-align:center;border:1px solid rgba(225,29,72,.1)}.availability-content{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}html.vb-embed .availability-content{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr))}.calendar-section,.time-slot-section{min-height:400px}.availability-footer{background:var(--brand-surface);border:1px solid var(--brand-primary-200);border-radius:var(--radius-xl);padding:1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:1.5rem;animation:slideUp .3s ease-out;box-shadow:var(--shadow-md)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.selection-summary{flex:1}.selection-summary p{margin:0 0 .5rem;font-size:1rem;color:#333}.selection-summary p:last-child{margin-bottom:0}.selection-details{font-size:.9rem;color:#666}.continue-button{background:var(--vb-action);color:#fff;border:none;padding:1rem 2rem;font-size:1rem;font-weight:600;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s;white-space:nowrap}.continue-button:hover{background:var(--vb-action-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.continue-button:active{transform:translateY(0)}@media(max-width:768px){.availability-browser{padding:.5rem}.availability-header{padding:1rem;margin-bottom:1.5rem}.product-name{font-size:1.5rem}.product-description{font-size:1rem}.product-info{gap:1rem;font-size:.9rem}.availability-content{grid-template-columns:1fr;gap:1rem}.calendar-section,.time-slot-section{min-height:auto}.availability-footer{flex-direction:column;align-items:stretch;padding:1rem;gap:1rem}.selection-summary{text-align:center}.continue-button{width:100%;padding:.875rem 1.5rem}}@media(min-width:769px)and (max-width:1024px){.availability-content{gap:1.25rem}}.continue-button:focus-visible{outline:3px solid #4CAF50;outline-offset:2px}.calendar-section.loading,.time-slot-section.loading{opacity:.6;pointer-events:none}@media(prefers-reduced-motion:reduce){.availability-footer{animation:none}.continue-button:hover,.continue-button:active{transform:none}}.product-detail{max-width:900px;margin:0 auto 2rem;padding:0 .5rem}.product-long-desc{font-size:1.05rem;line-height:1.6;color:#334155;white-space:pre-line;margin:0 0 1.5rem}.product-detail .detail-block{margin-bottom:1.5rem}.product-detail .detail-block h3{font-size:1.15rem;font-weight:700;color:#1e293b;margin:0 0 .75rem}.detail-list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.detail-list li{position:relative;padding-left:1.6rem;color:#334155;line-height:1.5}.detail-list.included li:before{content:"✓";color:#16a34a;position:absolute;left:0;font-weight:700}.detail-list.highlights li:before{content:"★";color:var(--brand-primary, #667eea);position:absolute;left:0}.detail-list.requirements li:before{content:"•";color:#64748b;position:absolute;left:0;font-weight:700}.product-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;margin-bottom:1.5rem}.product-gallery img{width:100%;height:120px;object-fit:cover;border-radius:10px}.product-faq{margin:0}.product-faq .faq-row{padding:.75rem 0;border-bottom:1px solid #e5e7eb}.product-faq dt{font-weight:600;color:#1e293b;margin-bottom:.25rem}.product-faq dd{margin:0;color:#475569;line-height:1.5}.product-detail .more-info a{color:var(--brand-primary, #667eea);font-weight:600;text-decoration:none}.product-detail .more-info a:hover{text-decoration:underline}.package-pick-note{margin:.75rem 0 0;padding:.6rem .85rem;background:var(--brand-primary-50, #f3edff);border:1px solid var(--brand-primary-200, #d8d4f5);border-radius:10px;color:var(--brand-primary-hover, #4c3f9e);font-size:.9rem}.locked-date-card{box-sizing:border-box;display:flex;flex-direction:column;gap:2px;padding:14px 16px;margin-bottom:10px;border:1px solid #e2e8f0;border-left:4px solid var(--brand-primary, #2196f3);border-radius:12px;background:#fff}.locked-date-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.locked-date-value{font-size:1.05rem;color:#0f172a}.locked-date-note{font-size:.82rem;color:#64748b}.clash-note{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:.85rem}.vbhint{position:relative;display:inline-flex;vertical-align:middle;line-height:0}.vbhint-icon{width:18px;height:18px;padding:0;border:1px solid #cbd5e1;border-radius:50%;background:#fff;color:#64748b;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700;font-size:11px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .12s,border-color .12s}.vbhint-icon:hover,.vbhint.open .vbhint-icon{border-color:var(--brand-primary-hover, #4338ca);color:var(--brand-primary-hover, #4338ca)}.vbhint-icon:focus-visible{outline:2px solid var(--brand-primary-hover, #4338ca);outline-offset:1px}.vbhint-pop{display:block;position:absolute;top:calc(100% + 6px);z-index:60;width:max-content;max-width:260px;padding:.5rem .65rem;background:#0f172a;color:#fff;font-size:.8rem;font-weight:400;font-style:normal;line-height:1.4;text-align:left;white-space:normal;border-radius:8px;box-shadow:0 6px 18px #0f172a38}.vbhint-pop.align-right{right:0}.vbhint-pop.align-left{left:0}.vbhint-pop-fixed{position:fixed;z-index:9999;top:auto}.input-with-hint{position:relative;display:block}.input-with-hint>input{width:100%;padding-right:34px}.input-with-hint>.vbhint{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.booker-details-form{max-width:600px;margin:0 auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.booker-details-form h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.address-fieldset{border:1px solid #e2e8f0;border-radius:10px;padding:1rem 1.1rem .25rem;margin:0 0 1.25rem}.address-fieldset legend{padding:0 .5rem;font-weight:600;color:#334155;font-size:.95rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}@media(max-width:480px){.form-row{grid-template-columns:1fr}}.optional-tag{color:#94a3b8;font-weight:400;font-size:.85rem}.yn-check{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;font-size:.95rem;color:#334155;line-height:1.45}.yn-check input[type=checkbox]{margin-top:.15rem;width:1.1rem;height:1.1rem;flex-shrink:0;cursor:pointer}.yn-check a{color:var(--brand-primary, #667eea);font-weight:600}.yn-check.error{color:#dc2626}.booker-details-form textarea{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit}.booker-details-form select{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;background:#fff}.form-group input{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;transition:all .2s}.booker-details-form input,.booker-details-form select,.booker-details-form textarea{color:#1e293b;background:#fff}.booker-details-form input::placeholder,.booker-details-form textarea::placeholder{color:#94a3b8}.form-group input:focus{outline:none;border-color:var(--brand-primary, #4CAF50);box-shadow:0 0 0 3px var(--brand-primary-50, rgba(76, 175, 80, .1))}.field-hint{display:block;margin-top:.5rem;color:#999;font-size:.875rem}@media(max-width:640px){.booker-details-form{padding:1.5rem}.booker-details-form h2{font-size:1.5rem}.form-actions{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%}}.form-group input:focus-visible{outline:none;border-color:#4caf50;box-shadow:0 0 0 3px #4caf5033}@media(prefers-reduced-motion:reduce){.btn-primary:hover,.form-group input{transition:none;transform:none}}.guest-type-picker{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem;border:1px solid #e2e8f0;border-radius:10px;padding:.75rem 1rem;background:#f8fafc}.gtp-hire-line{margin:0 0 .6rem;padding:.45rem .7rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:.82rem;color:#334155}.gtp-type{display:flex;flex-direction:column;gap:.4rem}.gtp-type+.gtp-type{border-top:1px solid #eef2f7;padding-top:.5rem}.gtp-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.gtp-confirm{display:flex;align-items:flex-start;gap:.5rem;font-size:.85rem;color:#334155;cursor:pointer;padding:.15rem 0 .1rem}.gtp-confirm input{margin-top:.15rem;accent-color:var(--vb-control, #2563eb)}.gtp-label{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#0f172a}.gtp-icon{font-size:1.15rem}.gtp-price{font-weight:600;font-size:.85rem;color:var(--brand-primary, #2563eb)}.gtp-note{font-weight:400;font-size:.8rem;color:#64748b}.gtp-stepper{display:flex;align-items:center;gap:.75rem}.gtp-stepper button{width:34px;height:34px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;font-size:1.25rem;line-height:1;cursor:pointer;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;padding:0}.gtp-stepper button:disabled{opacity:.4;cursor:not-allowed}.gtp-count{min-width:1.5rem;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.guest-rule-errors{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:.5rem .85rem;margin-bottom:1rem}.guest-rule-errors p{margin:.15rem 0;font-size:.9rem}.gtp-locked-summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid #e2e8f0;border-radius:10px;padding:.6rem 1rem;background:#f8fafc;font-weight:600;color:#0f172a;margin-bottom:1.25rem}.gtp-change-link{border:none;background:none;padding:0;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--vb-control, #2563eb);text-decoration:underline}.participant-details-form{max-width:700px;margin:0 auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.participant-details-form h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.form-description{color:#666;margin:0 0 2rem;font-size:1rem}.participant-card{background:#f8f9fa;border:2px solid #e0e0e0;border-radius:10px;padding:1.5rem;margin-bottom:1rem;transition:all .2s}.participant-card:hover{border-color:var(--brand-primary, #4CAF50)}.participant-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.participant-header h3{margin:0;font-size:1.1rem;color:#333}.btn-remove{background:#f44336;color:#fff;border:none;width:28px;height:28px;border-radius:50%;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-remove:hover{background:#d32f2f;transform:scale(1.1)}.participant-fields{display:grid;grid-template-columns:2fr 1fr;gap:1rem}.form-group{margin-bottom:0}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:600;font-size:.95rem}.required{color:#d32f2f}.form-group input,.form-group select{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;background:#fff;transition:all .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--brand-primary, #4CAF50);box-shadow:0 0 0 3px var(--brand-primary-50, rgba(76, 175, 80, .1))}.form-group input.error{border-color:#d32f2f}.form-group input.error:focus{box-shadow:0 0 0 3px #d32f2f1a}.error-message{display:block;margin-top:.5rem;color:#d32f2f;font-size:.875rem}.btn-add-participant{width:100%;padding:.875rem;background:#fff;border:2px dashed var(--brand-primary, #4CAF50);border-radius:10px;color:var(--brand-primary, #4CAF50);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-bottom:1rem}.btn-add-participant:hover{background:var(--brand-primary-50, #e8f5e9);border-style:solid}.capacity-info{text-align:center;color:#666;font-size:.9rem;margin-bottom:1.5rem}.waiver-notice{background:#e3f2fd;border-left:4px solid #2196F3;padding:1rem;margin:1.5rem 0;border-radius:4px}.waiver-notice p{margin:0;color:#1565c0;font-size:.95rem;line-height:1.5}.btn-primary,.btn-secondary{flex:1;padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:active{transform:translateY(0)}@media(max-width:640px){.participant-details-form{padding:1.5rem}.participant-details-form h2{font-size:1.5rem}.participant-card{padding:1rem}.participant-fields{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%}}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-add-participant:focus-visible,.btn-remove:focus-visible{outline:3px solid var(--brand-primary, #4CAF50);outline-offset:2px}@media(prefers-reduced-motion:reduce){.btn-primary:hover,.btn-remove:hover,.participant-card{transition:none;transform:none}}.extras-step{max-width:640px;margin:0 auto}.extras-header h2{margin:0 0 .25rem}.extras-sub{margin:0 0 1.25rem;color:#64748b;font-size:.92rem}.extras-activities{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.extras-activity-row{display:flex;align-items:center;gap:.75rem;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem .9rem;background:#fff}.extras-seq{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--brand-primary, #667eea);color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center}.extras-act-main{flex:1 1 auto;min-width:0}.extras-act-name{font-weight:600;color:#1e293b}.extras-act-meta{font-size:.85rem;color:#64748b}.extras-remove{flex:0 0 auto;background:none;border:1px solid #fca5a5;color:#b91c1c;border-radius:6px;padding:.3rem .6rem;cursor:pointer;font-size:.8rem}.extras-remove:hover{background:#fef2f2}.extras-add-btn{width:100%;border:1.5px dashed #cbd5e1;background:#f8fafc;color:#334155;border-radius:8px;padding:.75rem;cursor:pointer;font-weight:600}.extras-add-btn:hover{background:#f1f5f9;border-color:#94a3b8}.extras-hint{font-weight:400;color:#94a3b8}.extras-picker{border:1px solid #e2e8f0;border-radius:8px;padding:1rem;background:#f8fafc}.extras-picker-label{display:flex;flex-direction:column;gap:.35rem;font-weight:600;color:#334155}.extras-picker-label select{padding:.5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:1rem}.extras-note{color:#64748b;font-size:.9rem;margin:.75rem 0 0}.extras-error{color:#b91c1c;font-size:.9rem;margin:.75rem 0 0}.extras-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;margin-top:.75rem}.extras-slot{border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:.5rem;cursor:pointer;font-variant-numeric:tabular-nums}.extras-slot:hover{border-color:var(--brand-primary, #667eea);background:var(--brand-primary-50, #eef2ff)}.extras-cancel{margin-top:.75rem;background:none;border:none;color:#64748b;cursor:pointer;text-decoration:underline}.extras-addons{margin-top:1.5rem}.extras-addons h3{margin:0 0 .6rem}.extras-addon-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.extras-addon-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid #e2e8f0;border-radius:8px;padding:.6rem .9rem;background:#fff}.extras-addon-row.selected{border-color:var(--brand-primary, #667eea);background:var(--brand-primary-50, #f5f7ff)}.extras-addon-row.offered{border-color:var(--brand-primary, #667eea)}.extras-addon-main{display:flex;flex-direction:column;min-width:0}.extras-addon-name{font-weight:600;color:#1e293b}.extras-addon-price{font-size:.85rem;color:#64748b}.extras-addon-price s{color:#94a3b8;margin-right:.25rem}.extras-badge{margin-left:.5rem;font-size:.68rem;font-weight:700;padding:.1rem .45rem;border-radius:10px;white-space:nowrap}.badge-preselected{background:#fef3c7;color:#92400e}.badge-required{background:#fee2e2;color:#b91c1c}.badge-optional{background:var(--brand-primary-100, #e0e7ff);color:var(--brand-primary-800, #3730a3)}.extras-qty{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.extras-qty button{width:30px;height:30px;border:1px solid #cbd5e1;background:#f8fafc;border-radius:6px;cursor:pointer;font-size:1.1rem;line-height:1;color:#334155}.extras-qty button:disabled{opacity:.4;cursor:default}.extras-qty-num{min-width:1.5rem;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.extras-actions{margin-top:1.5rem;display:flex;justify-content:space-between}.extras-back{background:none;border:1px solid #cbd5e1;border-radius:8px;padding:.7rem 1.25rem;cursor:pointer;color:#475569}.extras-continue{background:var(--vb-action);color:#fff;border:none;border-radius:8px;padding:.7rem 1.5rem;font-weight:600;cursor:pointer}.extras-continue:hover{background:var(--vb-action-hover)}.booking-review{max-width:700px;margin:0 auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.booking-review h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.review-description{color:#666;margin:0 0 2rem;font-size:1rem}.error-banner{background:#ffebee;color:#c62828;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #c62828}.review-section{margin-bottom:2rem}.review-section h3{margin:0 0 1rem;color:#333;font-size:1.2rem;font-weight:600}.review-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:10px;padding:1.5rem}.review-item{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #e0e0e0}.review-item:last-child{border-bottom:none}.review-item .label{color:#666;font-weight:500}.review-item .value{color:#333;font-weight:600;text-align:right}.participant-item{display:flex;align-items:center;padding:.75rem 0;border-bottom:1px solid #e0e0e0}.participant-item:last-child{border-bottom:none}.participant-number{color:#999;width:30px;font-weight:600}.participant-name{flex:1;color:#333;font-weight:500}.participant-age{color:#666;font-size:.9rem;background:#e8f5e9;padding:.25rem .75rem;border-radius:12px}.payment-summary{background:linear-gradient(135deg,var(--brand-primary, #667eea) 0%,var(--brand-primary-hover, #764ba2) 100%);color:#fff;border:none}.payment-summary .payment-item{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.2)}.payment-summary .payment-item:last-child{border-bottom:none}.payment-summary .label{color:#ffffffe6;font-weight:500}.payment-summary .value{color:#fff;font-weight:600}.payment-summary .payment-item.total{font-size:1.3rem;padding-top:1rem;margin-top:.5rem;border-top:2px solid rgba(255,255,255,.3)}.waiver-info{background:#fff3e0;border-left:4px solid #ff9800;padding:1rem;margin:1.5rem 0;border-radius:4px}.waiver-info p{margin:0;color:#e65100;font-size:.95rem;line-height:1.5}.terms-section{margin:1.5rem 0;padding:1rem;background:#f8f9fa;border-radius:8px}.checkbox-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer}.checkbox-label input[type=checkbox]{margin-top:.25rem;width:18px;height:18px;cursor:pointer}.checkbox-label span{color:#666;font-size:.95rem;line-height:1.5}.checkbox-label a{color:var(--vb-control);text-decoration:underline}.checkbox-label a:hover{color:var(--vb-control-hover)}.form-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid #eee}.btn-primary,.btn-secondary{flex:1;padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary:hover:not(:disabled){background:var(--vb-action-hover);transform:translateY(-2px);box-shadow:0 4px 12px #16a34a4d}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.btn-secondary:hover:not(:disabled){background:#e0e0e0}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:640px){.booking-review{padding:1.5rem}.booking-review h2{font-size:1.5rem}.review-card{padding:1rem}.review-item{flex-direction:column;gap:.25rem}.review-item .value{text-align:left}.form-actions{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%}.payment-summary .payment-item.total{font-size:1.1rem}}@media(prefers-reduced-motion:reduce){.btn-primary:hover,.spinner{animation:none;transition:none;transform:none}}.promo-row{display:flex;gap:.5rem;margin:.6rem 0 .2rem}.promo-input{flex:1;padding:.5rem .65rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem;text-transform:uppercase}.promo-apply{padding:.5rem 1rem;border:none;background:var(--brand-primary, #667eea);color:#fff;border-radius:6px;font-weight:600;cursor:pointer}.promo-apply:disabled{opacity:.5;cursor:not-allowed}.promo-msg{font-size:.82rem;margin-bottom:.3rem}.payment-item.discount-line .value{color:#c8facc;font-weight:700}.payment-summary .promo-input{background:#fffffff2;color:#1e293b}.payment-summary .promo-pin{max-width:7rem}.payment-summary .promo-msg.ok{color:#c8facc}.payment-summary .promo-msg.err{color:#ffd1d1}.applied-codes{list-style:none;margin:.2rem 0 .4rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.applied-codes li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:#ffffff26;border-radius:6px;padding:.35rem .6rem;font-size:.9rem;color:#fff}.applied-codes .av-cover{color:#c8facc;font-weight:700;margin-left:.35rem}.av-remove{background:transparent;border:none;color:#ffffffd9;cursor:pointer;font-size:.95rem;line-height:1;padding:0 .25rem}.av-remove:hover:not(:disabled){color:#fff}.av-remove:disabled{opacity:.5;cursor:not-allowed}.payment-summary .voucher-forfeit-note{color:#fff8e1;background:#b4530959;border:1px solid rgba(253,230,138,.6);border-radius:6px;padding:.45rem .65rem;font-size:.82rem;line-height:1.4;margin:.4rem 0 0}.line-tag{display:inline-block;font-size:.62rem;font-weight:700;padding:.05rem .4rem;border-radius:8px;vertical-align:middle}.addon-tag{background:#dcfce7;color:#166534}.insurance-offer{border:1px solid var(--brand-primary-200, #c7d2fe);background:#fff;border-radius:10px;padding:.85rem 1rem;margin-bottom:1rem}.insurance-offer-main{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;font-size:.95rem;line-height:1.4}.insurance-offer-main input{margin-top:.2rem}.insurance-nonref{color:#64748b;font-size:.85rem}.insurance-more{margin:.5rem 0 0 1.7rem;border:none;background:none;color:var(--brand-primary, #4f46e5);font-size:.85rem;text-decoration:underline;cursor:pointer;padding:0}.insurance-info{margin:.6rem 0 0;font-size:.86rem;color:#334155;line-height:1.45}.insurance-info ul{margin:.4rem 0;padding-left:1.1rem}.insurance-info li{margin-bottom:.2rem}.insurance-info-foot{color:#64748b;margin:.4rem 0 0}.sms-reminder-offer{border:1px solid #e2e8f0;border-radius:10px;padding:.85rem 1rem;margin:.75rem 0;background:#fff}.sms-reminder-main{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer}.sms-reminder-main input{margin-top:.2rem}.sms-reminder-phone{margin-top:.6rem}.sms-reminder-phone label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:#334155}.sms-reminder-phone input{padding:.5rem .6rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem;max-width:240px}.sms-reminder-phone small{display:block;margin-top:.35rem;color:#64748b;font-size:.78rem}.review-act-party{color:#64748b;font-weight:600}.payment-item.combo-saving .label{padding-left:.5rem;color:#15803d}.payment-item.combo-saving .value{color:#15803d}.stripe-payment-form{width:100%;max-width:500px;margin:0 auto}.payment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.payment-header h3{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0}.payment-amount{font-size:1.5rem;font-weight:700;color:var(--brand-primary, #2563eb)}.payment-error{background:#fee;border:1px solid #fcc;border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;align-items:flex-start;gap:.75rem}.error-icon{font-size:1.25rem;line-height:1;flex-shrink:0}.error-message{color:#c33;font-size:.95rem;line-height:1.5}.payment-element-container{margin-bottom:1.5rem}.payment-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.secure-badge{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#10b981;margin:0 0 .5rem;font-size:.95rem}.lock-icon{font-size:1.1rem;line-height:1}.payment-note{color:#64748b;font-size:.85rem;line-height:1.5;margin:0}.payment-submit-button{width:100%;padding:1rem 1.5rem;background:var(--vb-action);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #16a34a4d;display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem}.payment-submit-button:hover:not(:disabled){background:var(--vb-action-hover);transform:translateY(-2px);box-shadow:0 6px 16px #16a34a66}.payment-submit-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.payment-submit-button .spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.payment-footer{text-align:center}.terms-text{color:#64748b;font-size:.8rem;line-height:1.5;margin:0}.terms-text a{color:var(--brand-primary, #2563eb);text-decoration:underline}.terms-text a:hover{color:var(--brand-primary-hover, #1d4ed8)}@media(max-width:640px){.payment-header{flex-direction:column;align-items:flex-start;gap:.5rem}.payment-amount{font-size:1.25rem}.payment-submit-button{font-size:1rem;padding:.875rem 1.25rem}}.booking-payment{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.payment-container{display:grid;grid-template-columns:350px 1fr;gap:2rem;align-items:start}.booking-summary-sidebar{background:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-primary-hover) 100%);color:#fff;padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);position:sticky;top:2rem}.booking-summary-sidebar h3{margin:0 0 1.5rem;font-size:1.5rem;font-weight:700;border-bottom:2px solid rgba(255,255,255,.3);padding-bottom:1rem}.summary-item{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.2)}.summary-item:last-of-type{margin-bottom:1.5rem}.summary-label{font-size:.85rem;font-weight:500;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:1rem;font-weight:600;line-height:1.4}.booking-code{font-family:Courier New,monospace;font-size:1.1rem;font-weight:700;letter-spacing:1px;background:#fff3;padding:.5rem .75rem;border-radius:6px;display:inline-block;margin-top:.25rem}.summary-total{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0 0;border-top:2px solid rgba(255,255,255,.3);margin-top:.5rem}.total-label{font-size:1.1rem;font-weight:600;text-transform:uppercase;letter-spacing:1px}.total-amount{font-size:2rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.2)}.payment-form-container{background:var(--brand-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--brand-primary-100)}.payment-form-container .back-button{width:100%;padding:.875rem 1.5rem;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;margin-top:1rem}.payment-form-container .back-button:hover{background:#e2e8f0;color:#475569;transform:translateY(-1px)}@media(max-width:1024px){.payment-container{grid-template-columns:1fr;gap:1.5rem}.booking-summary-sidebar{position:static}}@media(max-width:640px){.booking-payment{padding:1rem}.booking-summary-sidebar,.payment-form-container{padding:1.5rem}.booking-summary-sidebar h3{font-size:1.25rem}.total-amount{font-size:1.5rem}.summary-value{font-size:.95rem}}.payment-container.loading{opacity:.6;pointer-events:none}@keyframes checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.payment-success-icon{animation:checkmark .6s ease-in-out}.booking-confirmation{max-width:700px;margin:0 auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;text-align:center}.success-icon{margin:0 auto 1.5rem;animation:scaleIn .5s ease-out}.booking-confirmation h1{margin:0 0 1rem;color:#4caf50;font-size:2rem}.confirmation-message{color:#666;margin:0 0 2rem;font-size:1.1rem;line-height:1.6}.confirmation-venue-note{margin:0 auto 1.75rem;max-width:520px;padding:.85rem 1.1rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;color:#075985;font-size:.98rem;line-height:1.5;white-space:pre-line}.booking-code-section{background:linear-gradient(135deg,var(--brand-primary, #667eea) 0%,var(--brand-primary-hover, #764ba2) 100%);color:#fff;padding:2rem;border-radius:12px;margin:2rem 0}.booking-code-label{font-size:.9rem;opacity:.9;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:1px}.booking-code{font-size:2.5rem;font-weight:700;letter-spacing:4px;margin:1rem 0;font-family:Courier New,monospace}.booking-code-hint{margin:1rem 0 0;font-size:.9rem;opacity:.9}.confirmation-details{text-align:left;margin:2rem 0}.detail-section{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:10px;padding:1.5rem;margin-bottom:1rem}.detail-section h3{margin:0 0 1rem;color:#333;font-size:1.2rem;font-weight:600}.detail-item{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #e0e0e0}.detail-item:last-child{border-bottom:none}.detail-item .label{color:#666;font-weight:500}.detail-item .value{color:#333;font-weight:600;text-align:right}.detail-item .value.total{color:#4caf50;font-size:1.2rem}.detail-item .value.status-confirmed{color:#4caf50;background:#e8f5e9;padding:.25rem .75rem;border-radius:12px;font-size:.9rem}.participants-list li{padding:.75rem 0;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.participants-list li:last-child{border-bottom:none}.age-badge{background:#e8f5e9;color:#4caf50;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.next-steps{background:#e3f2fd;border-left:4px solid #2196F3;padding:1.5rem;margin:2rem 0;border-radius:4px;text-align:left}.next-steps h3{margin:0 0 1rem;color:#1565c0;font-size:1.2rem}.next-steps ol{margin:0;padding-left:1.5rem;color:#333}.next-steps li{margin-bottom:.75rem;line-height:1.6}.contact-info{background:#fff3e0;padding:1rem;border-radius:8px;margin:2rem 0}.contact-info p{margin:0;color:#e65100;font-size:.95rem}.action-buttons{display:flex;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid #eee}.btn-primary,.btn-secondary{flex:1;padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block;text-align:center}.btn-primary{background:var(--vb-action);color:#fff}.btn-primary:hover{background:var(--vb-action-hover);transform:translateY(-2px);box-shadow:0 4px 12px #16a34a4d}.btn-secondary{background:#f5f5f5;color:#666}.btn-secondary:hover{background:#e0e0e0}@media print{.booking-confirmation{box-shadow:none}.action-buttons{display:none}.booking-code-section{background:#fff;color:#000;border:2px solid #333}.success-icon{display:none}}@media(max-width:640px){.booking-confirmation{padding:1.5rem}.booking-confirmation h1{font-size:1.5rem}.booking-code{font-size:1.8rem;letter-spacing:2px}.detail-section{padding:1rem}.detail-item{flex-direction:column;gap:.25rem}.detail-item .value{text-align:left}.action-buttons{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:3px solid #4CAF50;outline-offset:2px}@media(prefers-reduced-motion:reduce){.success-icon{animation:none}.btn-primary:hover{transition:none;transform:none}}.booking-flow{max-width:900px;margin:0 auto;padding:1rem}.booking-flow-header{background:#fff;padding:1.5rem;border-radius:var(--radius-xl);margin-bottom:1.5rem;box-shadow:var(--shadow-lg);position:relative}.close-button{position:absolute;top:1rem;right:1rem;background:#f5f5f5;border:none;width:32px;height:32px;border-radius:50%;font-size:1.2rem;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-button:hover{background:#e0e0e0;color:#333}.step-indicator{display:flex;align-items:baseline;gap:.5rem;font-size:.95rem}.step-count{font-weight:700;color:var(--brand-primary)}.step-divider{color:var(--brand-text-light);opacity:.5}.step-current{font-weight:600;color:var(--brand-text)}.booking-error{background:#ffebee;color:#c62828;padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;border-left:4px solid #c62828;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-close{background:none;border:none;color:#c62828;font-size:1.2rem;cursor:pointer;padding:.25rem .5rem;margin-left:1rem}.error-close:hover{opacity:.7}.booking-flow-content{min-height:500px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.booking-flow{padding:.5rem}.booking-flow-header{padding:1rem}.step-indicator{padding-right:3rem;font-size:.9rem}}.close-button:focus-visible{outline:3px solid #4CAF50;outline-offset:2px}@media(prefers-reduced-motion:reduce){.step-number,.booking-error,.booking-flow-content{animation:none;transition:none}.step.active .step-number{transform:none}}.package-flow-banner{margin:0 0 1rem;padding:.6rem 1rem;border-radius:10px;background:linear-gradient(135deg,var(--brand-primary-50, #eef0ff),var(--brand-primary-50, #f3edff));border:1px solid var(--brand-primary-200, #d8d4f5);color:var(--brand-primary-hover, #4c3f9e);font-size:.95rem}.package-contents-step{max-width:560px;margin:0 auto;padding:1rem}.package-contents-intro{color:#475569;margin:0 0 .5rem}.package-contents-list{list-style:none;padding:0;margin:1rem 0}.package-contents-list li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .75rem;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.5rem;background:#f8fafc}.pkg-act-name{font-weight:600}.pkg-act-time{color:#64748b;font-variant-numeric:tabular-nums;white-space:nowrap}.package-contents-note{color:#94a3b8;font-size:.9rem;margin:.5rem 0 0}.package-contents-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem}.visit-assign{box-sizing:border-box;margin:1rem 0;padding:14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.visit-assign-title{margin:0 0 4px;font-size:1rem;color:#0f172a}.visit-assign-intro{margin:0 0 12px;font-size:.86rem;color:#64748b}.visit-assign-act{padding:10px 0;border-top:1px solid #e2e8f0}.visit-assign-act:first-of-type{border-top:none}.visit-assign-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.visit-assign-count{font-size:.85rem;font-weight:700;padding:2px 8px;border-radius:999px}.visit-assign-count.ok{color:#15803d;background:#dcfce7}.visit-assign-count.off{color:#b45309;background:#fef3c7}.visit-assign-chips{display:flex;flex-wrap:wrap;gap:8px}.visit-assign-chip{box-sizing:border-box;min-height:44px;padding:0 14px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;font-size:.9rem;cursor:pointer}.visit-assign-chip.on{border-color:var(--brand-primary, #2196f3);background:var(--brand-primary-100, #e3f2fd);color:#0f172a;font-weight:600}.signature-canvas-container{position:relative;width:100%;margin:1.5rem 0}.signature-canvas{width:100%;height:200px;border:2px solid #e2e8f0;border-radius:8px;background:#fff;cursor:crosshair;touch-action:none}.signature-canvas:hover{border-color:#cbd5e1}.signature-placeholder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#94a3b8;font-size:.95rem;pointer-events:none;-webkit-user-select:none;user-select:none}.clear-signature-btn{margin-top:.75rem;padding:.5rem 1rem;background:#fff;color:#64748b;border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s}.clear-signature-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;color:#475569}.clear-signature-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.signature-canvas{height:180px}.signature-placeholder{font-size:.85rem}.clear-signature-btn{width:100%}}.waiver-sign-page{min-height:100vh;background:linear-gradient(135deg,var(--brand-primary, #667eea) 0%,var(--brand-primary-hover, #764ba2) 100%);padding:2rem 1rem}.waiver-container{max-width:800px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;overflow:hidden}.waiver-header{background:linear-gradient(135deg,var(--brand-primary, #667eea) 0%,var(--brand-primary-hover, #764ba2) 100%);color:#fff;padding:2rem;text-align:center}.waiver-header h1{margin:0 0 .5rem;font-size:1.75rem;font-weight:600}.waiver-version{margin:0;font-size:.9rem;opacity:.9}.participants-info{padding:2rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.participants-info h3{margin:0 0 .75rem;font-size:1.25rem;color:#1e293b}.participants-intro{margin:0 0 1rem;color:#64748b;font-size:.95rem}.waiver-content{padding:2rem;color:#334155;line-height:1.7}.waiver-section{margin-bottom:2rem}.waiver-section h3{margin:0 0 .75rem;font-size:1.1rem;color:#1e293b;font-weight:600}.waiver-section p{margin:0;color:#475569}.waiver-section.parental-consent{background:#fef3c7;padding:1.5rem;border-radius:8px;border-left:4px solid #f59e0b}.waiver-section.parental-consent h3{color:#92400e}.signature-form{border-top:2px solid #e2e8f0;background:#f8fafc}.form-section{padding:2rem}.form-section h3{margin:0 0 1.5rem;font-size:1.25rem;color:#1e293b}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#334155;font-size:.95rem}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--brand-primary, #667eea);box-shadow:0 0 0 3px #667eea1a}.agreement-checkbox{margin-top:2rem;padding:1.25rem;background:#fff;border-radius:8px;border:2px solid #e2e8f0}.agreement-checkbox label{display:flex;align-items:flex-start;cursor:pointer;margin:0}.agreement-checkbox input[type=checkbox]{margin-right:.75rem;margin-top:.25rem;width:18px;height:18px;cursor:pointer;flex-shrink:0}.agreement-checkbox span{color:#475569;font-size:.95rem;line-height:1.6}.form-actions{padding:0 2rem 2rem}.submit-btn{width:100%;padding:1rem;background:var(--vb-action);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.submit-btn:hover:not(:disabled){background:var(--vb-action-hover);transform:translateY(-2px);box-shadow:0 4px 12px #16a34a66}.waiver-footer{padding:1.5rem 2rem;background:#f8fafc;border-top:1px solid #e2e8f0;text-align:center}.timestamp{margin:0;color:#64748b;font-size:.85rem}.loading-state p{font-size:1.1rem;margin:0}.error-state p{color:#475569;line-height:1.6}.spinner-small{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media(max-width:768px){.waiver-sign-page{padding:1rem .5rem}.waiver-container{border-radius:8px}.waiver-header{padding:1.5rem 1rem}.waiver-header h1{font-size:1.5rem}.participants-info,.waiver-content,.form-section{padding:1.5rem 1rem}.waiver-section{margin-bottom:1.5rem}.form-actions{padding:0 1rem 1.5rem}}@media(max-width:480px){.waiver-header h1{font-size:1.25rem}.waiver-content{font-size:.9rem}.participants-list li{flex-direction:column;align-items:flex-start;gap:.5rem}}.form-error-banner{background:#fef2f2;border:1px solid #fca5a5;border-left:5px solid #dc2626;color:#991b1b;border-radius:8px;padding:.85rem 1.1rem;margin:1rem 0 0;font-weight:600}.coverage-badge{margin-left:.5rem;font-size:.72rem;font-weight:700;border-radius:999px;padding:.12rem .55rem}.coverage-badge.covered{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.coverage-badge.self-sign{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.seat-list li.seat-signed{opacity:.6}.all-signed-panel{background:#d1fae5;border:1px solid #6ee7b7;border-radius:12px;padding:2rem;text-align:center;margin:1.5rem 0}.all-signed-panel h2{color:#065f46;margin:0 0 .5rem}.all-signed-panel p{color:#047857;margin:0}.mode-picker{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0}.mode-option{display:flex;align-items:center;gap:.6rem;border:2px solid #e1e8ed;border-radius:10px;padding:.75rem 1rem;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.mode-option.active{border-color:var(--brand-primary, #667eea);background:var(--brand-primary-50, #eef2ff)}.seat-choices{margin:.75rem 0;display:flex;flex-direction:column;gap:.45rem}.seat-choice{display:flex;align-items:center;gap:.6rem;border:1px solid #e1e8ed;border-radius:8px;padding:.6rem .9rem;cursor:pointer;-webkit-user-select:none;user-select:none}.seat-choice.active{border-color:var(--brand-primary, #667eea);background:var(--brand-primary-50, #f5f7ff)}.seat-hint{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;padding:.6rem .9rem;font-size:.9rem}.guardian-seat{display:flex;flex-direction:column;gap:.35rem}.child-name-input{margin-left:2rem;padding:.5rem .7rem;border:2px solid #e1e8ed;border-radius:8px;font-size:.95rem}.child-name-input:focus{outline:none;border-color:var(--brand-primary, #667eea)}.field-optional{font-weight:400;color:#94a3b8;font-size:.85em}.field-hint{display:block;margin-top:.35rem;color:#64748b;font-size:.8rem;line-height:1.35}.waiver-complete-page{min-height:100vh;background:linear-gradient(135deg,var(--brand-primary, #10b981) 0%,var(--brand-primary-hover, #059669) 100%);padding:2rem 1rem;display:flex;align-items:center;justify-content:center}.complete-container{max-width:700px;width:100%;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;padding:3rem 2rem;text-align:center}.complete-container.error{background:#fef2f2;border:2px solid #ef4444}.complete-container.error h2{color:#dc2626;margin-bottom:1rem}.complete-container.error p{color:#991b1b}.success-icon{width:80px;height:80px;margin:0 auto 1.5rem}.success-icon svg{width:100%;height:100%}.check-circle{animation:scaleIn .5s ease-out}.check-mark{stroke-dasharray:40;stroke-dashoffset:40;animation:checkmark .5s ease-out .3s forwards}@keyframes scaleIn{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes checkmark{to{stroke-dashoffset:0}}.success-title{margin:0 0 1rem;font-size:2rem;color:#1e293b;font-weight:700}.success-message{margin-bottom:2.5rem}.success-message p{margin:0;color:#64748b;font-size:1.05rem;line-height:1.6}.waiver-details{text-align:left;margin-bottom:2rem}.waiver-details h2{margin:0 0 1.5rem;font-size:1.5rem;color:#1e293b;text-align:center}.detail-section{margin-bottom:2rem;padding:1.5rem;background:#f8fafc;border-radius:8px}.detail-section h3{margin:0 0 1rem;font-size:1.1rem;color:#334155;font-weight:600}.participants-list{list-style:none;padding:0;margin:0}.participants-list li{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#fff;border-radius:6px;margin-bottom:.5rem}.participant-name{font-weight:500;color:#1e293b}.age-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.age-badge.adult{background:#dbeafe;color:#1e40af}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.info-item{display:flex;flex-direction:column;padding:1rem;background:#fff;border-radius:6px}.info-label{font-size:.8rem;color:#64748b;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.info-value{font-size:1rem;color:#1e293b;font-weight:600}.status-active{color:#10b981}.next-steps{text-align:left;margin-bottom:2rem;padding:1.5rem;background:#eff6ff;border-radius:8px;border-left:4px solid #3b82f6}.next-steps h3{margin:0 0 1rem;font-size:1.1rem;color:#1e40af;font-weight:600}.next-steps ol{margin:0;padding-left:1.5rem}.next-steps li{margin-bottom:1rem;color:#334155}.next-steps li:last-child{margin-bottom:0}.next-steps strong{color:#1e293b;display:block;margin-bottom:.25rem}.next-steps p{margin:0;color:#64748b;font-size:.9rem;line-height:1.5}.important-notice{display:flex;gap:1rem;padding:1rem 1.25rem;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b;text-align:left;margin-bottom:2rem}.info-icon{width:24px;height:24px;color:#f59e0b;flex-shrink:0;margin-top:2px}.important-notice div{color:#92400e;font-size:.9rem;line-height:1.6}.important-notice strong{display:block;margin-bottom:.25rem;color:#78350f}.actions{margin-bottom:1.5rem}.close-btn{padding:.875rem 2rem;background:linear-gradient(135deg,var(--brand-primary, #10b981) 0%,var(--brand-primary-hover, #059669) 100%);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.close-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.footer-message{padding-top:1.5rem;border-top:1px solid #e2e8f0}.footer-message p{margin:0;color:#64748b;font-size:.9rem}.footer-message a{color:var(--brand-primary, #10b981);text-decoration:none;font-weight:500}.footer-message a:hover{text-decoration:underline}@media(max-width:768px){.waiver-complete-page{padding:1rem .5rem}.complete-container{padding:2rem 1.5rem}.success-title{font-size:1.5rem}.success-icon{width:60px;height:60px}.info-grid{grid-template-columns:1fr}.next-steps,.important-notice{padding:1rem}}@media(max-width:480px){.complete-container{padding:1.5rem 1rem}.success-title{font-size:1.25rem}.success-message p{font-size:.95rem}.participants-list li{flex-direction:column;align-items:flex-start;gap:.5rem}.next-steps ol{padding-left:1.25rem}}.not-covered-notice{background:#fef3c7;border:1px solid #fcd34d;border-left:5px solid #f59e0b;color:#92400e;border-radius:8px;padding:.85rem 1.1rem;margin:0 0 1rem;text-align:left;font-size:.95rem}.manage-booking-page{min-height:100vh;background:linear-gradient(135deg,var(--brand-primary, #667eea) 0%,var(--brand-primary-hover, #764ba2) 100%);padding:2rem 1rem}.manage-container{width:min(90vw,1000px);margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;overflow:hidden}.manage-header{background:linear-gradient(135deg,var(--brand-primary, #667eea) 0%,var(--brand-primary-hover, #764ba2) 100%);color:#fff;padding:2rem;text-align:center;position:relative}.manage-header h1{margin:0 0 1rem;font-size:2rem;font-weight:600}.booking-code-display{background:#fff3;padding:1rem;border-radius:8px;display:inline-block}.code-label{opacity:.9;margin-right:.5rem}.code-value{font-size:1.5rem;font-weight:700;letter-spacing:2px}.status-badge{position:absolute;top:1rem;right:1rem;padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.85rem}.status-badge.confirmed{background:#d1fae5;color:#065f46}.status-badge.cancelled{background:#fee2e2;color:#991b1b}.manage-tabs{display:flex;border-bottom:2px solid #e5e7eb;background:#f9fafb}.reschedule-cap-notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:.85rem 1rem;margin-bottom:1rem;font-size:.92rem}.reschedule-cap-notice strong{color:#b45309}.reschedule-cap-notice p{margin:.4rem 0 0}.reschedule-blocked{background:#fef2f2;border-color:#fecaca}.reschedule-blocked p{margin:.4rem 0 0}.tab{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem .75rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-weight:500;color:#6b7280;transition:all .2s}.tab:hover{background:#f3f4f6;color:#374151}.tab.active{color:var(--brand-primary, #667eea);border-bottom-color:var(--brand-primary, #667eea);background:#fff}.manage-content{padding:2rem}.booking-details{max-width:100%}.details-section{margin-bottom:2.5rem}.details-section h2{margin:0 0 1rem;font-size:1.5rem;color:#1e293b}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detail-item{display:flex;flex-direction:column;padding:1rem;background:#f9fafb;border-radius:8px}.detail-label{font-size:.85rem;color:#6b7280;margin-bottom:.25rem;font-weight:500}.detail-value{font-size:1.1rem;color:#1e293b;font-weight:600}.participants-list{display:grid;gap:.75rem}.participant-card{padding:1rem;background:#f9fafb;border-radius:8px;border-left:4px solid var(--brand-primary, #667eea)}.participant-info{display:flex;align-items:center;justify-content:space-between}.participant-name{font-weight:600;color:#1e293b}.age-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.age-badge.adult{background:var(--brand-primary-100, #dbeafe);color:#1e40af}.age-badge.under18{background:#fef3c7;color:#92400e}.waivers-list{display:grid;gap:1rem}.waiver-card{padding:1.25rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.waiver-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.waiver-participant strong{display:block;color:#1e293b;margin-bottom:.25rem}.minor-badge{display:block;font-size:.85rem;color:#6b7280}.status-badge.success{background:#d1fae5;color:#065f46}.status-badge.warning{background:#fef3c7;color:#92400e}.status-badge.pending{background:#e5e7eb;color:#6b7280}.download-btn{padding:.5rem 1rem;background:var(--vb-action);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500}.download-btn:hover{background:var(--vb-action-hover)}.waiver-expiry{margin:.5rem 0 0;font-size:.85rem;color:#6b7280}.edit-participants,.reschedule-booking,.cancel-booking{max-width:100%}.section-description{color:#6b7280;margin-bottom:1.5rem}.participants-form{display:grid;gap:1rem;margin-bottom:1.5rem}.participant-form-item{padding:1.5rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.participant-fields{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:end}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;font-weight:500;color:#374151;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:1rem}.form-group textarea{resize:vertical;min-height:100px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--brand-primary, #667eea);box-shadow:0 0 0 3px #667eea1a}.remove-btn{padding:.75rem 1rem;background:#fee2e2;color:#991b1b;border:none;border-radius:6px;cursor:pointer;font-weight:600}.remove-btn:hover{background:#fecaca}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.add-btn{flex:1;padding:.875rem;background:#fff;color:var(--brand-primary, #667eea);border:2px solid var(--brand-primary, #667eea);border-radius:8px;cursor:pointer;font-weight:600}.add-btn:hover:not(:disabled){background:var(--brand-primary-50, #f0f4ff)}.add-btn:disabled{opacity:.5;cursor:not-allowed}.submit-btn{flex:1;padding:.875rem;background:linear-gradient(135deg,var(--brand-primary, #667eea) 0%,var(--brand-primary-hover, #764ba2) 100%);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.capacity-info{margin-top:.5rem;font-size:.9rem;color:#6b7280;text-align:right}.success-message{padding:1rem;background:#d1fae5;color:#065f46;border-radius:8px;margin-bottom:1.5rem;font-weight:500}.error-message{padding:1rem;background:#fee2e2;color:#991b1b;border-radius:8px;margin-bottom:1.5rem;font-weight:500}.info-notice{margin-top:1.5rem;padding:1rem;background:#eff6ff;border-left:4px solid #3b82f6;border-radius:4px;font-size:.9rem;color:#1e40af}.current-booking-info{margin-bottom:2rem;padding:1.5rem;background:#f9fafb;border-radius:8px}.current-booking-info h3{margin:0 0 1rem;color:#1e293b}.current-details p{margin:.5rem 0;color:#374151}.reschedule-form h3{margin:2rem 0 1rem;color:#1e293b}.selected-slot-summary{margin:1.5rem 0;padding:1.5rem;background:linear-gradient(135deg,var(--brand-primary-100, #dbeafe) 0%,var(--brand-primary-100, #e0e7ff) 100%);border-radius:8px}.selected-slot-summary h4{margin:0 0 1rem;color:#1e40af}.selected-slot-summary p{margin:.5rem 0;color:#1e40af}.warning-box{padding:1.5rem;background:#fef3c7;border-left:4px solid #f59e0b;border-radius:8px;margin-bottom:2rem}.warning-box h3{margin:0 0 1rem;color:#92400e}.warning-box ul{margin:0;padding-left:1.5rem;color:#78350f}.warning-box li{margin:.5rem 0}.booking-summary{margin-bottom:2rem;padding:1.5rem;background:#f9fafb;border-radius:8px}.booking-summary h3{margin:0 0 1rem;color:#1e293b}.summary-details p{margin:.5rem 0;color:#374151}.confirmation-checkbox{margin:1.5rem 0;padding:1rem;background:#fff7ed;border:2px solid #f59e0b;border-radius:8px}.confirmation-checkbox label{display:flex;align-items:flex-start;cursor:pointer}.confirmation-checkbox input[type=checkbox]{margin-right:.75rem;margin-top:.25rem;width:18px;height:18px;cursor:pointer}.confirmation-checkbox span{color:#92400e;line-height:1.6}.cancel-btn.danger{background:#dc2626}.cancel-btn.danger:hover:not(:disabled){background:#b91c1c;box-shadow:0 4px 12px #dc262666}.refund-policy{margin-top:2rem;padding:1.5rem;background:#f9fafb;border-radius:8px}.refund-policy h3{margin:0 0 1rem;color:#1e293b}.refund-policy p{margin:.75rem 0;color:#374151}.cancelled-notice{padding:2rem;background:#fef2f2;border:2px solid #fee2e2;border-radius:8px;text-align:center}.cancelled-notice h3{margin:0 0 1rem;color:#991b1b}.cancelled-notice p{margin:.5rem 0;color:#7f1d1d}.cancel-reason{font-style:italic;color:#991b1b}.refund-notice{margin-top:1rem;padding:1rem;background:#fff7ed;border-radius:6px;color:#92400e}.loading-state,.error-state{text-align:center;padding:4rem 2rem;color:#fff}.loading-state .spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.error-state{background:#fff;color:#1e293b;border-radius:12px;max-width:600px;margin:2rem auto}.error-state h2{color:#dc2626;margin-bottom:1rem}.error-state p{color:#475569;line-height:1.6;margin:1rem 0}.error-hint{margin-top:1.5rem;padding:1rem;background:#fef3c7;border-radius:6px;color:#92400e;font-size:.9rem}@media(max-width:768px){.manage-booking-page{padding:0}.manage-container{border-radius:0}.manage-header h1{font-size:1.5rem}.code-value{font-size:1.25rem}.manage-tabs{overflow-x:auto}.tab{white-space:nowrap;font-size:.85rem;padding:.75rem}.manage-content{padding:1.5rem 1rem}.details-grid,.participant-fields{grid-template-columns:1fr}.remove-btn{width:100%}.form-actions{flex-direction:column}.status-badge{position:static;display:inline-block;margin-top:1rem}}.empty-seat-btn{border:1px solid #fcd34d;background:#fef3c7;color:#92400e;border-radius:8px;padding:.35rem .8rem;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.empty-seat-btn.arming{background:#fde68a;border-color:#f59e0b}.empty-seat-btn:disabled{opacity:.6}.resend-section{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.resend-email-btn{background:var(--vb-action);color:#fff;border:none;border-radius:8px;padding:.6rem 1.1rem;font-weight:600;cursor:pointer}.resend-email-btn:hover:not(:disabled){background:var(--vb-action-hover)}.resend-email-btn:disabled{opacity:.6}.resend-msg{color:#065f46;font-weight:600;font-size:.9rem}.reschedule-combo-note{margin:.5rem 0;color:var(--brand-primary-hover, #4c3f9e);font-weight:600;font-size:.9rem}.reschedule-combo-list{list-style:none;padding:0;margin:0}.reschedule-combo-list li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem .75rem;margin-bottom:.4rem;background:var(--brand-primary-50, #f3edff);border:1px solid var(--brand-primary-200, #d8d4f5);border-radius:8px;color:#334155;font-size:.9rem}.reschedule-combo-list li span:last-child{color:var(--brand-primary-hover, #4c3f9e);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.gift-page{min-height:100vh}.gift-page--embedded{min-height:0}.gift-page--embedded .gift-main{padding-top:.5rem}.gift-header{text-align:center;padding:2rem 1rem 1.5rem}.gift-header h1{margin:0 0 .25rem}.gift-header p{margin:0;color:#64748b}.gift-main{max-width:560px;margin:0 auto;padding:1rem 1rem 3rem}.gift-card{background:#fff;border-radius:16px;padding:1.75rem;box-shadow:0 2px 12px #00000014}.gift-card h2{margin:0 0 1rem}.gift-error{background:#ffebee;color:#c62828;border-left:4px solid #c62828;padding:.85rem 1rem;border-radius:8px;margin-bottom:1rem}.gift-label{display:block;font-weight:600;margin:1.1rem 0 .4rem;color:#334155}.gift-themes{display:flex;flex-wrap:wrap;gap:.5rem}.gift-theme{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-width:5rem;padding:.55rem .7rem;border:2px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .12s,box-shadow .12s}.gift-theme:hover{border-color:#cbd5e1}.gift-theme.selected{border-color:var(--brand-primary, #667eea)}.gift-theme-emoji{font-size:1.4rem;line-height:1}.gift-theme-name{font-size:.8rem;font-weight:600;color:#334155}.gift-req{color:#dc2626}.gift-opt{color:#94a3b8;font-weight:400;font-size:.85rem}.gift-check{display:flex;align-items:center;gap:.5rem;margin:.55rem 0;font-size:.92rem;color:#334155;cursor:pointer}.gift-check input{width:16px;height:16px}.gift-check-sub{margin-left:1.4rem;color:#475569}.gift-modes{display:flex;gap:.5rem;margin-bottom:.4rem}.gift-mode{flex:1 1 0;padding:.75rem .5rem;border:2px solid #e2e8f0;background:#fff;border-radius:10px;font-weight:700;cursor:pointer;transition:all .15s}.gift-mode:hover{border-color:var(--brand-primary-200, #c7d2fe)}.gift-mode.selected{border-color:var(--brand-primary, #667eea);background:var(--brand-primary-50, #eef2ff);color:var(--brand-primary-hover, #4338ca)}.gift-mode:focus-visible,.gift-preset:focus-visible,.gift-theme:focus-visible{outline:2px solid var(--brand-primary, #667eea);outline-offset:2px}.gift-mode:focus:not(:focus-visible),.gift-preset:focus:not(:focus-visible),.gift-theme:focus:not(:focus-visible){outline:none}.gift-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(120px,100%),1fr));gap:.5rem}.gift-preset{padding:.7rem .5rem;border:2px solid #e2e8f0;background:#fff;border-radius:10px;font-weight:700;font-size:1rem;cursor:pointer;transition:all .15s}.gift-preset:hover{border-color:var(--brand-primary-200, #c7d2fe)}.gift-preset.selected{border-color:var(--brand-primary, #667eea);background:var(--brand-primary-50, #eef2ff);color:var(--brand-primary-hover, #4338ca)}.gift-custom{margin-top:.6rem;display:flex;align-items:center;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:0 .85rem}.gift-custom:focus-within{border-color:var(--brand-primary, #667eea)}.gift-custom .gift-prefix{flex:none;color:#64748b;margin-right:.45rem;pointer-events:none}.gift-custom input{flex:1 1 auto;min-width:0;width:100%;box-sizing:border-box;border:none;outline:none;background:transparent;padding:.7rem 0;font-size:1rem}.gift-hint{color:#64748b;font-size:.85rem;margin:.4rem 0 0}.gift-rangeerr{color:#b91c1c;font-size:.85rem;margin:.3rem 0 0}.gift-input{width:100%;box-sizing:border-box;padding:.7rem .8rem;border:1px solid #cbd5e1;border-radius:8px;font-size:1rem;font-family:inherit}.gift-terms{margin:1.1rem 0 0;padding:.75rem;background:#f8fafc;border-radius:8px;color:#64748b;font-size:.85rem;white-space:pre-wrap}.gift-primary{width:100%;margin-top:1.5rem;padding:.9rem 1.5rem;border:none;border-radius:10px;background:var(--vb-action);color:#fff;font-size:1.05rem;font-weight:700;cursor:pointer;transition:background .15s}.gift-primary:hover:not(:disabled){background:var(--vb-action-hover)}.gift-primary:disabled{background:#cbd5e1;cursor:not-allowed}.gift-back{text-align:center;margin:1.1rem 0 0}.gift-back a{color:var(--brand-primary, #667eea);text-decoration:none}.gift-back-btn{margin-top:1rem;background:none;border:none;color:var(--brand-primary, #667eea);cursor:pointer;font-size:.95rem}.gift-success{text-align:center}.gift-tick{width:56px;height:56px;line-height:56px;margin:0 auto 1rem;border-radius:50%;background:#ecfdf5;color:#059669;font-size:1.8rem;font-weight:700}.gift-code-box{margin:1.2rem auto;padding:1rem;max-width:340px;background:#f8fafc;border:2px dashed var(--brand-primary-200, #c7d2fe);border-radius:12px}.gift-code-label{display:block;font-size:.8rem;color:#64748b;margin-bottom:.35rem}.gift-code{font-size:1.3rem;font-weight:700;letter-spacing:1px;color:#1e293b}.gift-meta{list-style:none;padding:0;margin:1rem auto;max-width:340px}.gift-meta li{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid #f1f5f9}.gift-meta span{color:#64748b}.gift-emailed{color:#047857;font-size:.9rem}.gift-warn{color:#b45309;font-size:.85rem;background:#fffbeb;border-radius:8px;padding:.6rem .8rem}.gift-layout{display:block}.gift-preview-col{margin-top:1.5rem}@media(min-width:920px){.gift-main--wide{max-width:1040px}.gift-main--wide .gift-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:2rem;align-items:start}.gift-main--wide .gift-preview-col{position:sticky;top:1.5rem;margin-top:0}}.gift-preview{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px #00000014}.gift-preview-head{background:#fff;border-bottom:3px solid var(--brand-primary, #2563eb);min-height:58px;padding:.7rem 1.15rem;display:flex;align-items:center}.gift-preview-hero{display:block;width:100%;aspect-ratio:2.5 / 1;object-fit:cover}.gift-preview-hero--color{background:var(--brand-primary, #2563eb)}.gift-preview-logo{max-height:52px;max-width:70%;object-fit:contain}.gift-preview-venue{color:#000;font-weight:800;font-size:1.15rem}.gift-preview-body{padding:1.25rem 1.35rem 1.1rem}.gift-preview-kicker{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-primary, #2563eb)}.gift-preview-value{font-size:1.6rem;font-weight:800;color:#0f172a;margin:.3rem 0 .1rem;line-height:1.2}.gift-preview-meta{margin:.9rem 0 0}.gift-preview-meta>div{display:flex;gap:.6rem;padding:.3rem 0;border-top:1px solid #f1f5f9}.gift-preview-meta dt{flex:none;width:3.2rem;color:#94a3b8;font-size:.82rem;margin:0}.gift-preview-meta dd{margin:0;color:#334155;font-size:.9rem;overflow-wrap:anywhere}.gift-preview-msg dd{font-style:italic;color:#475569}.gift-preview-foot{padding:.8rem 1.35rem;background:#f8fafc;color:#64748b;font-size:.82rem;border-top:1px solid #eef2f7}.gift-preview-note{text-align:center;color:#94a3b8;font-size:.8rem;margin:.7rem 0 0}@media(max-width:600px){.gift-main{padding:.5rem .75rem 2rem}.gift-card{padding:1.25rem}}.account-page{width:min(94vw,1240px);margin:0 auto;padding:2rem 0 4rem}.account-body{background:var(--brand-background, #fff);border:1px solid var(--brand-primary-100, #e5e7eb);border-radius:16px;padding:.5rem 2rem 2rem;box-shadow:0 6px 24px #00000012}.account-card{max-width:420px;margin:2rem auto;background:var(--brand-background, #fff);border:1px solid var(--brand-primary-100, #e5e7eb);border-radius:12px;padding:1.75rem;box-shadow:0 1px 3px #0000000f}.account-card h1{margin:0 0 .25rem;font-size:1.5rem}.account-sub{color:var(--brand-text-light, #6b7280);margin:0 0 1.25rem}.account-form{display:flex;flex-direction:column;gap:.85rem}.account-form label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.9rem}.account-form input{box-sizing:border-box;width:100%;padding:.6rem .7rem;border:1px solid var(--brand-primary-200, #d1d5db);border-radius:8px;font-size:1rem}.account-btn{background:var(--vb-action);color:#fff;border:0;border-radius:8px;padding:.7rem 1rem;font-size:1rem;font-weight:600;cursor:pointer}.account-btn:hover:not(:disabled){background:var(--vb-action-hover)}.account-btn:disabled{opacity:.6;cursor:default}.account-btn-secondary{background:transparent;color:var(--brand-text, #1f2937);border:1px solid var(--brand-primary-200, #d1d5db)}.account-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.account-links button{background:none;border:0;color:var(--vb-control);cursor:pointer;padding:0;font-size:.9rem;text-decoration:underline}.account-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:8px;padding:.6rem .75rem;margin-bottom:.85rem;font-size:.9rem}.account-notice{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:8px;padding:.6rem .75rem;margin-bottom:.85rem;font-size:.9rem}.account-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem}.account-header h1{margin:0 0 .15rem;font-size:1.75rem;font-weight:700}.account-identity{display:flex;align-items:center;gap:1rem;min-width:0}.account-avatar{width:56px;height:56px;flex-shrink:0;border-radius:50%;background:var(--brand-primary, #3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:700;text-transform:uppercase;box-shadow:0 2px 6px #0000001f}.account-header-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.account-section-title{font-size:1.1rem;margin:1.5rem 0 .75rem}.account-empty{color:var(--brand-text-light, #6b7280)}.account-bookings{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.account-booking{display:flex;flex-direction:column;gap:.6rem;border:1px solid var(--brand-primary-100, #e5e7eb);border-radius:10px;padding:.85rem 1rem;background:var(--brand-background, #fff)}.ab-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.ab-cancel{background:none;border:1px solid var(--brand-primary-200, #d1d5db);color:var(--brand-text, #1f2937);border-radius:8px;padding:.3rem .7rem;font-size:.85rem;cursor:pointer}.ab-confirm{display:flex;flex-direction:column;gap:.5rem;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:.7rem .85rem;font-size:.9rem}.ab-confirm-actions{display:flex;gap:.5rem}.ab-cancel-yes{background:#dc2626;color:#fff;border:0;border-radius:8px;padding:.45rem .9rem;font-weight:600;cursor:pointer}.ab-cancel-yes:disabled{opacity:.6;cursor:default}.ab-cancel-no{background:transparent;border:1px solid var(--brand-primary-200, #d1d5db);border-radius:8px;padding:.45rem .9rem;cursor:pointer}.ab-row-error{color:#991b1b;font-size:.85rem}.ab-main{display:flex;flex-direction:column;gap:.2rem}.ab-open{text-align:left;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}.ab-open:hover .ab-product{text-decoration:underline}.ab-open:hover .ab-open-hint{color:var(--brand-primary, #3b82f6)}.ab-open:disabled{cursor:default;opacity:.7}.ab-open-hint{font-size:.78rem;font-weight:600;color:var(--brand-text-light, #6b7280);margin-top:.1rem}.ab-product{font-weight:600}.ab-when{color:var(--brand-text-light, #6b7280);font-size:.9rem}.ab-meta{display:flex;align-items:center;gap:.6rem}.ab-code{font-family:monospace;color:var(--brand-text-light, #6b7280);font-size:.85rem}.ab-status{font-size:.78rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;background:var(--brand-primary-100, #e5e7eb);color:var(--brand-text, #1f2937);text-transform:capitalize}.ab-status-cancelled{background:#fee2e2;color:#991b1b}.ab-status-confirmed{background:#dcfce7;color:#166534}.account-rewards{display:flex;flex-wrap:wrap;gap:.75rem;margin:.5rem 0}.reward-card{display:flex;flex-direction:column;gap:.15rem;border:1px solid var(--brand-primary-100, #e5e7eb);border-radius:10px;padding:.7rem 1rem;min-width:140px;background:var(--brand-background, #fff)}.reward-label{font-size:.8rem;color:var(--brand-text-light, #6b7280)}.reward-value{font-size:1.25rem;font-weight:700}.account-profile{padding:.25rem 0 0;background:none;border:0;max-width:780px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.5rem}@media(max-width:640px){.profile-grid{grid-template-columns:1fr}}.profile-grid label{display:flex;flex-direction:column;gap:.4rem;font-weight:600;font-size:.85rem}.profile-grid input,.profile-grid textarea{width:100%;box-sizing:border-box;padding:.7rem .85rem;border:1px solid var(--brand-primary-200, #d1d5db);border-radius:9px;font-size:1rem;font-family:inherit;background:var(--brand-background, #fff);color:var(--brand-text, #1f2937)}.profile-grid input::placeholder,.profile-grid textarea::placeholder{color:var(--brand-text-light, #9ca3af)}.profile-grid input:focus,.profile-grid textarea:focus{outline:none;border-color:var(--brand-primary, #3b82f6);box-shadow:0 0 0 3px var(--brand-primary-100, #dbeafe)}.profile-grid textarea{resize:vertical;min-height:5.5rem;line-height:1.45}.profile-grid input.profile-short{max-width:15rem}.profile-grid-wide{grid-column:1 / -1}.profile-readonly{background:var(--brand-primary-50, #f8fafc);color:var(--brand-text-light, #6b7280);cursor:default}.profile-hint{margin:.75rem 0 0;font-size:.85rem;color:var(--brand-text-light, #6b7280)}.profile-actions{display:flex;align-items:center;gap:.85rem;margin-top:.85rem}.account-notice-inline{color:#166534;font-size:.9rem}.ab-voucher-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;-webkit-user-select:all;user-select:all}.vc-toggle{width:100%;text-align:left;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}.vc-chevron{color:var(--brand-text-light, #6b7280);font-size:.9rem}.vc-detail{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--brand-primary-100, #e5e7eb)}.vc-dl{margin:0 0 .75rem;display:grid;gap:.5rem}.vc-dl>div{display:grid;grid-template-columns:110px 1fr;gap:.5rem;align-items:baseline}.vc-dl dt{margin:0;font-size:.8rem;font-weight:600;color:var(--brand-text-light, #6b7280)}.vc-dl dd{margin:0;font-size:.92rem;word-break:break-word}.vc-actions,.account-privacy{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem}.account-danger{background:transparent;border:1px solid #fca5a5;color:#b91c1c;border-radius:8px;padding:.55rem 1rem;font-size:.95rem;cursor:pointer}.account-danger:hover{background:#fef2f2}.account-owed{display:flex;flex-direction:column;gap:.15rem;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:.85rem 1rem;margin-bottom:.85rem}.account-owed-amount{font-size:1.15rem;font-weight:700;color:#b45309}.account-owed-hint{font-size:.85rem;color:var(--brand-text-light, #6b7280)}.account-tabs{display:flex;gap:0;border-bottom:1px solid var(--brand-primary-100, #e5e7eb);margin:.5rem 0 1.25rem}.account-tab{flex:1 1 0;text-align:center;background:none;border:0;border-bottom:3px solid transparent;padding:.7rem .4rem;font-size:.95rem;font-weight:600;color:var(--brand-text-light, #6b7280);cursor:pointer;white-space:nowrap}.account-tab:hover{color:var(--brand-text, #1f2937)}.account-tab.active{color:var(--brand-primary, #3b82f6);border-bottom-color:var(--brand-primary, #3b82f6)}.account-tab:focus{outline:none}.account-tab:focus-visible{outline:2px solid var(--brand-primary, #3b82f6);outline-offset:-3px;border-radius:6px}.account-tabpanel{min-height:120px}.ab-owed{font-size:.8rem;font-weight:700;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:.15rem .55rem;white-space:nowrap}.account-payall{border:1px solid #fed7aa;background:#fff7ed;border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.25rem}.payall-title{margin:0 0 .25rem;font-size:1.1rem}.payall-hint{margin:0 0 .75rem;color:var(--brand-text-light, #6b7280);font-size:.9rem}.payall-list{list-style:none;padding:0;margin:0 0 .5rem;display:flex;flex-direction:column;gap:.4rem}.payall-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.payall-check{display:flex;align-items:center;gap:.55rem;cursor:pointer}.payall-amount{font-weight:600;white-space:nowrap}.payall-total{display:flex;justify-content:space-between;align-items:center;border-top:2px solid #fed7aa;padding-top:.6rem;margin:.5rem 0 .85rem;font-size:1.1rem}.payall-total strong{color:#b45309}.bk-group{border:1px solid var(--brand-primary-100, #e5e7eb);border-radius:10px;margin-bottom:.75rem;overflow:hidden}.bk-group-head{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem 1rem;font-weight:700;background:var(--brand-primary-50, #f8fafc);list-style:none}.bk-group-head::-webkit-details-marker{display:none}.bk-group-head:after{content:"▸";color:var(--brand-text-light, #6b7280);transition:transform .15s ease}.bk-group[open] .bk-group-head:after{transform:rotate(90deg)}.bk-group-count{margin-left:auto;font-size:.8rem;font-weight:700;color:var(--brand-text-light, #6b7280);background:var(--brand-primary-100, #e5e7eb);border-radius:999px;padding:.05rem .55rem}.bk-group .account-bookings{padding:.6rem;margin:0}.app-footer{position:fixed;bottom:0;left:0;right:0;height:var(--app-footer-h, 34px);padding:0 16px;background:#f8f9fa;border-top:1px solid #e0e0e0;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:18px;color:#666;z-index:1000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-footer-left{text-align:left}.app-footer-right{text-align:right;white-space:nowrap;font-size:11px;color:#94a3b8}.app-footer a{color:var(--brand-primary, #2196f3);text-decoration:none}.footer-brand{white-space:nowrap}.app-footer a:hover{text-decoration:underline}@media(max-width:768px){.app-footer-left{font-size:9px}}.enquiry-page{min-height:100vh;display:flex;flex-direction:column}.enquiry-card{width:100%;max-width:640px;margin:2.5rem auto 0;flex:1 0 auto;background:var(--brand-background, #fff);border:1px solid var(--brand-primary-100, #e5e7eb);border-radius:14px;padding:2rem;box-shadow:0 1px 3px #0000000f}.enquiry-card h1{margin:0 0 .25rem}.enquiry-sub{color:#64748b;margin:0 0 1.25rem}.enquiry-form{display:flex;flex-direction:column;gap:1rem}.enquiry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.enquiry-form label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.9rem}.enquiry-block{width:100%}form.enquiry-form input:not([type=checkbox]):not([type=radio]),form.enquiry-form select,form.enquiry-form textarea{width:100%;box-sizing:border-box;padding:.7rem .9rem;font-size:1rem;font-family:inherit;color:var(--brand-text, #0f172a);background:#fff;border:1px solid #cbd5e1;border-radius:10px;transition:border-color .15s,box-shadow .15s}form.enquiry-form input:not([type=checkbox]):not([type=radio])::placeholder,form.enquiry-form textarea::placeholder{color:#94a3b8}form.enquiry-form input:not([type=checkbox]):not([type=radio]):focus,form.enquiry-form select:focus,form.enquiry-form textarea:focus{outline:none;border-color:var(--brand-primary, #3b82f6);box-shadow:0 0 0 3px var(--brand-primary-100, #e0e7ff)}form.enquiry-form input:disabled{background:#f8fafc;color:#475569;cursor:default}.enquiry-btn{align-self:flex-start;background:var(--vb-action);color:#fff;border:0;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer}.enquiry-btn:hover:not(:disabled){background:var(--vb-action-hover)}.enquiry-btn:disabled{opacity:.6;cursor:default}.enquiry-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:8px;padding:.6rem .75rem;margin-bottom:1rem}.enquiry-done{text-align:center}.enquiry-done .enquiry-btn{align-self:center;margin-top:1rem}.enquiry-check{flex-direction:row;align-items:center;gap:.55rem;font-weight:600}.enquiry-check input{width:auto;flex:0 0 auto}.enquiry-fieldhint{font-weight:400;color:var(--brand-text-light, #6b7280);font-size:.8rem}.quote-lines{list-style:none;padding:0;margin:1rem 0 1.25rem}.quote-line{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--brand-primary-100, #e5e7eb)}.quote-total{font-weight:700;border-bottom:0;border-top:2px solid var(--brand-primary-200, #d1d5db);margin-top:.25rem}.quote-notes{color:var(--brand-text-light, #6b7280);font-style:italic;margin:0 0 1rem}.quote-accepted{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:8px;padding:.75rem;text-align:center;font-weight:600;margin-bottom:1rem}.enqmodal-overlay{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto}.enqmodal{background:var(--brand-background, #fff);border:1px solid var(--brand-primary-100, #e5e7eb);border-radius:14px;width:min(94vw,640px);position:relative;box-shadow:0 20px 50px #00000047;margin:auto}.enqmodal-close{position:absolute;top:.5rem;right:.7rem;background:none;border:none;font-size:1.7rem;line-height:1;color:var(--brand-text-light, #94a3b8);cursor:pointer;z-index:1}.enqmodal-body{padding:1.75rem 1.5rem 1.5rem}.enqmodal-body h1{margin:0 0 .25rem;padding-right:1.5rem}@media(max-width:480px){.enqmodal-overlay{padding:0}.enqmodal{border-radius:0;min-height:100vh;width:100vw}.enqmodal-body{padding:2.5rem 1.1rem 1.5rem}}.checkin-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:clamp(1.5rem,10vh,7rem) 1.5rem 2rem}.checkin-error{min-height:1.2rem}.checkin-card{width:100%;max-width:440px;text-align:center;background:var(--brand-background, #fff);border:1px solid var(--brand-primary-100, #e5e7eb);border-radius:16px;padding:2rem 1.75rem;box-shadow:0 2px 8px #00000014}.checkin-card h1{margin:0 0 .5rem;font-size:1.6rem}.checkin-sub{color:var(--brand-text-light, #6b7280);margin:0 0 1.25rem}.checkin-form{display:flex;flex-direction:column;gap:1rem;text-align:left}.checkin-form label{display:flex;flex-direction:column;gap:.35rem;font-weight:600}.checkin-form input{padding:.85rem .8rem;border:1px solid var(--brand-primary-200, #d1d5db);border-radius:10px;font-size:1.15rem}.checkin-btn{background:var(--vb-action);color:#fff;border:0;border-radius:10px;padding:.9rem 1.25rem;font-size:1.1rem;font-weight:700;cursor:pointer;width:100%}.checkin-btn:hover:not(:disabled){background:var(--vb-action-hover)}.checkin-btn:disabled{opacity:.6;cursor:default}.checkin-btn-lg{padding:1.1rem;font-size:1.25rem;margin-top:.5rem}.checkin-link{background:none;border:0;color:var(--vb-control);text-decoration:underline;cursor:pointer;margin-top:1rem;font-size:.95rem}.checkin-summary{background:var(--brand-primary-50, #f8fafc);border-radius:12px;padding:1rem;margin:.5rem 0 1.25rem}.checkin-summary p{margin:.25rem 0}.checkin-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:10px;padding:.7rem .85rem;margin-bottom:1rem}.checkin-done .checkin-tick{width:64px;height:64px;border-radius:50%;background:#16a34a;color:#fff;font-size:2rem;line-height:64px;margin:0 auto 1rem}.account-nav{display:flex;justify-content:flex-end;margin:0 0 .85rem}.account-nav-btn{display:inline-flex;align-items:center;gap:.45rem;background:var(--brand-background, #fff);color:var(--brand-text, #1f2937);border:1px solid var(--brand-primary-200, #d1d5db);border-radius:999px;padding:.4rem .95rem;font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #0000000d;transition:border-color .15s ease,color .15s ease}.account-nav-btn:hover{border-color:var(--brand-primary, #3b82f6);color:var(--brand-primary, #3b82f6)}.account-nav-avatar{font-size:1rem;line-height:1}.account-nav-label{white-space:nowrap;max-width:12rem;overflow:hidden;text-overflow:ellipsis}.booking-summary-bar{position:fixed;left:0;right:0;bottom:var(--app-footer-h, 34px);z-index:1100;background:#fffffff7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid #e2e8f0;box-shadow:0 -4px 16px #0f172a14;padding-bottom:env(safe-area-inset-bottom,0)}.bsb-inner{box-sizing:border-box;width:min(100%,1000px);margin:0 auto;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem 1rem}.bsb-facts{display:flex;align-items:center;gap:.5rem;min-width:0;color:#334155;font-size:.95rem}.bsb-activity{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}.bsb-meta{display:inline-flex;align-items:baseline;gap:.35rem;min-width:0}.bsb-meta>*+*:before,.bsb-facts>.bsb-activity+.bsb-meta:before{content:"|";color:#cbd5e1;margin-right:.35rem}.bsb-people,.bsb-date,.bsb-time{white-space:nowrap;color:#475569}.bsb-price{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;min-width:6.5rem;text-align:right}.bsb-amount{font-weight:800;font-size:1.05rem;color:#0f172a;white-space:nowrap}.bsb-amount-muted{font-weight:700;font-size:.9rem;color:#475569}.bsb-amount-placeholder{visibility:hidden}.bsb-price-stack{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.bsb-fee-note{font-size:.72rem;font-weight:600;color:#2196f3;white-space:nowrap}.bsb-fee-basis{font-size:.88rem;font-weight:700;color:#334155;white-space:nowrap}.bsb-skeleton{display:inline-block;width:5.5rem;height:1.05rem;border-radius:6px;background:linear-gradient(90deg,#eef2f7 25%,#e2e8f0 37%,#eef2f7 63%);background-size:400% 100%;animation:bsb-shimmer 1.3s ease-in-out infinite}@keyframes bsb-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media(prefers-reduced-motion:reduce){.bsb-skeleton{animation:none}}@media(max-width:768px){.bsb-facts{flex-direction:column;align-items:flex-start;gap:.1rem}.bsb-activity{max-width:100%}.bsb-facts>.bsb-activity+.bsb-meta:before{content:none}}@media(max-width:480px){.bsb-inner{min-height:52px;padding:.5rem .75rem}.bsb-facts{font-size:.85rem}}.bsb-remove,.bsb-remove-yes,.bsb-remove-no{box-sizing:border-box;min-width:44px;min-height:44px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#64748b;font-size:1rem;line-height:1;cursor:pointer;flex:none}.bsb-remove:hover{color:#b91c1c;border-color:#fecaca}.bsb-remove-confirm{display:inline-flex;align-items:center;gap:6px;flex:none}.bsb-remove-q{font-size:.85rem;font-weight:600;color:#b91c1c;white-space:nowrap}.bsb-remove-yes{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.bsb-remove-no{color:#334155}.bsb-continue-row{padding:10px 12px 0}.bsb-continue{box-sizing:border-box;width:100%;min-height:48px;border:none;border-radius:12px;background:var(--vb-action, #111);color:#fff;font-size:1rem;font-weight:700;cursor:pointer}.bsb-cart-actions{display:inline-flex;gap:6px;flex:none}.bsb-cart-btn{box-sizing:border-box;min-height:44px;padding:0 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#0f172a;font-size:.88rem;font-weight:600;cursor:pointer;white-space:nowrap}.bsb-cart-btn:hover{border-color:var(--brand-primary, #2196f3);color:var(--brand-primary, #2196f3)}.bsb-facts-btn{border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;min-width:0;flex:1}.bsb-expand{margin-left:.4rem;font-size:.7rem;color:#64748b}@media(max-width:480px){.bsb-meta-wide{display:none}.bsb-cart-btn{padding:0 10px}}.bsb-inner{align-items:center;gap:.6rem}.bsb-facts-btn{border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:1px;flex:1 1 auto;min-width:0}.bsb-facts-btn:disabled{cursor:default}.bsb-facts-btn .bsb-activity{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:#0f172a}.bsb-expand{margin-left:.35rem;font-size:.65rem;color:#64748b;vertical-align:middle}.bsb-facts-btn .bsb-meta{display:flex;flex-wrap:wrap;gap:0 .5rem;font-size:.8rem;color:#64748b;line-height:1.25}.bsb-bit+.bsb-bit:before{content:"·";margin-right:.5rem;color:#cbd5e1}.bsb-tail{display:flex;align-items:center;gap:.5rem;flex:none}.bsb-tail .bsb-price{min-width:0}.bsb-tail .bsb-amount{white-space:nowrap;font-weight:700}@media(max-width:480px){.bsb-facts-btn .bsb-meta{font-size:.75rem}.bsb-tail{gap:.4rem}.bsb-cart-btn{padding:0 10px}}.bsb-fab{position:absolute;right:12px;bottom:calc(100% + 10px);box-sizing:border-box;min-height:44px;padding:0 16px;border:none;border-radius:999px;background:var(--vb-action, #111);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;box-shadow:0 6px 18px #0f172a38;display:inline-flex;align-items:center;gap:.35rem}.bsb-fab-plus{font-size:1.05rem;line-height:1}.booking-summary-bar{position:fixed}.product-page{width:min(92vw,1000px);margin:1.5rem auto;padding:0 1rem}.product-notfound{text-align:center;padding:3rem 1rem}.product-notfound h1{margin-bottom:.5rem}.product-notfound p{color:#64748b;margin-bottom:1.5rem}.pp-hero{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}@media(max-width:720px){.pp-hero{grid-template-columns:1fr}}.pp-gallery-main{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:16px;background:#eef1f6 center / cover no-repeat;display:flex;align-items:center;justify-content:center;overflow:hidden}.pp-gallery-empty{font-size:3rem;color:#94a3b8}.pp-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:none;background:#00000073;color:#fff;font-size:1.6rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.pp-gallery-nav:hover{background:#000000ad}.pp-gallery-prev{left:.6rem}.pp-gallery-next{right:.6rem}.pp-gallery-count{position:absolute;bottom:.6rem;right:.6rem;background:#0000008c;color:#fff;font-size:.8rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;pointer-events:none}.pp-thumbs{display:flex;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.pp-thumb{width:64px;height:48px;border-radius:8px;border:2px solid transparent;background:#eef1f6 center / cover no-repeat;cursor:pointer;padding:0}.pp-thumb.active{border-color:var(--brand-primary, #2563eb)}.pp-summary h1{margin:0 0 .5rem;font-size:1.75rem}.pp-desc{color:#475569;margin:0 0 1rem}.pp-facts{display:flex;gap:1rem;color:#64748b;font-size:.9rem;margin-bottom:1rem;flex-wrap:wrap}.pp-price{display:flex;flex-direction:column;gap:.15rem}.pp-price strong{font-size:1.35rem;color:#0f172a}.pp-fee-basis{font-size:.95rem;font-weight:600;color:#334155}.pp-section{margin-top:2rem}.pp-section h2{font-size:1.15rem;margin:0 0 .6rem}.pp-long{color:#334155;line-height:1.6;white-space:pre-line}.pp-extras{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.pp-extras li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .9rem;border:1px solid #e2e8f0;border-radius:10px;background:#fff9}.pp-extra-name{font-weight:600;color:#334155}.pp-extra-price{color:#475569;white-space:nowrap}.pp-extras-note{color:#94a3b8;font-size:.82rem;margin:.5rem 0 0}.pp-book .pp-party{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:1rem 1.25rem;border-radius:14px;background:#ffffffb3;border:1px solid #e2e8f0;margin-bottom:1rem}.pp-book .pp-party label{font-weight:700;color:#334155}.pp-party-hint{color:#64748b;font-size:.9rem}.cart-sheet-backdrop{position:fixed;inset:0;background:#0f172a73;z-index:1200;display:flex;align-items:flex-end;justify-content:center}.cart-sheet{box-sizing:border-box;width:100%;max-width:560px;max-height:80vh;overflow-y:auto;background:#fff;border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px #0f172a2e}.cart-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.cart-sheet-title{margin:0;font-size:1.1rem;color:#0f172a}.cart-sheet-date{font-size:.85rem;color:#64748b}.cart-sheet-close{box-sizing:border-box;min-width:44px;min-height:44px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#64748b;font-size:1rem;cursor:pointer;flex:none}.cart-sheet-items{list-style:none;margin:12px 0 0;padding:0}.cart-sheet-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f1f5f9}.csi-facts{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.csi-name{font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csi-meta{font-size:.85rem;color:#64748b}.csi-price{font-weight:700;color:#0f172a;white-space:nowrap}.csi-remove,.csi-yes,.csi-no{box-sizing:border-box;min-width:44px;min-height:44px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#64748b;font-size:.95rem;cursor:pointer;flex:none}.csi-remove:hover{color:#b91c1c;border-color:#fecaca}.csi-confirm{display:inline-flex;gap:6px;flex:none}.csi-yes{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.cart-sheet-total{display:flex;align-items:baseline;justify-content:space-between;padding:12px 0 4px;color:#334155}.cart-sheet-total strong{font-size:1.15rem;color:#0f172a}.cart-sheet-actions{display:flex;flex-direction:column;gap:10px;margin-top:10px}.cart-sheet-add{box-sizing:border-box;width:100%;min-height:48px;border:1.5px solid var(--brand-primary, #2196f3);border-radius:12px;background:#fff;color:var(--brand-primary, #2196f3);font-size:1rem;font-weight:700;cursor:pointer}.cart-sheet-checkout{box-sizing:border-box;width:100%;min-height:48px;border:none;border-radius:12px;background:var(--vb-action, #111);color:#fff;font-size:1rem;font-weight:700;cursor:pointer}.cart-sheet-checkout:disabled{opacity:.5;cursor:default}.cart-sheet-note{margin:0;padding:10px 12px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:.88rem}:root{--brand-primary: #4f46e5;--brand-primary-hover: #4338ca;--brand-secondary: #8b5cf6;--brand-accent: #0d9488;--brand-background: #f8fafc;--brand-surface: #ffffff;--brand-text: #0f172a;--brand-text-light: #64748b;--brand-primary-50: #eef2ff;--brand-primary-100: #e0e7ff;--brand-primary-200: #c7d2fe;--brand-primary-500: var(--brand-primary);--brand-primary-600: var(--brand-primary-hover);--brand-primary-900: #312e81;--color-success: #0d9488;--color-success-bg: #f0fdfa;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-danger: #e11d48;--color-danger-bg: #fff1f2;--brand-font-family: "Poppins", system-ui, -apple-system, sans-serif;--brand-heading-font: var(--brand-font-family);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-base: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -1px rgb(0 0 0 / .06);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-glow: 0 0 15px rgba(79, 70, 229, .3);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .3s cubic-bezier(.34, 1.56, .64, 1)}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{font-family:var(--brand-font-family);font-size:var(--text-base);line-height:1.5;color:var(--brand-text);background-color:var(--brand-background);background-image:radial-gradient(at 0% 0%,rgba(79,70,229,.03) 0px,transparent 50%),radial-gradient(at 100% 0%,rgba(139,92,246,.03) 0px,transparent 50%);background-attachment:fixed}h1,h2,h3,h4,h5,h6{font-family:var(--brand-heading-font);font-weight:var(--font-bold);letter-spacing:-.025em;color:var(--brand-text)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.text-sm{font-size:var(--text-sm)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl);letter-spacing:-.025em}.font-medium{font-weight:var(--font-medium)}.font-bold{font-weight:var(--font-bold)}.text-center{text-align:center}.text-light{color:var(--brand-text-light)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mt-4{margin-top:var(--space-4)}.card{background:var(--brand-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-6);border:1px solid rgba(255,255,255,.5);transition:all var(--transition-base)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.75rem 1.5rem;font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-lg);border:none;cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn-primary{background:var(--vb-action);color:#fff;box-shadow:0 4px 6px -1px #00000047,inset 0 1px #ffffff2e}.btn-primary:hover{background:var(--vb-action-hover);transform:translateY(-1px);box-shadow:0 10px 15px -3px #00000059,inset 0 1px #ffffff38}.btn-secondary{background:var(--brand-surface);color:#111;border:1.5px solid #111}.btn-secondary:hover{background:#111;color:#fff;border-color:#111}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}input,select,textarea{box-sizing:border-box}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],select,textarea{width:100%;padding:.75rem 1rem;font-size:var(--text-base);font-family:var(--brand-font-family);color:var(--brand-text);background:#f1f5f9;border:1px solid transparent;border-radius:var(--radius-lg);transition:all var(--transition-base)}input:focus,select:focus,textarea:focus{outline:none;background:#fff;border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-primary-100)}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);letter-spacing:.025em;text-transform:uppercase}.badge-primary{background:var(--brand-primary-100);color:var(--brand-primary-900)}.badge-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid rgba(13,148,136,.1)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid rgba(217,119,6,.1)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid rgba(225,29,72,.1)}.fade-in{animation:fadeIn .4s ease-out forwards;opacity:0}.slide-up{animation:slideUp .4s ease-out forwards;opacity:0;transform:translateY(10px)}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}@keyframes fadeIn{to{opacity:1}}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}.glass{background:#ffffffb3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.3)}#root{max-width:100%;margin:0 auto;min-height:100vh;background:var(--brand-background)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{padding:var(--space-8);background:#fff;color:#000;text-align:center;border-bottom:4px solid var(--brand-primary);box-shadow:var(--shadow-lg)}.app-header h1{font-size:var(--text-4xl);margin:0 0 var(--space-2) 0;font-family:var(--brand-heading-font)}.app-header p{font-size:var(--text-xl);margin:0;opacity:.95}.venue-logo{max-height:80px;max-width:min(300px,100%);margin:0 auto var(--space-4);display:block;object-fit:contain}.app-main{flex:1;padding:var(--space-8);width:90vw;max-width:none;margin:0 auto;box-sizing:border-box}.setup-message{max-width:800px;margin:var(--space-8) auto;padding:var(--space-8);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}.setup-message h2{color:var(--brand-text);margin-bottom:var(--space-4);font-size:var(--text-2xl)}.setup-message ol{line-height:var(--leading-relaxed);text-align:left}.setup-message code{background:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-base);font-family:Monaco,Courier New,monospace;font-size:var(--text-sm);color:var(--brand-primary)}.booking-summary{background:#fff;padding:var(--space-6);border-radius:var(--radius-xl);margin-top:var(--space-8);box-shadow:var(--shadow-lg)}.booking-summary h3{margin-top:0;color:var(--brand-text);font-size:var(--text-2xl)}.booking-summary pre{background:var(--color-gray-50);padding:var(--space-4);border-radius:var(--radius-lg);overflow-x:auto;text-align:left;font-size:var(--text-sm)}@media(max-width:768px){.app-header{padding:var(--space-6)}.app-header h1{font-size:var(--text-3xl)}.app-main{padding:var(--space-4);width:95vw}.setup-message{padding:var(--space-6)}}.category-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;max-width:none;margin:0 auto .5rem;padding:0 1rem}.category-chip{appearance:none;border:1.5px solid var(--brand-primary, #d6d9e6);background:#fff;color:#334155;font:inherit;font-size:.9rem;font-weight:600;padding:.4rem .9rem;border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.category-chip:hover{border-color:var(--brand-primary, #667eea);color:var(--brand-primary, #667eea)}.category-chip.active{background:var(--brand-primary, #667eea);border-color:var(--brand-primary, #667eea);color:#fff}.booking-intro{max-width:760px;margin:0 auto 1.5rem;padding:0 1rem;text-align:center}.booking-intro-heading{margin:0 0 .5rem;font-size:1.5rem;color:#1e293b}.booking-intro-blurb{margin:0;color:#64748b;font-size:1rem;line-height:1.5;white-space:pre-line}html.vb-embed,html.vb-embed body{background:transparent!important;margin:0}html.vb-embed,html.vb-embed body,html.vb-embed #root,html.vb-embed .app{min-height:0}html.vb-embed .app-main{box-sizing:border-box}.grid-party-size{display:flex;flex-direction:column;align-items:center;gap:.3rem;width:100%;max-width:540px;box-sizing:border-box;margin:.75rem auto 1rem;padding:.55rem .85rem;border-radius:12px;background:#ffffffb3;border:1px solid #cbd5e1;text-align:center}.grid-party-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem .6rem}.grid-party-size label{font-weight:700;color:#334155;font-size:.9rem}.grid-party-size .grid-party-hint{color:#64748b;font-size:.8rem}.pc-book-btn{all:unset;display:flex;flex-direction:column;flex:1 1 auto;text-align:left}.pc-book-btn:focus-visible{outline:2px solid var(--brand-primary, #2563eb);outline-offset:-3px;border-radius:12px}.product-card.glass{border:1px solid #cbd5e1}.pc-more{display:flex;align-items:center;justify-content:center;gap:.35rem;box-sizing:border-box;min-height:44px;padding:.35rem 1rem;border-top:1px solid #eef1f6;color:var(--brand-primary-hover, #4338ca);font-size:1rem;font-weight:600;text-decoration:none;background:#ffffff8c}.pc-more:hover{background:var(--brand-primary-50, #eef2ff);text-decoration:underline}.pc-more:focus-visible{outline:2px solid var(--brand-primary, #2563eb);outline-offset:-2px}.product-card-blocked{cursor:not-allowed}.product-card-blocked .pc-media,.product-card-blocked .pc-title,.product-card-blocked .pc-desc,.product-card-blocked .pc-meta{opacity:.5;filter:grayscale(.5)}.pc-price-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.pc-fee-basis{font-size:.82rem;font-weight:600;color:#334155;white-space:nowrap;text-align:right}.pc-earlybird{display:flex;align-items:center;justify-content:center;gap:.3rem;font-size:.78rem;font-weight:700;white-space:nowrap;color:#0f766e;background:#ccfbf1;border-bottom:1px solid #5eead4;padding:.4rem .6rem}.pc-footrow{justify-content:space-between}@media(max-width:768px){.pc-title,.pc-desc{text-align:center}.pc-footrow{justify-content:center}.unfit-reason{text-align:center}.pc-price-wrap{align-items:center}.pc-fee-basis{text-align:center}}.unfit-reason{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:700;white-space:nowrap;color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:999px;padding:.28rem .6rem}.fee-footer{width:100%;max-width:1000px;box-sizing:border-box;margin:1.5rem auto .5rem;padding:.4rem 1rem;text-align:center;font-size:.8rem;line-height:1.4;color:#64748b}.cal-party-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem .75rem;margin:0 0 .75rem;padding:0 0 .75rem;border-bottom:1px solid var(--brand-primary-100, #e2e8f0);color:#334155;font-size:.95rem}.cal-party-bar strong{font-weight:700}.cal-party-bar .change-size-btn{background:none;border:none;color:var(--vb-control);font-weight:700;cursor:pointer;padding:0;text-decoration:underline}.adding-banner{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;width:100%;margin:0 0 14px;padding:12px 14px;border:1px solid #bfdbfe;border-left:4px solid var(--brand-primary, #2196f3);border-radius:12px;background:#eff6ff;color:#1e40af}.adding-banner-text{font-size:.95rem}.adding-banner-cancel{box-sizing:border-box;min-height:44px;padding:0 14px;border:1px solid #bfdbfe;border-radius:10px;background:#fff;color:#1e40af;font-weight:700;cursor:pointer;flex:none}.vb-errbound{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;box-sizing:border-box;background:#f8fafc;color:#1f2937;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.vb-errbound__card{max-width:30rem;width:100%;text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:2.5rem 2rem;box-shadow:0 4px 16px #0000000f}.vb-errbound__card h1{margin:0 0 .75rem;font-size:1.5rem;font-weight:700}.vb-errbound__card p{margin:0 0 1.5rem;color:#6b7280;line-height:1.5}.vb-errbound__card button{appearance:none;border:none;border-radius:8px;background:var(--brand-primary, #2563eb);color:#fff;font-size:1rem;font-weight:600;padding:.7rem 1.5rem;cursor:pointer}.vb-errbound__card button:hover{background:var(--brand-primary-hover, #1d4ed8)}
