/* =============================================================
   HamersFix — theme additions (WordPress glue + real ZIP checker)
   Loaded AFTER tokens/site/menu/responsive. Design-token based.
   NOTE: .ic-stroke and body.drawer-locked are already defined in the
   design CSS (site.css / menu.css) — we deliberately do not redefine them.
   ============================================================= */

/* ---- WordPress admin-bar offset for the sticky header --------- */
body.admin-bar .site-hd { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-hd { top: 46px; } }

/* ---- Real ZIP checker states (mock had a single fake .ok block) -- */
.zipbox__msg {
  display: none;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 14px;
}
.zipbox__msg svg { flex-shrink: 0; }
.zipbox__msg:focus { outline: none; }
.zipbox__msg a { color: inherit; text-decoration: underline; }
.zipbox.has-msg .zipbox__msg { display: flex; }
.zipbox.has-msg .hint { display: none; }
.zipbox__msg.is-ok   { background: var(--ok-100);   color: var(--ok-700); }
.zipbox__msg.is-warn { background: var(--warn-100); color: var(--warn-700); }
.zipbox__msg.is-err  { background: var(--err-100);  color: var(--err-700); }

/* ---- Cover image helper for ACF/editor hero images ------------ */
.hf-cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---- Accessibility: honour reduced-motion preference ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---- Admin editor note for placeholder/marketing fields ------- */
.acf-field .hf-note { color: var(--cta-700, #c7501a); font-weight: 600; }

/* ---- "View all services" link inside the Services mega-menu ---- */
.mega__all {
  display: inline-block;
  margin-top: 12px;
  font: 700 13px/1 var(--ff-sans);
  color: var(--brand-700);
  text-decoration: none;
}
.mega__all:hover { text-decoration: underline; }

/* ---- Veteran/senior discount in the topline ------------------- */
.topline__offer { font-weight: 700; color: var(--cta-500, #ff8a4c); }
/* The design hides the right topline group on mobile; keep the offer
   visible there (it's a promo) and drop only the license line instead. */
@media (max-width: 700px) {
  .topline .grp:last-child { display: inline-flex; }
  .topline .grp:last-child > span:not(.topline__offer):not(.sep) { display: none; }
  .topline .grp:last-child .sep { display: none; }
}

/* ---- Veteran/senior discount line in the home hero ------------ */
.hero__offer {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 18px 0 0; padding: 9px 14px;
  background: var(--cta-100, #fdece1); color: var(--cta-700, #c7501a);
  border: 1px solid #f8d4bf; border-radius: 999px;
  font: 700 13.5px/1.3 var(--ff-sans); max-width: max-content;
}
.hero__offer-ic { font-size: 15px; line-height: 1; }

/* ---- Diagnostic pricing note under the service-hero CTAs ------- */
.diag-note {
  margin-top: 18px; display: flex; flex-direction: column; gap: 6px;
  font: 600 14px/1.4 var(--ff-sans); color: var(--ink-700);
}
.diag-note__row { display: inline-flex; align-items: center; gap: 9px; }
.diag-note__ic { font-size: 15px; line-height: 1; }
.diag-note__row--combo {
  color: var(--cta-700, #c7501a); font-weight: 700;
  padding-left: 24px; font-size: 13.5px;
}

