@font-face {
  font-family: Inter;
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(../fonts/inter-latin-ext-wght-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(../fonts/inter-latin-wght-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* ELFIX customer flow — shared mobile and desktop composition, R5.3.1. */
.client-flow { --client-bg:#071321; --client-panel:#0b182b; --client-line:#2b425f; --client-text:#f0f5fc; --client-muted:#aec0d8; --client-cyan:#13d6eb; padding-block:32px 56px; color:var(--client-text); background:#071321; }
.client-container { width:min(1180px,calc(100% - 48px)); max-width:1180px; }
.client-flow :where(h1,h2,h3,p,dd,dt,span,label,button,a) { overflow-wrap:anywhere; }
.client-flow :where(h1,h2,h3) { color:var(--client-text); letter-spacing:-.025em; }
.client-flow .page-title { margin:0 0 12px; font-size:clamp(1.5rem,2.3vw,2.1rem); line-height:1.2; }
.client-flow .lead { max-width:70ch; font-size:1rem; color:var(--client-muted); margin:0 0 24px; }
.client-flow :where(button,input,select,textarea,a.btn) { min-width:0; max-width:100%; }
.client-flow :where(input,select,textarea) { caret-color:var(--client-cyan); }
.client-flow :focus-visible { outline:2px solid var(--client-cyan); outline-offset:3px; }
.client-flow ::selection { color:#061020; background:var(--client-cyan); }
.client-flow .btn { min-height:46px; border-radius:10px; font-size:.95rem; font-weight:650; line-height:1.35; white-space:normal; box-shadow:none; gap:8px; }
.client-flow .btn-primary { color:#031520; background:var(--client-cyan); border-color:var(--client-cyan); }
.client-flow .btn-primary:hover { background:#49e3f2; }
.client-flow .btn-secondary { color:var(--client-text); background:#0c1b30; border:1px solid var(--client-line); }
.client-flow .btn-secondary:hover { border-color:var(--client-cyan); background:#10273b; }
.client-flow .btn:disabled { opacity:.55; cursor:not-allowed; }
.client-panel { min-width:0; padding:20px; border:1px solid var(--client-line); background:var(--client-panel); border-radius:12px; }
.client-panel h3 { font-size:1.08rem; line-height:1.35; margin:0 0 14px; }
.client-panel p { margin:8px 0 14px; line-height:1.55; }
.client-muted { color:var(--client-muted); font-size:.875rem; line-height:1.55; }
.client-icon { width:20px; height:20px; flex:0 0 20px; display:inline-block; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.client-text-link { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; color:var(--client-cyan); border:0; padding:4px 2px; background:none; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.client-text-link:hover { color:#76eaf4; }
.client-feedback:empty { display:none; }
.client-feedback,.client-notice { font-size:.9rem; line-height:1.55; color:var(--client-muted); }
.client-notice { padding:14px 16px; margin:16px 0; border:1px solid var(--client-line); border-radius:10px; }
.client-feedback.is-error,.client-notice.is-error { color:#ffb7bd; }
.client-flow [hidden] { display:none!important; }
/* Registration: one source of form controls; final review is a separate stage. */
.client-flow #booking-form { max-width:none; margin:0; padding:24px; background:var(--client-panel); border:1px solid var(--client-line); border-radius:12px; box-shadow:none; }
.client-flow #booking-form > .form-grid { gap:24px; }
.client-flow .booking-step-nav { display:flex; align-items:flex-start; justify-content:flex-end; gap:0; margin:0 0 24px; padding:0; border:0; background:none; }
.client-flow .booking-step-nav button { position:relative; flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:8px; max-width:180px; min-height:62px; padding:0 6px; border:0; border-radius:0; background:none; color:var(--client-muted); font-size:.9rem; }
.client-flow .booking-step-nav button span { z-index:1; display:grid; place-items:center; width:34px; height:34px; min-height:34px; flex:0 0 34px; border:1px solid var(--client-line); border-radius:50%; background:var(--client-panel); color:var(--client-text); }
.client-flow .booking-step-nav button:not(:first-child)::before { content:''; position:absolute; top:17px; left:-50%; right:50%; height:1px; background:var(--client-line); }
.client-flow .booking-step-nav button.is-current { color:var(--client-cyan); }
.client-flow .booking-step-nav button.is-current span { background:var(--client-cyan); color:#031520; border-color:var(--client-cyan); }
.client-flow .booking-step-nav button.is-complete span { border-color:var(--client-cyan); }
.client-flow .booking-step { margin:0; min-width:0; }
.client-flow .booking-step > h2 { margin:0 0 20px; font-size:1.2rem; }
.client-flow .booking-step > .form-grid { align-items:start; gap:18px; }
.client-flow #booking-form .form-group { min-width:0; }
.client-flow #booking-form input:not([type="checkbox"]):not([type="radio"]),.client-flow #booking-form select,.client-flow #booking-form textarea { background:#06111f; color:var(--client-text); border-color:var(--client-line); font-size:1rem; }
.client-flow #booking-form label { color:var(--client-text); }
.client-flow #booking-form :is(.help,.optional-label) { color:var(--client-muted); }
.client-flow #booking-form > .service-mode-fieldset { margin-bottom:24px; }
.client-flow .booking-scheduler-kicker,.client-flow .booking-success-card > .eyebrow { display:none; }
.client-flow .booking-step-controls { display:flex; justify-content:space-between; gap:12px; margin:0; padding:0; }
.client-flow .booking-step-controls .btn:only-of-type,.client-flow .booking-step-controls #booking-step-next { margin-left:auto; min-width:150px; }
.client-flow #booking-form.is-review { background:transparent; padding:0; border:0; }
.client-flow #booking-form.is-review > .booking-step-nav { margin-top:-58px; margin-left:52%; }
.client-flow .booking-review-layout { display:grid!important; grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr)!important; align-items:start; gap:20px!important; }
.client-flow #booking-review { margin:0; grid-column:auto; }
.client-flow #booking-review h3 { border-bottom:1px solid var(--client-line); padding-bottom:12px; }
.client-flow #booking-review dl { display:block; margin:0; }
.client-flow #booking-review dl > div { display:grid; grid-template-columns:minmax(120px,.7fr) minmax(0,1.2fr) auto; align-items:start; gap:14px; padding:10px 0; border-bottom:1px solid var(--client-line); }
.client-flow #booking-review dl > div:last-child { border:0; }
.client-flow #booking-review dt { color:var(--client-muted); font-size:.9rem; padding-top:10px; }
.client-flow #booking-review dd { margin:0; color:var(--client-text); line-height:1.5; padding-top:8px; overflow-wrap:anywhere; }
.client-flow #booking-review .booking-review-note { display:block; margin-top:6px; color:var(--client-muted); font-size:.875rem; line-height:1.5; }
.client-flow #booking-review .client-text-link { font-size:.85rem; }
.client-cost-lines { margin:0; }
.client-cost-lines > div { display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--client-line); }
.client-cost-lines dt { color:var(--client-muted); }
.client-cost-lines dd { margin:0; text-align:right; }
.client-flow .booking-review-aside > .form-group { margin:16px 0 0; }
.client-flow .booking-review-aside > .client-text-link { display:flex; width:100%; margin-top:8px; }
.client-flow .booking-review-aside .btn-primary { width:100%; }
.client-flow .booking-review-aside .checkbox-row { display:flex; align-items:flex-start; gap:10px; }
.client-flow .booking-review-aside input[type="checkbox"] { width:18px; height:18px; min-width:18px; margin-top:5px; accent-color:var(--client-cyan); }
.client-flow .booking-review-aside .checkbox-row label { font-size:.875rem; line-height:1.5; min-width:0; }
.booking-symptoms { display:grid; gap:8px; margin:8px 0 12px; color:var(--client-muted); font-size:.85rem; }
.booking-symptoms > div { display:flex; flex-wrap:wrap; gap:8px; }
.client-symptom { min-height:40px; padding:8px 12px; border:1px solid var(--client-line); border-radius:9px; background:#0d2035; color:var(--client-text); cursor:pointer; font:inherit; }
.client-symptom:hover { border-color:var(--client-cyan); }
.client-flow .travel-booking-card,.client-flow .booking-scheduler { box-shadow:none; }
/* Secure tracking — status first, approval or pickup beside it on desktop. */
.client-flow .client-lookup { margin:12px 0 18px; max-width:640px; padding:0; border:0; background:none; box-shadow:none; }
.client-flow .client-lookup > summary { min-height:44px; color:var(--client-muted); cursor:pointer; padding:8px 0; font-size:.9rem; font-weight:500; }
.client-lookup .track-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:14px 0; }
.client-lookup .track-form label { grid-column:1/-1; }
.client-lookup .track-form input { background:#06111f; color:var(--client-text); min-height:46px; border:1px solid var(--client-line); border-radius:10px; padding:10px 14px; font-size:1rem; }
.has-secure-repair #tracking-page-title { font-size:1rem; color:var(--client-muted); font-weight:500; margin-bottom:0; }
.has-secure-repair .client-lookup { margin:0 0 18px; }
.client-repair-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin:0 0 20px; }
.client-repair-heading h2 { font-size:clamp(1.6rem,2.6vw,2.15rem); line-height:1.2; margin:5px 0 0; }
.client-reference { margin:0; color:var(--client-muted); font-size:.85rem; font-variant-numeric:tabular-nums; }
.client-heading-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; column-gap:16px; }
.client-tracking-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(310px,1fr); gap:20px; align-items:start; }
.client-main-column,.client-side-column { min-width:0; display:grid; gap:16px; }
.client-current-status { display:flex; gap:16px; align-items:flex-start; border:1px solid var(--client-cyan); padding:20px; border-radius:12px; background:#082333; }
.client-current-status > .client-icon { width:36px; height:36px; flex-basis:36px; color:var(--client-cyan); }
.client-current-status h3 { font-size:1.25rem; margin:0 0 8px; line-height:1.3; }
.client-current-status p { margin:0; color:#c0dbe4; line-height:1.5; }
.client-price-value { font-size:2.1rem; font-weight:750; line-height:1.1!important; color:var(--client-text); font-variant-numeric:tabular-nums; }
.client-amount { font-size:1.25rem; font-variant-numeric:tabular-nums; }
.client-actions { display:grid; gap:10px; margin-top:20px; }
.client-action-pair { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr)); gap:10px; }
.client-action-pair .btn { white-space:nowrap; overflow-wrap:normal; }
.client-preserve-lines { white-space:pre-line; }
.client-receipt { display:flex; gap:12px; justify-content:space-between; align-items:center; }
.client-receipt h3 { margin:0; }
.client-receipt p { margin-bottom:0; }
.client-pickup-form { display:grid; gap:16px; }
.client-pickup-form > h3,.client-pickup-form > p { margin:0; }
.client-date-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.client-date-choices .btn { padding-inline:8px; font-size:.9rem; }
.client-date-choices [aria-pressed="true"] { color:var(--client-cyan); border-color:var(--client-cyan); background:#082333; }
.client-field { display:grid; gap:8px; color:var(--client-muted); font-size:.9rem; }
.client-field input { min-height:46px; width:100%; padding:10px 12px; border:1px solid var(--client-line); border-radius:10px; background:#06111f; color:var(--client-text); font:inherit; }
.client-times { border:0; padding:0; margin:0; min-width:0; }
.client-times legend { font-size:.9rem; color:var(--client-muted); padding:0 0 10px; }
.client-times [data-pickup-slots] { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; max-height:250px; overflow:auto; scrollbar-width:thin; scrollbar-color:var(--client-line) transparent; }
.client-times [data-pickup-slots] > p,.client-times [data-pickup-slots] > button { grid-column:1/-1; }
.client-time { display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; border:1px solid var(--client-line); border-radius:9px; background:#0b1b2f; cursor:pointer; }
.client-time input { margin:0; width:16px; height:16px; accent-color:var(--client-cyan); }
.client-time:has(input:checked) { border-color:var(--client-cyan); background:#082c3a; color:var(--client-cyan); }
.client-time:focus-within { outline:2px solid var(--client-cyan); outline-offset:2px; }
.client-pickup-state { padding-bottom:6px; }
.client-pickup-state > strong { font-size:1.1rem; color:var(--client-cyan); }
.client-pickup-state > p { font-variant-numeric:tabular-nums; }
.client-pickup-state[data-state="declined"] > strong,.client-pickup-state[data-state="cancelled"] > strong { color:#f5d59a; }
@media (min-width:961px) { .client-side-column { position:sticky; top:100px; } }
@media (max-width:960px) { .client-tracking-grid,.client-flow .booking-review-layout { grid-template-columns:minmax(0,1fr) minmax(270px,.85fr)!important; gap:16px!important; } .client-panel { padding:16px; } .client-flow #booking-form.is-review > .booking-step-nav { margin:0 0 24px; justify-content:flex-start; } .client-flow #booking-review dl > div { grid-template-columns:minmax(0,1fr) auto; gap:0 12px; } .client-flow #booking-review dt { grid-column:1; grid-row:1; padding:0; } .client-flow #booking-review dd { grid-column:1; grid-row:2; padding-top:3px; } .client-flow #booking-review button { grid-column:2; grid-row:1 / 3; align-self:center; } .client-times [data-pickup-slots] { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) {
 .client-flow { padding-block:24px 36px; } .client-container { width:calc(100% - 28px); }
 .client-flow #booking-form { padding:16px; } .client-flow .booking-step > .form-grid { grid-template-columns:minmax(0,1fr); }
 .client-flow .booking-step-nav { justify-content:center; margin-bottom:22px; } .client-flow .booking-step-nav button { font-size:.8rem; max-width:none; }
 .client-tracking-grid,.client-flow .booking-review-layout { grid-template-columns:minmax(0,1fr)!important; gap:16px!important; }
 .client-panel { padding:16px; } .client-current-status { padding:16px; gap:12px; } .client-current-status h3 { font-size:1.15rem; }
 .client-repair-heading { align-items:flex-start; flex-direction:column; gap:8px; } .client-heading-actions { justify-content:flex-start; font-size:.8rem; }
 .client-flow #booking-review dl > div { grid-template-columns:minmax(0,1fr) auto; gap:0 12px; padding:10px 0; }
 .client-flow .booking-review-aside { padding:18px; } .client-pickup-form > .btn-primary { position:static; }
 .client-times [data-pickup-slots] { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .client-time { font-size:.85rem; gap:5px; } .client-time input { width:14px; height:14px; }
 .client-flow .booking-step-controls .btn { min-width:120px; }
 .client-flow .client-lookup .track-form { grid-template-columns:minmax(0,1fr) auto; }
}
@media (max-width:370px) { .client-container { width:calc(100% - 20px); } .client-flow #booking-form,.client-panel { padding:12px; } .client-times [data-pickup-slots] { grid-template-columns:repeat(2,minmax(0,1fr)); } .client-action-pair { grid-template-columns:minmax(0,1fr); } .client-date-choices .btn { font-size:.8rem; } }
@media (prefers-reduced-motion:no-preference) { .client-current-status { animation:client-status-in .18s ease-out both; } @keyframes client-status-in { from { background-color:#103b48; } to { background-color:#082333; } } .client-flow .btn { transition:background-color .15s ease-out,border-color .15s ease-out; } }
@media print { .client-flow .client-actions,.client-flow .client-pickup-form,.client-flow .client-lookup,.client-flow [data-refresh-track] { display:none; } .client-tracking-grid { display:block; } }
