/* accessibility.css */
:root {
  --acc-font-scale: 1;
}

/* Пропуск к содержимому */
.skip-link {
  position: absolute;
  top: -40px;
  right: 10px;
  z-index: 10001;
  background: #000;
  color: #fff;
  padding: 10px 14px;
  border-radius: 8px;
  text-decoration: none;
  font-size: 16px;
}

.skip-link:focus {
  top: 10px;
}

/* Кнопка виджета */
.acc-widget-button {
  position: fixed;
  left: 20px;
  bottom: 20px;
  z-index: 10000;
  width: 56px;
  height: 56px;
  border: none;
  border-radius: 50%;
  background: #005fcc;
  color: #fff;
  font-size: 28px;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

.acc-widget-button:focus-visible {
  outline: 3px solid #ffcc00;
  outline-offset: 3px;
}

/* Панель */
.acc-widget-panel {
  position: fixed;
  left: 20px;
  bottom: 90px;
  width: 320px;
  max-width: calc(100vw - 40px);
  background: #ffffff;
  color: #111;
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
  z-index: 10000;
  padding: 16px;
  display: none;
  direction: rtl;
  text-align: right;
}

.acc-widget-panel.open {
  display: block;
}

.acc-widget-panel h2 {
  margin: 0 0 12px 0;
  font-size: 20px;
}

.acc-widget-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.acc-widget-action,
.acc-widget-reset {
  border: 1px solid #cfd6dd;
  background: #f7f9fb;
  color: #111;
  border-radius: 12px;
  padding: 12px;
  cursor: pointer;
  font-size: 15px;
  line-height: 1.3;
}

.acc-widget-action:hover,
.acc-widget-reset:hover {
  background: #eef3f8;
}

.acc-widget-action[aria-pressed="true"] {
  background: #dbeafe;
  border-color: #60a5fa;
}

.acc-widget-reset {
  margin-top: 12px;
  width: 100%;
}

.acc-widget-panel button:focus-visible {
  outline: 3px solid #005fcc;
  outline-offset: 2px;
}

/* Глобальные режимы увеличения текста
   Базовое изменение html оставлено,
   но основной эффект делается через целевые элементы,
   потому что на сайте много размеров в px. */
html.acc-font-large {
  font-size: 112.5%;
}

html.acc-font-xlarge {
  font-size: 125%;
}

/* Общее увеличение */
html.acc-font-large body,
html.acc-font-large p,
html.acc-font-large a,
html.acc-font-large li,
html.acc-font-large span,
html.acc-font-large strong,
html.acc-font-large em,
html.acc-font-large label,
html.acc-font-large input,
html.acc-font-large textarea,
html.acc-font-large select,
html.acc-font-large button,
html.acc-font-large h1,
html.acc-font-large h2,
html.acc-font-large h3,
html.acc-font-large h4,
html.acc-font-large h5,
html.acc-font-large h6 {
  font-size: 1.15em !important;
}

html.acc-font-xlarge body,
html.acc-font-xlarge p,
html.acc-font-xlarge a,
html.acc-font-xlarge li,
html.acc-font-xlarge span,
html.acc-font-xlarge strong,
html.acc-font-xlarge em,
html.acc-font-xlarge label,
html.acc-font-xlarge input,
html.acc-font-xlarge textarea,
html.acc-font-xlarge select,
html.acc-font-xlarge button,
html.acc-font-xlarge h1,
html.acc-font-xlarge h2,
html.acc-font-xlarge h3,
html.acc-font-xlarge h4,
html.acc-font-xlarge h5,
html.acc-font-xlarge h6 {
  font-size: 1.3em !important;
}

/* Точная подстройка под текущий сайт */
html.acc-font-large .hero h1 {
  font-size: 46px !important;
}

html.acc-font-large .hero p {
  font-size: 23px !important;
}

html.acc-font-large .quest-value h2,
html.acc-font-large .quest-price h2,
html.acc-font-large .cta h2,
html.acc-font-large .faq h2 {
  font-size: 37px !important;
}

html.acc-font-large .quest-value p,
html.acc-font-large .cta p,
html.acc-font-large .faq-answer p,
html.acc-font-large .map-subtitle,
html.acc-font-large .alpha-strip,
html.acc-font-large .alpha-price-note,
html.acc-font-large .price-box p,
html.acc-font-large .faq-question,
html.acc-font-large footer p {
  font-size: 21px !important;
}

html.acc-font-large .new-price {
  font-size: 42px !important;
}

html.acc-font-large .old-price {
  font-size: 26px !important;
}

html.acc-font-xlarge .hero h1 {
  font-size: 52px !important;
}

html.acc-font-xlarge .hero p {
  font-size: 26px !important;
}

html.acc-font-xlarge .quest-value h2,
html.acc-font-xlarge .quest-price h2,
html.acc-font-xlarge .cta h2,
html.acc-font-xlarge .faq h2 {
  font-size: 42px !important;
}

html.acc-font-xlarge .quest-value p,
html.acc-font-xlarge .cta p,
html.acc-font-xlarge .faq-answer p,
html.acc-font-xlarge .map-subtitle,
html.acc-font-xlarge .alpha-strip,
html.acc-font-xlarge .alpha-price-note,
html.acc-font-xlarge .price-box p,
html.acc-font-xlarge .faq-question,
html.acc-font-xlarge footer p {
  font-size: 24px !important;
}

html.acc-font-xlarge .new-price {
  font-size: 48px !important;
}

html.acc-font-xlarge .old-price {
  font-size: 30px !important;
}

/* Читаемый шрифт */
html.acc-readable-font body,
html.acc-readable-font button,
html.acc-readable-font input,
html.acc-readable-font textarea,
html.acc-readable-font select,
html.acc-readable-font a,
html.acc-readable-font p,
html.acc-readable-font h1,
html.acc-readable-font h2,
html.acc-readable-font h3,
html.acc-readable-font h4,
html.acc-readable-font h5,
html.acc-readable-font h6,
html.acc-readable-font li,
html.acc-readable-font span,
html.acc-readable-font div {
  font-family: Arial, Helvetica, sans-serif !important;
  letter-spacing: 0 !important;
}

/* Подчёркивание ссылок */
html.acc-underline-links a {
  text-decoration: underline !important;
}

/* Высокая контрастность */
html.acc-high-contrast body,
html.acc-high-contrast section,
html.acc-high-contrast header,
html.acc-high-contrast footer,
html.acc-high-contrast main,
html.acc-high-contrast div,
html.acc-high-contrast article,
html.acc-high-contrast aside,
html.acc-high-contrast nav,
html.acc-high-contrast p,
html.acc-high-contrast h1,
html.acc-high-contrast h2,
html.acc-high-contrast h3,
html.acc-high-contrast h4,
html.acc-high-contrast h5,
html.acc-high-contrast h6,
html.acc-high-contrast li,
html.acc-high-contrast span,
html.acc-high-contrast .faq-item,
html.acc-high-contrast .price-box,
html.acc-high-contrast .quest-value,
html.acc-high-contrast .quest-price,
html.acc-high-contrast .faq,
html.acc-high-contrast .map-section,
html.acc-high-contrast .cta-content {
  background-color: #000 !important;
  color: #fff !important;
  text-shadow: none !important;
  box-shadow: none !important;
  background-image: none !important;
}

html.acc-high-contrast a,
html.acc-high-contrast button {
  background: #111 !important;
  color: #ff0 !important;
  border-color: #ff0 !important;
}

html.acc-high-contrast .hero::after,
html.acc-high-contrast .cta-overlay {
  background: rgba(0, 0, 0, 0.85) !important;
}

html.acc-high-contrast .old-price {
  color: #ccc !important;
}

html.acc-high-contrast .new-price {
  color: #ff0 !important;
}

/* Градации серого */
html.acc-grayscale {
  filter: grayscale(100%);
}

/* Большой курсор */
html.acc-big-cursor,
html.acc-big-cursor * {
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><path fill='black' d='M4 2l20 12-9 2 5 10-4 2-5-10-7 6z'/><path fill='white' d='M6 5l15 9-7 2 4 9-1 .5-4-9-5 4z'/></svg>") 0 0, auto !important;
}

/* Остановка анимаций */
html.acc-stop-animations *,
html.acc-stop-animations *::before,
html.acc-stop-animations *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}

/* Если на сайте где-то останутся параллакс-остатки */
html.acc-stop-animations .cta-bg {
  transform: none !important;
  will-change: auto !important;
}

/* Подсветка фокуса */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #ffcc00;
  outline-offset: 3px;
}

/* Мобильная адаптация виджета */
@media screen and (max-width: 768px) {
  .acc-widget-button {
    left: 14px;
    bottom: 14px;
    width: 52px;
    height: 52px;
    font-size: 24px;
  }

  .acc-widget-panel {
    left: 14px;
    right: 14px;
    bottom: 78px;
    width: auto;
    max-width: none;
  }

  .acc-widget-grid {
    grid-template-columns: 1fr;
  }

  html.acc-font-large .hero h1 {
    font-size: 28px !important;
  }

  html.acc-font-large .hero p {
    font-size: 18px !important;
  }

  html.acc-font-large .quest-value h2,
  html.acc-font-large .quest-price h2,
  html.acc-font-large .cta h2,
  html.acc-font-large .faq h2 {
    font-size: 28px !important;
  }

  html.acc-font-large .quest-value p,
  html.acc-font-large .cta p,
  html.acc-font-large .faq-answer p,
  html.acc-font-large .map-subtitle,
  html.acc-font-large .alpha-strip,
  html.acc-font-large .alpha-price-note,
  html.acc-font-large .price-box p,
  html.acc-font-large .faq-question,
  html.acc-font-large footer p {
    font-size: 18px !important;
  }

  html.acc-font-large .new-price {
    font-size: 34px !important;
  }

  html.acc-font-large .old-price {
    font-size: 22px !important;
  }

  html.acc-font-xlarge .hero h1 {
    font-size: 32px !important;
  }

  html.acc-font-xlarge .hero p {
    font-size: 20px !important;
  }

  html.acc-font-xlarge .quest-value h2,
  html.acc-font-xlarge .quest-price h2,
  html.acc-font-xlarge .cta h2,
  html.acc-font-xlarge .faq h2 {
    font-size: 31px !important;
  }

  html.acc-font-xlarge .quest-value p,
  html.acc-font-xlarge .cta p,
  html.acc-font-xlarge .faq-answer p,
  html.acc-font-xlarge .map-subtitle,
  html.acc-font-xlarge .alpha-strip,
  html.acc-font-xlarge .alpha-price-note,
  html.acc-font-xlarge .price-box p,
  html.acc-font-xlarge .faq-question,
  html.acc-font-xlarge footer p {
    font-size: 20px !important;
  }

  html.acc-font-xlarge .new-price {
    font-size: 38px !important;
  }

  html.acc-font-xlarge .old-price {
    font-size: 24px !important;
  }
}

/* Системная настройка reduced motion */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}