:root{--brand:#f6880b;--brand-soft:#fff4e6;--bg:#f4f6f9;--surface:#fff;--ink:#21252f;--slate:#313c4d;--ink-soft:#5b6472;--rule:#e3e7ee;--accent:#b85f00;--accent-ink:#21252f;--error:#b42318;--ok:#1f7a4d;--danger:#b42318;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 Poppins,ui-sans-serif,system-ui,-apple-system,sans-serif}a{color:var(--accent)}.site-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;padding:1rem max(16px,env(safe-area-inset-left)) 1rem max(16px,env(safe-area-inset-right));border-bottom:1px solid var(--rule);background:var(--surface)}.brand{display:inline-flex;align-items:center;text-decoration:none;color:var(--ink)}.logo-crop{display:block;width:150px;height:48px;overflow:hidden;position:relative}.logo-crop img{position:absolute;width:237px;height:auto;left:-42px;top:-40px}.tagline{color:var(--ink-soft);font-size:.9rem}main{display:block}.page{max-width:44rem;margin:0 auto;padding:2rem max(16px,env(safe-area-inset-left)) 4rem max(16px,env(safe-area-inset-right));display:flex;flex-direction:column;gap:1.5rem}.intro h1{font-size:clamp(1.7rem,5vw,2.2rem);margin:0 0 .6rem;letter-spacing:-.02em}.intro p{margin:0 0 .6rem;color:var(--ink-soft)}.areas{font-size:.9rem}.booking{display:flex;flex-direction:column;gap:1.25rem}.card{background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:1.25rem}.card h2{font-size:1rem;margin:0 0 1rem;letter-spacing:-.01em}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));grid-gap:.6rem;gap:.6rem}.service{display:flex;flex-direction:column;gap:.15rem;padding:.8rem;background:var(--bg);border:2px solid var(--rule);border-radius:5px;cursor:pointer;text-align:left;font:inherit;color:inherit;min-width:0}.service:hover{border-color:var(--ink-soft)}.service.is-selected{border-color:var(--accent);background:var(--surface)}.service-name{font-weight:600}.service-fee{color:var(--ink-soft);font-size:.85rem}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem;min-width:0}.field-row{display:flex;flex-wrap:wrap;gap:0 1rem}.field-row .field{flex:1 1 11rem}label{font-size:.9rem;font-weight:500}input:not([type]),input[type=date],input[type=email],input[type=tel],input[type=text]{padding:.6rem .7rem;border:1px solid var(--rule);border-radius:4px;font:inherit;background:var(--surface);color:var(--ink);min-width:0;width:100%}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{padding:.7rem 1.2rem;background:var(--accent);color:var(--accent-ink);border:none;border-radius:4px;font:inherit;font-weight:600;cursor:pointer}button.primary:disabled{opacity:.45;cursor:not-allowed}.slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));grid-gap:.5rem;gap:.5rem}.slot{padding:.6rem .4rem;background:var(--bg);border:2px solid var(--rule);border-radius:4px;font:inherit;cursor:pointer;color:inherit}.slot:hover{border-color:var(--ink-soft)}.slot.is-selected{border-color:var(--accent);background:var(--surface);font-weight:600}.consent{display:flex;gap:.7rem;align-items:flex-start;padding:.9rem;background:var(--bg);border:1px solid var(--rule);border-radius:4px;margin-bottom:1rem}.consent input{margin-top:.3rem;flex:none;width:auto}.consent label{font-weight:400;font-size:.92rem}.consent-note{margin:.4rem 0 0;font-size:.82rem}.consent-note,.muted{color:var(--ink-soft)}.muted{font-size:.9rem}.error{color:var(--error);font-size:.92rem;margin:0 0 .8rem}.confirmation .when{font-size:1.15rem;font-weight:600;color:var(--ok);margin:0 0 .6rem}.site-footer{border-top:1px solid var(--rule);padding:1.25rem max(16px,env(safe-area-inset-left));color:var(--ink-soft);font-size:.85rem}.site-footer p{margin:0}.tech-head{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:baseline;margin-bottom:.8rem}.jobs,.tech-head h2{margin:0}.jobs{list-style:none;padding:0;display:flex;flex-direction:column}.travel{font-size:.78rem;color:var(--ink-soft);padding:.25rem 0 .25rem .9rem;border-left:2px dotted var(--rule);margin-left:.4rem}.job{display:grid;grid-template-columns:auto 1fr auto auto;grid-gap:.5rem .9rem;gap:.5rem .9rem;align-items:baseline;padding:.6rem .7rem;background:var(--bg);border:1px solid var(--rule);border-radius:4px;min-width:0}.job-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.job-what{min-width:0}.job-zip{color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.job-status{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .45rem;border:1px solid;border-radius:2px;white-space:nowrap;justify-self:start}.status-booked{color:var(--accent)}.status-completed{color:var(--ok)}.job-actions,.job-customer{grid-column:1/-1;font-size:.9rem}.job-actions{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}.job-actions summary{cursor:pointer;color:var(--accent)}.move-form{display:flex;flex-wrap:wrap;gap:.5rem .8rem;align-items:flex-end;padding-top:.5rem}.move-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem}button.danger{background:transparent;color:var(--danger);border:1px solid;border-radius:4px;padding:.45rem .8rem;font:inherit;cursor:pointer}.notice{margin:.8rem 0 0;padding:.55rem .8rem;border-radius:4px;border:1px solid}p.notice.notice-ok{color:var(--ok)}p.notice.notice-error{color:var(--danger)}@media (max-width:30rem){.job{grid-template-columns:auto 1fr}}.next-job{border-left:4px solid var(--accent)}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:600}.next-time{font-size:clamp(1.8rem,8vw,2.4rem);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:.3rem 0 .2rem;letter-spacing:-.02em}.next-what{margin:0;font-size:1.05rem;color:var(--ink-soft)}.next-who{margin:.6rem 0 0;font-size:1.15rem;font-weight:600}.next-where{margin:.15rem 0 0;color:var(--ink-soft)}.big-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:.6rem;gap:.6rem;margin:1rem 0 .6rem}a.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:4px;font-weight:600}a.button.primary,a.button.primary:visited{background:var(--accent);color:var(--accent-ink)}.big{min-height:3.2rem;padding:0 1rem;font-size:1.05rem;width:100%}a.button.secondary,button.secondary{background:transparent;color:var(--ink);border:1px solid var(--rule);border-radius:4px;font:inherit;font-weight:600;cursor:pointer}.day-nav{display:flex;gap:1.2rem;margin-top:.4rem;font-size:.95rem}.tech-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.6rem;gap:.6rem}.script{margin:.3rem 0 .6rem;padding:.6rem .8rem;border-left:3px solid var(--accent);font-size:.95rem}.script,select{background:var(--surface)}select{font:inherit;padding:.6rem;border:1px solid var(--rule);border-radius:4px;color:var(--ink);width:100%}.lines{width:100%;border-collapse:collapse;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lines td,.lines th{padding:.45rem .3rem;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}.lines th{font-size:.8rem;color:var(--ink-soft);font-weight:600}.lines .num{text-align:right;white-space:nowrap}.lines tfoot td{border-bottom:none}.lines tr.total td{font-weight:700;font-size:1.05rem;border-top:2px solid var(--ink)}.line-kind{display:block;font-size:.8rem}.link-button{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;padding:0;text-decoration:underline}.inv-badge{margin-left:.7rem;vertical-align:middle;font-size:.75rem}.status-draft{color:var(--ink-soft)}.status-sent{color:var(--accent)}.status-paid{color:var(--ok)}.status-void{color:var(--danger)}.plain{list-style:none;margin:0;padding:0;display:grid;grid-gap:.3rem;gap:.3rem}@media print{.no-print,footer,header{display:none!important}.card{border:none;padding:0}body{background:#fff;color:#000}}.lines-wrap{overflow-x:auto}@media (max-width:30rem){.lines td:first-child{word-break:break-word}}.check-row{display:flex;gap:.5rem;align-items:center;margin:.35rem 0;font-size:.95rem}.check-row input[type=checkbox]{width:1.1rem;height:1.1rem}.hours{border-collapse:collapse}.hours td{padding:.25rem .6rem .25rem 0}.hours input[type=time]{width:7.5rem}.zip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));grid-gap:0 .8rem;gap:0 .8rem;padding:.3rem 0 .6rem .4rem}details>summary{cursor:pointer;padding:.3rem 0}.notice-card{border-color:var(--danger)}@media (max-width:30rem){.hours input[type=time]{width:6.3rem}}.slot-choice{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .8rem;border:1px solid var(--rule);border-radius:4px;cursor:pointer}.slot-choice:has(input:checked){border-color:var(--accent);outline:2px solid var(--accent)}.slots{display:flex;flex-wrap:wrap;gap:.5rem}.message-log li{padding:.55rem 0;border-bottom:1px solid var(--rule);font-size:.92rem}.msg-sent{color:var(--ok)}.msg-error,.msg-failed{color:var(--danger)}.msg-suppressed{color:var(--ink-soft)}.job-problem{grid-column:1/-1;display:block;font-size:.9rem;color:var(--ink);background:var(--surface);border-left:3px solid var(--accent);padding:.35rem .6rem;margin:.3rem 0;white-space:pre-wrap;overflow-wrap:anywhere}.booking-page{background:var(--surface);min-height:calc(100vh - 140px)}.wizard{max-width:36rem;margin:0 auto;padding:1.5rem max(16px,env(safe-area-inset-left)) 6rem max(16px,env(safe-area-inset-right))}.page .wizard{padding-top:.5rem}.progress{height:4px;background:var(--rule);border-radius:2px;overflow:hidden}.progress span{display:block;height:100%;background:var(--brand);transition:width .35s ease}.step-count{margin:.9rem 0 .2rem;color:var(--ink-soft);font-size:.85rem}.step-title{font-size:clamp(1.6rem,6vw,2.1rem);line-height:1.15;font-weight:600;letter-spacing:-.02em;margin:0 0 .5rem;color:var(--ink);outline:none}.step-help{color:var(--ink-soft);margin:0 0 1.25rem;max-width:34rem}.step-help.small{font-size:.88rem;margin-top:.75rem}.step-help.wrap{overflow-wrap:anywhere}.step-body{display:flex;flex-direction:column}.appliances{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.75rem;gap:.75rem}@media (min-width:34rem){.appliances{grid-template-columns:repeat(3,1fr)}}.appliance{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:1.1rem .5rem .95rem;background:var(--surface);border:1.5px solid var(--rule);border-radius:14px;color:var(--slate);font:inherit;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.appliance:hover{border-color:#c9d0db}.appliance:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.appliance.is-chosen{border-color:var(--brand);background:var(--brand-soft);color:var(--accent)}.appliance-art{width:64px;height:64px;display:block;margin-bottom:.35rem}.appliance-art svg{width:100%;height:100%}.appliance.is-chosen .appliance-art,.appliance:hover .appliance-art{color:var(--brand)}.appliance-name{font-weight:600;color:var(--ink);font-size:1rem}.appliance-fee{font-size:.8rem;color:var(--ink-soft)}.field-label{display:block;font-weight:500;font-size:.92rem;margin:0 0 .35rem;color:var(--ink)}.wizard input:not([type=checkbox]),.wizard select,.wizard textarea{width:100%;font:inherit;font-size:1rem;padding:.75rem .85rem;border:1.5px solid var(--rule);border-radius:10px;background:var(--surface);color:var(--ink)}.wizard input:focus,.wizard select:focus,.wizard textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.wizard input[readonly]{background:var(--bg);color:var(--ink-soft)}.wizard textarea{resize:vertical;min-height:7.5rem;line-height:1.5}.big-input{font-size:1.5rem!important;letter-spacing:.08em;max-width:12rem}.field-error{color:var(--error);font-size:.88rem;margin:.4rem 0 0}.field-hint{color:var(--ink-soft);font-size:.84rem;margin:.35rem 0 0}.fld{margin-bottom:1rem;min-width:0}.fld.grow{flex:1 1 14rem}.fld.has-error input,.fld.has-error textarea{border-color:var(--error)}.row{display:flex;flex-wrap:wrap;gap:0 .75rem}.row>.fld:not(.grow){flex:0 1 8rem}.days{gap:.5rem;overflow-x:auto;padding:.1rem .1rem .6rem;margin:0 0 1rem;scroll-snap-type:x proximity}.day,.days{display:flex}.day{flex:0 0 4.4rem;flex-direction:column;align-items:center;padding:.55rem .2rem;border:1.5px solid var(--rule);border-radius:12px;background:var(--surface);font:inherit;color:var(--ink);cursor:pointer;scroll-snap-align:start}.day-month,.day-name{font-size:.75rem;color:var(--ink-soft)}.day-num{font-size:1.35rem;font-weight:600;line-height:1.2}.day.is-chosen{border-color:var(--brand);background:var(--brand-soft)}.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.2rem,1fr));grid-gap:.5rem;gap:.5rem}.time{padding:.7rem .4rem;border:1.5px solid var(--rule);border-radius:10px;background:var(--surface);font:inherit;font-weight:500;color:var(--ink);cursor:pointer}.time.is-chosen{border-color:var(--brand);background:var(--brand);color:var(--accent-ink)}.day:focus-visible,.time:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.review{margin:0 0 1rem;border-top:1px solid var(--rule)}.review-row{display:grid;grid-template-columns:6.5rem 1fr auto;grid-gap:.75rem;gap:.75rem;padding:.85rem 0;border-bottom:1px solid var(--rule);align-items:start}.review dt{color:var(--ink-soft);font-size:.9rem}.review dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}@media (max-width:26rem){.review-row{grid-template-columns:1fr auto}.review dt{grid-column:1/-1;margin-bottom:-.5rem}}.fee-note{background:var(--bg);border-radius:10px;padding:.85rem 1rem;margin:0 0 1rem;font-size:.93rem}.wizard-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem}.wizard-nav .back{background:none;border:none;font:inherit;font-weight:500;color:var(--ink-soft);padding:.8rem .25rem;cursor:pointer}.wizard .primary,.wizard-nav .primary{background:var(--brand);color:var(--accent-ink);border:none;border-radius:999px;font:inherit;font-weight:600;font-size:1rem;padding:.85rem 1.75rem;cursor:pointer}.wizard-nav .primary:disabled{background:#f3d2ab;color:#7d6a55;cursor:not-allowed}.wizard-nav .back:focus-visible,.wizard-nav .primary:focus-visible{outline:3px solid var(--slate);outline-offset:2px}@media (max-width:34rem){.wizard-nav{position:fixed;left:0;right:0;bottom:0;margin:0;z-index:5;padding:.75rem max(16px,env(safe-area-inset-left)) calc(.75rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--rule)}}.done-mark{width:56px;height:56px;color:var(--ok);margin:1rem 0 .75rem}.done-when{font-size:1.2rem;font-weight:600;margin:0 0 .75rem}.done-links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0 0 1rem;font-weight:500}@media (prefers-reduced-motion:reduce){.appliance,.progress span{transition:none}}