/* Incremental mobile-safe, progressive-enhancement layer — no third-party library */
.rw-step-form [hidden],.rw-results [hidden]{display:none!important}
.rw-step-status{display:flex;align-items:center;gap:12px;justify-content:space-between;font-size:12px;font-weight:800;color:#0c4564;margin-bottom:14px}
.rw-progress{height:7px;max-width:112px;width:35%;display:block;background:#e3edf1;border-radius:20px;overflow:hidden}
.rw-progress>span{height:100%;display:block;background:#00a874;border-radius:20px;width:50%;transition:width .2s ease}
.rw-next-button,.rw-back-button{min-height:44px;cursor:pointer}
.rw-step-form input,.rw-step-form select,.rw-step-form textarea{font-size:16px;max-width:100%;min-width:0}
.rw-step-form :focus-visible,.rw-results :focus-visible{outline:3px solid #00a874;outline-offset:3px}
/* Touch-friendly service cards and prevent oversized admin/user media from viewport overflow */
#main-content,.ads-lp,.rw-results{min-width:0;max-width:100%;overflow-x:clip}
#main-content img{max-width:100%}
#main-content :is(.grid,.flex)>*{min-width:0}
@media(max-width:640px){.rw-results .rw-compare{min-height:210px}.rw-card{border-radius:16px!important}#main-content :is(input,select,textarea){max-width:100%;font-size:16px}#cta-dock{right:12px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important}#cta-dock a,#cta-dock button{width:50px!important;height:50px!important}#smartChatWindow{max-height:75dvh;max-width:calc(100vw - 24px)!important;right:12px!important;bottom:80px!important}}
@media(prefers-reduced-motion:reduce){.rw-progress>span,.rw-results *, .rw-step-form *{transition-duration:0.01ms!important;scroll-behavior:auto!important}}

@media(max-width:767px){body:has(#rw-service-mobile-cta) #cta-dock{display:none!important}body:has(#rw-service-mobile-cta) #main-content{padding-bottom:60px}}


/* Rewind Booking V3: isolated responsive UX for website + Google Ads landing forms */
.rw-booking{--rw-ink:#102c43;--rw-blue:#093a5c;--rw-green:#079e72;--rw-edge:#dce8ef;font-family:inherit;color:var(--rw-ink);width:100%;max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--rw-edge);border-radius:22px;box-shadow:0 14px 48px rgba(6,34,51,.075);overflow:hidden}
.rw-booking *{box-sizing:border-box}
.rw-booking-head{padding:22px 22px 16px;background:linear-gradient(120deg,#f0f9fa,#fff 76%)}
.rw-booking-kicker{display:inline-flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.055em;color:#087556;text-transform:uppercase;font-size:11px;line-height:1.5}
.rw-booking-kicker-dot{width:7px;height:7px;background:var(--rw-green);border-radius:50%}
.rw-booking-head h3{font-size:clamp(21px,3.8vw,27px);font-weight:800;line-height:1.2;letter-spacing:-.035em;margin:10px 0 5px;color:#112e44}
.rw-booking-head p{color:#536c7b;line-height:1.5;font-size:13px;margin:0;max-width:46ch}
.rw-booking-form{padding:0 22px 20px}
.rw-booking-form [hidden],.rw-booking [hidden]{display:none!important}
.rw-booking-progress{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:16px 0 9px;font-size:12px;font-weight:800;color:#24465b}
.rw-booking-progress-count{font-weight:800;color:#087556;white-space:nowrap}
.rw-booking-track{height:6px;background:#e5eff2;border-radius:8px;overflow:hidden;margin:0 0 22px}
.rw-booking-track>span{width:50%;height:100%;display:block;background:linear-gradient(90deg,#008e74,#16bc89);border-radius:8px;transition:width .18s ease}
.rw-booking-question{font-size:16px;line-height:1.35;font-weight:800;color:#12344d;margin:0 0 10px}
.rw-booking-label{display:block;color:#314c60;font-size:13px;font-weight:700;margin:0 0 7px}
.rw-booking-hint{font-size:11px;line-height:1.5;color:#647884;margin:6px 0 0}
.rw-booking-pane>select,.rw-booking-field>input,.rw-booking-date-fields :is(input,select),.rw-booking-note textarea{width:100%;font:inherit;font-size:16px!important;color:#18364b;background:#fff;border:1px solid #c9dae4;border-radius:12px;min-height:48px;padding:12px 13px;box-shadow:none;outline-offset:2px}
.rw-booking :is(input,select,textarea):focus-visible,.rw-booking button:focus-visible,.rw-booking summary:focus-visible{outline:3px solid #38bd94;outline-offset:2px}
.rw-booking :is(input,select,textarea)[aria-invalid="true"]{border-color:#d13232!important;outline-color:#db4949!important}
.rw-booking-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.rw-booking-chip,.rw-booking-pick{border:1px solid #d6e3ea;border-radius:99px;min-height:38px;padding:7px 12px;background:#f8fbfc;color:#315268;cursor:pointer;font-size:12px;font-weight:750;line-height:1.3;text-align:center;transition:background .16s,border-color .16s}
.rw-booking-chip.is-active,.rw-booking-pick.is-active{background:#e7f7f1;border-color:#079e72;color:#07583f;box-shadow:inset 0 0 0 1px #079e72}
.rw-booking-chip:hover,.rw-booking-pick:hover{border-color:#079e72}
.rw-booking-fixed{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid #a6dec8;background:#edfaf4;border-radius:13px;color:#07593b;font-size:14px}
.rw-booking-fixed>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#0b966d;color:#fff;flex:none;font-weight:800}
.rw-booking-fixed strong,.rw-booking-fixed small{display:block}
.rw-booking-fixed small{color:#43705e;margin-top:2px;font-size:11px}
.rw-booking-schedule{border-top:1px solid #edf1f4;margin:22px 0 0;padding-top:20px}
.rw-booking-schedule .rw-booking-question{margin-bottom:2px}
.rw-booking-picks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.rw-booking-pick{border-radius:12px;padding:10px 8px;min-height:50px}
.rw-booking-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.rw-booking-primary{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:52px;padding:12px 16px;margin-top:22px;background:#082f4b!important;border:1px solid #082f4b!important;border-radius:13px!important;color:#fff!important;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 7px 16px rgba(8,47,75,.13);transition:transform .14s,background .14s}
.rw-booking-primary:hover{background:#0a476b!important;transform:translateY(-1px)}
.rw-booking-primary:disabled{opacity:.7;cursor:wait;transform:none}
.rw-booking-footnote{font-size:11px;text-align:center;color:#70838e;margin:8px 0 0;line-height:1.5}
.rw-booking-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;margin-bottom:20px;border:1px solid #e2ecf0;background:#f5fafb;border-radius:13px}
.rw-booking-summary-label,.rw-booking-summary strong,.rw-booking-summary small{display:block}
.rw-booking-summary-label{text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:800;color:#728490;margin-bottom:2px}
.rw-booking-summary strong{font-size:13px;line-height:1.5;color:#17364b}
.rw-booking-summary small{font-size:11px;color:#617785;margin-top:1px}
.rw-booking-edit{border:0;background:none;color:#007b62;cursor:pointer;min-height:40px;padding:7px;font-size:12px;font-weight:800}
.rw-booking-field{margin:15px 0 0}
.rw-booking-phone{display:flex;align-items:center;border:1px solid #c9dae4;border-radius:12px;min-height:50px;overflow:hidden;background:#fff}
.rw-booking-phone>span{font-size:15px;font-weight:800;color:#14384f;padding:0 12px;min-height:49px;display:flex;align-items:center;border-right:1px solid #e4ecf0;background:#f5fafb;white-space:nowrap}
.rw-booking-phone input{min-width:0;flex:1;width:100%;min-height:49px;padding:10px 12px;border:0!important;outline-offset:-3px;background:transparent;font:inherit;font-size:16px!important;color:#14384f}
.rw-booking-note{margin:17px 0 0;border:1px solid #e2eaf0;border-radius:12px;padding:10px 12px}
.rw-booking-note summary{cursor:pointer;font-size:13px;font-weight:750;color:#25485e;min-height:26px}
.rw-booking-note .rw-booking-label{margin-top:10px}
.rw-booking-note textarea{resize:vertical;min-height:76px}
.rw-booking-opt-in{display:flex;align-items:flex-start;gap:9px;margin:18px 0 0;font-size:11px;line-height:1.55;color:#4e6473}
.rw-booking-opt-in input{width:17px;height:17px;flex:0 0 17px;margin-top:2px;accent-color:#078c6f}
.rw-booking-privacy{font-size:11px;line-height:1.65;color:#687984;margin:13px 0 0}
.rw-booking-privacy a{color:#076d67;text-decoration:underline;text-underline-offset:2px}
.rw-booking-actions{display:flex;align-items:center;gap:10px;margin-top:14px}
.rw-booking-actions .rw-booking-primary{flex:1;min-width:0;margin:0}
.rw-booking-back{border:1px solid #dae5ec;border-radius:12px;padding:10px 14px;min-height:52px;background:#f8fbfc;color:#30566b;font-size:12px;font-weight:800;cursor:pointer}
.rw-booking-error{margin-top:15px;padding:11px 12px;border:1px solid #f3bfc0;border-radius:10px;background:#fff2f2;color:#ab2323;font-size:13px;font-weight:700}
.rw-booking-honeypot{position:absolute!important;width:1px!important;height:1px!important;left:-10000px!important;overflow:hidden!important}
/* Without JavaScript, both sections remain visible and the native HTML form still submits. */
.rw-booking:not(.rw-ready) [data-rw-next],.rw-booking:not(.rw-ready) [data-rw-back],.rw-booking:not(.rw-ready) .rw-booking-progress,.rw-booking:not(.rw-ready) .rw-booking-track{display:none!important}
.rw-booking:not(.rw-ready) .rw-booking-pane+ .rw-booking-pane{border-top:1px solid #e5ecf1;margin-top:20px;padding-top:22px}
.rw-booking:not(.rw-ready) [data-rw-date-fields][hidden]{display:grid!important}
@media(max-width:500px){.rw-booking{border-radius:17px}.rw-booking-head{padding:20px 17px 15px}.rw-booking-form{padding:0 17px 18px}.rw-booking-date-fields{grid-template-columns:1fr}.rw-booking-picks{grid-template-columns:1fr 1fr}.rw-booking-primary{min-height:52px}.rw-booking-schedule{margin-top:18px;padding-top:16px}}
@media(max-width:355px){.rw-booking-picks{grid-template-columns:1fr}.rw-booking-actions{flex-wrap:wrap}.rw-booking-back{width:100%}}
@media(prefers-reduced-motion:reduce){.rw-booking *{transition-duration:0s!important}}
