/* Public appointment booking; scoped to the Book Phillip page. */
.booking-intro>.booking-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;align-items:start}
.booking-intro .booking-intro-copy{padding-top:10px}
.booking-intro h1{font-size:clamp(37px,4vw,56px)}
.booking-intro .lead-copy{font-size:18px}
.booking-steps{list-style:none;padding:0;margin:35px 0 0;display:grid;gap:22px;counter-reset:booking-step}
.booking-steps li{counter-increment:booking-step;display:grid;grid-template-columns:31px minmax(0,1fr);gap:14px}
.booking-steps li::before{content:counter(booking-step);border:1px solid #d5b87975;color:var(--gold);border-radius:50%;width:29px;height:29px;display:grid;place-items:center;font-size:13px;font-weight:700}
.booking-steps strong{display:block;font-size:15px;margin:0 0 4px;color:#fff}
.booking-steps p{font-size:14px;line-height:1.55;color:#cfdae2}
.booking-panel{min-width:0;background:#fff;color:var(--navy);padding:31px;border-top:4px solid var(--gold);border-radius:4px;box-shadow:0 12px 40px #020d1520;scroll-margin-top:105px}
.booking-panel .booking-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 8px}
.booking-panel h2{font-size:30px;line-height:1.2;margin:0 0 15px}
.booking-panel p{font-size:14px;line-height:1.6;color:var(--muted);margin:12px 0}
.booking-panel .booking-timezone{font-size:12px;margin:0 0 23px}
.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 14px}
.booking-fields label{display:block;min-width:0;font-size:13px;line-height:1.45;font-weight:600;color:var(--navy)}
.booking-fields label>span{font-weight:400;color:var(--muted);font-size:12px}
.booking-fields input,.booking-fields select{width:100%;display:block;min-height:44px;border:1px solid #a8b7c1;background:#fff;color:var(--navy);padding:10px;margin-top:6px;border-radius:3px;font:15px/1.3 Arial,sans-serif}
.booking-fields--date{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.booking-panel .booking-phone-help{font-size:12px;margin:9px 0 0;color:#43576a}
.booking-sms{margin:24px 0 0;padding:12px 16px 15px;border:1px solid #b9c9d4;border-radius:3px;background:#f4f8fa;min-width:0}
.booking-sms legend{padding:0 7px;color:var(--navy);font-size:13px;font-weight:700}
.booking-sms-label{display:flex;align-items:flex-start;gap:11px;min-height:44px;padding:7px 0;cursor:pointer;color:var(--navy);font-size:14px;font-weight:600;line-height:1.45}
.booking-sms-label input{flex:none;width:19px;height:19px;margin:1px 0 0;accent-color:var(--blue);cursor:pointer}
.booking-panel .booking-sms-consent{margin:6px 0 0;color:#354b5b;font-size:12px;line-height:1.65}
.booking-panel .booking-sms-status{margin:12px 0 0;padding-top:11px;border-top:1px solid #c6d4dd;font-size:12px;line-height:1.6;color:#354b5b}
.booking-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--blue);border-radius:3px;padding:9px 14px;background:white;color:var(--blue);font-size:13px;font-weight:600;margin-top:13px}
.booking-secondary:hover{background:#eef5f9}
.booking-slots{border:0;border-top:1px solid var(--line);padding:19px 0 0;margin:23px 0}
.booking-slots legend{font-size:14px;font-weight:600;padding:0 8px 0 0;color:var(--navy)}
.booking-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:244px;overflow:auto;padding:4px}
.booking-slot{position:relative;cursor:pointer;min-width:0;display:flex}
.booking-slot input{position:absolute;opacity:0;width:1px;height:1px}
.booking-slot span{display:flex;width:100%;min-height:44px;align-items:center;justify-content:center;text-align:center;padding:9px 7px;font-size:13px;line-height:1.3;border:1px solid #b5c4ce;border-radius:3px;color:#174561;background:#fff}
.booking-slot:hover span{border-color:var(--blue);background:#f3f8fb}
.booking-slot input:checked+span{border:2px solid var(--blue);padding:8px 6px;background:#eaf3f8;font-weight:600}
.booking-slot input:focus-visible+span{outline:3px solid var(--gold-ink);outline-offset:2px}
.booking-panel .booking-notice{padding:16px;background:#f4f7f9;border:1px solid var(--line);border-left:3px solid var(--gold-ink);border-radius:3px;margin:20px 0;font-size:14px;line-height:1.6;color:var(--navy)}
.booking-notice p{margin:6px 0 0;font-size:13px}
.booking-panel .booking-notice--error{background:#fff5f2;border-color:#e4b5a4;border-left-color:#a44524;color:#7b321c;margin-top:0}
.booking-bot-check{margin-top:21px;min-height:140px;max-width:100%}
.booking-panel .booking-privacy,.booking-panel .booking-save-help{font-size:12px;line-height:1.6}
.booking-panel .booking-submit{width:100%;margin-top:7px;text-align:center}
.booking-panel .booking-submit:disabled{cursor:wait;opacity:.7;transform:none}
.booking-panel .booking-submit-status:empty{display:none}
.booking-panel .booking-submit-status{font-weight:600;color:var(--navy)}
.booking-panel .booking-text-link{display:inline-block;color:var(--blue);font-weight:600;font-size:13px;padding:12px 0;min-height:44px}
.booking-summary{margin:23px 0;padding:15px;background:#f4f7f9;border:1px solid var(--line);border-radius:3px;font-size:14px}
.booking-summary div+div{margin-top:13px}
.booking-summary dt{font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--muted);margin-bottom:4px}
.booking-summary dd{margin:0;overflow-wrap:anywhere}
.booking-website{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}
.page-contact-8 .section{padding:54px 0 65px;background:#f5f8fa}
.page-contact-8 .booking-card{max-width:800px;margin:0 auto;background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:4px;padding:35px;color:var(--navy)}
.page-contact-8 .booking-card h2{font-size:30px;line-height:1.2;margin-bottom:15px}
.page-contact-8 .booking-card>p{color:var(--muted);font-size:15px;line-height:1.65;margin:14px 0}
.page-contact-8 .booking-card>.pts-button{margin-top:12px}
.page-contact-8 .booking-form{margin-top:28px}
.page-contact-8 .booking-field{margin:20px 0}
.page-contact-8 .booking-field label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}
.page-contact-8 .booking-field input,.page-contact-8 .booking-field textarea{display:block;width:100%;border:1px solid #a8b7c1;border-radius:3px;background:#fff;color:var(--navy);padding:12px;font:16px/1.5 Arial,sans-serif;resize:vertical;min-height:46px}
.page-contact-8 .booking-help{font-size:12px;color:var(--muted);margin:17px 0}
.page-contact-8 .booking-form .pts-button:disabled{opacity:.7;cursor:wait;transform:none}
.page-contact-8 .booking-notice{padding:16px;background:#f2f7f4;border:1px solid #b9d0c2;border-left:3px solid #397754;border-radius:3px}
.page-contact-8 .booking-notice[role=alert]{background:#fff5f2;border-color:#e4b5a4;border-left-color:#a44524;color:#7b321c}
@media(max-width:1000px){.booking-intro>.booking-layout{gap:35px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.booking-intro h1{font-size:41px}.booking-panel{padding:25px}.booking-fields{grid-template-columns:1fr}.booking-fields--date{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.booking-intro>.booking-layout{grid-template-columns:1fr;gap:30px}.booking-intro{padding:38px 0 45px}.booking-intro h1{max-width:650px;font-size:clamp(35px,8vw,47px)}.booking-intro .lead-copy{font-size:16px}.booking-steps{display:none}.booking-panel{padding:24px 20px;scroll-margin-top:94px}.booking-panel h2{font-size:29px}.booking-fields{grid-template-columns:1fr 1fr}.page-contact-8 .section{padding:30px 0 42px}.page-contact-8 .booking-card{padding:25px 20px}.page-contact-8 .booking-card h2{font-size:28px}.page-contact-8 .booking-form .pts-button{width:100%}}
@media(max-width:430px){.booking-fields{grid-template-columns:1fr}.booking-fields--date{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:10px}.booking-fields--date input,.booking-fields--date select{font-size:14px;padding-inline:7px}.booking-slot-grid{grid-template-columns:1fr 1fr}.booking-slot span{font-size:12px}}
