
.booking-main{background:#fff;min-height:70vh}.booking-page-hero{padding:65px 0 67px;background:linear-gradient(130deg,#fffdfa,#f0faff)}
.booking-hero-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:70px;}
.booking-intro-kicker{display:block;font-size:12px;letter-spacing:.15em;color:#098dd9;font-weight:900;}
.booking-page-hero h1{font-family:var(--display);font-size:clamp(42px,5.1vw,72px);color:#14223b;line-height:1.08;letter-spacing:-.06em;margin:0 0 21px;}
.booking-page-hero p{font-size:17px;line-height:1.75;color:#65788f;max-width:640px;}
.booking-appointment-callout{display:inline-block;margin-top:27px;border-radius:14px;background:#e6f6ff;color:#315f80;padding:13px 19px;font-size:13px;line-height:1.6;}
.booking-appointment-callout strong{color:#087fc3}.booking-appointment-callout a{color:#087fc3;text-decoration:underline;font-weight:800;}
.booking-hero-photo{height:285px;position:relative;transform:rotate(2deg);border:7px solid white;box-shadow:0 22px 50px rgba(33,72,95,.11);border-radius:28px;}
.booking-hero-photo img{height:100%;width:100%;object-fit:cover;object-position:center 24%;border-radius:21px;}
.booking-hero-photo>span{position:absolute;bottom:-17px;right:-15px;background:#ffda55;padding:13px 19px;border-radius:13px;color:#20304d;font-weight:850;font-size:14px;transform:rotate(-6deg)}
.booking-browser-section{padding:80px 0 95px;background:linear-gradient(180deg,#fff,#f7fbfd);}
.booking-heading-row{display:flex;justify-content:space-between;align-items:end;gap:20px;}
.booking-heading-row h2{font-family:var(--display);font-size:clamp(35px,3.8vw,52px);line-height:1.14;letter-spacing:-.045em;color:#17243b;margin:0 0 10px;}
.booking-heading-row p{color:#697c90;font-size:14px;margin:0;}
.booking-view-tabs{display:flex;padding:4px;background:#edf7ff;border-radius:12px;border:1px solid #daedfa;}
.booking-view-tabs button{border:0;border-radius:9px;background:transparent;color:#567186;font-weight:800;padding:11px 16px;cursor:pointer;white-space:nowrap;font-size:12px;}
.booking-view-tabs button.active{background:white;color:#0788d4;box-shadow:0 3px 9px rgba(0,0,0,.06);}
.booking-search-row{display:flex;justify-content:space-between;align-items:center;gap:17px;margin:28px 0 26px;flex-wrap:wrap;}
.booking-chip-scroll{display:flex;flex-wrap:wrap;gap:7px;}
.booking-filter-chip{border:1px solid #dae7f0;background:white;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:700;color:#536f80;cursor:pointer;}
.booking-filter-chip.active{border-color:#0b95e8;background:#0b95e8;color:white;}
.booking-search-actions{display:flex;gap:8px;min-width:0;}
.booking-search-actions input,.booking-search-actions select{height:40px;min-width:0;border:1px solid #d8e7f0;background:white;border-radius:10px;padding:0 12px;font:600 12px 'DM Sans',sans-serif;color:#495d70;}
.booking-search-actions input{width:170px;}
.booking-browser-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(265px,310px);gap:26px;align-items:start;}
.booking-results-column{min-width:0;}.booking-results-column.calendar-only{display:none;}
.booking-all-events{margin:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.booking-all-events .booking-event-image{height:178px;}
.booking-calendar-panel{position:sticky;top:110px;border-radius:19px;background:#fff;border:1px solid #e1edf4;padding:20px;box-shadow:0 12px 36px rgba(20,46,75,.05);}
.booking-calendar-top{display:flex;flex-direction:column;gap:14px;margin-bottom:15px;}
.booking-calendar-top h3{font-family:var(--display);font-size:23px;line-height:1;color:#17243b;margin:0;}
.booking-calendar-top>div{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.booking-calendar-top strong{font-size:13px;color:#1b3b5a;}
.booking-calendar-top button{border:1px solid #d8eaf6;background:#f0f9ff;border-radius:8px;color:#0b8bd9;font-weight:800;font-size:20px;height:30px;width:31px;cursor:pointer;}
.booking-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
.cwc-calendar-weekday{display:grid;place-items:center;color:#8090a3;font-size:10px;font-weight:800;height:22px;}
.cwc-calendar-day,.cwc-calendar-spacer{min-height:41px;width:100%;border:0;background:transparent;border-radius:9px;color:#344c67;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:12px;cursor:pointer;padding:3px;}
.cwc-calendar-day:hover{background:#eaf6ff}.cwc-calendar-day.today{outline:1px dashed #a9cfe6;outline-offset:-2px;}
.cwc-calendar-day.has-events{background:#d8f0ff;color:#046dad;font-weight:900;}.cwc-calendar-day.selected{background:#0799f2;color:white;}
.cwc-calendar-day small{font-size:8px;line-height:1.2;font-weight:600;}
.booking-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;color:#8494a6;font-size:11px;}
.booking-calendar-footer button{font-size:10px;color:#0687d3;text-decoration:underline;border:0;background:none;cursor:pointer;}
.calendar-emphasis{grid-column:1/-1;position:static;max-width:850px;margin:auto;width:100%;padding:32px;}
.calendar-emphasis .booking-calendar{gap:9px;}.calendar-emphasis .cwc-calendar-day{min-height:75px;font-size:18px;}
.events-empty{background:white;padding:40px;border-radius:19px;border:1px dashed #c6dfef;text-align:center;color:#627890;grid-column:1/-1;line-height:1.6;}
.booking-help{border-radius:17px;padding:27px 28px;margin-top:40px;background:#e9f8ff;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;color:#698099;font-size:13px;}
.booking-help strong{color:#174266}.booking-help a{border-radius:10px;background:#0799f2;color:#fff;font-size:12px;font-weight:800;padding:12px 18px;}
.visually-hidden{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.cwc-event-modal[hidden]{display:none!important}.cwc-event-modal{position:fixed;inset:0;z-index:2000;background:rgba(20,37,57,.72);display:grid;place-items:center;padding:25px;overflow-y:auto;}
.cwc-event-modal-card{position:relative;overflow:hidden;width:min(100%,650px);max-height:90vh;overflow-y:auto;background:#fff;border-radius:25px;box-shadow:0 20px 80px rgba(0,0,0,.25);}
.cwc-event-close{position:absolute;top:15px;right:15px;z-index:2;border:0;background:white;color:#102442;width:37px;height:37px;border-radius:50%;font-size:26px;cursor:pointer;box-shadow:0 5px 15px rgba(0,0,0,.15);}
.cwc-event-modal-body>img{height:260px;width:100%;object-fit:cover;object-position:center 25%;}
.cwc-event-modal-copy{padding:27px 30px 35px;}
.cwc-event-modal-copy h2{font-family:var(--display);font-size:37px;color:#1d2c48;line-height:1.15;margin:8px 0 13px;}
.cwc-event-modal-copy p{color:#60768c;font-size:14px;line-height:1.65;}
.cwc-event-facts{padding:16px;background:#eef8ff;color:#45657d;font-size:14px;line-height:1.9;border-radius:12px;margin:19px 0;}
.cwc-event-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}.cwc-not-ready{font-size:12px;font-weight:700;color:#526d81;max-width:270px;}
@media(max-width:1050px){.booking-hero-inner{gap:32px}.booking-browser-grid{grid-template-columns:minmax(0,1fr)}.booking-calendar-panel{position:static}.booking-all-events{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.booking-page-hero{padding:40px 0 49px}.booking-hero-inner{grid-template-columns:1fr;gap:35px}.booking-hero-photo{height:215px;max-width:450px;margin:auto;width:90%}.booking-page-hero p{font-size:15px;}.booking-browser-section{padding:54px 0}.booking-heading-row{align-items:start;flex-direction:column}.booking-search-row{align-items:stretch;flex-direction:column}.booking-chip-scroll{flex-wrap:nowrap;overflow:auto;padding-bottom:6px;}.booking-filter-chip{flex-shrink:0}.booking-search-actions input{flex:1;width:auto}.booking-all-events{grid-template-columns:1fr;max-width:530px;margin:auto}.booking-calendar-panel{max-width:550px;margin:auto;width:100%;}.booking-help{display:flex;flex-direction:column;align-items:start;}.booking-help a{width:100%;text-align:center;}.calendar-emphasis .cwc-calendar-day{min-height:55px;font-size:14px}}
