/* ==========================================================================
   Loungest Limited - Accessibility Overrides (WCAG AAA Standards)
   ========================================================================== */

/* 1. HIGH CONTRAST MODE */
.a11y-high-contrast {
  --bg: #000000 !important;
  --surface: #000000 !important;
  --raised: #000000 !important;
  --text: #FFFF00 !important;
  --body: #FFFFFF !important;
  --muted: #FFFFFF !important;
  --red: #FFFF00 !important;
  --red-hover: #FFFF00 !important;
  --brass: #FFFF00 !important;
  --line: #FFFFFF !important;
  --line-2: #FFFFFF !important;
  color-scheme: dark !important;
}

.a11y-high-contrast *:not(.a11y-ignore) {
  background-color: #000000 !important;
  background-image: none !important;
  color: #FFFF00 !important;
  border-color: #FFFFFF !important;
  text-shadow: none !important;
  box-shadow: none !important;
}

.a11y-high-contrast p:not(.a11y-ignore),
.a11y-high-contrast span:not(.a11y-ignore),
.a11y-high-contrast li:not(.a11y-ignore),
.a11y-high-contrast td:not(.a11y-ignore),
.a11y-high-contrast dd:not(.a11y-ignore),
.a11y-high-contrast time:not(.a11y-ignore) {
  color: #FFFFFF !important;
}

.a11y-high-contrast a:not(.a11y-ignore),
.a11y-high-contrast button:not(.a11y-ignore) {
  color: #FFFF00 !important;
  text-decoration: underline !important;
  outline: 2px solid #FFFF00 !important;
  outline-offset: 2px !important;
}

.a11y-high-contrast img {
  filter: contrast(140%) brightness(95%) !important;
}

/* Remove decorative photo overlays and background scrims that decrease legibility */
.a11y-high-contrast .hero::after,
.a11y-high-contrast .hero picture,
.a11y-high-contrast .hero picture img {
  display: none !important;
}
.a11y-high-contrast .hero {
  min-height: auto !important;
  background: #000000 !important;
  padding-block: 3rem !important;
}

.a11y-high-contrast .tile,
.a11y-high-contrast .card,
.a11y-high-contrast .facts,
.a11y-high-contrast .company-box,
.a11y-high-contrast details,
.a11y-high-contrast .form-panel {
  border: 2px solid #FFFFFF !important;
  background: #000000 !important;
}

.a11y-high-contrast iframe {
  filter: none !important;
  border: 2px solid #FFFF00 !important;
}

/* 2. GRAYSCALE / MONOCHROME */
.a11y-grayscale {
  filter: grayscale(100%) !important;
}

/* 3. DYSLEXIA FRIENDLY READABLE FONT */
.a11y-readable-font *:not(.a11y-ignore) {
  font-family: 'Atkinson Hyperlegible', Verdana, Tahoma, sans-serif !important;
  letter-spacing: 0.02em !important;
  word-spacing: 0.08em !important;
}

/* 4. HIGHLIGHT LINKS */
.a11y-highlight-links a:not(.a11y-ignore) {
  text-decoration: underline !important;
  text-decoration-style: solid !important;
  text-decoration-thickness: 3px !important;
  background-color: #FFFF00 !important;
  color: #000000 !important;
  font-weight: 700 !important;
  outline: 2px solid #000000 !important;
  outline-offset: 1px !important;
  padding-inline: 4px !important;
  border-radius: 2px !important;
}
.a11y-highlight-links a:not(.a11y-ignore) * {
  color: #000000 !important;
}

/* 5. LARGE CURSOR */
.a11y-large-cursor,
.a11y-large-cursor * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cpath d='M0,0 L0,46 L13,33 L26,58 L37,53 L24,28 L38,28 Z' fill='white' stroke='black' stroke-width='3'/%3E%3C/svg%3E"), auto !important;
}

/* 6. ENHANCED FOCUS INDICATOR */
.a11y-enhanced-focus :focus-visible {
  outline: 4px solid #e52029 !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 4px #000000, 0 0 0 8px #e52029 !important;
}

/* 7. REDUCED MOTION (Stop animations & transitions) */
.a11y-stop-animations,
.a11y-stop-animations * {
  animation-duration: 0.001s !important;
  animation-delay: 0s !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.001s !important;
  transition-delay: 0s !important;
  scroll-behavior: auto !important;
}

/* 8. READING RULER GUIDE */
.a11y-reading-guide-bar {
  position: fixed;
  left: 0;
  width: 100%;
  height: 32px;
  background-color: rgba(229, 32, 41, 0.22);
  border-top: 2px dashed #e52029;
  border-bottom: 2px dashed #e52029;
  pointer-events: none;
  z-index: 2147483647;
  display: none;
  transform: translateY(-50%);
}
.a11y-reading-guide .a11y-reading-guide-bar {
  display: block;
}

/* 9. LINE HEIGHT INCREASE */
.a11y-line-height-increased p,
.a11y-line-height-increased li,
.a11y-line-height-increased dd,
.a11y-line-height-increased span {
  line-height: 2.1 !important;
}

/* 10. LETTER SPACING INCREASE */
.a11y-letter-spacing-increased p,
.a11y-letter-spacing-increased li,
.a11y-letter-spacing-increased dd,
.a11y-letter-spacing-increased span,
.a11y-letter-spacing-increased h1,
.a11y-letter-spacing-increased h2,
.a11y-letter-spacing-increased h3 {
  letter-spacing: 0.14em !important;
}
