.booking-hero{background:linear-gradient(145deg,#e9fbff,#d4f2f7);padding:44px 0 50px;text-align:center}.booking-hero h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.13;letter-spacing:-.045em;color:#06283d;margin:0 auto 14px;max-width:820px}.booking-hero p{color:#526e80;max-width:680px;margin:auto}.booking-area{background:#f5fbfd;padding:30px 0 85px}.booking-shell{max-width:880px}.booking-card{background:#fff;border:1px solid #dcebf0;box-shadow:0 12px 38px rgba(7,89,133,.06);border-radius:23px;padding:28px;margin-bottom:18px}.booking-step{display:flex;gap:15px;align-items:flex-start;margin-bottom:24px}.booking-step>span{display:grid;place-items:center;flex:none;width:39px;height:39px;border-radius:12px;background:#dff8fc;color:#075985;font-weight:800}.booking-step h2{font-size:1.35rem;line-height:1.2;color:#06283d;margin:2px 0 4px}.booking-step p{font-size:.87rem;color:#60798a;margin:0}.calendar{max-width:460px;margin:auto}.calendar-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.calendar-top strong{color:#06283d;font-size:1.06rem}.calendar-top button{border:1px solid #dcebf0;background:#fff;color:#075985;border-radius:11px;width:40px;height:40px;cursor:pointer;font-size:1.5rem}.calendar-top button:disabled{opacity:.3;cursor:default}.calendar-days,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;text-align:center}.calendar-days span{font-size:.74rem;font-weight:800;color:#60798a;padding:5px 0}.calendar-date{aspect-ratio:1;border:1px solid transparent;border-radius:11px;background:#f1f9fc;color:#173447;cursor:pointer;font:inherit;font-weight:750;min-width:0}.calendar-date:hover:not(:disabled){border-color:#06b6d4}.calendar-date.chosen{background:#075985;color:#fff}.calendar-date:disabled{opacity:.34;cursor:default}.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slot-pill{display:flex;align-items:center;justify-content:center;min-height:51px;padding:8px 6px;border:1px solid #cbdfe6;border-radius:12px;cursor:pointer;text-align:center;color:#173447;font-weight:800;font-size:.81rem;background:#fff}.slot-pill input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.slot-pill.selected{background:#e0f8fc;border-color:#0891b2;color:#075985;box-shadow:inset 0 0 0 1px #0891b2}.slot-pill.unavailable{opacity:.38;background:#eef2f4;cursor:default;text-decoration:line-through}.slot-pill:focus-within{outline:3px solid #5bcadf;outline-offset:2px}.availability-note{font-size:.8rem;color:#526e80;margin:14px 0 0}.booking-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booking-form-grid label span{font-size:.84rem}.contact-fields{margin-top:26px;padding-top:22px;border-top:1px solid #dcebf0}.booking-email{grid-column:1/-1}.booking-submit{position:sticky;bottom:12px;z-index:20;background:#06283d;color:#fff;box-shadow:0 15px 38px rgba(6,40,61,.22);border-radius:18px;padding:16px 19px;display:flex;align-items:center;justify-content:space-between;gap:15px}.booking-submit strong,.booking-submit small{display:block}.booking-submit small{font-size:.74rem;color:#b7d4df}.booking-submit button{white-space:nowrap}.booking-submit button:disabled{opacity:.45;cursor:default}.booking-errors{background:#fff0f0;color:#9e2020;border:1px solid #f7c4c4;border-radius:14px;padding:14px 18px;margin-bottom:18px}.booking-errors ul{margin:5px 0 0;padding-left:20px}@media(max-width:650px){.booking-hero{padding:35px 0}.booking-area{padding:15px 0 70px}.booking-card{padding:19px 15px;border-radius:18px}.booking-step{gap:10px;margin-bottom:18px}.booking-step h2{font-size:1.16rem}.calendar-days,.calendar-grid{gap:3px}.calendar-date{border-radius:9px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.slot-pill{font-size:.75rem;min-height:50px}.booking-form-grid{grid-template-columns:1fr}.booking-email{grid-column:auto}.booking-submit{bottom:6px;border-radius:14px;flex-direction:column;align-items:stretch;padding:12px 14px}.booking-submit button{width:100%;padding:11px}}

/* Package → date → time → campus → contact flow */
.booking-card[hidden]{display:none!important}.package-grid,.location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.package-option,.location-option{display:flex;align-items:center;min-height:68px;position:relative;padding:16px 18px;border:2px solid #dcebf0;border-radius:15px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s,box-shadow .15s}.package-option input,.location-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.package-option span,.location-option .location-name{font-size:.92rem;font-weight:800;color:#173447;margin:0}.package-option:has(input:checked){border-color:#0891b2;background:#e0f8fc;box-shadow:0 0 0 2px rgba(8,145,178,.1)}.package-option:focus-within,.location-option:focus-within{outline:3px solid #5bcadf;outline-offset:2px}.location-option{justify-content:space-between;gap:10px}.location-option .location-name{flex:1}.location-option .location-state{font-size:.76rem;font-weight:800;margin:0;white-space:nowrap}.location-option.available{background:#edfdf4;border-color:#86d9ad}.location-option.available .location-state,.available-key{color:#087d45}.location-option.booked{background:#fff0f0;border-color:#f6b0b0;cursor:not-allowed}.location-option.booked .location-state,.booked-key{color:#b4232d}.location-option.chosen{border-color:#087d45;box-shadow:0 0 0 2px rgba(8,125,69,.15)}.location-option:not(.available):not(.booked){opacity:.65;cursor:wait}.availability-key{font-weight:800;white-space:nowrap;margin-right:8px}.location-grid{margin-top:15px}.contact-fields{margin-top:0;padding-top:0;border:0}
@media(max-width:650px){.package-grid,.location-grid{grid-template-columns:1fr}.package-option{min-height:58px}.location-option{min-height:72px}.availability-key{display:inline-block;margin:2px 8px 2px 0}}
.affiliate-picker{position:relative;min-width:0}.affiliate-picker label{display:block}.affiliate-picker input[type=search]{width:100%}.affiliate-hint{display:block;color:#60798a;font-size:.75rem;margin-top:8px}.affiliate-results{position:absolute;top:calc(100% - 22px);left:0;right:0;z-index:35;max-height:250px;overflow-y:auto;background:#fff;border:1px solid #b6d5df;border-radius:13px;box-shadow:0 18px 35px rgba(6,40,61,.16);padding:5px}.affiliate-results[hidden]{display:none}.affiliate-results button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 12px;text-align:left;border:0;border-radius:9px;background:#fff;color:#173447;cursor:pointer;font:inherit}.affiliate-results button+button{border-top:1px solid #edf4f7}.affiliate-results button:hover,.affiliate-results button.active{background:#e9f8fc}.affiliate-results strong{flex:none;color:#075985;font-size:.82rem}.affiliate-results span{overflow-wrap:anywhere}.affiliate-empty{padding:13px;color:#60798a;font-size:.85rem}@media(max-width:650px){.affiliate-results{max-height:220px}.affiliate-results button{align-items:flex-start;flex-direction:column;gap:2px}}
.package-option small{display:block;color:#60798a;font-size:.75rem;font-weight:650}
