/* ==========================================================================
   RSS OPTICAL SPAIN / 株式会社ＲＳＳ　ＳＯＬＵＴＩＯＮＳ
   Accessibility Stylesheet (WCAG 2.1 AA / AAA Compliance)
   High-Contrast Theme (#000000 / #FFD700), Font Scaling, Screen-Reader Utilities
   ========================================================================== */

/* Screen Reader Only Utility (WCAG compliant visually-hidden pattern) */
.sr-only {
  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;
}

/* Reduced Motion for Users with Vestibular Disorders */
@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;
  }
}

/* ==========================================================================
   HIGH CONTRAST MODE (WCAG AAA Ratio > 15:1)
   Activated via .high-contrast on <html> or <body>
   ========================================================================== */
html.high-contrast,
body.high-contrast {
  --color-primary: #ffd700 !important;
  --color-primary-light: #fef08a !important;
  --color-primary-dark: #000000 !important;
  --color-accent: #00ffff !important;
  --color-accent-hover: #ffffff !important;
  --color-gold: #ffd700 !important;
  --color-text-main: #ffd700 !important;
  --color-text-muted: #ffffff !important;
  --color-text-light: #ffffff !important;
  --color-bg-main: #000000 !important;
  --color-bg-card: #0c0c0c !important;
  --color-bg-alt: #1a1a1a !important;
  --color-border: #ffd700 !important;
  --color-border-light: #ffd700 !important;
  --focus-ring-color: #00ffff !important;

  background-color: #000000 !important;
  color: #ffd700 !important;
}

body.high-contrast * {
  border-color: #ffd700 !important;
}

body.high-contrast .site-header,
body.high-contrast .site-footer,
body.high-contrast .a11y-bar,
body.high-contrast .hero,
body.high-contrast .trust-ribbon,
body.high-contrast .mobile-bottom-bar,
body.high-contrast .cart-drawer,
body.high-contrast .quiz-card,
body.high-contrast .disclaimer-banner,
body.high-contrast .card,
body.high-contrast .product-card {
  background: #000000 !important;
  color: #ffd700 !important;
  border: 2px solid #ffd700 !important;
}

body.high-contrast .site-brand__emblem {
  background: #000000 !important;
  color: #ffd700 !important;
  border: 2px solid #ffd700 !important;
}

body.high-contrast .site-brand__title,
body.high-contrast .site-brand__subtitle,
body.high-contrast .site-nav__link,
body.high-contrast .section-title,
body.high-contrast .section-subtitle,
body.high-contrast .hero__title,
body.high-contrast .hero__lead,
body.high-contrast .price-amount,
body.high-contrast .price-iva,
body.high-contrast .form-label,
body.high-contrast .form-hint,
body.high-contrast .trust-ribbon__text strong,
body.high-contrast .trust-ribbon__text span,
body.high-contrast .legal-box,
body.high-contrast .legal-box h3,
body.high-contrast .footer-col__title,
body.high-contrast .footer-links a,
body.high-contrast .mobile-bottom-bar__item a,
body.high-contrast .mobile-bottom-bar__item button {
  color: #ffd700 !important;
}

body.high-contrast a {
  color: #00ffff !important;
  text-decoration: underline !important;
}

body.high-contrast a:hover,
body.high-contrast a:focus-visible {
  color: #ffffff !important;
  background-color: #222222 !important;
}

body.high-contrast .btn-primary,
body.high-contrast .btn-gold,
body.high-contrast .btn-dark {
  background-color: #ffd700 !important;
  color: #000000 !important;
  border: 2px solid #ffffff !important;
  font-weight: 800 !important;
}

body.high-contrast .btn-primary:hover,
body.high-contrast .btn-gold:hover,
body.high-contrast .btn-dark:hover {
  background-color: #00ffff !important;
  color: #000000 !important;
  border-color: #ffd700 !important;
}

body.high-contrast .btn-outline {
  background-color: #000000 !important;
  color: #ffd700 !important;
  border: 2px solid #ffd700 !important;
}

body.high-contrast .form-input,
body.high-contrast .form-select,
body.high-contrast .form-textarea {
  background-color: #000000 !important;
  color: #ffd700 !important;
  border: 2px solid #ffd700 !important;
}

body.high-contrast :focus-visible {
  outline: 4px solid #00ffff !important;
  outline-offset: 3px !important;
}

/* ==========================================================================
   DYNAMIC FONT SIZING SCALES
   Controlled dynamically by js/a11y.js
   ========================================================================== */
html.font-scale-sm {
  font-size: 14px !important;
}

html.font-scale-md {
  font-size: 16px !important;
}

html.font-scale-lg {
  font-size: 18px !important;
}

html.font-scale-xl {
  font-size: 21px !important;
}

/* Print Stylesheet */
@media print {
  .a11y-bar,
  .site-header,
  .mobile-bottom-bar,
  .btn-cart,
  .cart-drawer-overlay,
  .cart-drawer,
  .skip-link {
    display: none !important;
  }
  
  body {
    background: #ffffff !important;
    color: #000000 !important;
    font-size: 12pt !important;
  }
  
  .container {
    max-width: 100% !important;
    padding: 0 !important;
  }
}
