/* The shared theme owns the topbar, header and responsive navigation. */
body.br-booking-page .footer-main,body.br-booking-page .mobile-cta{display:none!important}
body.br-booking-page #main{min-height:70vh;background:#fff}
body.br-booking-page .br-booking{margin:0 auto;max-width:1180px}
body.br-booking-page .site-footer{padding:0}
body.br-booking-page .footer-bottom{padding-block:24px}
.br-booking .br-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.br-booking .br-personal h2,.br-booking .br-request-success h2{font-family:Epilogue,sans-serif;font-weight:600;letter-spacing:-.035em;font-size:26px;line-height:1.2;margin:0 0 16px}
.br-booking .br-personal>p,.br-booking .br-request-success p{font-size:15px;line-height:1.7;margin:0 0 24px}
.br-booking .br-personal form>.br-primary{margin-top:24px}
.br-booking .br-request-success{border-top:3px solid #f9cf2b;padding-top:24px}
@media(max-width:760px){body.br-booking-page .site-footer{padding-bottom:100px}.br-booking .br-personal>p,.br-booking .br-request-success p{font-size:16px}}
/* Keep step titles and the price panel below the shared sticky header, including WP's admin bar. */
.br-booking .br-intro h1,.br-booking .br-native-container{scroll-margin-top:160px}
.br-booking .br-summary{top:128px}
body.admin-bar .br-booking .br-summary{top:160px}
@media(max-width:600px){.br-booking .br-intro h1,.br-booking .br-native-container{scroll-margin-top:110px}}

/* Same field rhythm as the booking form; Stripe owns its secure iframe. */
.br-payment { max-width: 760px; scroll-margin-top: 160px; }
/* First entry and restored checkout share one heading and one receipt. */
.br-payment-mode .br-intro, .br-payment-mode .br-actions, .br-payment-mode .br-summary, .br-payment-mode .br-mobile-review { display:none; }
.br-payment-mode .br-layout { display:block; }
.br-payment [data-payment-discard] { display:inline-flex; align-items:center; gap:10px; text-decoration:none; }
.br-payment [data-payment-discard] span { text-decoration:underline; text-underline-offset:4px; }
.br-payment .br-discard-icon { flex:0 0 20px; width:20px; height:20px; fill:none; }
.br-payment:focus { outline: none; }
.br-payment [data-payment-element] { margin: 24px 0; }
.br-payment [data-payment-submit] { width: 100%; margin-top: 16px; }
.br-payment [data-payment-restart] { margin-top: 20px; }
.br-payment .br-payment-security { margin-top: 20px; line-height: 1.65; }
.br-payment-actions { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--br-line, #e2e2e2); }
.br-payment-actions .br-field-hint { margin-top: 16px; }
.br-payment-actions button { text-align: left; }
.br-payment [data-payment-deadline] { color: var(--br-muted, #666666); }
.br-payment [data-payment-retry] { margin-top: 16px; }
.br-recovery-loading { padding: 32px; }
.br-inspection-terms { margin: 24px 0; padding: 20px; background: #f1f2f3; border-left: 3px solid #fbd427; }
.br-inspection-terms h3 { margin: 0 0 12px; }
.br-inspection-terms p { margin-bottom: 20px; }
.br-inspection-terms label { display: flex; align-items: flex-start; gap: 12px; }
.br-inspection-terms input { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 3px; }
@media(max-width: 560px) { .br-payment { scroll-margin-top: 104px; } .br-inspection-terms { padding: 16px; } }

.br-payment [data-payment-summary] { margin-bottom: 24px; }
.br-payment-appointment { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 32px; margin: 28px 0 0; padding: 24px; background: var(--br-soft, #f2f3f5); border-radius: 8px; }
.br-payment-appointment dt { margin-bottom: 8px; color: var(--br-muted, #666); font-size: 14px; }
.br-payment-appointment dd { margin: 0; color: var(--br-ink, #131716); font-size: 21px; line-height: 1.5; font-weight: 700; }
.br-payment-time dd { white-space: nowrap; }
.br-payment-address { grid-column:1 / -1; border-top:1px solid var(--br-line, #e2e2e2); padding-top:18px; }
.br-payment-appointment .br-payment-address dd { font-size:17px; font-weight:500; overflow-wrap:anywhere; }
.br-payment-receipt { padding: 24px 0 0; }
.br-payment-receipt h3 { margin: 0 0 18px; font-size: 20px; }
.br-payment-vehicle { margin-bottom: 22px; }
.br-payment-vehicle h4 { margin: 0 0 10px; color: var(--br-muted, #666); font-size: 14px; font-weight: 500; }
.br-payment-vehicle ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.br-payment-vehicle li, .br-payment-line, .br-payment-total { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.br-payment-vehicle li { font-size: 16px; line-height: 1.6; }
.br-payment-vehicle li strong, .br-payment-line strong, .br-payment-total strong { flex-shrink: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.br-payment-line { margin-top: 14px; font-size: 16px; }
.br-payment-line small { display: block; margin-top: 3px; font-size: 13px; color: var(--br-muted, #666); }
.br-payment-total { margin: 24px 0 18px; padding-top: 20px; border-top: 1px solid var(--br-line, #e2e2e2); font-size: 18px; font-weight: 700; }
.br-payment-total strong { font-size: 28px; }
.br-payment-methods { margin-top:32px; }
.br-payment-methods > h3 { margin-bottom:18px; font-size:20px; }
.br-payment [data-payment-express-wrap] { margin-bottom:12px; }
.br-payment-methods > .br-payment-paypal { margin:0; }
.br-payment .br-payment-separator { display:flex; align-items:center; gap:16px; margin:24px 0; color:var(--br-muted, #666); font-size:13px; text-align:center; }
.br-payment-methods:not(:has([data-payment-express-wrap]:not([hidden]), [data-payment-paypal]:not([hidden]))) .br-payment-separator { display:none; }
.br-payment-separator::before, .br-payment-separator::after { content: ''; flex: 1; height: 1px; background: var(--br-line, #e2e2e2); }
.br-booking .br-extras { scroll-margin-top: 160px; }
.br-booking .br-extras h3:focus { outline: none; }
@media(max-width: 560px) {
  .br-payment-appointment { grid-template-columns: 1fr; gap: 16px; padding: 20px; }
  .br-payment-appointment dd { font-size: 19px; }
  .br-payment-vehicle li, .br-payment-line { gap: 12px; font-size: 15px; }
  .br-payment-line strong { max-width: 45%; white-space: normal; text-align: right; }
  .br-payment-total { font-size: 16px; }
  .br-payment-total strong { font-size: 26px; }
  .br-booking .br-extras { scroll-margin-top: 110px; }
}

/* PayPal uses its accessible SDK button; it shares the receipt and visit hold. */
.br-payment-paypal { margin: 1.5rem 0; max-width: 100%; }
.br-payment-paypal paypal-button { display:block; width:100%; min-height:48px; --paypal-button-height:48px; }
.br-payment-paypal[hidden] { display:none; }

/* A clear keyboard focus inside the button, without an additional outer frame. */
.br-booking .br-address-accept:focus-visible { outline:none; box-shadow:inset 0 0 0 3px var(--br-yellow, #f9cf2b); }
.br-booking .br-address-accept:focus:not(:focus-visible) { outline:none; box-shadow:none; }

/* Feedback stays ahead of the receipt, so loading and payment errors are immediately visible. */
.br-payment-feedback{display:flex;align-items:center;gap:16px;padding:20px 22px;margin:24px 0;background:var(--br-soft,#f2f3f5);border-left:4px solid var(--br-yellow,#f9cf2b);border-radius:6px;scroll-margin-top:160px}
.br-payment-feedback:focus{outline:none}
.br-payment-feedback p{margin:0;font-size:15px;line-height:1.65}
.br-payment-feedback [data-payment-status]{font-weight:700;color:var(--br-ink,#131716)}
.br-payment-feedback .br-payment-error{margin-top:6px;font-weight:400;color:var(--br-ink,#131716)}
.br-payment-feedback[data-phase=error]{border-left-width:6px}
.br-payment-wheel{display:block;flex:0 0 26px;width:26px;height:26px;border:3px solid var(--br-ink,#131716);border-right-color:var(--br-yellow,#f9cf2b);border-radius:50%;position:relative}
.br-payment-feedback:is([data-phase=loading],[data-phase=processing]) .br-payment-wheel{animation:br-payment-turn 1s linear infinite}
.br-payment-feedback[data-phase=pending] .br-payment-wheel{display:none}
.br-payment-feedback[data-phase=error] .br-payment-wheel{border:0;border-radius:0;text-align:center;height:auto}
.br-payment-feedback[data-phase=error] .br-payment-wheel::after{content:'!';position:static;border:0;font:600 28px/1 Epilogue,sans-serif}
@keyframes br-payment-turn{to{transform:rotate(360deg)}}
.br-booking .br-request-success{max-width:820px;border-top:0;padding-top:12px;scroll-margin-top:160px;animation:br-panel-in 200ms ease-out}
.br-request-success:focus{outline:none}
.br-confirmation-heading{display:flex;align-items:flex-start;gap:22px;margin-bottom:30px}
.br-booking .br-confirmation-heading .br-success-icon{flex:0 0 52px;height:52px;width:52px;margin:0}
.br-booking .br-confirmation-kicker{font-size:11px;letter-spacing:.07em;font-weight:700;line-height:1.5;margin:0 0 10px}
.br-booking .br-confirmation-heading h1{font:600 clamp(30px,4vw,42px)/1.15 Epilogue,sans-serif;letter-spacing:-.04em;margin:0 0 14px}
.br-booking .br-confirmation-heading p:last-child{color:var(--br-muted,#666666);margin:0}
.br-confirmation-details{display:grid;grid-template-columns:1.5fr 1fr;gap:24px 32px;margin:0 0 30px;padding:28px;background:var(--br-soft,#f2f3f5);border-top:4px solid var(--br-yellow,#f9cf2b);border-radius:6px}
.br-confirmation-details dt{font-size:12px;color:var(--br-muted,#666666);margin-bottom:7px}
.br-confirmation-details dd{font-size:18px;font-weight:600;line-height:1.55;margin:0;overflow-wrap:anywhere}
.br-confirmation-address{grid-column:1/-1;border-block:1px solid var(--br-line,#e2e2e2);padding-block:20px}
.br-booking .br-confirmation-calendar h2{font-size:22px;margin:0 0 10px}
.br-booking .br-confirmation-calendar p{font-size:14px;color:var(--br-muted,#666666);margin-bottom:20px}
.br-calendar-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-bottom:28px}
.br-calendar-link{color:var(--br-ink,#131716);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:4px;padding-block:12px}
.br-calendar-links .br-primary{font-size:13px;min-height:48px;padding:14px 24px;text-decoration:none}
.br-booking .br-confirmation-note{font-size:14px;line-height:1.75;color:var(--br-muted,#666666);margin-bottom:16px}
@media(max-width:560px){.br-payment-feedback{padding:16px;gap:12px;scroll-margin-top:110px}.br-payment-feedback p{font-size:14px}.br-confirmation-heading{gap:16px}.br-booking .br-confirmation-heading .br-success-icon{width:40px;height:40px;flex-basis:40px}.br-confirmation-details{grid-template-columns:1fr;gap:18px;padding:22px}.br-confirmation-details dd{font-size:17px}.br-confirmation-address{padding-block:18px}.br-booking .br-request-success{scroll-margin-top:110px}.br-calendar-links{gap:8px 18px}}
@media(prefers-reduced-motion:reduce){.br-payment-feedback .br-payment-wheel,.br-booking .br-request-success{animation:none!important}}
.br-slot.br-slot-recommended{border-color:var(--br-yellow,#f9cf2b)}
.br-booking .br-slot{min-height:62px;padding:9px 6px}
.br-slot-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.br-slot-time{display:flex;align-items:center;justify-content:center;gap:8px;line-height:1.3}
.br-slot-content small{display:block;font-size:11px;line-height:1.2;font-weight:600;margin:0}
.br-booking .br-time-next{margin:0 0 12px;min-height:52px}
.br-booking .br-time-selection{margin:0 0 14px}
.br-draft-controls{margin-top:26px;padding-top:22px;border-top:1px solid var(--br-line,#e2e2e2)}
.br-booking .br-draft-controls p{font-size:12px;line-height:1.65;color:var(--br-muted,#666);margin:0 0 8px}
.br-discard-draft{padding:10px 0;min-height:44px;background:none;border:0;font-size:12px;color:var(--br-muted,#666);text-decoration:underline;text-underline-offset:4px;text-align:left}
.br-discard-draft:hover{color:var(--br-ink,#131716)}
@media(max-width:560px){.br-booking .br-time-next{width:100%;justify-content:center}.br-draft-controls{margin-top:20px}}
