/*
 * Elysian Level 1 — Foundation hardening (v5.19.0)
 * Non-destructive guardrails loaded after the legacy cumulative stylesheet.
 * No commerce logic or approved Elysian visual identity is redefined here.
 */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  min-height:100vh;
  min-height:100dvh;
}
[hidden]{display:none!important}

/* Prevent long dynamic WooCommerce/support strings from forcing horizontal overflow. */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.entry-content,
.elysian-tracking-message,
.elysian-live-chat-message,
.elysian-confirmation-card{
  overflow-wrap:anywhere;
}

/* Keep flex/grid descendants shrinkable when product names, prices or addresses are long. */
.site-header-refined *,
.elysian-l25-catalogue *,
.woocommerce-cart-form *,
.woocommerce-checkout *,
.elysian-confirmation *,
.elysian-tracking-page *{
  min-width:0;
}

/* Coarse-pointer controls must remain reliably tappable without changing desktop density. */
@media (pointer:coarse){
  .menu-toggle,
  .icon-button,
  .header-bag-refined,
  .search-close,
  .elysian-submenu-toggle,
  .mobile-bottom-nav-refined a{
    min-width:44px;
    min-height:44px;
  }
}

/* Preserve visible keyboard focus even when older component layers reset outlines. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid #111!important;
  outline-offset:3px!important;
}

/* Motion accessibility: interaction remains functional, decorative motion is effectively removed. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}
