/* Funnel styles only. The main website keeps its original appearance. */
#quote-modal [hidden]{display:none!important}
#quote-modal button:disabled{cursor:not-allowed;opacity:.5}
#quote-modal [data-close-quote]{min-width:44px;min-height:44px}
#quote-modal .modal-shell{max-width:680px}
#quote-modal .modal-shell>div:first-child,#quote-foot{flex-shrink:0}
#quote-title{font-size:clamp(23px,4vw,28px);line-height:1.25}
#quote-title:focus{outline:none}
#quote-body{min-height:0;overscroll-behavior:contain}
#quote-body .note{background:#f0f6ff;border-color:#dbe8ff;color:#344b6b;font-size:14px;line-height:1.6}
#quote-body .btn{border-radius:12px;min-height:48px;line-height:1.35}
#quote-body input,#quote-body select,#quote-body textarea{font-size:16px}
#quote-body .stepper-btn{min-width:44px;min-height:44px}
#quote-body .room-stepper{grid-template-columns:44px minmax(3rem,3.5rem) 44px}
#quote-body .price-shimmer{background:none;color:#2563eb;-webkit-text-fill-color:#2563eb;animation:none}
#quote-body .mt-7{margin-top:22px}
#cta-schedule{order:-1}
#quote-modal .booking-info{background:#eff6ff!important;border-color:#bfdbfe!important;color:#1e3a8a!important}
#quote-modal .booking-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#quote-modal .booking-slot{padding:14px 8px;min-width:0;min-height:50px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;font-size:15px;font-weight:600;color:#1e3a8a}
#quote-modal .booking-slot:hover{border-color:#2563eb;background:#eff6ff}
#quote-modal .booking-slot.selected{background:#2563eb;color:#fff;border-color:#2563eb}
#quote-modal .booking-slots>.btn{grid-column:1/-1}
#bk-confirm{width:100%;min-height:52px}
#bk-week-summary{font-size:12px;line-height:1.8}

/* Calendar colors use the number of appointments still available. */
#quote-modal .booking-calendar{margin-inline:-10px}
#quote-modal .calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}
#quote-modal .calendar-heading h3{font-size:19px;font-weight:700}
#quote-modal .calendar-heading button{min-width:48px;min-height:48px;border:1px solid #dbe3ef;border-radius:12px;background:#fff;color:#1d4ed8;font-size:28px}
#quote-modal .calendar-weekdays,#quote-modal .calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}
#quote-modal .calendar-weekdays span{text-align:center;font-size:12px;font-weight:600;padding:8px 0}
#quote-modal .calendar-day{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:64px;min-width:0;padding:6px 0;border:3px solid white;border-radius:12px;box-shadow:inset 0 0 0 1px #00000012}
#quote-modal .calendar-day strong{font-size:19px;line-height:1.2}
#quote-modal .calendar-day>span{font-size:10px;line-height:1.2;font-weight:600}
#quote-modal .calendar-day[data-availability=open]{background:#dcfce7;color:#166534}
#quote-modal .calendar-day[data-availability=partial]{background:#fef9c3;color:#854d0e}
#quote-modal .calendar-day[data-availability=limited]{background:#ffedd5;color:#9a3412}
#quote-modal .calendar-day[data-availability=unavailable]{background:#fee2e2;color:#991b1b;opacity:1}
#quote-modal .calendar-day[data-availability=unavailable][data-status=off]{background:#f1f5f9;color:#64748b}
#quote-modal .calendar-day[aria-current=date]{box-shadow:inset 0 0 0 2px currentColor}
#quote-modal .calendar-day[aria-pressed=true]{outline:2px solid #2563eb;outline-offset:-4px}
#quote-modal .calendar-day:focus-visible,#quote-modal .calendar-heading button:focus-visible{outline:3px solid #2563eb;outline-offset:-3px}
#quote-modal .calendar-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-top:16px;font-size:12px;color:#475569}
#quote-modal .calendar-legend>span{display:flex;align-items:center;gap:7px}
#quote-modal .calendar-legend i{width:10px;height:10px;border-radius:3px;flex-shrink:0}
#quote-modal .availability-open{background:#22c55e}
#quote-modal .availability-partial{background:#eab308}
#quote-modal .availability-limited{background:#f97316}
#quote-modal .availability-unavailable{background:#ef4444}
#quote-modal .availability-off{background:#94a3b8}

/* Confirmation belongs to the funnel, with a clear return action. */
#quote-modal .confirmation-summary{padding:20px;border:1px solid #dbe3ef;border-radius:16px;background:#fff}
#quote-modal .confirmation-status{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#166534;margin-bottom:16px}
#quote-modal .confirmation-status>span{display:grid;place-items:center;width:28px;height:28px;background:#dcfce7;border-radius:50%;font-size:17px}
#quote-modal .confirmation-summary h3{font-size:20px;font-weight:700;line-height:1.5}
#quote-modal .confirmation-time{font-size:13px;color:#64748b;margin-top:6px}
#quote-modal .confirmation-address{margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0;font-size:15px;line-height:1.6}
#quote-modal .confirmation-reference{font-size:12px;color:#64748b;margin-top:12px}
#quote-modal .confirmation-actions{margin-top:24px}
#quote-modal #bk-return{width:100%;min-height:52px;justify-content:center;gap:12px;box-shadow:none;font-size:16px}
#quote-modal .confirmation-actions p{font-size:13px;color:#64748b;text-align:center;margin-top:16px;line-height:1.6}
#quote-modal .confirmation-actions a{color:#1d4ed8;text-decoration:underline;white-space:nowrap}

@media(max-width:639px){
  #quote-modal{top:var(--visible-top,0px);bottom:auto;height:var(--visible-height,100dvh);padding:0}
  #quote-modal .modal-shell{height:100%;max-height:100%;border-radius:0}
  #quote-modal .modal-shell>div:first-child{padding: max(12px,env(safe-area-inset-top)) 12px 12px 16px}
  #quote-body{padding:20px 16px 24px;scroll-padding:20px}
  #quote-foot{padding:12px 16px max(12px,env(safe-area-inset-bottom));background:white!important;gap:10px;box-shadow:0 -4px 18px #172b4d06}
  #quote-foot .btn{min-height:48px;font-size:15px;border-radius:12px}
  #quote-body>.step>div{margin-top:20px}
  #quote-body .choice{padding:13px;gap:12px;min-height:52px;border-radius:12px}
  #quote-body .choice .ico{width:36px;height:36px;border-radius:10px}
  #quote-body .choice .title{font-size:15px}
  #quote-body .choice .desc{font-size:12px;line-height:1.4}
  #quote-body .choice.selected{box-shadow:0 0 0 1px #2563eb}
  #quote-body .contact-preference{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  #quote-body .contact-preference .choice{padding:12px 6px;min-height:0}
  #quote-body .booking-actions{flex-wrap:wrap}
  #quote-body .booking-actions>.btn-primary{flex:1 1 100%;order:-1;min-height:50px}
  #quote-body .booking-actions>.btn-ghost{min-height:44px}
  #quote-modal .booking-slots{gap:8px}
  #quote-body .room-picker-grid{grid-template-columns:1fr}
  #quote-body .room-counter{min-height:0;padding:14px;flex-direction:row;align-items:center}
  #quote-body .room-help{font-size:12px;max-width:120px}
  #quote-body .room-stepper{grid-template-columns:44px 32px 44px;gap:4px}
  #quote-body .room-count{font-size:22px}
  #quote-body .step:last-child{padding-bottom:env(safe-area-inset-bottom)}
  #quote-body .field{min-width:0;max-width:100%;min-height:48px}
  #quote-body .note{padding:14px}
  #quote-modal .confirmation-summary{padding:16px}
  #quote-modal .confirmation-summary h3{font-size:18px}
}
@media(max-width:359px){
  #quote-body .room-counter{flex-direction:column;align-items:stretch;gap:12px}
  #quote-body .room-help{max-width:none}
  #quote-body .room-stepper{grid-template-columns:44px 1fr 44px}
  #quote-modal .booking-slot{font-size:14px}
}
@media(max-width:639px),(pointer:coarse) and (max-height:500px){
  #quote-modal{top:var(--visible-top,0px);bottom:auto;height:var(--visible-height,100dvh);padding:0}
  #quote-modal .modal-shell{height:100%;max-height:100%;border-radius:0}
  #quote-body{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  #quote-foot{padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
/* Plain-language service scope, before and after the residential estimate. */
.scope-panel{margin:1.25rem 0;padding:1.1rem 1.2rem;border:1px solid #e3d8e7;border-radius:16px;background:#fdf9fc;color:#343044;font-size:.92rem;line-height:1.65}
.scope-panel h3{font-size:1.02rem;font-weight:800;margin:0 0 .4rem}.scope-panel h3 span{display:block;font-size:.8rem;font-weight:600;color:#76657f}.scope-panel h4{font-weight:750;margin:1rem 0 .4rem}
.scope-panel p{margin:.55rem 0}.scope-panel ul{list-style:disc;padding-left:1.2rem;margin:.7rem 0}.scope-panel li{margin:.4rem 0}.scope-panel .scope-exclusion{padding-top:.7rem;border-top:1px solid #e5dce9;color:#635369;font-size:.86rem}
.scope-panel summary{cursor:pointer;font-weight:750;padding:.6rem 0;min-height:44px}.scope-panel summary:focus-visible{outline:2px solid #715778;outline-offset:3px}.scope-eyebrow{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#765c7d}.scope-review{margin-top:0;margin-bottom:1.5rem}
.recurring-estimate{border-left:3px solid #8b6a94;padding:.6rem 0 .6rem .85rem;margin:1rem 0}.recurring-estimate p{font-size:.84rem}.estimate-explainer{text-align:left}
@media(max-width:420px){.scope-panel{padding:.9rem;font-size:.88rem}}

/* Small guided screens: one choice, a short response, then the next task. */
#quote-body.tutorial-body>.step>div{margin-top:18px}
#quote-body .tutorial-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;list-style:none;padding:0;margin:0 0 22px}
.tutorial-stages li{display:flex;align-items:center;justify-content:center;gap:5px;color:#7c899d;font-size:10px;font-weight:650;line-height:1.2;min-width:0}
.tutorial-stages li>span{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:#edf1f7;font-size:10px}
.tutorial-stage-label{display:block;font-weight:650;text-align:center;white-space:nowrap}
.tutorial-stages li[aria-current=step]{color:#2354ba}.tutorial-stages li[aria-current=step]>span{background:#2563eb;color:white}.tutorial-stages li.complete{color:#24715b}.tutorial-stages li.complete>span{background:#e7f6ed}
.tutorial-subtitle{margin-top:8px;color:#67768c;font-size:14px;line-height:1.5}
#quote-body .tutorial-response{padding:22px;border-radius:18px;background:#f3f7fe;border:1px solid #d9e5f7;margin:0;color:#243b5a}
.tutorial-kicker{display:block;text-transform:uppercase;letter-spacing:.09em;font-weight:750;font-size:10px;color:#607c9e;margin-bottom:7px}
#quote-body .tutorial-response h3{font-weight:750;font-size:21px;line-height:1.35;margin:0 0 10px}
#quote-body .tutorial-response h3:focus{outline:none}
.tutorial-response>p{font-size:14px;line-height:1.6;margin:8px 0}
#quote-body .tutorial-chips{list-style:none;display:grid;gap:9px;margin:17px 0;padding:0}
.tutorial-chips li{font-size:14px;line-height:1.4;display:flex;align-items:flex-start;gap:9px}
.tutorial-chips li:before{content:'✓';display:grid;place-items:center;flex:0 0 18px;height:18px;border-radius:50%;font-size:11px;background:#e1eee8;color:#267452}
.tutorial-response .tutorial-limit{font-size:13px;color:#566781;border-top:1px solid #d7e1ef;padding-top:12px;margin-top:15px}
.tutorial-plan-meta{font-size:13px!important;color:#5a6e86;line-height:1.5!important}
.tutorial-details{border-top:1px solid #dce5f1;margin-top:12px;font-size:13px;line-height:1.6}
.tutorial-details summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0;min-height:44px;cursor:pointer;font-weight:650;color:#355886}
.tutorial-details>summary:after{content:'+';font-size:19px;font-weight:500;flex:0 0 auto}.tutorial-details[open]>summary:after{content:'−'}
.tutorial-details summary:focus-visible,.tutorial-text-action:focus-visible{outline:2px solid #2563eb;outline-offset:3px;border-radius:6px}
#quote-body .tutorial-details h3{font-size:15px;margin:10px 0 7px}.tutorial-details h3 span{display:block;font-size:12px;color:#6b7890;font-weight:500}.tutorial-details ul{list-style:disc;padding-left:18px;margin:8px 0}.tutorial-details li{margin:7px 0}.tutorial-details .scope-exclusion{margin-top:12px;font-size:12px;color:#68758b}
#quote-body .tutorial-text-action{min-height:44px;padding:9px 0;color:#2557a2;background:transparent;border:0;font-size:13px;text-decoration:underline;cursor:pointer}
#quote-body .tutorial-recommendation{background:#fffcf2;border-color:#ecdbaa}.tutorial-recommendation .tutorial-kicker{color:#92682c}
.tutorial-decision{display:grid;gap:10px;margin-top:20px}.tutorial-decision .btn{width:100%;justify-content:center;white-space:normal;font-size:14px}
.tutorial-home-size{display:inline-flex;align-items:center;border-radius:8px;background:#eff5ff;color:#44628a;font-size:12px;font-weight:600;padding:7px 10px;margin:0 0 16px}
.tutorial-extras{border:0}.tutorial-extras>summary{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:13px;font-weight:650;color:#536b8b;margin-bottom:8px}.tutorial-extras>summary:before{content:'▾';color:#647f9f}.tutorial-extras:not([open])>summary:before{content:'▸'}.tutorial-extras>summary>span{margin-left:auto;font-size:11px;font-weight:500;color:#718097}
.tutorial-contact-notes{margin-top:5px}
#quote-foot.tutorial-foot{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:7px}
#tutorial-coach{grid-column:1/-1;grid-row:1;font-size:11px;line-height:1.45;color:#5e718b;min-height:16px;margin:0;text-align:center;overflow-wrap:anywhere}
#quote-foot.tutorial-foot #quote-back{grid-column:1;grid-row:2}#quote-foot.tutorial-foot #quote-next{grid-column:2;grid-row:2;white-space:normal}
#quote-foot.tutorial-foot #quote-next:disabled{background:#e8edf5;border-color:#e1e7f0;color:#526782;box-shadow:none;opacity:1}
#quote-body.tutorial-body [data-group=frequency] .choice{min-height:70px;justify-content:center;text-align:center}
#quote-body.tutorial-body [data-group-multi=addons] .choice .desc{font-size:12px;line-height:1.4}
@media(max-width:639px){
 #quote-body.tutorial-body{padding-top:16px!important;padding-bottom:16px!important}
 #quote-body .tutorial-stages{margin-bottom:18px;gap:3px}.tutorial-stages li{flex-direction:column;gap:5px;font-size:10px}.tutorial-stages li>span{flex-basis:20px}
 #quote-body .tutorial-response{padding:17px}#quote-body .tutorial-response h3{font-size:20px}
 #quote-body .tutorial-response>p{font-size:13px}.tutorial-subtitle{font-size:13px}
 #quote-body.tutorial-body>.step>div{margin-top:16px}
 #quote-body.tutorial-body [data-group=serviceType] .choice{padding:12px;min-height:62px}
 #quote-body.tutorial-body [data-group=condition] .choice{min-height:61px;padding:12px}
 #quote-body.tutorial-body [data-group-multi=addons] .choice{min-height:58px;padding:11px}
 #quote-body.tutorial-body .tutorial-chips{gap:8px;margin:14px 0}.tutorial-chips li{font-size:13px}
 #quote-foot.tutorial-foot{padding-top:10px;row-gap:6px}
 #quote-foot.tutorial-foot .btn{font-size:13px;padding-inline:12px}
 .tutorial-decision{margin-top:16px}
 #quote-body.tutorial-body .flow-toggle{margin-top:13px}
 #quote-body.tutorial-body .room-counter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
 #quote-body.tutorial-body .room-stepper{width:auto;grid-template-columns:44px 32px 44px}
 #quote-body.tutorial-body .room-help{max-width:none}
 #quote-body.tutorial-body .field{padding:10px 13px;min-height:48px}
 #quote-body.tutorial-body .contact-preference .choice{padding:9px 4px;gap:5px;min-height:72px}
 #quote-body.tutorial-body .contact-preference .pref-ico{width:26px;height:26px}
 #quote-body.tutorial-body .contact-preference .pref-label{font-size:12px;line-height:1.4}
}
@media(prefers-reduced-motion:reduce){#quote-body.tutorial-body .choice{transition:none}}
