/**
 * AroundManchester.com - Accessibility Modes Stylesheet
 * Comprehensive CSS for accessibility modes across all site components
 * 
 * Modes supported:
 * - .high-contrast (on html element) - High contrast for e-ink/vision impairment
 * - .enhanced-spacing (on body element) - Increased spacing for readability
 * - .text-size-increased / .text-size-decreased (on html element) - Text scaling
 * 
 * @charset UTF-8
 * @author AroundManchester.com Development Team
 * @version 1.0.0
 * @created 2026-01-15
 * 
 * == AROUNDMANCHESTER.COM MODULE == STATIC | NO COOKIES | XML DATA | VS PROJECT ==
 */

@charset "UTF-8";

/* =============================================================================
   ENHANCED SPACING MODE - Body has .enhanced-spacing class
   WCAG 2.2 AA: 1.4.12 Text Spacing compliance
   ============================================================================= */

/* --- Global Text Spacing --- */
body.enhanced-spacing {
  line-height: 1.8 !important;
  letter-spacing: 0.12em !important;
  word-spacing: 0.16em !important;
}

/* --- Paragraph and List Spacing --- */
body.enhanced-spacing p,
body.enhanced-spacing li,
body.enhanced-spacing dd,
body.enhanced-spacing dt,
body.enhanced-spacing td,
body.enhanced-spacing th,
body.enhanced-spacing label,
body.enhanced-spacing span:not([aria-hidden="true"]) {
  line-height: 1.8 !important;
  letter-spacing: 0.12em !important;
  word-spacing: 0.16em !important;
}

body.enhanced-spacing p,
body.enhanced-spacing li {
  margin-bottom: 1.5em !important;
}

/* --- Headings --- */
body.enhanced-spacing h1,
body.enhanced-spacing h2,
body.enhanced-spacing h3,
body.enhanced-spacing h4,
body.enhanced-spacing h5,
body.enhanced-spacing h6 {
  margin-top: 2em !important;
  margin-bottom: 1em !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
}

/* --- Section Spacing --- */
body.enhanced-spacing .site-header,
body.enhanced-spacing .site-footer,
body.enhanced-spacing main,
body.enhanced-spacing section,
body.enhanced-spacing article,
body.enhanced-spacing aside {
  padding-top: calc(var(--spacing-xl, 2rem) * 1.5) !important;
  padding-bottom: calc(var(--spacing-xl, 2rem) * 1.5) !important;
}

/* --- Header Components --- */
body.enhanced-spacing .site-header__brand-text {
  letter-spacing: 0.05em !important;
}

body.enhanced-spacing .site-header__brand-subtitle {
  letter-spacing: 0.08em !important;
  line-height: 1.6 !important;
}

body.enhanced-spacing .site-header__breadcrumb {
  padding: 1em 1.5em !important;
  letter-spacing: 0.1em !important;
}

body.enhanced-spacing .site-header__description {
  line-height: 1.8 !important;
  padding: 1.5em !important;
}

/* --- Hero Sections --- */
body.enhanced-spacing .hero,
body.enhanced-spacing .team-hero,
body.enhanced-spacing .about-hero,
body.enhanced-spacing .district-placeholder__hero {
  padding: 3em 2em !important;
}

body.enhanced-spacing .hero__title,
body.enhanced-spacing .team-hero__title,
body.enhanced-spacing .about-hero__title {
  margin-bottom: 1em !important;
  letter-spacing: 0.03em !important;
}

body.enhanced-spacing .hero__text,
body.enhanced-spacing .team-hero__subtitle,
body.enhanced-spacing .about-hero__subtitle {
  line-height: 1.9 !important;
  margin-bottom: 1.5em !important;
}

/* --- Countdown Section --- */
body.enhanced-spacing .hero__countdown {
  padding: 2em !important;
}

body.enhanced-spacing .hero__countdown-label,
body.enhanced-spacing .hero__countdown-date,
body.enhanced-spacing .hero__countdown-disclaimer {
  line-height: 1.8 !important;
  margin: 1em 0 !important;
}

body.enhanced-spacing .hero__countdown-unit-label {
  letter-spacing: 0.1em !important;
}

/* --- Buttons --- */
body.enhanced-spacing .button,
body.enhanced-spacing button,
body.enhanced-spacing [role="button"] {
  padding: 1em 2em !important;
  letter-spacing: 0.08em !important;
  line-height: 1.5 !important;
}

body.enhanced-spacing .hero__buttons {
  gap: 1.5em !important;
}

/* --- Cards --- */
body.enhanced-spacing .card,
body.enhanced-spacing .feature-card,
body.enhanced-spacing .founder-card,
body.enhanced-spacing .policy-card,
body.enhanced-spacing .statistics__card,
body.enhanced-spacing .atlas-stats__card,
body.enhanced-spacing [class*="__card"] {
  padding: 2em !important;
  margin-bottom: 2em !important;
}

body.enhanced-spacing .feature-card__title,
body.enhanced-spacing .founder-card__name,
body.enhanced-spacing .statistics__label {
  letter-spacing: 0.05em !important;
  margin-bottom: 0.8em !important;
}

body.enhanced-spacing .feature-card__text,
body.enhanced-spacing .founder-card__bio,
body.enhanced-spacing .founder-card__duties li {
  line-height: 1.9 !important;
  margin-bottom: 1em !important;
}

/* --- Founder Card Specifics --- */
body.enhanced-spacing .founder-card__role {
  letter-spacing: 0.1em !important;
  margin-bottom: 0.5em !important;
}

body.enhanced-spacing .founder-card__quote {
  line-height: 1.8 !important;
  padding: 1.5em !important;
  margin: 1.5em 0 !important;
}

/* --- District Chips --- */
body.enhanced-spacing .district-chip {
  padding: 1em 1.2em !important;
  margin: 0.5em !important;
}

body.enhanced-spacing .district-chip__name {
  letter-spacing: 0.05em !important;
}

body.enhanced-spacing .district-chip__count {
  letter-spacing: 0.08em !important;
}

/* --- District Orbit Sections --- */
body.enhanced-spacing .district-orbit {
  padding: 2em !important;
  margin-bottom: 2em !important;
}

body.enhanced-spacing .district-orbit__title {
  margin-bottom: 0.8em !important;
}

body.enhanced-spacing .district-orbit__subtitle {
  line-height: 1.7 !important;
  margin-bottom: 1.5em !important;
}

body.enhanced-spacing .district-orbit__grid {
  gap: 1em !important;
}

/* --- Founder Counter --- */
body.enhanced-spacing .founder-counter {
  padding: 3em 2em !important;
}

body.enhanced-spacing .founder-counter__subtitle {
  line-height: 1.8 !important;
  margin-bottom: 1.5em !important;
}

body.enhanced-spacing .founder-counter__label {
  letter-spacing: 0.1em !important;
}

/* --- Statistics Section --- */
body.enhanced-spacing .statistics {
  padding: 3em 2em !important;
}

body.enhanced-spacing .statistics__grid {
  gap: 2em !important;
}

/* --- Atlas Stats --- */
body.enhanced-spacing .atlas-stats {
  padding: 2em !important;
}

body.enhanced-spacing .atlas-stats__breakdown-label {
  letter-spacing: 0.08em !important;
}

/* --- Legend --- */
body.enhanced-spacing .district-legend {
  padding: 1.5em !important;
}

body.enhanced-spacing .district-legend__item {
  margin: 0.5em !important;
}

body.enhanced-spacing .district-legend__label {
  letter-spacing: 0.06em !important;
}

/* --- Footer --- */
body.enhanced-spacing .site-footer__content {
  padding: 3em 2em !important;
}

body.enhanced-spacing .site-footer__grid {
  gap: 3em !important;
}

body.enhanced-spacing .site-footer__column {
  gap: 1em !important;
}

body.enhanced-spacing .site-footer__column a {
  line-height: 1.8 !important;
  padding: 0.3em 0 !important;
}

body.enhanced-spacing .site-footer__column-title {
  letter-spacing: 0.15em !important;
  margin-bottom: 1em !important;
}

/* --- Business Page Components --- */
body.enhanced-spacing .business-header {
  padding: 2em !important;
}

body.enhanced-spacing .business-name {
  letter-spacing: 0.03em !important;
  margin-bottom: 0.8em !important;
}

body.enhanced-spacing .business-tagline {
  line-height: 1.8 !important;
}

body.enhanced-spacing .business-info-bar {
  gap: 1.5em !important;
  padding: 1em !important;
}

body.enhanced-spacing .hot-links__list {
  gap: 1em !important;
}

body.enhanced-spacing .hot-links__button {
  padding: 1em 1.5em !important;
  letter-spacing: 0.06em !important;
}

body.enhanced-spacing .virtual-tour-section,
body.enhanced-spacing .business-description,
body.enhanced-spacing .policies-dietary {
  padding: 2em !important;
  margin-bottom: 2em !important;
}

body.enhanced-spacing .policies-dietary__header {
  margin-bottom: 2em !important;
}

body.enhanced-spacing .policies-dietary__subtext {
  line-height: 1.8 !important;
}

body.enhanced-spacing .policies-dietary__grid {
  gap: 1.5em !important;
}

/* --- Form Elements --- */
body.enhanced-spacing input,
body.enhanced-spacing select,
body.enhanced-spacing textarea {
  padding: 1em !important;
  line-height: 1.6 !important;
  letter-spacing: 0.05em !important;
}

body.enhanced-spacing label {
  margin-bottom: 0.8em !important;
  display: block !important;
}

body.enhanced-spacing fieldset {
  padding: 2em !important;
  margin-bottom: 2em !important;
}

body.enhanced-spacing legend {
  padding: 0 0.5em !important;
  letter-spacing: 0.1em !important;
}

/* --- Contact Actions --- */
body.enhanced-spacing .contact-action {
  padding: 1em 1.5em !important;
  letter-spacing: 0.06em !important;
}

body.enhanced-spacing .contact-stack {
  gap: 1em !important;
}

/* --- Gallery --- */
body.enhanced-spacing .gallery-section {
  padding: 2em !important;
}

body.enhanced-spacing .photo-gallery {
  gap: 1.5em !important;
}

body.enhanced-spacing .photo-gallery__item-overlay h4,
body.enhanced-spacing .photo-gallery__item-overlay p {
  letter-spacing: 0.05em !important;
}

/* --- Team Sections --- */
body.enhanced-spacing .team-section {
  padding: 2em 0 !important;
  margin-bottom: 2em !important;
}

body.enhanced-spacing .team-section__title {
  margin-bottom: 1.5em !important;
  letter-spacing: 0.05em !important;
}

/* --- Accessibility Toolbar --- */
body.enhanced-spacing .accessibility-toolbar {
  gap: 1em !important;
}

body.enhanced-spacing .accessibility-toolbar__btn {
  padding: 0.8em 1.2em !important;
}

/* --- Skip Links --- */
body.enhanced-spacing .skip-links a {
  padding: 1em 2em !important;
  letter-spacing: 0.1em !important;
}

/* --- Tables --- */
body.enhanced-spacing table {
  border-spacing: 0.5em !important;
}

body.enhanced-spacing th,
body.enhanced-spacing td {
  padding: 1em !important;
}

/* --- Blockquotes --- */
body.enhanced-spacing blockquote {
  padding: 2em !important;
  margin: 2em 0 !important;
  line-height: 1.9 !important;
}

/* --- Lists --- */
body.enhanced-spacing ul,
body.enhanced-spacing ol {
  padding-left: 2em !important;
  margin-bottom: 1.5em !important;
}

body.enhanced-spacing dl {
  margin-bottom: 1.5em !important;
}

body.enhanced-spacing dt {
  margin-bottom: 0.5em !important;
  font-weight: bold;
}

body.enhanced-spacing dd {
  margin-bottom: 1.5em !important;
  margin-left: 2em !important;
}


/* =============================================================================
   TEXT SIZE SCALING - Additional selectors for fixed-pixel elements
   Ensures all elements scale with text-size toggle
   ============================================================================= */

/* --- Primary Text Elements --- */
html.text-size-increased,
html.text-size-decreased {
  /* The font-size is already set on html by JS, these are additional hooks */
}

/* --- Elements commonly using fixed px that need scaling --- */
html.text-size-increased .hero__title,
html.text-size-increased .hero__text,
html.text-size-increased .hero__countdown-number,
html.text-size-increased .hero__countdown-label,
html.text-size-increased .hero__countdown-date,
html.text-size-increased .hero__audience-prompt,
html.text-size-decreased .hero__title,
html.text-size-decreased .hero__text,
html.text-size-decreased .hero__countdown-number,
html.text-size-decreased .hero__countdown-label,
html.text-size-decreased .hero__countdown-date,
html.text-size-decreased .hero__audience-prompt {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Team Page --- */
html.text-size-increased .team-hero__title,
html.text-size-increased .team-hero__subtitle,
html.text-size-increased .team-section__title,
html.text-size-increased .founder-card__name,
html.text-size-increased .founder-card__role,
html.text-size-increased .founder-card__bio,
html.text-size-increased .founder-card__quote,
html.text-size-decreased .team-hero__title,
html.text-size-decreased .team-hero__subtitle,
html.text-size-decreased .team-section__title,
html.text-size-decreased .founder-card__name,
html.text-size-decreased .founder-card__role,
html.text-size-decreased .founder-card__bio,
html.text-size-decreased .founder-card__quote {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- District Components --- */
html.text-size-increased .district-orbit__title,
html.text-size-increased .district-orbit__subtitle,
html.text-size-increased .district-chip__name,
html.text-size-increased .district-chip__count,
html.text-size-increased .district-legend__label,
html.text-size-increased .district-constellation__intro-title,
html.text-size-increased .district-constellation__intro-text,
html.text-size-decreased .district-orbit__title,
html.text-size-decreased .district-orbit__subtitle,
html.text-size-decreased .district-chip__name,
html.text-size-decreased .district-chip__count,
html.text-size-decreased .district-legend__label,
html.text-size-decreased .district-constellation__intro-title,
html.text-size-decreased .district-constellation__intro-text {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Founder Counter --- */
html.text-size-increased .founder-counter__title,
html.text-size-increased .founder-counter__subtitle,
html.text-size-increased .founder-counter__current,
html.text-size-increased .founder-counter__total,
html.text-size-increased .founder-counter__label,
html.text-size-decreased .founder-counter__title,
html.text-size-decreased .founder-counter__subtitle,
html.text-size-decreased .founder-counter__current,
html.text-size-decreased .founder-counter__total,
html.text-size-decreased .founder-counter__label {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Statistics --- */
html.text-size-increased .statistics__number,
html.text-size-increased .statistics__label,
html.text-size-increased .atlas-stats__number,
html.text-size-increased .atlas-stats__label,
html.text-size-increased .atlas-stats__title,
html.text-size-increased .atlas-stats__breakdown-count,
html.text-size-increased .atlas-stats__breakdown-label,
html.text-size-decreased .statistics__number,
html.text-size-decreased .statistics__label,
html.text-size-decreased .atlas-stats__number,
html.text-size-decreased .atlas-stats__label,
html.text-size-decreased .atlas-stats__title,
html.text-size-decreased .atlas-stats__breakdown-count,
html.text-size-decreased .atlas-stats__breakdown-label {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Business Page --- */
html.text-size-increased .business-name,
html.text-size-increased .business-tagline,
html.text-size-increased .hot-links__button,
html.text-size-increased .virtual-tour-section h2,
html.text-size-increased .viewer-description,
html.text-size-increased .policies-dietary h2,
html.text-size-increased .policies-dietary__subtext,
html.text-size-decreased .business-name,
html.text-size-decreased .business-tagline,
html.text-size-decreased .hot-links__button,
html.text-size-decreased .virtual-tour-section h2,
html.text-size-decreased .viewer-description,
html.text-size-decreased .policies-dietary h2,
html.text-size-decreased .policies-dietary__subtext {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Header and Footer --- */
html.text-size-increased .site-header__brand-text,
html.text-size-increased .site-header__brand-subtitle,
html.text-size-increased .site-header__breadcrumb,
html.text-size-increased .site-header__description,
html.text-size-increased .site-footer__column-title,
html.text-size-increased .site-footer__column a,
html.text-size-increased .site-footer small,
html.text-size-decreased .site-header__brand-text,
html.text-size-decreased .site-header__brand-subtitle,
html.text-size-decreased .site-header__breadcrumb,
html.text-size-decreased .site-header__description,
html.text-size-decreased .site-footer__column-title,
html.text-size-decreased .site-footer__column a,
html.text-size-decreased .site-footer small {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Buttons and Form Elements --- */
html.text-size-increased .button,
html.text-size-increased button:not(.high-contrast-toggle):not(.enhanced-spacing-toggle):not(.accessibility-toolbar__btn),
html.text-size-increased input,
html.text-size-increased select,
html.text-size-increased textarea,
html.text-size-increased label,
html.text-size-decreased .button,
html.text-size-decreased button:not(.high-contrast-toggle):not(.enhanced-spacing-toggle):not(.accessibility-toolbar__btn),
html.text-size-decreased input,
html.text-size-decreased select,
html.text-size-decreased textarea,
html.text-size-decreased label {
  font-size: inherit;
}

/* --- Cards --- */
html.text-size-increased .feature-card__title,
html.text-size-increased .feature-card__text,
html.text-size-increased .statistics__card,
html.text-size-increased .policy-card,
html.text-size-decreased .feature-card__title,
html.text-size-decreased .feature-card__text,
html.text-size-decreased .statistics__card,
html.text-size-decreased .policy-card {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Accessibility Statement Page --- */
html.text-size-increased .accessibility-statement__title,
html.text-size-increased .accessibility-statement__updated,
html.text-size-increased .accessibility-statement__section h3,
html.text-size-increased .accessibility-statement__section h4,
html.text-size-increased .accessibility-statement__section p,
html.text-size-decreased .accessibility-statement__title,
html.text-size-decreased .accessibility-statement__updated,
html.text-size-decreased .accessibility-statement__section h3,
html.text-size-decreased .accessibility-statement__section h4,
html.text-size-decreased .accessibility-statement__section p {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Contact Actions --- */
html.text-size-increased .contact-action,
html.text-size-increased .contact-reveal__btn,
html.text-size-decreased .contact-action,
html.text-size-decreased .contact-reveal__btn {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}

/* --- Gallery --- */
html.text-size-increased .gallery-section h3,
html.text-size-increased .gallery-section p,
html.text-size-increased .photo-gallery__item-overlay h4,
html.text-size-increased .photo-gallery__item-overlay p,
html.text-size-increased .gallery-modal__caption,
html.text-size-decreased .gallery-section h3,
html.text-size-decreased .gallery-section p,
html.text-size-decreased .photo-gallery__item-overlay h4,
html.text-size-decreased .photo-gallery__item-overlay p,
html.text-size-decreased .gallery-modal__caption {
  font-size: calc(1em * var(--text-size-multiplier, 1));
}


/* =============================================================================
   HIGH CONTRAST MODE ADDITIONS - Additional component coverage
   Applied when .high-contrast class is on <html> element
   ============================================================================= */

/* --- Team Page Components --- */
.high-contrast .team-hero {
  background: #ffffff;
  border: 3px solid #000000;
}

.high-contrast .team-hero__title,
.high-contrast .team-hero__subtitle {
  color: #000000;
}

.high-contrast .team-section__title {
  color: #000000;
  border-bottom-color: #000000;
}

.high-contrast .founder-card {
  background: #ffffff;
  border: 2px solid #000000;
  box-shadow: none;
}

.high-contrast .founder-card__name {
  color: #000000;
}

.high-contrast .founder-card__role {
  color: #333333;
  background: #f0f0f0;
  border: 1px solid #000000;
}

.high-contrast .founder-card__bio,
.high-contrast .founder-card__duties li {
  color: #000000;
}

.high-contrast .founder-card__quote {
  background: #f0f0f0;
  border-left: 4px solid #000000;
  color: #000000;
}

/* --- About Page --- */
.high-contrast .about-hero {
  background: #ffffff;
  border: 3px solid #000000;
}

.high-contrast .about-hero__title,
.high-contrast .about-section h3,
.high-contrast .about-section p {
  color: #000000;
}

/* --- Business Page Components --- */
.high-contrast .business-header {
  background: #ffffff;
  border: 2px solid #000000;
}

.high-contrast .business-name,
.high-contrast .business-tagline {
  color: #000000;
}

.high-contrast .business-info-bar {
  background: #f0f0f0;
  border: 1px solid #000000;
}

.high-contrast .hot-links {
  background: #ffffff;
}

.high-contrast .hot-links__button {
  background: #ffffff !important;
  color: #000000 !important;
  border: 2px solid #000000 !important;
}

.high-contrast .hot-links__button:hover,
.high-contrast .hot-links__button:focus {
  background: #000000 !important;
  color: #ffffff !important;
}

.high-contrast .virtual-tour-section,
.high-contrast .business-description,
.high-contrast .policies-dietary {
  background: #ffffff;
  border: 2px solid #000000;
}

.high-contrast .policies-dietary h2,
.high-contrast .policies-dietary__subtext {
  color: #000000;
}

.high-contrast .policy-card {
  background: #ffffff;
  border: 2px solid #000000;
  color: #000000;
}

.high-contrast .viewer-container {
  border: 3px solid #000000;
}

.high-contrast .viewer-btn {
  background: #ffffff !important;
  color: #000000 !important;
  border: 2px solid #000000 !important;
}

.high-contrast .viewer-btn:hover,
.high-contrast .viewer-btn:focus {
  background: #000000 !important;
  color: #ffffff !important;
}

/* --- Contact Components --- */
.high-contrast .contact-reveal {
  border: 2px solid #000000;
}

.high-contrast .contact-reveal__btn {
  background: #ffffff;
  color: #000000;
  border: 2px solid #000000;
}

.high-contrast .contact-reveal__btn:hover,
.high-contrast .contact-reveal__btn:focus {
  background: #000000;
  color: #ffffff;
}

.high-contrast .contact-action {
  background: #ffffff !important;
  color: #000000 !important;
  border: 2px solid #000000 !important;
}

.high-contrast .contact-action:hover,
.high-contrast .contact-action:focus {
  background: #000000 !important;
  color: #ffffff !important;
}

/* --- Gallery Components --- */
.high-contrast .gallery-section {
  background: #ffffff;
}

.high-contrast .gallery-section h3 {
  color: #000000;
}

.high-contrast .photo-gallery__item {
  border: 2px solid #000000;
}

.high-contrast .photo-gallery__item-overlay {
  background: rgba(0, 0, 0, 0.9);
  color: #ffffff;
}

.high-contrast .gallery-modal {
  background: rgba(0, 0, 0, 0.95);
}

.high-contrast .gallery-modal__content {
  background: #ffffff;
  border: 3px solid #000000;
}

.high-contrast .gallery-modal__close,
.high-contrast .gallery-modal__nav {
  background: #ffffff;
  color: #000000;
  border: 2px solid #000000;
}

.high-contrast .gallery-modal__close:hover,
.high-contrast .gallery-modal__nav:hover {
  background: #000000;
  color: #ffffff;
}

/* --- Feature Cards --- */
.high-contrast .feature-card {
  background: #ffffff;
  border: 2px solid #000000;
  box-shadow: none;
}

.high-contrast .feature-card:hover {
  transform: none;
  box-shadow: none;
  border-width: 3px;
}

.high-contrast .feature-card__icon {
  background: #f0f0f0;
  border: 2px solid #000000;
}

.high-contrast .feature-card__title,
.high-contrast .feature-card__text {
  color: #000000;
}

/* =============================================================================
   FLOATING ACCESSIBILITY PANEL
   Compact, WCAG 2.2 AA compliant floating panel in bottom-left corner
   ============================================================================= */

/* --- Panel Container --- */
.accessibility-panel {
  position: fixed;
  bottom: 1rem;
  left: 1rem;
  z-index: 9999;
  font-family: var(--font-family-primary, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
}

/* --- Main Toggle Button --- */
.accessibility-panel__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  min-width: 44px;
  min-height: 44px;
  border-radius: 50%;
  background: var(--color-primary, #4a6bb5);
  color: #ffffff;
  border: 2px solid #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  font-size: 1.25rem;
  font-weight: bold;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.accessibility-panel__toggle:hover {
  transform: scale(1.1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.accessibility-panel__toggle:focus {
  outline: 3px solid var(--color-focus, #ff6600);
  outline-offset: 2px;
}

.accessibility-panel__toggle[aria-expanded="true"] {
  background: var(--color-primary-dark, #3a5a9a);
}

/* --- Panel Content Container --- */
.accessibility-panel__content {
  position: absolute;
  bottom: 60px;
  left: 0;
  background: #ffffff;
  border: 2px solid var(--color-primary, #4a6bb5);
  border-radius: 12px;
  padding: 1rem;
  min-width: 200px;
  max-width: 280px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}

.accessibility-panel__content[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* --- Panel Header --- */
.accessibility-panel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #e0e0e0;
}

.accessibility-panel__title {
  font-size: 0.875rem;
  font-weight: 600;
  color: #333333;
  margin: 0;
}

.accessibility-panel__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 44px;
  min-height: 44px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 1.25rem;
  color: #666666;
  border-radius: 4px;
  margin: -6px -6px -6px 0;
}

.accessibility-panel__close:hover {
  background: #f0f0f0;
  color: #333333;
}

.accessibility-panel__close:focus {
  outline: 2px solid var(--color-focus, #ff6600);
  outline-offset: 1px;
}

/* --- Control Groups --- */
.accessibility-panel__group {
  margin-bottom: 0.75rem;
}

.accessibility-panel__group:last-child {
  margin-bottom: 0;
}

.accessibility-panel__group-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #666666;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
  display: block;
}

/* --- Control Buttons Row --- */
.accessibility-panel__row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

/* --- Individual Control Buttons --- */
.accessibility-panel__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0.5rem;
  border: 2px solid #cccccc;
  border-radius: 8px;
  background: #ffffff;
  color: #333333;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 500;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.accessibility-panel__btn:hover {
  border-color: var(--color-primary, #4a6bb5);
  background: #f5f8ff;
}

.accessibility-panel__btn:focus {
  outline: 2px solid var(--color-focus, #ff6600);
  outline-offset: 1px;
}

.accessibility-panel__btn[aria-pressed="true"] {
  background: var(--color-primary, #4a6bb5);
  color: #ffffff;
  border-color: var(--color-primary, #4a6bb5);
}

.accessibility-panel__btn--icon {
  font-size: 1.125rem;
}

/* --- Text Size Buttons --- */
.accessibility-panel__text-controls {
  display: flex;
  border: 2px solid #cccccc;
  border-radius: 8px;
  overflow: hidden;
}

.accessibility-panel__text-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0.5rem 0.75rem;
  border: none;
  background: #ffffff;
  color: #333333;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 600;
  transition: background-color 0.15s ease;
}

.accessibility-panel__text-btn:not(:last-child) {
  border-right: 1px solid #cccccc;
}

.accessibility-panel__text-btn:hover {
  background: #f5f8ff;
}

.accessibility-panel__text-btn:focus {
  outline: 2px solid var(--color-focus, #ff6600);
  outline-offset: -2px;
  z-index: 1;
  position: relative;
}

/* --- Hide Panel Button --- */
.accessibility-panel__hide {
  width: 100%;
  margin-top: 0.75rem;
  padding: 0.5rem;
  min-height: 44px;
  border: 1px solid #cccccc;
  border-radius: 6px;
  background: #f8f8f8;
  color: #666666;
  cursor: pointer;
  font-size: 0.75rem;
  text-align: center;
  transition: background-color 0.15s ease;
}

.accessibility-panel__hide:hover {
  background: #eeeeee;
  color: #333333;
}

.accessibility-panel__hide:focus {
  outline: 2px solid var(--color-focus, #ff6600);
  outline-offset: 1px;
}

/* --- Restore Panel Link (when hidden) --- */
.accessibility-panel--hidden .accessibility-panel__toggle,
.accessibility-panel--hidden .accessibility-panel__content {
  display: none;
}

.accessibility-panel__restore {
  display: none;
  position: fixed;
  bottom: 1rem;
  left: 1rem;
  min-width: 44px;
  min-height: 44px;
  padding: 0.5rem 0.75rem;
  background: rgba(74, 107, 181, 0.9);
  color: #ffffff;
  border: 2px solid #ffffff;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  z-index: 9999;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.accessibility-panel--hidden .accessibility-panel__restore {
  display: flex;
  align-items: center;
  justify-content: center;
}

.accessibility-panel__restore:hover {
  background: rgba(58, 90, 154, 0.95);
}

.accessibility-panel__restore:focus {
  outline: 3px solid var(--color-focus, #ff6600);
  outline-offset: 2px;
}

/* --- High Contrast Mode Overrides for Panel --- */
.high-contrast .accessibility-panel__toggle {
  background: #000000;
  border-color: #ffffff;
  color: #ffffff;
}

.high-contrast .accessibility-panel__content {
  background: #ffffff;
  border: 3px solid #000000;
}

.high-contrast .accessibility-panel__btn {
  border: 2px solid #000000;
  background: #ffffff;
  color: #000000;
}

.high-contrast .accessibility-panel__btn[aria-pressed="true"] {
  background: #000000;
  color: #ffffff;
}

.high-contrast .accessibility-panel__text-controls {
  border: 2px solid #000000;
}

.high-contrast .accessibility-panel__text-btn {
  border-color: #000000;
}

.high-contrast .accessibility-panel__restore {
  background: #000000;
  border-color: #ffffff;
}

/* --- Reduced Motion Support --- */
@media (prefers-reduced-motion: reduce) {
  .accessibility-panel__toggle,
  .accessibility-panel__content,
  .accessibility-panel__btn,
  .accessibility-panel__text-btn {
    transition: none !important;
  }
}

/* --- Mobile Responsive --- */
@media screen and (max-width: 480px) {
  .accessibility-panel {
    bottom: 0.5rem;
    left: 0.5rem;
  }
  
  .accessibility-panel__content {
    min-width: 180px;
    max-width: calc(100vw - 2rem);
    padding: 0.75rem;
  }
  
  .accessibility-panel__row {
    gap: 0.375rem;
  }
}

/* --- Accessibility Statement Page --- */
.high-contrast .accessibility-statement {
  background: #ffffff;
}

.high-contrast .accessibility-statement__header {
  background: #000000;
  color: #ffffff;
}

.high-contrast .accessibility-statement__title {
  color: #ffffff;
}

.high-contrast .accessibility-statement__updated {
  color: #ffffff;
}

.high-contrast .accessibility-statement__section {
  background: #ffffff;
  border: 2px solid #000000;
  box-shadow: none;
}

.high-contrast .accessibility-statement__section h3,
.high-contrast .accessibility-statement__section h4 {
  color: #000000;
  border-bottom-color: #000000;
}

.high-contrast .accessibility-statement__section p,
.high-contrast .accessibility-statement__section li {
  color: #000000;
}

.high-contrast .accessibility-statement__section code {
  background: #f0f0f0;
  border: 1px solid #000000;
  color: #000000;
}

/* --- Skip Links Enhancement --- */
.high-contrast .skip-links a {
  background: #ffffff;
  color: #000000;
  border: 3px solid #000000;
}

.high-contrast .skip-links a:focus {
  background: #000000;
  color: #ffffff;
}

/* --- Accessibility Toolbar --- */
.high-contrast .accessibility-toolbar {
  border: 2px solid #000000;
}

.high-contrast .accessibility-toolbar__btn {
  background: #ffffff !important;
  color: #000000 !important;
  border: 2px solid #000000 !important;
}

.high-contrast .accessibility-toolbar__btn:hover,
.high-contrast .accessibility-toolbar__btn:focus {
  background: #000000 !important;
  color: #ffffff !important;
}

/* --- District Placeholder Page --- */
.high-contrast .district-placeholder__hero {
  background: #ffffff;
  border: 3px solid #000000;
}

.high-contrast .district-placeholder__icon {
  filter: grayscale(100%);
}

.high-contrast .district-placeholder__title {
  color: #000000;
}

.high-contrast .district-placeholder__text {
  color: #000000;
}

.high-contrast .district-placeholder__info {
  background: #f0f0f0;
  border: 2px solid #000000;
}

.high-contrast .district-placeholder__info h2,
.high-contrast .district-placeholder__info p {
  color: #000000;
}

/* --- Tables --- */
.high-contrast table {
  border: 2px solid #000000;
}

.high-contrast th {
  background: #000000;
  color: #ffffff;
  border: 1px solid #000000;
}

.high-contrast td {
  background: #ffffff;
  color: #000000;
  border: 1px solid #000000;
}

.high-contrast tr:nth-child(even) td {
  background: #f0f0f0;
}

/* --- Blockquotes --- */
.high-contrast blockquote {
  background: #f0f0f0;
  border-left: 4px solid #000000;
  color: #000000;
}

/* --- Code Elements --- */
.high-contrast code,
.high-contrast pre {
  background: #f0f0f0;
  border: 1px solid #000000;
  color: #000000;
}

/* --- Progress Bars --- */
.high-contrast [role="progressbar"],
.high-contrast .founder-counter__progress {
  background: #f0f0f0;
  border: 2px solid #000000;
}

.high-contrast .founder-counter__progress-bar {
  background: #000000;
}

/* --- Images and Media --- */
.high-contrast img:not([role="presentation"]) {
  filter: grayscale(30%) contrast(110%);
}

.high-contrast .founder-card__image,
.high-contrast .photo-gallery__item img {
  filter: grayscale(50%) contrast(120%);
}

/* --- SVG Icons --- */
.high-contrast svg {
  fill: #000000;
  stroke: #000000;
}

.high-contrast .site-footer svg {
  fill: #ffffff;
  stroke: #ffffff;
}
