*{box-sizing:border-box}
body{margin:0;background:#fff;color:#080808;font:16px Arial,sans-serif}
.booking-page{width:calc(100% - 32px);max-width:1120px;margin:23px auto 8px}
.booking-logo{display:inline-block}
.booking-logo img{display:block;width:240px;height:70px;object-fit:contain;object-position:left center}
.booking-page h1{font-size:32px;margin:24px 0 20px}
.booking-page h2{font-size:24px;margin:19px 0}
.appt-booking{display:grid;grid-template-columns:340px minmax(0,1fr);min-height:592px;border:1px solid #d7dce4;border-radius:12px;overflow:hidden}
.appt-booking aside{padding:34px;background:#f7f7f7;border-right:1px solid #dde1e7}
.booking-portrait{display:block;object-fit:cover;border-radius:12px}
.appt-booking section{padding:34px}
.appt-booking aside>p{font-size:13px;color:#606a77;margin:27px 0 0}
.appt-type-list{display:grid;gap:10px;margin:25px 0}
.appt-type-list button{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:8px;background:#fff;border:1px solid #d7dce4;border-radius:8px;padding:16px 12px;min-height:50px}
.appt-type-list strong{font-size:13px}
.appt-type-list span{font-size:10px;color:#606a77;white-space:nowrap}
.appt-type-list button[aria-pressed=true]{border-color:red;box-shadow:0 0 0 1px red}
button{cursor:pointer;font-family:inherit}
.appt-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}
.appt-booking label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#404955}
.appt-booking input,.appt-booking select,.appt-booking textarea{width:100%;min-width:0;padding:11px 14px;border:1px solid #d0d7e1;border-radius:7px;background:#fff;color:#111827;font:14px Arial,sans-serif}
.appt-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:270px;overflow:auto;margin:15px 0 24px}
.appt-times button{border:1px solid #d0d7e1;border-radius:6px;background:#eee;padding:12px 5px;font-size:13px;color:#303947}
.appt-times button[aria-pressed=true]{background:#fff2f2;border-color:red;color:#b30000}
.booking-online form{margin:18px 0}
.btn{display:inline-block;margin:10px 8px 8px 0;padding:12px 16px;border:1px solid #bc0000;border-radius:6px;background:#c90000;color:#fff;font-weight:700}
.btn.light{background:#fff;color:#222;border-color:#d0d7e1}
.btn:disabled{opacity:.6;cursor:wait}
.booking-status:empty{display:none}
.booking-status{font-size:14px;color:#404955}
.booking-page footer{margin-top:30px;font-size:12px}
@media(max-width:900px){.appt-booking{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:700px){.appt-booking{grid-template-columns:1fr;min-height:0}.appt-booking aside,.appt-booking section{padding:24px}.appt-booking aside{border-right:0;border-bottom:1px solid #dde1e7}.booking-page h1{font-size:27px}}
@media(max-width:440px){.appt-form-grid,.appt-times{grid-template-columns:1fr 1fr}.appt-booking aside,.appt-booking section{padding:18px}.appt-form-grid label{grid-column:1/-1}}
