.booking-page{max-width:1240px;margin:auto;padding:64px 28px 100px;color:#102a46}.booking-page h1{font-size:clamp(38px,6vw,76px);line-height:1.05;margin:0 0 24px}.booking-page h2{font-size:26px;margin:24px 0}.lead{font-size:21px;max-width:750px}.booking-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:42px;margin:50px 0}.booking-page label{display:block;margin:18px 0 8px}.booking-page input,.booking-page select{width:100%;padding:12px;border:1px solid #b6c5d5;border-radius:6px;background:#fff;color:#102a46;font:inherit}.booking-page button{cursor:pointer}.treatment-picker{max-height:560px;overflow:auto;border:1px solid #cbd5df;border-radius:8px;margin-top:16px}.treatment-row{display:flex;align-items:center;gap:14px;padding:16px;border-bottom:1px solid #dce3eb}.treatment-row>div{flex:1}.treatment-row small{display:block;color:#52697c}.treatment-row button,.minor{background:#f1f5f9;color:#173e67;border:1px solid #c3d1df;border-radius:5px;padding:10px 14px;font:inherit}.treatment-row button[aria-pressed=true]{background:#12395f;color:#fff}.selection-panel{align-self:start;position:sticky;top:24px;background:#f0f4f8;padding:28px;border-radius:12px}.selected-line{padding:15px 0;border-bottom:1px solid #c8d5e1}.selected-line input{width:80px}.selected-line button{background:none;border:0;text-decoration:underline;color:#244868;padding:8px}.total{font-size:27px;font-weight:700;margin-top:24px}.reservation-form{max-width:800px;border-top:1px solid #b8c8d6;padding-top:32px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.check{display:flex!important;align-items:start;gap:12px;line-height:1.5}.check input{width:20px!important;flex-shrink:0;margin-top:4px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.booking-page [hidden]{display:none!important}.booking-page .slots{margin:18px 0;gap:10px}.booking-page .slot[aria-pressed=true]{background:#173e67;color:#fff}.booking-page .caption{font-size:14px;line-height:1.5;color:#506679}.booking-page a:focus-visible,.booking-page button:focus-visible,.booking-page input:focus-visible{outline:3px solid #4792d6;outline-offset:3px}.booking-page button:disabled{opacity:.5;cursor:not-allowed}#form-error,#panel-error{color:#9b2639}.price-group{margin:48px 0}.price-group ul{list-style:none;padding:0}.price-group li{display:grid;grid-template-columns:1fr 150px 90px;gap:20px;padding:16px 0;border-bottom:1px solid #d1dce6}.price-group strong{white-space:nowrap}.panel-toolbar{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin:25px 0}.panel-toolbar input{width:auto}.calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.calendar-column{background:#f1f5f9;border:1px solid #ccd9e5;padding:18px;border-radius:8px;min-height:180px}.event{display:block;width:100%;text-align:left;margin:12px 0;padding:14px;background:white;border:1px solid #b3c6d9;border-left:4px solid #336b9f;border-radius:5px;color:#102a46;font:inherit}.event small{display:block}.pending-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.staff-dialog{max-width:640px;width:calc(100% - 30px);max-height:90vh;border:1px solid #b3c6d9;border-radius:10px;padding:28px;color:#102a46;overflow:auto}.staff-dialog::backdrop{background:#102a4670}.staff-dialog label{display:block;margin:12px 0}.staff-dialog input,.staff-dialog select{width:100%;padding:10px;margin-top:5px;font:inherit}.staff-dialog .check input{width:auto}.staff-dialog .button{margin:8px 8px 8px 0}.config-day{display:grid;grid-template-columns:110px 60px 1fr 1fr;align-items:center;gap:12px}.config-day input[type=checkbox]{width:22px}.config-prices{max-height:450px;overflow:auto}.config-price{display:grid;grid-template-columns:1fr 120px 120px;gap:10px;align-items:center;border-bottom:1px solid #d1dce6;padding:12px 0}.status-badge{display:inline-block;padding:7px 14px;background:#e5eff8;border-radius:30px;font-weight:600}.receipt-box{padding:25px;border:1px solid #bfcedb;border-radius:10px;margin:24px 0}.panel-tab{padding:12px 20px;border:1px solid #bbccdc;background:white;border-radius:5px;color:#12395f}.panel-tab[aria-pressed=true]{background:#12395f;color:white}.booking-page details{margin:30px 0}.booking-page summary{font-size:23px;cursor:pointer}header nav{display:flex;gap:20px;align-items:center}@media(max-width:760px){.booking-page{padding:35px 18px 60px}.booking-layout{grid-template-columns:1fr;gap:24px;margin:30px 0}.selection-panel{position:static}.field-row{grid-template-columns:1fr;gap:0}.price-group li{grid-template-columns:1fr auto;gap:10px}.price-group li a{grid-column:1/-1}.calendar-grid,.pending-list{grid-template-columns:1fr}.config-price{grid-template-columns:1fr 85px 85px}.config-day{grid-template-columns:70px 25px 1fr 1fr;gap:8px}header{flex-wrap:wrap;gap:14px}header nav{display:flex!important;position:static!important;flex-wrap:wrap;gap:15px;width:100%;font-size:14px}header .logo{width:150px}}

/* Staff attribution uses text as well as colour. Availability never relies on colour alone. */
.creator-legend{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0;font-size:14px}.creator-legend span{display:inline-flex;align-items:center;gap:7px}.creator-legend i{width:12px;height:12px;border-radius:50%;display:inline-block}.team-form{display:flex;flex-wrap:wrap;align-items:end;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.team-form>label{flex:1;min-width:180px}.team-form input[type=color]{width:70px;height:44px;padding:4px}.member-row small{display:block}.event small{display:block}.slot{display:flex;flex-direction:column;gap:2px;align-items:center;min-width:92px}.slot small{font-size:11px}.slot-available{background:#edf8f0;border-color:#327044;color:#245131}.slot-request{background:#f4f7fb;color:#315f99}.slot-unavailable:disabled{opacity:1;color:#777;background:#eeeeef;border-color:#d2d4d8;cursor:not-allowed}.slot[aria-pressed=true]{background:var(--navy);color:white}.slot-unavailable strong{text-decoration:line-through}[hidden]{display:none!important}#contact-visit{padding:20px;background:#f0f4f9;margin:20px 0}#team h2{font-size:32px}
/* Keep the offer price and booking link distinct on narrow screens. */
.promo-price-list .price-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center}.promo-price-list .price-row strong{white-space:nowrap}@media(max-width:700px){.promo-price-list .price-row{grid-template-columns:1fr}.promo-price-list .price-row a{justify-self:start}}
