.booking-heading{background:linear-gradient(120deg,#e3f4ef,#f3f9f7);padding:28px 32px;border:1px solid #d6e8e1;border-radius:18px;margin:24px 0}.booking-heading h1{font-size:36px;margin:10px 0}.booking-heading p{margin:8px 0}.booking-filter{display:flex;align-items:end;gap:20px;padding:20px;background:white;border:1px solid #e0e9e9;border-radius:12px;margin:20px 0}.booking-filter label{margin:0;flex:1}.booking-filter input{margin-top:7px}.booking-filter .button{margin:0}.availability-session{background:white;border:1px solid #dce8e3;border-radius:16px;padding:25px;margin:20px 0}.availability-session .page-heading{margin:0 0 18px}.availability-session h2{font-size:22px}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:12px}.slot-grid a{text-align:center;padding:12px;border:1px solid #b9d9cf;background:#f0faf5;border-radius:9px;font-size:13px}.slot-grid a:hover{background:#087f80;color:white}.booking-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:28px;align-items:start}.booking-layout h1{font-size:32px}.booking-summary{background:white;border:1px solid #dce8e3;border-radius:16px;padding:28px;position:sticky;top:125px}.booking-summary h2{font-size:23px}.booking-summary p{font-size:13px}.visit-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.visit-card-head{display:flex;justify-content:space-between;align-items:center}.visit-card-head small{color:#70878d}.visit-cards h2{font-size:22px}.visit-cards p{font-size:13px}.appointment-facts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:25px 0}.appointment-facts small{display:block;color:#70878d;font-size:12px;margin-bottom:5px}.appointment-facts strong{font-size:16px}.appointment-facts p{font-size:13px;margin:5px 0}.closure-row{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e0e9e9;padding:15px 0}.danger{background:#a53946}.booking-summary .full-width{margin-top:12px}@media(max-width:760px){.booking-layout,.visit-cards,.appointment-facts{grid-template-columns:1fr}.booking-summary{position:static}.booking-filter{flex-direction:column;align-items:stretch}.booking-heading{padding:24px}.booking-heading h1{font-size:29px}.availability-session{padding:22px}.closure-row{flex-direction:column}}
