.customer-main{max-width:1280px;margin:auto;padding:140px 24px 64px;color:#252e22}
.customer-heading{max-width:850px;margin-bottom:36px}
.customer-heading h1{font-family:'Archivo Black',Arial,sans-serif;font-size:clamp(36px,6vw,74px);line-height:1.08;letter-spacing:-.04em;margin:18px 0 24px}
.customer-main .eyebrow{font-size:12px;color:#50583e}
.customer-lead{font-size:18px;line-height:1.7;max-width:760px}
.customer-main p{line-height:1.75}
.customer-main a:not(.button){text-decoration:underline;text-underline-offset:4px}
.customer-main :focus-visible{outline:3px solid #a76d18;outline-offset:5px}
.booking-start{display:grid;gap:28px;padding:28px;background:#252e22;color:#f2f0e6}
.booking-start h2,.customer-prose h2,#booking-portal-heading{font-size:clamp(24px,3vw,32px);line-height:1.2;margin:0 0 16px}
.booking-start p{font-size:16px;margin:0 0 22px}
.booking-start .booking-provider{font-size:14px;margin:18px 0 0}
.booking-start aside{border-top:1px solid #a6ad94;padding-top:24px}
.booking-start h3{font-size:21px;margin:0 0 16px}
.booking-start .booking-phone{display:inline-flex;align-items:center;font-size:24px;min-height:48px;margin-bottom:12px;font-weight:700}
.customer-actions{display:flex;gap:12px 24px;flex-wrap:wrap}
.customer-actions a,.booking-help>a,.policy-toc a{display:inline-flex;align-items:center;min-height:48px;font-weight:700}
#booking-panel{margin-top:40px;scroll-margin-top:110px}
#booking-panel[hidden]{display:none}
#booking-frame{display:block;width:100%;height:790px;border:1px solid #737d66;background:#fff;margin-top:20px}
.booking-help{margin-top:24px;max-width:850px}
.booking-help p{font-size:15px}
.customer-prose{max-width:780px;font-size:17px}
.customer-prose section{padding:30px 0;border-bottom:1px solid #b9bcaf;scroll-margin-top:110px}
.customer-prose p{margin:0 0 18px}
.customer-prose p:last-child{margin-bottom:0}
.policy-toc{display:flex;flex-wrap:wrap;gap:4px 24px;max-width:900px;padding:16px 0;border-block:1px solid #737d66}
@media(min-width:800px){.customer-main{padding:170px 48px 90px}.booking-start{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);padding:44px;gap:48px}.booking-start aside{border-top:0;border-left:1px solid #a6ad94;padding:0 0 0 36px}.customer-heading{margin-bottom:48px}}
@media(max-width:380px){.customer-main{padding:120px 20px 50px}.booking-start{padding:22px}.booking-start .button{padding:16px 18px;font-size:13px}.customer-lead{font-size:17px}}
#booking-phone-form { display: grid; gap: 12px; margin: 20px 0 12px; max-width: 26rem; }
#booking-phone-form label { font-weight: 600; }
#booking-phone-form input[type=tel] { width: 100%; border: 1px solid currentColor; border-radius: 6px; background: var(--cream); padding: 12px; font-size: 1.125rem; }
#booking-phone-form .booking-consent { display: flex; align-items: center; gap: 10px; font-weight: 400; }
#booking-phone-form p { margin: 0; }

/* Booking entry and the scheduler share a compact, single-column layout. */
body:has(.appointment) { background: #f5f0e4; }
body:has(.appointment) > #site-header { display: none; }
#main:has(.appointment) { padding: 0; max-width: none; }
.appointment { background: #f5f0e4; color: #101e2e; font: 16px/1.45 Inter, Arial, sans-serif; min-height: 100svh; }
.appointment .appt-header { display: flex; align-items: center; justify-content: space-between; background: #1e483a; padding: 8px max(16px, calc((100% - 900px) / 2)); height: 62px; }
.appt-header img { display: block; height: 44px; width: 86px; object-fit: contain; }
.appointment .appt-call { display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; min-height: 44px; border: 1px solid #91a199; border-radius: 30px; color: #fff; font-size: 14px; text-decoration: none !important; }
.appointment .appt-rating { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 6px; background: #eab32d; color: #10251e; font-weight: 700; font-size: 14px; text-decoration: none !important; }
.appt-rating span { letter-spacing: 1px; }
.appt-inner { max-width: 510px; margin: auto; padding: 24px 16px 32px; }
.appt-steps { display: flex; padding: 0; margin: 0; list-style: none; }
.appt-steps li { flex: 1; position: relative; text-align: center; font-size: 12px; color: #495568; }
.appt-steps li::before { content: ''; display: block; position: relative; z-index: 1; box-sizing: border-box; width: 20px; height: 20px; margin: 0 auto 5px; border: 2px solid #bfc3c6; border-radius: 50%; background: #fffdf8; }
.appt-steps li:not(:last-child)::after { content: ''; position: absolute; height: 2px; width: 100%; left: 50%; top: 9px; background: #d7d6cd; }
.appt-steps li[aria-current]::before { background: #eab32d; border-color: #204938; box-shadow: 0 0 0 4px #d4d8ca; }
.appt-steps li[aria-current] { color: #122235; font-weight: 700; }
.appointment .appt-caption { text-align: center; margin: 8px 0 16px; font-size: 12px; color: #465568; }
.appt-card { padding: clamp(20px,5vw,28px); background: #fffcf7; border: 1px solid #deded8; border-radius: 24px; box-shadow: 0 12px 32px #302b1910; }
.appointment .appt-kicker { text-transform: uppercase; color: #214e40; font-size: 12px; letter-spacing: .08em; margin: 0 0 10px; }
.appt-card h1 { font: 700 clamp(32px,8vw,38px)/1.08 Inter,Arial,sans-serif; color: #101e2e; letter-spacing: -.045em; margin: 0; text-transform: none; max-width: 15ch; }
.appointment .appt-intro { margin: 20px 0; color: #495668; line-height: 1.5; }
.appointment #booking-phone-form { max-width: none; margin: 0; gap: 8px; font-size: 14px; }
.appointment #booking-mobile { height: 52px; border: 1px solid #bfc5cc; border-radius: 12px; background: #fff; color: #101e2e; font: inherit; font-size: 16px; padding: 0 14px; }
.appointment .booking-consent { min-height: 44px; line-height: 1.45; }
.booking-consent input { accent-color: #204938; }
.appt-card button,.appointment .appt-skip { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 52px; width: 100%; border-radius: 12px; font: 700 16px/1.25 Inter,Arial,sans-serif; padding: 10px; color: #101e2e; }
.appt-card button { cursor: pointer; border: 0; background: #eab32d; }
.appt-card button:disabled { opacity: .65; }
#booking-phone-status:empty { display: none; }
.appointment .appt-skip { margin-top: 12px; border: 1px solid #c4c7ca; text-decoration: none !important; }
.appt-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 20px 0 0; padding: 0; list-style: none; }
.appt-badges li { background: #e4ebe5; color: #194a39; font-size: 12px; border-radius: 30px; padding: 5px 11px; }
.appt-badges li::before { content: '✓'; margin-right: 6px; }
.appointment .appt-meta,.appointment .appt-support { text-align: center; font-size: 12px; color: #465568; margin: 28px 0 0; }
.appointment .appt-support { margin-top: 8px; }
