/* ─── Shared close control — .hzo-close ────────────────────────────────
   The CANONICAL close button for overlays/dismissibles (modal, drawer,
   toast, mini-cart, banner, lightbox, mega-menu, mobile-menu). Distilled
   from the DOMINANT pattern shared by the modal / drawer / toast close
   buttons: a transparent square control, centered child svg, muted rest
   color, hover fill on --bg-alt with --text-heading foreground, a
   focus-visible ring on --focus-ring, and a color/background transition
   guarded by prefers-reduced-motion.

   NO-OP ON ARRIVAL (Wave 1): this class is intentionally NOT referenced by
   any existing markup, so it matches no DOM element and cannot change the
   computed-style fingerprint. It DEFINES the shared contract only.

   LATER WAVES: overlay/control components add `.hzo-close` to their close
   elements and DROP the duplicated declarations below, keeping only the
   per-component DELTAS that legitimately differ, e.g.:
     • size          — modal/drawer 44px · toast 28px · mini-cart 24px
     • border-radius — square (--radius-control) here · toast/mini-cart pill
     • position      — lightbox absolute top/right · banner flex-shrink
     • child svg size — 24 / 16 / 14 per component
     • hover model   — banner's color-mix currentColor + lightbox's white-on
                       -scrim are DELIBERATE deltas, not part of this base
   Tokens only — no hardcoded aesthetic literals. */
.hzo-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    border-radius: var(--radius-control);
    cursor: pointer;
    transition: background var(--transition-base) ease, color var(--transition-base) ease;
}
.hzo-close:hover { background: var(--bg-alt); color: var(--text-heading); }
.hzo-close:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 1px; }
.hzo-close > svg { display: block; }

@media (prefers-reduced-motion: reduce) {
    .hzo-close { transition: none; }
}
