/* Site-wide accessibility and responsive helpers */
:root{
  --focus-color: #ffbf47;
  --primary-color: #3498db;
}

/* Skip link (also available in admin header) */
.skip-link{
  position: absolute;
  left: 8px;
  top: -40px;
  background: #000;
  color: #fff;
  padding: 8px 12px;
  z-index: 9999;
  border-radius: 4px;
  transition: top 0.18s ease;
}
.skip-link:focus{
  top: 8px;
  outline: 3px solid var(--focus-color);
}

/* Visible focus for keyboard users */
:focus{
  outline: 3px solid var(--focus-color);
  outline-offset: 2px;
}
:focus:not(:focus-visible){
  outline: none;
}

/* Ensure touch targets are large enough */
.btn, .btn-compact, button, .payment-option {
  min-height: 44px;
  min-width: 44px;
  touch-action: manipulation;
}

/* Make interactive labels keyboard accessible */
.payment-option { display:inline-flex; gap:8px; align-items:center; cursor:pointer; padding:8px; border-radius:8px; border:1px solid transparent; }
.payment-option.selected, .payment-option:focus { border-color: rgba(0,0,0,0.12); box-shadow: 0 0 0 3px rgba(52,152,219,0.12); }

/* Ensure images are responsive by default */
img { max-width: 100%; height: auto; display: block; }

/* Responsive utilities (mobile-first) */
@media (min-width: 700px){
  .products-grid { grid-template-columns: repeat(2, 1fr); }
}

/* High-contrast improvements for text */
body { color: #222; background-color: #fff; -webkit-font-smoothing:antialiased; }

/* Small helper for aria-live error region */
.sr-live { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Respeita acessibilidade de movimento reduzido no sistema */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}