/* Shared surfaces make both themes complete, including the hero and dialogs. */
:root,:root[data-theme="dark"]{
  color-scheme:dark;
  --ink:#f1f3ee;--paper:#111315;--muted:#a3acae;--line:#303639;
  --surface:#1b1e21;--surface-alt:#16191c;--surface-soft:#23282c;--field:#14181b;
  --quiet:#9ca6a9;--heading-soft:#8f999b;--accent-text:#ff5766;--accent-soft:#df152518;
  --hero-base:#111315;--hero-rgb:17 19 21;--hero-text:#f5f6f1;--hero-muted:#b7bec0;
  --hero-border:#ffffff33;--hero-stamp:linear-gradient(145deg,#242b30eb,#101519f5);--hero-foot:#1a1d20;
  --hero-button-bg:#ffffff1f;--hero-button-hover:#ffffff30;--hero-button-border:#ffffff48;
  --panel-shadow:#00000035;--backdrop:#050708d6;
}
:root[data-theme="light"]{
  color-scheme:light;
  --ink:#151718;--paper:#f6f5f1;--muted:#626b63;--line:#d9ded5;
  --surface:#ffffff;--surface-alt:#ecefe8;--surface-soft:#e6ebe0;--field:#ffffff;
  --quiet:#717b70;--heading-soft:#737d72;--accent-text:#c70e1d;--accent-soft:#df15250d;
  --hero-base:#f6f5f1;--hero-rgb:246 245 241;--hero-text:#171a18;--hero-muted:#60695f;
  --hero-border:#15171833;--hero-stamp:linear-gradient(145deg,#fffffff2,#eeefebee);--hero-foot:#e9ede4;
  --hero-button-bg:#ffffffe0;--hero-button-hover:#ffffff;--hero-button-border:#ffffffcc;
  --panel-shadow:#1e282310;--backdrop:#101613a8;
}
body{background:var(--paper);color:var(--ink)}
.utility-bar{background:var(--surface-alt);color:var(--muted);border-bottom:1px solid var(--line)}
.utility-inner>a:hover{color:var(--ink)}
.site-header,.mobile-menu,.assurance-strip,.process-section,.faq-section,.map-card,.quote-card{background:var(--surface);color:var(--ink)}
.site-header.is-scrolled{box-shadow:0 4px 24px var(--panel-shadow)}
.brand,.footer-brand{background:transparent;border:0;border-radius:0;padding:0}
.theme-toggle{width:42px;height:42px;border-radius:50%;background:var(--surface-alt);border-color:var(--line);flex-shrink:0;color:var(--ink);transition:background .2s,border-color .2s,color .2s}
.theme-toggle .icon{width:20px;height:20px}
.theme-toggle:hover{border-color:var(--accent-text);color:var(--accent-text);background:var(--accent-soft)}
:root[data-theme="dark"] .theme-icon-moon,:root[data-theme="light"] .theme-icon-sun{display:none}
.hero{background:var(--hero-base);color:var(--hero-text)}
.hero-shade{background:linear-gradient(90deg,rgb(var(--hero-rgb)) 8%,rgb(var(--hero-rgb) / .98) 25%,rgb(var(--hero-rgb) / .88) 36%,rgb(var(--hero-rgb) / .15) 65%,rgb(var(--hero-rgb) / .04) 100%),linear-gradient(0deg,rgb(var(--hero-rgb)) 8%,transparent 43%)}
.hero .eyebrow.light,.hero-description,.hero-note,.hero-caption{color:var(--hero-muted)}
.hero-secondary{border-color:var(--hero-border)}
.hero-secondary:hover{border-color:var(--hero-text)}
.hero-stamp{background:var(--hero-stamp);border-color:var(--hero-border);color:var(--hero-text)}
.hero-stamp>span{color:var(--hero-text)}
.hero-caption>span:last-child{border-color:var(--hero-border)}
.hero-foot{background:var(--hero-foot);border-color:var(--line)}
.hero-foot-inner{color:var(--muted)}
.hero-foot a{color:var(--ink)}
.hero-foot a:hover{color:var(--accent-text)}
.eyebrow,.eyebrow.light{color:var(--muted)}
.muted-heading,.grey-heading{color:var(--heading-soft)}
.towing-card{background:var(--surface);color:var(--ink);border-color:var(--line)}
.towing-card:hover{box-shadow:0 13px 28px var(--panel-shadow)}
.card-number{color:var(--quiet)}
.button-outline{border-color:var(--line);color:var(--ink)}
.button-outline:hover{background:var(--surface-soft);border-color:var(--quiet)}
.text-link{border-color:var(--line)}
.text-link:hover{color:var(--accent-text);border-color:var(--accent-text)}
.roadside-section{background:var(--surface-alt);color:var(--ink)}
.roadside-section .section-intro,.roadside-panel p{color:var(--muted)}
.roadside-list,.roadside-item{border-color:var(--line)}
.roadside-trigger{color:var(--muted)}
.roadside-trigger:hover,.roadside-item.is-open .roadside-trigger{color:var(--ink)}
.roadside-number,.roadside-trigger .icon{color:var(--quiet)}
.roadside-item.is-open .roadside-number{color:var(--accent-text)}
.roadside-panel a{color:var(--ink)}
.roadside-panel a:hover{color:var(--accent-text)}
.roadside-visual{color:white}
.roadside-image-caption .eyebrow.light{color:#c6c9c8}
.process-top .icon{color:var(--quiet)}
.about-section{background:var(--surface-alt)}
.about-copy>p:not(.eyebrow){color:var(--muted)}
.city-search,.city-button{background:var(--surface);border-color:var(--line);color:var(--ink)}
.city-search>.icon,.city-search>span,.city-status{color:var(--quiet)}
.city-button:hover{color:var(--accent-text);border-color:var(--accent-text)}
.city-button.is-selected{color:var(--accent-text);border-color:var(--accent-text);background:var(--accent-soft)}
.area-note a{border-color:var(--line)}
.map-pin{background:var(--accent-soft);color:var(--accent-text)}
.map-24 small,.faq-list summary .icon{color:var(--quiet)}
.contact-section{background:var(--surface-alt);color:var(--ink)}
.contact-copy>p:not(.eyebrow),.phone-label,.contact-details span{color:var(--muted)}
.contact-details,.footer-top{border-color:var(--line)}
.contact-details>div>.icon{color:var(--quiet)}
.contact-details a{color:var(--ink)}
.contact-details a:hover,.contact-phone:hover{color:var(--accent-text)}
.quote-card{border:1px solid var(--line)}
.field input,.field select,.field textarea{background:var(--field);border-color:var(--line);color:var(--ink)}
.field input::placeholder,.field textarea::placeholder,.field label .optional{color:var(--quiet)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--red);box-shadow:0 0 0 3px var(--accent-soft)}
.field label>span:not(.optional){color:var(--accent-text)}
.input-action>button{background:var(--field);border-color:var(--line)}
.input-action>button:hover{background:var(--accent-soft)}
.form-note,.form-note strong{color:var(--muted)}
.site-footer{background:var(--surface);color:var(--muted);border-top:1px solid var(--line)}
.footer-top p,.back-top{color:var(--ink)}
.footer-top p span{color:var(--muted)}
.footer-bottom a:hover,.footer-bottom button:hover{color:var(--ink)}
.mobile-call-bar{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:0 -4px 25px var(--panel-shadow)}
dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
dialog::backdrop{background:var(--backdrop)}
.dialog-close{background:var(--surface);color:var(--ink)}
.email-dialog pre{background:var(--surface-alt);border-color:var(--line);color:var(--ink)}
.dialog-content>.dialog-note{color:var(--muted)}
.dialog-note a,.dialog-content>.copy-status{color:var(--accent-text)}
.privacy-dialog p a{border-color:var(--line)}
.skip-link{background:var(--surface);color:var(--ink)}
@media(max-width:900px){
  .desktop-nav{display:none}
  .menu-toggle{display:inline-flex;width:38px;height:38px;border:0;flex-shrink:0}
  .mobile-menu{display:block;padding:8px 24px 17px;border-top:1px solid var(--line);box-shadow:0 14px 20px var(--panel-shadow);position:absolute;left:0;right:0}
  .mobile-menu>a{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;padding:16px 0;border-bottom:1px solid var(--line)}
  .mobile-menu>a .icon{color:var(--red);width:17px;height:17px}
  .header-call{margin-left:auto}
}
@media(max-width:767px){
  .header-inner{gap:9px}
  .theme-toggle{width:36px;height:36px}.theme-toggle .icon{width:19px;height:19px}
  .header-call{width:34px;height:36px;display:flex;justify-content:center;flex-shrink:0}
  .header-call>span{display:none}.header-call>.icon{display:block;width:19px;height:19px}
  .hero-shade{background:linear-gradient(180deg,rgb(var(--hero-rgb) / .08) 0%,rgb(var(--hero-rgb) / .16) 22%,rgb(var(--hero-rgb) / .38) 42%,rgb(var(--hero-rgb) / .82) 58%,rgb(var(--hero-rgb) / .96) 72%,rgb(var(--hero-rgb)) 100%)}
  :root:not([data-theme="light"]) .hero-image{filter:brightness(.95) contrast(1.02) saturate(1.02)}
  :root:not([data-theme="light"]) .hero-shade{background:linear-gradient(180deg,rgb(var(--hero-rgb) / .10) 0%,rgb(var(--hero-rgb) / .18) 20%,rgb(var(--hero-rgb) / .38) 40%,rgb(var(--hero-rgb) / .82) 58%,rgb(var(--hero-rgb) / .96) 74%,rgb(var(--hero-rgb)) 100%)}
  .hero-stamp{background:var(--hero-stamp)}
}
