/**
 * Accessibility Widget Styles
 * WCAG 2.1 AA Compliant
 * Government Website Standards
 */

/* ============================================
   Floating Accessibility Button
   ============================================ */
.accessibility-trigger {
  position: fixed;
  right: 0px;
  padding: 10px;
  top: 45%;
  transform: translateY(-50%);
  z-index: 9998;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: #ffffff;
  color: #2774AC;
  border: 5px solid #2774AC;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  /* cursor: pointer; */
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  padding: 0;
}

.accessibility-trigger:hover,
.accessibility-trigger:focus {
  background: var(--text-color, #02487B);
  color: white;
  border: 5px solid #ffffff;
  transform: translateY(-50%) scale(1.05);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
}

.accessibility-trigger:focus-visible {
  outline: 3px solid var(--secondary-color, #F6AD0A);
  outline-offset: 2px;
}

.accessibility-trigger svg {
  width: 28px;
  height: 28px;
}

/* ============================================
   Accessibility Drawer
   ============================================ */
.accessibility-drawer {
  position: fixed;
  right: -400px;
  top: 0;
  width: 400px;
  height: 100vh;
  background: #ffffff;
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.2);
  z-index: 9999;
  transition: right 0.3s ease;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.accessibility-drawer.open {
  right: 0;
}

/* Drawer Header */
.accessibility-drawer-header {
  background: var(--primary-color, #009EDB);
  color: #ffffff;
  padding: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}

.accessibility-drawer-header h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: #ffffff;
}

.accessibility-close {
  background: transparent;
  border: none;
  color: #ffffff;
  cursor: pointer;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: background 0.2s ease;
}

.accessibility-close:hover,
.accessibility-close:focus {
  background: rgba(255, 255, 255, 0.15);
}

.accessibility-close:focus-visible {
  outline: 2px solid #ffcc00;
  outline-offset: 2px;
}

/* Drawer Content */
.accessibility-drawer-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
  scrollbar-width: thin;
  scrollbar-color: var(--primary-color, #009EDB) var(--bg-light, #f9f9f9);
}

.accessibility-drawer-content::-webkit-scrollbar {
  width: 8px;
}

.accessibility-drawer-content::-webkit-scrollbar-track {
  background: var(--bg-light, #f9f9f9);
}

.accessibility-drawer-content::-webkit-scrollbar-thumb {
  background: var(--primary-color, #009EDB);
  border-radius: 4px;
}

.accessibility-drawer-content::-webkit-scrollbar-thumb:hover {
  background: var(--text-color, #02487B);
}

/* Accessibility Sections */
.accessibility-section {
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid #e5e7eb;
}

.accessibility-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.accessibility-section h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-color, #02487B);
  margin: 0 0 12px 0;
}

/* Button Groups */
.button-group {
  display: flex;
  gap: 10px;
  width: 100%;
}

.button-group.horizontal {
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  margin-top: 30px;
  margin-left: 15px;
}

.button-group button {
  flex: 1 1 0;
  min-width: 0;
  min-height: 44px;
  padding: 8px 12px;
  background: #fdfdfd;
  color: #4b5563;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: visible;
}

.button-group button:hover {
  background: #f9fafb;
  border-color: var(--primary-color, #009EDB);
  color: var(--primary-color, #009EDB);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.button-group button:focus-visible {
  outline: 3px solid var(--secondary-color, #F6AD0A) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 10px rgba(246, 173, 10, 0.3) !important;
}

.button-group button.active {
  background: var(--primary-color, #009EDB) !important;
  color: #ffffff !important;
  border-color: var(--primary-color, #009EDB) !important;
  font-weight: 600 !important;
  box-shadow: 0 4px 12px var(--primary-light, rgba(0, 158, 219, 0.3)) !important;
  z-index: 1;
}

.button-group button.active::after {
  content: '✓';
  position: absolute;
  top: -6px;
  right: -6px;
  background: var(--secondary-color, #F6AD0A);
  color: #000;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: bold;
  border: 2px solid #ffffff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  pointer-events: none;
}

.button-group button.icon-btn {
  padding: 8px;
}

.button-group button.icon-btn svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.button-group button.icon-btn:hover svg {
  transform: scale(1.1);
}

.button-group button.active.icon-btn svg {
  stroke: #ffffff;
}

/* Visually Hidden Helper (for icon labels) */
.visually-hidden {
  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;
}

/* Radio Groups */
.radio-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.radio-option {
  display: flex;
  align-items: center;
  padding: 12px;
  border: 2px solid #d1d5db;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  background: #ffffff;
  min-height: 44px;
}

.radio-option:hover {
  border-color: var(--primary-color, #009EDB);
  background: var(--primary-light, #e6f7ff);
}

.radio-option.active {
  background: var(--primary-light, #e6f7ff) !important;
  border-color: var(--primary-color, #009EDB) !important;
  border-width: 3px !important;
  box-shadow: 0 0 0 3px rgba(0, 158, 219, 0.2) !important;
  position: relative !important;
}

.radio-option.active::before {
  content: '✓';
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--primary-color, #009EDB);
  color: #fff;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: bold;
}

.radio-option input[type="radio"] {
  width: 22px;
  height: 22px;
  margin-right: 12px;
  cursor: pointer;
  flex-shrink: 0;
  accent-color: var(--primary-color, #009EDB);
  border: 2px solid var(--primary-color, #009EDB);
}

.radio-option input[type="radio"]:checked {
  background: var(--primary-color, #009EDB);
  border-color: var(--primary-color, #009EDB);
}

.radio-option input[type="radio"]:focus-visible {
  outline: 3px solid var(--primary-color, #009EDB);
  outline-offset: 2px;
}

.radio-label {
  color: #374151;
  font-size: 0.95rem;
  font-weight: 500;
  flex: 1;
}

.radio-option.active .radio-label {
  color: var(--text-color, #02487B) !important;
  font-weight: 700 !important;
}

/* Checkbox Groups */
.checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.checkbox-option {
  display: flex;
  align-items: center;
  padding: 12px;
  border: 2px solid #d1d5db;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  background: #ffffff;
  min-height: 44px;
}

.checkbox-option:hover {
  border-color: var(--primary-color, #009EDB);
  background: var(--primary-light, #e6f7ff);
}

.checkbox-option input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-right: 12px;
  cursor: pointer;
  flex-shrink: 0;
  accent-color: var(--primary-color, #009EDB);
}

.checkbox-option input[type="checkbox"]:focus-visible {
  outline: 3px solid var(--primary-color, #009EDB);
  outline-offset: 2px;
}

.checkbox-option input[type="checkbox"]:checked+.checkbox-label {
  color: var(--text-color, #02487B);
  font-weight: 600;
}

.checkbox-label {
  color: #374151;
  font-size: 0.95rem;
  font-weight: 500;
}

/* Action Buttons */
.action-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.action-btn {
  width: 100%;
  padding: 12px 20px;
  background: #f3f4f6;
  color: #374151;
  border: 2px solid #d1d5db;
  border-radius: 6px;
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: center;
  min-height: 44px;
}

.action-btn:hover {
  background: #e5e7eb;
  border-color: #9ca3af;
}

.action-btn:focus-visible {
  outline: 3px solid var(--primary-color, #009EDB);
  outline-offset: 2px;
}

.action-btn:last-child {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fca5a5;
}

.action-btn:last-child:hover {
  background: #fecaca;
  border-color: #f87171;
}

/* Apply Settings Button */
.apply-btn {
  background: var(--primary-color, #009EDB) !important;
  color: #ffffff !important;
  border-color: var(--primary-color, #009EDB) !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  margin-bottom: 15px !important;
  box-shadow: 0 4px 12px rgba(0, 158, 219, 0.3) !important;
}

.apply-btn:hover {
  background: var(--text-color, #02487B) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 158, 219, 0.4) !important;
}

/* Ensure Form Actions are visible (no auto-submit without button) */
.form-actions {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Overlay */
.accessibility-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9997;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.accessibility-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* ============================================
   Accessibility Features Applied to Body
   ============================================ */

/* Text Size - Centralized using CSS Variables */
:root {
  --a11y-font-scale: 1;
}

body.a11y-text-decrease {
  --a11y-font-scale: 0.875;
}

body.a11y-text-increase {
  --a11y-font-scale: 1.25;
}

/* Apply to ALL text elements across entire site */
body.a11y-text-decrease *:not(.accessibility-drawer):not(.accessibility-drawer *),
body.a11y-text-increase *:not(.accessibility-drawer):not(.accessibility-drawer *) {
  font-size: calc(1rem * var(--a11y-font-scale)) !important;
}

/* Specific elements for better coverage */
body.a11y-text-decrease p,
body.a11y-text-decrease div,
body.a11y-text-decrease span,
body.a11y-text-decrease a,
body.a11y-text-decrease li,
body.a11y-text-decrease h1,
body.a11y-text-decrease h2,
body.a11y-text-decrease h3,
body.a11y-text-decrease h4,
body.a11y-text-decrease h5,
body.a11y-text-decrease h6,
body.a11y-text-decrease td,
body.a11y-text-decrease th,
body.a11y-text-decrease label,
body.a11y-text-decrease button {
  font-size: calc(1rem * 0.875) !important;
}

body.a11y-text-increase p,
body.a11y-text-increase div,
body.a11y-text-increase span,
body.a11y-text-increase a,
body.a11y-text-increase li,
body.a11y-text-increase h1,
body.a11y-text-increase h2,
body.a11y-text-increase h3,
body.a11y-text-increase h4,
body.a11y-text-increase h5,
body.a11y-text-increase h6,
body.a11y-text-increase td,
body.a11y-text-increase th,
body.a11y-text-increase label,
body.a11y-text-increase button {
  font-size: calc(1rem * 1.25) !important;
}

/* Headings scale proportionally */
body.a11y-text-decrease h1 {
  font-size: calc(2rem * 0.875) !important;
}

body.a11y-text-decrease h2 {
  font-size: calc(1.75rem * 0.875) !important;
}

body.a11y-text-decrease h3 {
  font-size: calc(1.5rem * 0.875) !important;
}

body.a11y-text-increase h1 {
  font-size: calc(2rem * 1.25) !important;
}

body.a11y-text-increase h2 {
  font-size: calc(1.75rem * 1.25) !important;
}

body.a11y-text-increase h3 {
  font-size: calc(1.5rem * 1.25) !important;
}

/* ============================================
   Dark Theme - CSS Variables
   Adapts to current color theme (blue/green/dark)
   ============================================ */

:root {
  /* Dark Mode Color Variables - Adapt to current theme */
  --a11y-dark-bg: #1e1e1e;
  --a11y-dark-bg-secondary: #2d2d2d;
  --a11y-dark-bg-tertiary: #0d1117;
  --a11y-dark-text: #e8e8e8;
  --a11y-dark-border: #404040;
  --a11y-dark-border-light: #606060;

  /* High Contrast Mode Colors */
  --a11y-hc-bg: #000000;
  --a11y-hc-bg-secondary: #0a0a0a;
  --a11y-hc-bg-tertiary: #1a1a1a;
  --a11y-hc-text: #ffffff;
  --a11y-hc-heading: #ffff00;
  --a11y-hc-link: #00ffff;
  --a11y-hc-border: #ffffff;
}

/* Adapt accent colors based on current theme */
body.a11y-theme-dark {
  --a11y-dark-accent: color-mix(in srgb, var(--primary-color) 70%, #6db3ff);
  --a11y-dark-accent-light: color-mix(in srgb, var(--primary-color) 50%, #99ccff);
  --a11y-dark-accent-button: color-mix(in srgb, var(--primary-color) 80%, #3a7ca5);
  --a11y-dark-accent-button-hover: color-mix(in srgb, var(--primary-color) 60%, #5098c9);
}

/* ============================================
   Dark Theme - Soothing & Professional
   WCAG AA Compliant - Uses CSS Variables
   ============================================ */

body.a11y-theme-dark {
  background: var(--a11y-dark-bg) !important;
  color: var(--a11y-dark-text) !important;
}

/* Base text elements */
body.a11y-theme-dark p,
body.a11y-theme-dark span,
body.a11y-theme-dark li,
body.a11y-theme-dark div,
body.a11y-theme-dark label {
  color: var(--text-color) !important;
}

/* Headings - All variations */
body.a11y-theme-dark h1,
body.a11y-theme-dark h2,
body.a11y-theme-dark h3,
body.a11y-theme-dark h4,
body.a11y-theme-dark h5,
body.a11y-theme-dark h6,
body.a11y-theme-dark .h1,
body.a11y-theme-dark .h2,
body.a11y-theme-dark .h3,
body.a11y-theme-dark .h4,
body.a11y-theme-dark .h5,
body.a11y-theme-dark .h6 {
  color: var(--a11y-dark-accent) !important;
}

/* Links - All variations and states */
body.a11y-theme-dark a,
body.a11y-theme-dark a:link,
body.a11y-theme-dark a:visited,
body.a11y-theme-dark .link,
body.a11y-theme-dark a[href] {
  color: var(--a11y-dark-accent) !important;
  text-decoration: none !important;
}

body.a11y-theme-dark a:hover,
body.a11y-theme-dark a:focus,
body.a11y-theme-dark a:active {
  color: var(--a11y-dark-accent-light) !important;
  text-decoration: underline !important;
}

/* Top bar and header */
body.a11y-theme-dark .top-bar {
  background: var(--a11y-dark-bg-tertiary) !important;
  border-bottom: 1px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .logo-bar,
body.a11y-theme-dark .logo-bar-inner {
  background: var(--a11y-dark-bg-secondary) !important;
  border-bottom: 1px solid var(--a11y-dark-border) !important;
}

/* Navigation */
body.a11y-theme-dark .main-nav,
body.a11y-theme-dark .main-nav-inner {
  background: var(--a11y-dark-bg-tertiary) !important;
  border-bottom: 1px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark #superfish-main a,
body.a11y-theme-dark #nav-list>li>a {
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark #superfish-main a:hover,
body.a11y-theme-dark #superfish-main a:focus,
body.a11y-theme-dark #nav-list>li>a:hover,
body.a11y-theme-dark #nav-list>li>a:focus {
  background: var(--a11y-dark-border) !important;
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark #superfish-main ul {
  background: var(--a11y-dark-bg-secondary) !important;
  border: 1px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark #superfish-main ul a {
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark #superfish-main ul a:hover,
body.a11y-theme-dark #superfish-main ul a:focus {
  background: var(--a11y-dark-bg) !important;
  color: var(--a11y-dark-accent) !important;
}

/* Content sections */
body.a11y-theme-dark .about-section,
body.a11y-theme-dark .power-station-section,
body.a11y-theme-dark .chairman-section,
body.a11y-theme-dark .our-business-section,
body.a11y-theme-dark .quick-links-section,
body.a11y-theme-dark .photo-gallery-section {
  background: var(--a11y-dark-bg) !important;
}

/* Cards and boxes */
body.a11y-theme-dark .news-column,
body.a11y-theme-dark .alert-column,
body.a11y-theme-dark .business-item,
body.a11y-theme-dark .quick-card,
body.a11y-theme-dark .gallery-item,
body.a11y-theme-dark .power-item,
body.a11y-theme-dark .chairman-card,
body.a11y-theme-dark .about-intro-section {
  background: var(--a11y-dark-bg-secondary) !important;
  border-color: var(--a11y-dark-border) !important;
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark .business-item:hover,
body.a11y-theme-dark .business-item.active,
body.a11y-theme-dark .quick-card:hover {
  background: color-mix(in srgb, var(--a11y-dark-bg-secondary) 70%, #505050) !important;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--primary-color) 30%, transparent) !important;
  border-color: var(--a11y-dark-accent) !important;
}

/* News and alerts section */
body.a11y-theme-dark .news-alert-section {
  background: var(--a11y-dark-bg-tertiary) !important;
}

body.a11y-theme-dark .news-item {
  background: transparent !important;
  border-color: var(--a11y-dark-border) !important;
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark .news-item:hover {
  background: var(--a11y-dark-bg-secondary) !important;
}

body.a11y-theme-dark .alert-card {
  background: var(--a11y-dark-bg-secondary) !important;
  color: var(--a11y-dark-text) !important;
}

/* Buttons */
body.a11y-theme-dark button,
body.a11y-theme-dark .btn,
body.a11y-theme-dark .see-more-btn,
body.a11y-theme-dark input[type="submit"] {
  background: var(--a11y-dark-accent-button) !important;
  color: #ffffff !important;
  border-color: var(--a11y-dark-accent-button) !important;
}

body.a11y-theme-dark button:hover,
body.a11y-theme-dark .btn:hover,
body.a11y-theme-dark .see-more-btn:hover {
  background: var(--a11y-dark-accent-button-hover) !important;
  color: #ffffff !important;
}

/* Tables */
body.a11y-theme-dark table {
  background: var(--a11y-dark-bg-secondary) !important;
  border-color: var(--a11y-dark-border) !important;
}

body.a11y-theme-dark th {
  background: var(--a11y-dark-bg) !important;
  color: var(--a11y-dark-accent) !important;
  border-color: var(--a11y-dark-border) !important;
}

body.a11y-theme-dark td {
  background: var(--a11y-dark-bg-secondary) !important;
  color: var(--a11y-dark-text) !important;
  border-color: var(--a11y-dark-border) !important;
}

body.a11y-theme-dark tr:nth-child(even) td {
  background: color-mix(in srgb, var(--a11y-dark-bg-secondary) 90%, #000) !important;
}

/* Footer */
body.a11y-theme-dark .site-footer {
  background: var(--a11y-dark-bg-tertiary) !important;
  color: var(--a11y-dark-text) !important;
  border-top: 1px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .footer-bottom {
  background: var(--a11y-dark-bg-secondary) !important;
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark .footer-links a {
  color: var(--a11y-dark-text) !important;
}

/* Sidebar */
body.a11y-theme-dark .sidebar .menu li {
  background: var(--a11y-dark-bg-secondary) !important;
  border-color: var(--a11y-dark-border) !important;
  color: var(--a11y-dark-text) !important;
  border-radius: 16px;
}

body.a11y-theme-dark .sidebar .menu li:hover {
  background: var(--a11y-dark-bg-hover) !important;
}

body.a11y-theme-dark .sidebar .menu-item--active-trail {
  background: var(--a11y-dark-accent-button) !important;
  color: #ffffff !important;
}

/* Forms */
body.a11y-theme-dark input,
body.a11y-theme-dark select,
body.a11y-theme-dark textarea {
  background: var(--a11y-dark-bg-secondary) !important;
  color: var(--a11y-dark-text) !important;
  border-color: var(--a11y-dark-border) !important;
}

body.a11y-theme-dark input:focus,
body.a11y-theme-dark select:focus,
body.a11y-theme-dark textarea:focus {
  border-color: var(--a11y-dark-accent) !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary-color) 30%, transparent) !important;
}

/* Images - slightly dimmed */
body.a11y-theme-dark img {
  opacity: 0.9 !important;
  filter: brightness(0.9) !important;
}

/* Carousel and interactive elements */
body.a11y-theme-dark .carousel-dots button {
  background: var(--a11y-dark-border) !important;
  border: 1px solid var(--a11y-dark-border-light) !important;
}

body.a11y-theme-dark .carousel-dots button.active {
  background: var(--a11y-dark-accent) !important;
  border-color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .carousel-button,
body.a11y-theme-dark .nav-scroll-btn,
body.a11y-theme-dark .quick-arrow {
  background: var(--a11y-dark-accent-button) !important;
  color: #ffffff !important;
  border-color: var(--a11y-dark-accent-button) !important;
}

body.a11y-theme-dark .carousel-button:hover,
body.a11y-theme-dark .nav-scroll-btn:hover,
body.a11y-theme-dark .quick-arrow:hover {
  background: var(--a11y-dark-accent-button-hover) !important;
}

/* Power station carousel items */
body.a11y-theme-dark .power-item.active {
  border-color: var(--a11y-dark-accent) !important;
  box-shadow: 0 10px 30px color-mix(in srgb, var(--primary-color) 40%, transparent) !important;
}

body.a11y-theme-dark .power-item .count,
body.a11y-theme-dark .power-item.active .count {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .power-item .label,
body.a11y-theme-dark .power-item.active .label {
  color: var(--a11y-dark-text) !important;
}

/* Gallery overlay */
body.a11y-theme-dark .gallery-overlay {
  background: color-mix(in srgb, var(--a11y-dark-bg-tertiary) 90%, transparent) !important;
  color: #ffffff !important;
}

/* Logo carousel */
body.a11y-theme-dark .logo-carousel {
  background: var(--a11y-dark-bg-secondary) !important;
  border-top: 1px solid var(--a11y-dark-border) !important;
  border-bottom: 1px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .carousel-track img {
  filter: brightness(1.1) contrast(1.1) !important;
}

/* Breadcrumbs */
body.a11y-theme-dark .breadcrumb,
body.a11y-theme-dark .breadcrumb li,
body.a11y-theme-dark .breadcrumb a {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .breadcrumb .breadcrumb-separator {
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark .breadcrumb li.active,
body.a11y-theme-dark .breadcrumb li.active a {
  color: var(--a11y-dark-text) !important;
}

/* Business icons */
body.a11y-theme-dark .business-icon,
body.a11y-theme-dark .business-icon svg {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .business-item span {
  color: var(--a11y-dark-text) !important;
}

/* Section headings */
body.a11y-theme-dark .section-heading,
body.a11y-theme-dark .gallery-section-heading,
body.a11y-theme-dark .quick-action-section-heading,
body.a11y-theme-dark .section-title,
body.a11y-theme-dark .page-title,
body.a11y-theme-dark .block-title {
  color: var(--a11y-dark-accent) !important;
}

/* Override any inline or specific colored headings */
body.a11y-theme-dark [class*="title"],
body.a11y-theme-dark [class*="heading"] {
  color: var(--a11y-dark-accent) !important;
}

/* Navigation links specific override */
body.a11y-theme-dark nav a,
body.a11y-theme-dark .menu a,
body.a11y-theme-dark .navigation a {
  color: var(--dark-gray) !important;
  text-decoration: none !important;
}

/* body.a11y-theme-dark nav a:hover,
body.a11y-theme-dark .menu a:hover,
body.a11y-theme-dark .navigation a:hover {
  color: var(--a11y-dark-accent) !important;
} */

/* Alert date badge */
body.a11y-theme-dark .alert-date {
  background: var(--a11y-dark-accent-button) !important;
  color: #ffffff !important;
}

/* News arrow */
body.a11y-theme-dark .news-item .arrow {
  color: var(--a11y-dark-accent) !important;
}

/* Tab styling */
body.a11y-theme-dark .nav-tabs .active {
  background: var(--a11y-dark-accent-button) !important;
  color: #ffffff !important;
}

body.a11y-theme-dark .nav-tabs a {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .nav-tabs .active a {
  color: #ffffff !important;
}

/* Alert dots */
body.a11y-theme-dark .alert-dots span {
  background: var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .alert-dots span.active {
  background: var(--a11y-dark-accent) !important;
}

/* Validation icons in footer */
body.a11y-theme-dark .validation-icons img {
  filter: brightness(1.1) !important;
  border: 1px solid var(--a11y-dark-border) !important;
}

/* Logo bar and organization text */
body.a11y-theme-dark .org-text h1,
body.a11y-theme-dark .org-text span,
body.a11y-theme-dark .org-text p,
body.a11y-theme-dark .org-text-inner h1,
body.a11y-theme-dark .org-text-inner span,
body.a11y-theme-dark .org-text-inner p {
  color: var(--a11y-dark-accent) !important;
}

/* Ensure all text elements in specific sections follow theme */
body.a11y-theme-dark .text-right-inner h1,
body.a11y-theme-dark .text-right-inner p {
  color: var(--a11y-dark-accent) !important;
}

/* Force override for any remaining blue/colored elements */
body.a11y-theme-dark [style*="color"] {
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark h1[style*="color"],
body.a11y-theme-dark h2[style*="color"],
body.a11y-theme-dark h3[style*="color"],
body.a11y-theme-dark h4[style*="color"],
body.a11y-theme-dark h5[style*="color"],
body.a11y-theme-dark h6[style*="color"] {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark a[style*="color"] {
  color: var(--a11y-dark-accent) !important;
}

/* ============================================
   High Contrast Theme - Professional & Clear
   WCAG AAA Compliant
   ============================================ */

body.a11y-theme-high-contrast {
  background: #000000 !important;
  color: #ffffff !important;
}

/* Base text elements */
body.a11y-theme-high-contrast p,
body.a11y-theme-high-contrast span,
body.a11y-theme-high-contrast li,
body.a11y-theme-high-contrast div:not(.accessibility-drawer):not(.accessibility-drawer *),
body.a11y-theme-high-contrast label {
  color: var(--text-color) !important;
}

/* Headings - All variations */
body.a11y-theme-high-contrast h1,
body.a11y-theme-high-contrast h2,
body.a11y-theme-high-contrast h3,
body.a11y-theme-high-contrast h4,
body.a11y-theme-high-contrast h5,
body.a11y-theme-high-contrast h6,
body.a11y-theme-high-contrast .h1,
body.a11y-theme-high-contrast .h2,
body.a11y-theme-high-contrast .h3,
body.a11y-theme-high-contrast .h4,
body.a11y-theme-high-contrast .h5,
body.a11y-theme-high-contrast .h6 {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

/* Links - All variations and states */
body.a11y-theme-high-contrast a,
body.a11y-theme-high-contrast a:link,
body.a11y-theme-high-contrast a:visited,
body.a11y-theme-high-contrast .link,
body.a11y-theme-high-contrast a[href] {
  color: #00ffff !important;
  text-decoration: underline !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast a:hover,
body.a11y-theme-high-contrast a:focus,
body.a11y-theme-high-contrast a:active {
  color: #ffff00 !important;
  background: #1a1a1a !important;
  text-decoration: underline !important;
}

/* Top bar and header */
body.a11y-theme-high-contrast .top-bar {
  background: #000000 !important;
  border-bottom: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .logo-bar,
body.a11y-theme-high-contrast .logo-bar-inner {
  background: #0a0a0a !important;
  border-bottom: 3px solid #ffffff !important;
}

/* Navigation */
body.a11y-theme-high-contrast .main-nav,
body.a11y-theme-high-contrast .main-nav-inner {
  background: #000000 !important;
  border-bottom: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast #superfish-main a,
body.a11y-theme-high-contrast #nav-list>li>a {
  color: #ffffff !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast #superfish-main a:hover,
body.a11y-theme-high-contrast #nav-list>li>a:hover {
  background: #1a1a1a !important;
  color: #ffff00 !important;
  border: 2px solid #ffff00 !important;
}

body.a11y-theme-high-contrast #superfish-main ul {
  background: #000000 !important;
  border: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast #superfish-main ul a {
  color: #ffffff !important;
  border-bottom: 1px solid #ffffff !important;
}

body.a11y-theme-high-contrast #superfish-main ul a:hover {
  background: #1a1a1a !important;
  color: #ffff00 !important;
  border: 2px solid #ffff00 !important;
}

/* Content sections */
body.a11y-theme-high-contrast .about-section,
body.a11y-theme-high-contrast .power-station-section,
body.a11y-theme-high-contrast .chairman-section,
body.a11y-theme-high-contrast .our-business-section,
body.a11y-theme-high-contrast .quick-links-section,
body.a11y-theme-high-contrast .photo-gallery-section {
  background: #000000 !important;
  border-top: 3px solid #ffffff !important;
  border-bottom: 3px solid #ffffff !important;
}

/* Cards and boxes */
body.a11y-theme-high-contrast .news-column,
body.a11y-theme-high-contrast .alert-column,
body.a11y-theme-high-contrast .business-item,
body.a11y-theme-high-contrast .quick-card,
body.a11y-theme-high-contrast .gallery-item,
body.a11y-theme-high-contrast .power-item,
body.a11y-theme-high-contrast .chairman-card,
body.a11y-theme-high-contrast .about-intro-section {
  background: #0a0a0a !important;
  border: 3px solid #ffffff !important;
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .business-item:hover,
body.a11y-theme-high-contrast .business-item.active,
body.a11y-theme-high-contrast .quick-card:hover {
  background: #1a1a1a !important;
  border-color: #ffff00 !important;
  box-shadow: none !important;
}

/* News and alerts section */
body.a11y-theme-high-contrast .news-alert-section {
  background: #000000 !important;
  border-top: 3px solid #ffffff !important;
  border-bottom: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .news-item {
  background: #0a0a0a !important;
  border: 2px solid #ffffff !important;
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .news-item:hover {
  background: #1a1a1a !important;
  border-color: #ffff00 !important;
}

body.a11y-theme-high-contrast .alert-card {
  background: #0a0a0a !important;
  border: 3px solid #ffffff !important;
  color: #ffffff !important;
}

/* Buttons */
body.a11y-theme-high-contrast button,
body.a11y-theme-high-contrast .btn,
body.a11y-theme-high-contrast .see-more-btn,
body.a11y-theme-high-contrast input[type="submit"] {
  background: #ffff00 !important;
  color: #000000 !important;
  border: 3px solid #ffff00 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast button:hover,
body.a11y-theme-high-contrast .btn:hover,
body.a11y-theme-high-contrast .see-more-btn:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-color: #ffffff !important;
}

/* Tables */
body.a11y-theme-high-contrast table {
  background: #000000 !important;
  border: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast th {
  background: #0a0a0a !important;
  color: #ffff00 !important;
  border: 2px solid #ffffff !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast td {
  background: #000000 !important;
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
}

body.a11y-theme-high-contrast tr:nth-child(even) td {
  background: #0a0a0a !important;
}

/* Footer */
body.a11y-theme-high-contrast .site-footer {
  background: #000000 !important;
  color: #ffffff !important;
  border-top: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .footer-bottom {
  background: #0a0a0a !important;
  color: #ffffff !important;
  border-top: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .footer-links a {
  color: #00ffff !important;
}

/* Sidebar */
body.a11y-theme-high-contrast .sidebar .menu li {
  background: #0a0a0a !important;
  border: 2px solid #ffffff !important;
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .sidebar .menu li:hover {
  background: #1a1a1a !important;
  border-color: #ffff00 !important;
}

body.a11y-theme-high-contrast .sidebar .menu-item--active-trail {
  background: #1a1a1a !important;
  border: 3px solid #ffff00 !important;
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .sidebar .menu-item--active-trail a {
  color: #ffff00 !important;
}

/* Forms */
body.a11y-theme-high-contrast input,
body.a11y-theme-high-contrast select,
body.a11y-theme-high-contrast textarea {
  background: #000000 !important;
  color: #ffffff !important;
  border: 3px solid #ffffff !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast input:focus,
body.a11y-theme-high-contrast select:focus,
body.a11y-theme-high-contrast textarea:focus {
  border-color: #ffff00 !important;
  box-shadow: none !important;
}

/* Images - keep visible in high contrast */
body.a11y-theme-high-contrast img {
  border: 2px solid #ffffff !important;
  opacity: 1 !important;
  filter: contrast(1.2) !important;
}

/* Announcement bar */
body.a11y-theme-high-contrast .announcement-bar {
  background: #000000 !important;
  border-top: 3px solid #ffffff !important;
  border-bottom: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .announcement-item {
  border-color: #ffffff !important;
  color: #ffffff !important;
}

/* Carousel and interactive elements */
body.a11y-theme-high-contrast .carousel-dots button {
  background: #ffffff !important;
  border: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .carousel-dots button.active {
  background: #ffff00 !important;
  border-color: #ffff00 !important;
}

body.a11y-theme-high-contrast .carousel-button,
body.a11y-theme-high-contrast .nav-scroll-btn,
body.a11y-theme-high-contrast .nav-scroll-arrow,
body.a11y-theme-high-contrast .quick-arrow {
  background: #ffff00 !important;
  color: #000000 !important;
  border: 3px solid #ffff00 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast .carousel-button:hover,
body.a11y-theme-high-contrast .nav-scroll-btn:hover,
body.a11y-theme-high-contrast .quick-arrow:hover {
  background: #ffffff !important;
  border-color: #ffffff !important;
}

/* Power station carousel items */
body.a11y-theme-high-contrast .power-item {
  background: #0a0a0a !important;
  border: 3px solid #ffffff !important;
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .power-item.active {
  border: 4px solid #ffff00 !important;
  box-shadow: none !important;
}

body.a11y-theme-high-contrast .power-item .count {
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .power-item.active .count {
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .power-item .label {
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .power-item.active .label {
  color: #ffff00 !important;
}

/* Gallery overlay */
body.a11y-theme-high-contrast .gallery-overlay {
  background: #000000 !important;
  color: #ffff00 !important;
  border: 3px solid #ffff00 !important;
}

/* Logo carousel */
body.a11y-theme-high-contrast .logo-carousel {
  background: #0a0a0a !important;
  border-top: 3px solid #ffffff !important;
  border-bottom: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .carousel-track img {
  filter: contrast(1.5) brightness(1.2) !important;
  border: 2px solid #ffffff !important;
}

/* Breadcrumbs */
body.a11y-theme-high-contrast .breadcrumb,
body.a11y-theme-high-contrast .breadcrumb li {
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .breadcrumb a {
  color: #00ffff !important;
  text-decoration: underline !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast .breadcrumb .breadcrumb-separator {
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .breadcrumb li.active,
body.a11y-theme-high-contrast .breadcrumb li.active a {
  color: #ffff00 !important;
}

/* Business icons */
body.a11y-theme-high-contrast .business-icon,
body.a11y-theme-high-contrast .business-icon svg {
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .business-item span {
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* Section headings */
body.a11y-theme-high-contrast .section-heading,
body.a11y-theme-high-contrast .gallery-section-heading,
body.a11y-theme-high-contrast .quick-action-section-heading,
body.a11y-theme-high-contrast .section-title,
body.a11y-theme-high-contrast .page-title,
body.a11y-theme-high-contrast .block-title {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

/* Override any inline or specific colored headings */
body.a11y-theme-high-contrast [class*="title"],
body.a11y-theme-high-contrast [class*="heading"] {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

/* Navigation links - keep underlined in high contrast */
body.a11y-theme-high-contrast nav a,
body.a11y-theme-high-contrast .menu a,
body.a11y-theme-high-contrast .navigation a {
  color: #ffffff;
  text-decoration: underline !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast nav a:hover,
body.a11y-theme-high-contrast .menu a:hover,
body.a11y-theme-high-contrast .navigation a:hover {
  color: #ffff00 !important;
  background: #1a1a1a !important;
}

/* Alert date badge */
body.a11y-theme-high-contrast .alert-date {
  background: #ffff00 !important;
  color: #000000 !important;
  border: 2px solid #ffff00 !important;
  font-weight: 700 !important;
}

/* News arrow */
body.a11y-theme-high-contrast .news-item .arrow {
  color: #ffff00 !important;
}

/* Tab styling */
body.a11y-theme-high-contrast .nav-tabs li {
  border: 2px solid #ffffff !important;
  background: #0a0a0a !important;
}

body.a11y-theme-high-contrast .nav-tabs .active {
  background: #1a1a1a !important;
  border: 3px solid #ffff00 !important;
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .nav-tabs a {
  color: #00ffff !important;
}

body.a11y-theme-high-contrast .nav-tabs .active a {
  color: #ffff00 !important;
}

/* Alert dots */
body.a11y-theme-high-contrast .alert-dots span {
  background: #ffffff !important;
  border: 2px solid #ffffff !important;
}

body.a11y-theme-high-contrast .alert-dots span.active {
  background: #ffff00 !important;
  border-color: #ffff00 !important;
}

/* Validation icons in footer */
body.a11y-theme-high-contrast .validation-icons img {
  filter: contrast(1.5) brightness(1.2) !important;
  border: 3px solid #ffffff !important;
}

/* Logo bar and organization text */
body.a11y-theme-high-contrast .org-text h1,
body.a11y-theme-high-contrast .org-text span,
body.a11y-theme-high-contrast .org-text p,
body.a11y-theme-high-contrast .org-text-inner h1,
body.a11y-theme-high-contrast .org-text-inner span,
body.a11y-theme-high-contrast .org-text-inner p {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

/* Ensure all text elements in specific sections follow theme */
body.a11y-theme-high-contrast .text-right-inner h1,
body.a11y-theme-high-contrast .text-right-inner p {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

/* Force override for any remaining colored elements */
body.a11y-theme-high-contrast [style*="color"] {
  color: #ffffff !important;
}

body.a11y-theme-high-contrast h1[style*="color"],
body.a11y-theme-high-contrast h2[style*="color"],
body.a11y-theme-high-contrast h3[style*="color"],
body.a11y-theme-high-contrast h4[style*="color"],
body.a11y-theme-high-contrast h5[style*="color"],
body.a11y-theme-high-contrast h6[style*="color"] {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast a[style*="color"] {
  color: #00ffff !important;
  text-decoration: underline !important;
  font-weight: 600 !important;
}

/* Exposed filters and form elements */
body.a11y-theme-high-contrast .portfolio-exposed-form label {
  background: #0a0a0a !important;
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
}

body.a11y-theme-high-contrast .portfolio-exposed-form label:hover {
  background: #1a1a1a !important;
  border-color: #ffff00 !important;
}

body.a11y-theme-high-contrast .portfolio-exposed-form .form-item:has(input:checked) label {
  background: #1a1a1a !important;
  border: 3px solid #ffff00 !important;
  color: #ffff00 !important;
}

/* View content cards */
body.a11y-theme-high-contrast .views-row {
  background: #0a0a0a !important;
  border: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .views-row:hover {
  border-color: #ffff00 !important;
  box-shadow: none !important;
}

body.a11y-theme-high-contrast .views-field-title {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast .views-field-body {
  color: #ffffff !important;
}

/* Chairman quote styling */
body.a11y-theme-high-contrast .chairman-content blockquote {
  color: #ffffff !important;
  border-left: 4px solid #ffff00 !important;
  padding-left: 15px !important;
}

body.a11y-theme-high-contrast .chairman-name {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

/* Pagination */
body.a11y-theme-dark .pager,
body.a11y-theme-dark .pagination {
  background: transparent !important;
}

body.a11y-theme-dark .pager__item,
body.a11y-theme-dark .page-item {
  background: var(--a11y-dark-bg-secondary) !important;
  border-color: var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .pager__link,
body.a11y-theme-dark .page-link {
  background: var(--a11y-dark-bg-secondary) !important;
  color: var(--a11y-dark-accent) !important;
  border-color: var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .pager__link:hover,
body.a11y-theme-dark .page-link:hover {
  background: var(--a11y-dark-bg-hover) !important;
  color: var(--a11y-dark-accent-light) !important;
}

body.a11y-theme-dark .pager__item--active,
body.a11y-theme-dark .page-item.active {
  background: var(--a11y-dark-accent-button) !important;
}

body.a11y-theme-dark .pager__item--active .pager__link,
body.a11y-theme-dark .page-item.active .page-link {
  background: var(--a11y-dark-accent-button) !important;
  color: #ffffff !important;
}

/* Job listings table */
body.a11y-theme-dark .table.job-info td strong {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .table.job-info a {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .table.job-info time.datetime {
  color: var(--a11y-dark-text) !important;
}

/* View filters */
/* body.a11y-theme-dark .view-filters {
  background: var(--a11y-dark-bg-secondary) !important;
  border-color: var(--a11y-dark-border) !important;
} */

body.a11y-theme-dark .form-item select.form-select {
  background: var(--a11y-dark-bg-secondary) !important;
  color: var(--a11y-dark-text) !important;
  border-color: var(--a11y-dark-border) !important;
}

/* Blockquote */
body.a11y-theme-dark blockquote {
  border-left-color: var(--a11y-dark-accent) !important;
  color: var(--a11y-dark-text) !important;
}

/* Status messages */
body.a11y-theme-dark .messages {
  background: var(--a11y-dark-bg-secondary) !important;
  border-color: var(--a11y-dark-border) !important;
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark .messages--status {
  background: color-mix(in srgb, var(--a11y-dark-bg) 70%, #2e7d32) !important;
  border-color: #4caf50 !important;
  color: #90ee90 !important;
}

body.a11y-theme-dark .messages--warning {
  background: color-mix(in srgb, var(--a11y-dark-bg) 70%, #f57c00) !important;
  border-color: #ffa726 !important;
  color: #ffd180 !important;
}

body.a11y-theme-dark .messages--error {
  background: color-mix(in srgb, var(--a11y-dark-bg) 70%, #c62828) !important;
  border-color: #f44336 !important;
  color: #ff8a80 !important;
}

/* Pagination - High Contrast */
body.a11y-theme-high-contrast .pager,
body.a11y-theme-high-contrast .pagination {
  background: transparent !important;
}

body.a11y-theme-high-contrast .pager__item,
body.a11y-theme-high-contrast .page-item {
  background: #0a0a0a !important;
  border: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .pager__link,
body.a11y-theme-high-contrast .page-link {
  background: #0a0a0a !important;
  color: #00ffff !important;
  border: 3px solid #ffffff !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast .pager__link:hover,
body.a11y-theme-high-contrast .page-link:hover {
  background: #1a1a1a !important;
  border-color: #ffff00 !important;
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .pager__item--active,
body.a11y-theme-high-contrast .page-item.active {
  background: #1a1a1a !important;
  border: 3px solid #ffff00 !important;
}

body.a11y-theme-high-contrast .pager__item--active .pager__link,
body.a11y-theme-high-contrast .page-item.active .page-link {
  background: #1a1a1a !important;
  border-color: #ffff00 !important;
  color: #ffff00 !important;
}

/* Job listings table - High Contrast */
body.a11y-theme-high-contrast .table.job-info td strong {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast .table.job-info a {
  color: #00ffff !important;
  text-decoration: underline !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast .table.job-info time.datetime {
  color: #ffffff !important;
}

/* View filters - High Contrast */
/* body.a11y-theme-high-contrast .view-filters {
  background: #000000 !important;
  border: 3px solid #ffffff !important;
} */

body.a11y-theme-high-contrast .form-item select.form-select {
  background: #000000 !important;
  color: #ffffff !important;
  border: 3px solid #ffffff !important;
}

/* Blockquote - High Contrast */
body.a11y-theme-high-contrast blockquote {
  border-left: 5px solid #ffff00 !important;
  color: #ffffff !important;
  padding-left: 15px !important;
}

/* Status messages - High Contrast */
body.a11y-theme-high-contrast .messages {
  background: #0a0a0a !important;
  border: 3px solid #ffffff !important;
  color: #ffffff !important;
}

body.a11y-theme-high-contrast .messages--status {
  background: #0a0a0a !important;
  border: 3px solid #00ff00 !important;
  color: #00ff00 !important;
}

body.a11y-theme-high-contrast .messages--warning {
  background: #0a0a0a !important;
  border: 3px solid #ffff00 !important;
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .messages--error {
  background: #0a0a0a !important;
  border: 3px solid #ff0000 !important;
  color: #ff0000 !important;
}

/* ============================================
   DARK MODE - Accessibility Drawer Styling
   ============================================ */

/* Accessibility Drawer - Dark Theme */
body.a11y-theme-dark .accessibility-drawer {
  background: var(--a11y-dark-bg-secondary) !important;
  color: var(--a11y-dark-text) !important;
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.6) !important;
}

/* Drawer Header */
body.a11y-theme-dark .accessibility-drawer-header {
  background: var(--a11y-dark-bg-tertiary) !important;
  color: var(--a11y-dark-text) !important;
  border-bottom: 1px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .accessibility-drawer-header h2 {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .accessibility-close {
  color: var(--a11y-dark-text) !important;
  background: transparent !important;
  border: none !important;
}

body.a11y-theme-dark .accessibility-close:hover {
  background: rgba(255, 255, 255, 0.1) !important;
}

/* Drawer Content */
body.a11y-theme-dark .accessibility-drawer-content {
  background: var(--a11y-dark-bg-secondary) !important;
  color: var(--a11y-dark-text) !important;
  scrollbar-color: var(--a11y-dark-border) var(--a11y-dark-bg-secondary) !important;
}

body.a11y-theme-dark .accessibility-drawer-content::-webkit-scrollbar-track {
  background: var(--a11y-dark-bg-secondary) !important;
}

body.a11y-theme-dark .accessibility-drawer-content::-webkit-scrollbar-thumb {
  background: var(--a11y-dark-border) !important;
}

/* Section Styling */
body.a11y-theme-dark .accessibility-section {
  border-bottom-color: var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .accessibility-section h3 {
  color: var(--a11y-dark-accent) !important;
}

/* Buttons in Drawer */
body.a11y-theme-dark .button-group button {
  background: var(--a11y-dark-bg) !important;
  color: var(--a11y-dark-text) !important;
  border: 2px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .button-group button:hover {
  border-color: var(--a11y-dark-accent) !important;
  background: var(--a11y-dark-bg-hover) !important;
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .button-group button.active {
  background: var(--a11y-dark-accent-button) !important;
  color: #ffffff !important;
  border-color: var(--a11y-dark-accent-button) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary-color) 30%, transparent) !important;
}

body.a11y-theme-dark .button-group button.active::after {
  background: var(--a11y-dark-accent) !important;
  border-color: var(--a11y-dark-bg) !important;
}

/* Radio Options in Drawer */
body.a11y-theme-dark .radio-option {
  background: var(--a11y-dark-bg) !important;
  color: var(--a11y-dark-text) !important;
  border: 2px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .radio-option:hover {
  border-color: var(--a11y-dark-accent) !important;
  background: var(--a11y-dark-bg-hover) !important;
}

body.a11y-theme-dark .radio-option.active {
  background: var(--a11y-dark-bg-hover) !important;
  border-color: var(--a11y-dark-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color) 20%, transparent) !important;
}

body.a11y-theme-dark .radio-option.active::before {
  background: var(--a11y-dark-accent) !important;
  color: #000 !important;
}

body.a11y-theme-dark .radio-label {
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark .radio-option.active .radio-label {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .radio-option input[type="radio"] {
  accent-color: var(--a11y-dark-accent) !important;
  border-color: var(--a11y-dark-border) !important;
}

/* Checkbox Options in Drawer */
body.a11y-theme-dark .checkbox-option {
  background: var(--a11y-dark-bg) !important;
  color: var(--a11y-dark-text) !important;
  border: 2px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .checkbox-option:hover {
  border-color: var(--a11y-dark-accent) !important;
  background: var(--a11y-dark-bg-hover) !important;
}

body.a11y-theme-dark .checkbox-label {
  color: var(--a11y-dark-text) !important;
}

body.a11y-theme-dark .checkbox-option input[type="checkbox"]:checked+.checkbox-label {
  color: var(--a11y-dark-accent) !important;
}

body.a11y-theme-dark .checkbox-option input[type="checkbox"] {
  accent-color: var(--a11y-dark-accent) !important;
}

/* Action Buttons in Drawer */
body.a11y-theme-dark .action-btn {
  background: var(--a11y-dark-bg) !important;
  color: var(--a11y-dark-text) !important;
  border: 2px solid var(--a11y-dark-border) !important;
}

body.a11y-theme-dark .action-btn:hover {
  background: var(--a11y-dark-bg-hover) !important;
  border-color: var(--a11y-dark-border-light) !important;
}

body.a11y-theme-dark .action-btn:last-child {
  background: color-mix(in srgb, var(--a11y-dark-bg) 70%, #8b0000) !important;
  color: #ff8a80 !important;
  border-color: #8b0000 !important;
}

body.a11y-theme-dark .action-btn:last-child:hover {
  background: color-mix(in srgb, var(--a11y-dark-bg) 50%, #8b0000) !important;
  border-color: #a00000 !important;
}

/* Accessibility Trigger Button - Dark Mode */
body.a11y-theme-dark .accessibility-trigger {
  background: var(--a11y-dark-accent-button) !important;
  color: #ffffff !important;
  border: 2px solid var(--a11y-dark-accent) !important;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--primary-color) 40%, transparent) !important;
}

body.a11y-theme-dark .accessibility-trigger:hover {
  background: var(--a11y-dark-accent-button-hover) !important;
  box-shadow: 0 6px 16px color-mix(in srgb, var(--primary-color) 50%, transparent) !important;
}

body.a11y-theme-dark .accessibility-trigger svg {
  color: #ffffff !important;
}

/* Overlay - Dark Mode */
body.a11y-theme-dark .accessibility-overlay.active {
  background: rgba(0, 0, 0, 0.7) !important;
}

/* ============================================
   HIGH CONTRAST MODE - Accessibility Drawer Styling
   ============================================ */

/* Accessibility Drawer - High Contrast */
body.a11y-theme-high-contrast .accessibility-drawer {
  background: #000000 !important;
  color: #ffffff !important;
  box-shadow: none !important;
  border-left: 5px solid #ffff00 !important;
}

/* Drawer Header */
body.a11y-theme-high-contrast .accessibility-drawer-header {
  background: #0a0a0a !important;
  color: #ffff00 !important;
  border-bottom: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .accessibility-drawer-header h2 {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast .accessibility-close {
  color: #ffff00 !important;
  background: transparent !important;
  border: 2px solid #ffff00 !important;
}

body.a11y-theme-high-contrast .accessibility-close:hover {
  background: #1a1a1a !important;
  border-color: #ffffff !important;
  color: #ffffff !important;
}

/* Drawer Content */
body.a11y-theme-high-contrast .accessibility-drawer-content {
  background: #000000 !important;
  color: #ffffff !important;
  scrollbar-color: #ffff00 #000000 !important;
}

body.a11y-theme-high-contrast .accessibility-drawer-content::-webkit-scrollbar-track {
  background: #000000 !important;
  border: 2px solid #ffffff !important;
}

body.a11y-theme-high-contrast .accessibility-drawer-content::-webkit-scrollbar-thumb {
  background: #ffff00 !important;
  border: 2px solid #ffff00 !important;
}

/* Section Styling */
body.a11y-theme-high-contrast .accessibility-section {
  border-bottom: 2px solid #ffffff !important;
}

body.a11y-theme-high-contrast .accessibility-section h3 {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

/* Buttons in Drawer */
body.a11y-theme-high-contrast .button-group button {
  background: #0a0a0a !important;
  color: #ffffff !important;
  border: 3px solid #ffffff !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast .button-group button:hover {
  border-color: #ffff00 !important;
  background: #1a1a1a !important;
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .button-group button.active {
  background: #1a1a1a !important;
  color: #ffff00 !important;
  border: 4px solid #ffff00 !important;
  box-shadow: none !important;
}

body.a11y-theme-high-contrast .button-group button.active::after {
  background: #ffff00 !important;
  color: #000000 !important;
  border-color: #ffff00 !important;
}

/* Radio Options in Drawer */
body.a11y-theme-high-contrast .radio-option {
  background: #0a0a0a !important;
  color: #ffffff !important;
  border: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .radio-option:hover {
  border-color: #ffff00 !important;
  background: #1a1a1a !important;
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .radio-option.active {
  background: #1a1a1a !important;
  border: 4px solid #ffff00 !important;
  box-shadow: none !important;
}

body.a11y-theme-high-contrast .radio-option.active::before {
  background: #ffff00 !important;
  color: #000000 !important;
  font-weight: 900 !important;
}

body.a11y-theme-high-contrast .radio-label {
  color: #ffffff !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast .radio-option.active .radio-label {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast .radio-option input[type="radio"] {
  accent-color: #ffff00 !important;
  border: 3px solid #ffffff !important;
}

/* Checkbox Options in Drawer */
body.a11y-theme-high-contrast .checkbox-option {
  background: #0a0a0a !important;
  color: #ffffff !important;
  border: 3px solid #ffffff !important;
}

body.a11y-theme-high-contrast .checkbox-option:hover {
  border-color: #ffff00 !important;
  background: #1a1a1a !important;
}

body.a11y-theme-high-contrast .checkbox-label {
  color: #ffffff !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast .checkbox-option input[type="checkbox"]:checked+.checkbox-label {
  color: #ffff00 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast .checkbox-option input[type="checkbox"] {
  accent-color: #ffff00 !important;
  border: 3px solid #ffffff !important;
}

/* Action Buttons in Drawer */
body.a11y-theme-high-contrast .action-btn {
  background: #0a0a0a !important;
  color: #ffffff !important;
  border: 3px solid #ffffff !important;
  font-weight: 600 !important;
}

body.a11y-theme-high-contrast .action-btn:hover {
  background: #1a1a1a !important;
  border-color: #ffff00 !important;
  color: #ffff00 !important;
}

body.a11y-theme-high-contrast .action-btn:last-child {
  background: #1a0000 !important;
  color: #ff0000 !important;
  border: 3px solid #ff0000 !important;
  font-weight: 700 !important;
}

body.a11y-theme-high-contrast .action-btn:last-child:hover {
  background: #2a0000 !important;
  border-color: #ffff00 !important;
  color: #ffff00 !important;
}

/* Accessibility Trigger Button - High Contrast */
body.a11y-theme-high-contrast .accessibility-trigger {
  background: #ffff00 !important;
  color: #000000 !important;
  border: 4px solid #ffffff !important;
  box-shadow: none !important;
}

body.a11y-theme-high-contrast .accessibility-trigger:hover {
  background: #ffffff !important;
  box-shadow: none !important;
}

body.a11y-theme-high-contrast .accessibility-trigger svg {
  color: #000000 !important;
}

/* Overlay - High Contrast */
body.a11y-theme-high-contrast .accessibility-overlay.active {
  background: rgba(0, 0, 0, 0.9) !important;
}

/* ============================================
   Social Media Icons - Fixed Position
   ============================================ */
.social-media-fixed {
  position: fixed;
  padding: 10px 15px 10px 10px;
  border-radius: 10px;
  right: -7px;
  border: 1px solid #C5C5C5;
  background: #f9f9f9;
  top: calc(45% + 40px);
  z-index: 9997;
  display: flex;
  flex-direction: column;
  gap: 0px;
}

.social-media-fixed a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  border-radius: 35px;
  height: 35px;
  margin-bottom: 5px;
  border-radius: 30px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  text-decoration: none;
}

.social-media-fixed a:hover {
  transform: translateX(-5px) scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.social-media-fixed a:focus {
  outline: 3px solid var(--secondary-color, #F6AD0A);
  outline-offset: 2px;
}

.social-media-fixed a svg,
.social-media-fixed a i {
  font-size: 20px;
  width: 20px;
  height: 20px;
}

/* YouTube */
.social-media-fixed .social-youtube {
  background: #FF0000;
  color: #ffffff;
}

.social-media-fixed .social-youtube:hover {
  background: #CC0000;
}

/* Facebook */
.social-media-fixed .social-facebook {
  background: #1877F2;
  color: #ffffff;
}

.social-media-fixed .social-facebook:hover {
  background: #145DBF;
}

/* Twitter/X */
.social-media-fixed .social-twitter {
  background: #000000;
  color: #ffffff;
}

.social-media-fixed .social-twitter:hover {
  background: #1a1a1a;
}

/* PDF/Print Button */
.social-media-fixed .social-pdf {
  background: #E52521;
  color: #ffffff;
}

.social-media-fixed .social-pdf:hover {
  background: #B81B18;
}

/* Responsive - Stack below accessibility on smaller screens */
@media (max-width: 768px) {
  .social-media-fixed {
    right: -7px;
    top: calc(45% + 55px);
    gap: 0px;
  }

  .social-media-fixed a {
    width: 38px;
    height: 38px;
  }

  .social-media-fixed a svg,
  .social-media-fixed a i {
    font-size: 18px;
    width: 18px;
    height: 18px;
  }
}

/* Dark Theme - Social Media Icons */
body.a11y-theme-dark .social-media-fixed a {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.6);
}

body.a11y-theme-dark .social-media-fixed .social-youtube {
  background: #FF0000;
  border: 2px solid #CC0000;
}

body.a11y-theme-dark .social-media-fixed .social-facebook {
  background: #1877F2;
  border: 2px solid #145DBF;
}

body.a11y-theme-dark .social-media-fixed .social-twitter {
  background: #000000;
  border: 2px solid #333333;
}

/* High Contrast - Social Media Icons */
body.a11y-theme-high-contrast .social-media-fixed a {
  border: 3px solid #ffffff !important;
  box-shadow: none !important;
}

body.a11y-theme-high-contrast .social-media-fixed .social-youtube {
  background: #FF0000 !important;
}

body.a11y-theme-high-contrast .social-media-fixed .social-facebook {
  background: #1877F2 !important;
}

body.a11y-theme-high-contrast .social-media-fixed .social-twitter {
  background: #000000 !important;
}

body.a11y-theme-high-contrast .social-media-fixed a:hover {
  border-color: #ffff00 !important;
  box-shadow: none !important;
}

/* Cursor Size */
body.a11y-cursor-small * {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="black" stroke="white" stroke-width="1"><path d="M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z"/></svg>') 4 4, auto !important;
}

body.a11y-cursor-large * {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="black" stroke="white" stroke-width="1"><path d="M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z"/></svg>') 12 12, auto !important;
}

/* Line Height */
body.a11y-line-height-tight p,
body.a11y-line-height-tight li,
body.a11y-line-height-tight div {
  line-height: 1.3 !important;
}

body.a11y-line-height-loose p,
body.a11y-line-height-loose li,
body.a11y-line-height-loose div {
  line-height: 2 !important;
}

/* Text Alignment */
body.a11y-align-left p,
body.a11y-align-left li,
body.a11y-align-left div {
  text-align: left !important;
}

body.a11y-align-center p,
body.a11y-align-center li,
body.a11y-align-center div {
  text-align: center !important;
}

body.a11y-align-right p,
body.a11y-align-right li,
body.a11y-align-right div {
  text-align: right !important;
}

/* Text Spacing */
body.a11y-spacing-tight p,
body.a11y-spacing-tight li {
  letter-spacing: -0.5px !important;
  word-spacing: -1px !important;
}

body.a11y-spacing-loose p,
body.a11y-spacing-loose li {
  letter-spacing: 1px !important;
  word-spacing: 3px !important;
}

/* Enhanced Focus Indicators */
body.a11y-enhanced-focus *:focus {
  outline: 4px solid var(--primary-color, #009EDB) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px var(--primary-light, rgba(0, 158, 219, 0.2)) !important;
}

/* Hide Images */
body.a11y-hide-images img {
  opacity: 0 !important;
  visibility: hidden !important;
}

body.a11y-hide-images img::after {
  content: attr(alt);
  display: block;
  opacity: 1;
  visibility: visible;
  background: #f3f4f6;
  padding: 10px;
  border: 2px dashed #9ca3af;
  color: #374151;
}

/* Highlight Links */
body.a11y-highlight-links a {
  background: var(--secondary-color, #F6AD0A) !important;
  padding: 2px 4px !important;
  border-radius: 2px !important;
  text-decoration: underline !important;
  font-weight: 600 !important;
  color: #000 !important;
}

/* Show Tooltips */
body.a11y-show-tooltips [title]:hover::after {
  content: attr(title);
  position: absolute;
  bottom: 100%;
  left: 0;
  background: #1f2937;
  color: #ffffff;
  padding: 8px 12px;
  border-radius: 4px;
  font-size: 0.875rem;
  white-space: nowrap;
  z-index: 10000;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Reduce Motion */
body.a11y-reduce-motion * {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}

/* ============================================
   Responsive Design
   ============================================ */

@media (max-width: 768px) {
  .accessibility-drawer {
    width: 100%;
    right: -100%;
  }

  .accessibility-trigger {
    right: -0px;
    width: 48px;
    height: 48px;
  }

  .accessibility-trigger svg {
    width: 24px;
    height: 24px;
  }
}

/* ============================================
   Print Styles
   ============================================ */

@media print {

  .accessibility-trigger,
  .accessibility-drawer,
  .accessibility-overlay,
  .social-media-fixed {
    display: none !important;
  }
}

/* ============================================
   Reduced Motion Preference
   ============================================ */

@media (prefers-reduced-motion: reduce) {

  .accessibility-drawer,
  .accessibility-trigger,
  .accessibility-overlay,
  .social-media-fixed a,
  .button-group button,
  .radio-option,
  .checkbox-option,
  .action-btn {
    transition: none !important;
  }
}

/* ============================================
   High Contrast Mode
   ============================================ */

@media (prefers-contrast: high) {
  .accessibility-trigger {
    border-width: 3px;
  }

  .button-group button,
  .radio-option,
  .checkbox-option,
  .action-btn {
    border-width: 3px;
  }
}

/* ============================================
   Form Validation Error Messages
   WCAG 3.3.1 - Error Identification
   ============================================ */

/* Highlight the entire form item wrapper when there is an error */
.form-item--error input,
.form-item--error select,
.form-item--error textarea {
  border-color: #d32f2f !important;
  outline: 2px solid #d32f2f !important;
}

/* Error message text */
.form-item--error-message {
  display: block;
  margin-top: 4px;
  padding: 6px 10px;
  background-color: #fff3f3;
  border-left: 4px solid #d32f2f;
  border-radius: 0 4px 4px 0;
  color: #b71c1c;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
}

.form-item--error-message strong {
  font-weight: 600;
  color: #b71c1c;
}

@media print {
  .back-to-top,
  #back-to-top,
  .back-to-top.show,
  .accessibility-trigger,
  #accessibility-trigger,
  .accessibility-drawer,
  #accessibility-drawer,
  .accessibility-overlay,
  #accessibility-overlay,
  .social-media-fixed,
  .social-pdf,
  .accessibility-icons,
  .social-icons,
  .nav-scroll-controls,
  .language-notification,
  #inauguration-modal-overlay,
  .skip-link,
  .elw-modal-overlay,
  .no-print {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
  }
}