/* Accessibility hardening — WCAG 2.2 AA target. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #205c3b;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px rgba(255,255,255,.92);
}

.tc-skip-link {
  position: fixed;
  inset-block-start: 12px;
  inset-inline-start: 12px;
  z-index: 100000;
  padding: 12px 18px;
  border-radius: 10px;
  background: #1e1e1e;
  color: #fff;
  font-weight: 700;
  transform: translateY(-180%);
  transition: transform 150ms ease-out;
}
.tc-skip-link:focus { transform: translateY(0); }

[hidden] { display: none !important; }

:where(button, .button, .tc-button, input[type="submit"], input[type="button"], input[type="reset"], .woocommerce a.button) {
  min-block-size: 44px;
}

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  min-block-size: 44px;
}

:where(input, select, textarea)[aria-invalid="true"],
.woocommerce-invalid :where(input, select, textarea) {
  border-color: #c62828 !important;
  box-shadow: 0 0 0 2px rgba(198,40,40,.16);
}

.woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.tc-alert {
  scroll-margin-block-start: 120px;
}

.tc-primary-nav[aria-hidden="true"],
.tc-search-shell[aria-hidden="true"] {
  visibility: hidden;
}

html.tc-menu-open,
html.tc-search-open,
html.tc-modal-open { overflow: hidden; }

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

@media (forced-colors: active) {
  :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid Highlight;
    box-shadow: none;
  }
  .tc-button, .button, button { border: 1px solid ButtonText; }
}
