/* Shared customer quote / booking controls. */
.qfield input, .qfield select, .qfield textarea { font-size:16px; min-height:48px; min-width:0; width:100%; scroll-margin-top:90px; }
.qfield select { padding-right:38px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231e2a40' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; }
.field-hint { font-size:13px; line-height:1.5; color:#5a5a4a; }
.field-error { font-size:14px; line-height:1.5; color:#a52b12; margin:2px 0 0; }
.field-error:empty { display:none; }
.qfield [aria-invalid="true"] { border-color:#b72d13; background:#fff5f1; }
.flow-route { margin:16px 0; text-align:left; }
.route-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.route-heading strong { font-size:14px; }
.route-edit { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid #c8b99a; border-radius:10px; font:600 14px Figtree,system-ui; color:#1e2a40; background:white; text-decoration:none; cursor:pointer; }
.route-row { display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; padding:10px 0; border-bottom:1px solid #e8d9c0; }
.route-label { color:#5a5a4a; font-size:14px; }
.route-street { display:block; font-size:16px; font-weight:600; overflow-wrap:anywhere; }
.route-locality { display:block; font-size:14px; color:#5a5a4a; overflow-wrap:anywhere; }
.flow-nav { position:sticky; top:0; z-index:100; height:68px; padding:0 20px; display:flex; align-items:center; justify-content:space-between; background:#faf6eef5; border-bottom:1px solid #e8d9c0; }
.flow-nav .nav-logo { display:flex; align-items:center; gap:10px; font:700 22px 'Playfair Display',Georgia,serif; color:#1e2a40; text-decoration:none; }
.flow-nav .nav-logo-mark { width:36px;height:36px;border-radius:10px;background:#ff5722;display:flex;align-items:center;justify-content:center; }
.flow-nav .nav-logo-mark svg { width:20px;height:20px; }
.flow-nav .nav-phone { font:600 14px Figtree,system-ui;color:#5a5a4a; }
.flow-nav .nav-phone a { display:inline-flex;align-items:center;min-height:44px;color:#1e2a40;text-decoration:none; }
.flow-nav a:focus-visible,.route-edit:focus-visible { outline:3px solid #1e2a40;outline-offset:3px; }
#pq-note { font-size:14px!important; color:#5a5a4a!important; }
#pq-submit { white-space:nowrap; }
#price-form,.qfield,.card,.flow-route,.notice { scroll-margin-top:88px; }
.price-hero { flex-wrap:wrap; align-items:center; }
.price-hero .amount { overflow-wrap:anywhere; }
.price-hero .tag { flex-shrink:0; }
.step-pill { color:#5a5a4a;letter-spacing:0; }
.compact-step-title { display:none; font:700 26px/1.2 'Playfair Display',Georgia,serif;margin:0 0 10px; }
.flow-later-step .page-eyebrow,.flow-later-step .page-title,.flow-later-step .page-sub { display:none; }
.flow-later-step .compact-step-title { display:block; }
.flow-later-step .page { padding-top:24px; }
.flow-later-step .steps-bar { margin-bottom:20px; }
.cal-nav button { width:44px;height:44px; }
.cal-day { min-height:44px; }
.selection-status { font-size:15px;font-weight:600;line-height:1.5;margin:18px 0 0; }
.summary-line .k { flex-shrink:0; }
.summary-line .v { min-width:0;overflow-wrap:anywhere; }
#bedroom-confirm { flex:0 0 22px;width:22px;height:22px; }
#bedroom-confirm-row { scroll-margin-bottom:190px; }
.payment-dock { margin-top:16px; }
.payment-dock #pay-btn { width:100%; min-height:52px; }
.payment-totals { display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;font-size:15px; }
.payment-help { font-size:13px;color:#5a5a4a;text-align:center;margin-top:8px; }
@media(max-width:420px) {
  .price-hero { flex-direction:column;align-items:flex-start;gap:8px;padding:18px; }
  .price-hero .tag { order:-1; }
  .flow-nav .nav-phone { font-size:13px; }
  .flow-nav .nav-phone .help-label { display:none; }
}
@media(max-width:720px) {
  #step-2.card { padding-left:4px;padding-right:4px; }
  .cal-grid { gap:2px; }
  .cal-day { aspect-ratio:auto;min-height:44px;border-radius:9px; }
  .cal-head,.cal-legend,#step-2 .card-title,#step-2 .form-actions,.selection-status { margin-left:8px;margin-right:8px; }
  .window-row { margin-left:8px;margin-right:8px; }
  body.flow-pay-step .page { padding-bottom:185px; }
  .payment-dock { position:fixed;z-index:90;bottom:0;left:0;right:0;margin:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e8d9c0;box-shadow:0 -4px 20px #1e2a4010; }
  .payment-dock > * { max-width:780px;margin-left:auto;margin-right:auto; }
  .payment-dock #pay-btn { display:flex;margin:auto; }
  #step-3 .form-actions { margin-bottom:12px; }
  #step-3 { scroll-margin-bottom:190px; }
}
@media(max-width:350px) {
  #step-2.card { padding-left:2px;padding-right:2px; }
  #step-2 .cal-grid { gap:0; }
  .page { padding-left:4px;padding-right:4px; }
}

/* Keyboard navigation and motion preferences across customer pages. */
.skip-link { position:fixed;top:8px;left:12px;z-index:1000;padding:12px 18px;background:#1e2a40;color:white;border-radius:8px;transform:translateY(-160%);font:600 16px system-ui; }
.skip-link:focus { transform:translateY(0); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #1e2a40;outline-offset:3px; }
#main-content { scroll-margin-top:88px; }
#how,#pricing,#credentials,#service-areas,#privacy { scroll-margin-top:88px; }
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
  .fade-up { opacity:1!important;transform:none!important; }
}

footer a:focus-visible,.cta-banner a:focus-visible,.cta-banner button:focus-visible { outline-color:white; }
