/* Phase 49 — accessibility foundation */
.zy-skip-link:focus,.zy-skip-link:focus-visible{position:fixed!important;left:12px!important;top:12px!important;z-index:10060!important;width:auto!important;height:auto!important;margin:0!important;padding:12px 16px!important;overflow:visible!important;clip:auto!important;white-space:normal!important;border:2px solid currentColor!important;border-radius:10px;background:#fff;color:#111;box-shadow:0 10px 30px rgba(0,0,0,.18)}

/* Consistent keyboard focus without removing native fallback focus. */
:where(a,button,input,select,textarea,[role="button"],[role="tab"],[tabindex]):focus-visible{outline:3px solid var(--zy-color-focus,#161615);outline-offset:3px}

/* 44px minimum target baseline for common interactive controls. */
.zy-header-icon,.zy-icon-btn,.zy-home-hero__nav,.zy-pdp-gallery__nav,.zy-pdp-media__expand,.zy-pdp-fullscreen__close,.zy-pdp-fullscreen__nav,.zy-consent-modal__close,.zy-privacy-choices{min-width:44px;min-height:44px}
.zy-privacy-choices{display:inline-flex;align-items:center;justify-content:center;padding-inline:6px;margin-inline:-6px}

/* Do not communicate validation with color alone. */
.zy-checkout-field.has-error .zy-checkout-field__label::after{content:" — error";font-weight:700;color:var(--zy-color-danger,#b3261e)}
.zy-checkout-field__error:empty{display:none}
.zy-checkout-field__error:not(:empty){display:block;margin-top:6px;color:var(--zy-color-danger,#b3261e);font-weight:650}
[aria-invalid="true"]{border-color:var(--zy-color-danger,#b3261e)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--zy-color-danger,#b3261e) 15%,transparent)}

/* Screen-reader live announcer. */
.zy-a11y-live{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* High contrast / forced colors keep controls legible. */
@media (forced-colors:active){
  :where(.zy-btn,.zy-button,.zy-chip,.zy-header-icon,.zy-icon-btn,.zy-input,.zy-select,.zy-textarea,.zy-variant-option,.zy-picker-option){forced-color-adjust:auto;border:1px solid ButtonText}
  :where(a,button,input,select,textarea,[role="tab"]):focus-visible{outline:3px solid Highlight}
}

/* Reduced motion: remove non-essential transform/scroll choreography and shimmer. */
@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}
  .zy-skeleton::after{display:none!important}
}

/* Reflow resilience at narrow/zoomed widths. */
@media (max-width:480px){
  .zy-consent__actions,.zy-otp-actions{align-items:stretch}
  .zy-consent__actions>button,.zy-otp-actions>button{min-height:44px}
}

.zy-home-hero__pause{min-height:44px;border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer;padding:0 8px;color:inherit}

/* Phase 55 passive bot trap: visually off-screen, excluded from tab/AT in markup. */
.zy-checkout-trap{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:.001!important;pointer-events:none!important}
