/* Версия для слабовидящих */
:root {
  --a11y-panel-h: 56px;
}

html.a11y-on,
html[data-a11y='on'] {
  scroll-padding-top: calc(var(--a11y-panel-h) + 80px);
}

.a11y-panel {
  display: none;
  position: fixed;
  inset: 0 0 auto;
  z-index: 100000;
  background: #111;
  color: #fff;
  border-bottom: 3px solid #fff;
  font-family: Arial, Helvetica, sans-serif;
}

html.a11y-on .a11y-panel,
html[data-a11y='on'] .a11y-panel {
  display: block;
}

.a11y-panel__inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  min-height: var(--a11y-panel-h);
}

.a11y-panel__label {
  font-weight: 700;
  font-size: 0.95rem;
  margin-right: 4px;
}

.a11y-panel__group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.a11y-panel__group > span {
  font-size: 0.88rem;
  opacity: 0.9;
}

.a11y-panel__btn {
  min-width: 36px;
  min-height: 36px;
  padding: 6px 12px;
  border: 2px solid #fff;
  border-radius: 6px;
  background: transparent;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.a11y-panel__btn:hover,
.a11y-panel__btn:focus-visible {
  background: #fff;
  color: #111;
  outline: none;
}

.a11y-panel__btn.is-active {
  background: #fff;
  color: #111;
}

.a11y-panel__btn--off {
  margin-left: auto;
  background: #c0392b;
  border-color: #c0392b;
}

.a11y-panel__btn--off:hover,
.a11y-panel__btn--off:focus-visible {
  background: #fff;
  color: #c0392b;
}

.a11y-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  color: inherit;
  line-height: 0;
}

.a11y-toggle__icon {
  display: block;
  overflow: visible;
  flex-shrink: 0;
}

.nav__a11y-btn {
  flex-shrink: 0;
  overflow: visible;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 2px solid var(--border, rgba(20, 33, 61, 0.15));
  color: var(--dark, #14213d);
  background: var(--bg-alt, #f8fafe);
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.nav__a11y-btn:hover,
.nav__a11y-btn:focus-visible {
  border-color: var(--primary-dark, #27ae60);
  color: var(--primary-dark, #27ae60);
  background: #fff;
  outline: none;
}

.nav__a11y-btn.is-active {
  border-color: var(--primary-dark, #27ae60);
  background: var(--primary-dark, #27ae60);
  color: #fff;
}

.page-header__a11y-btn {
  width: 40px;
  height: 40px;
  margin-left: 12px;
  vertical-align: middle;
  border-radius: 10px;
  border: 2px solid rgba(255, 255, 255, 0.65);
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.page-header__a11y-btn:hover,
.page-header__a11y-btn:focus-visible {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.18);
  outline: none;
}

.page-header__a11y-btn.is-active {
  background: #fff;
  color: var(--dark, #14213d);
  border-color: #fff;
}

.page-header__a11y-btn--light {
  border-color: var(--primary-dark, #27ae60);
  color: var(--primary-dark, #27ae60);
  background: #fff;
  margin-top: 10px;
  margin-left: 0;
}

.page-header__a11y-btn--light.is-active {
  background: var(--primary-dark, #27ae60);
  color: #fff;
}

.booking-header__a11y-btn {
  width: 40px;
  height: 40px;
  margin-left: auto;
  margin-right: 12px;
  border-radius: 10px;
  border: 2px solid var(--border, rgba(20, 33, 61, 0.15));
  color: var(--dark, #14213d);
  background: var(--bg-alt, #f8fafe);
}

.booking-header__a11y-btn:hover,
.booking-header__a11y-btn:focus-visible {
  border-color: var(--primary-dark, #27ae60);
  color: var(--primary-dark, #27ae60);
  outline: none;
}

.booking-header__a11y-btn.is-active {
  border-color: var(--primary-dark, #27ae60);
  background: var(--primary-dark, #27ae60);
  color: #fff;
}

.header__inner .booking-header__back {
  margin-left: 0;
}

@media (max-width: 768px) {
  .nav__a11y-btn {
    width: 44px;
    height: 44px;
  }

  .booking-header__a11y-btn {
    margin-right: 8px;
  }
}

html.a11y-on.a11y-theme-default body {
  background: #fff !important;
  color: #000 !important;
}

html.a11y-on.a11y-theme-default a {
  color: #000 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

html.a11y-on.a11y-theme-default .btn,
html.a11y-on.a11y-theme-default button.btn {
  background: #000 !important;
  color: #fff !important;
  border: 2px solid #000 !important;
  box-shadow: none !important;
}

html.a11y-on.a11y-theme-default .btn--outline {
  background: #fff !important;
  color: #000 !important;
  border: 2px solid #000 !important;
}

html.a11y-on.a11y-theme-dark body {
  background: #000 !important;
  color: #fff !important;
}

html.a11y-on.a11y-theme-dark a {
  color: #fff !important;
  text-decoration: underline !important;
}

html.a11y-on.a11y-theme-dark .header,
html.a11y-on.a11y-theme-dark .section--alt,
html.a11y-on.a11y-theme-dark .hero,
html.a11y-on.a11y-theme-dark .footer,
html.a11y-on.a11y-theme-dark .page-header,
html.a11y-on.a11y-theme-dark .doc,
html.a11y-on.a11y-theme-dark .booking-page,
html.a11y-on.a11y-theme-dark .service-card,
html.a11y-on.a11y-theme-dark .doctor-card,
html.a11y-on.a11y-theme-dark .review-card,
html.a11y-on.a11y-theme-dark .contact-card,
html.a11y-on.a11y-theme-dark .price-card,
html.a11y-on.a11y-theme-dark .faq-item,
html.a11y-on.a11y-theme-dark .booking-card {
  background: #000 !important;
  color: #fff !important;
  box-shadow: none !important;
}

html.a11y-on.a11y-theme-dark .btn {
  background: #fff !important;
  color: #000 !important;
  border: 2px solid #fff !important;
}

html.a11y-on.a11y-theme-dark .section__title,
html.a11y-on.a11y-theme-dark h1,
html.a11y-on.a11y-theme-dark h2,
html.a11y-on.a11y-theme-dark h3,
html.a11y-on.a11y-theme-dark strong {
  color: #fff !important;
}

html.a11y-on.a11y-theme-blue body {
  background: #9dd1ff !important;
  color: #063462 !important;
}

html.a11y-on.a11y-theme-blue a {
  color: #063462 !important;
  text-decoration: underline !important;
}

html.a11y-on.a11y-theme-blue .header,
html.a11y-on.a11y-theme-blue .section--alt,
html.a11y-on.a11y-theme-blue .hero,
html.a11y-on.a11y-theme-blue .footer,
html.a11y-on.a11y-theme-blue .page-header,
html.a11y-on.a11y-theme-blue .doc,
html.a11y-on.a11y-theme-blue .booking-page,
html.a11y-on.a11y-theme-blue .service-card,
html.a11y-on.a11y-theme-blue .doctor-card,
html.a11y-on.a11y-theme-blue .review-card,
html.a11y-on.a11y-theme-blue .contact-card,
html.a11y-on.a11y-theme-blue .price-card,
html.a11y-on.a11y-theme-blue .faq-item,
html.a11y-on.a11y-theme-blue .booking-card {
  background: #9dd1ff !important;
  color: #063462 !important;
  box-shadow: none !important;
}

html.a11y-on.a11y-theme-blue .btn {
  background: #063462 !important;
  color: #9dd1ff !important;
  border: 2px solid #063462 !important;
}

html.a11y-on.a11y-theme-blue .section__title,
html.a11y-on.a11y-theme-blue h1,
html.a11y-on.a11y-theme-blue h2,
html.a11y-on.a11y-theme-blue h3,
html.a11y-on.a11y-theme-blue strong {
  color: #063462 !important;
}

html.a11y-on {
  font-size: 100%;
}

html.a11y-on.a11y-fs-1 {
  font-size: 112.5%;
}

html.a11y-on.a11y-fs-2 {
  font-size: 125%;
}

html.a11y-on body {
  line-height: 1.75 !important;
  letter-spacing: 0.02em;
}

html.a11y-on .header {
  top: var(--a11y-panel-h);
}

html.a11y-on .booking-page {
  padding-top: calc(120px + var(--a11y-panel-h));
}

html.a11y-on .hero,
html.a11y-on .page-header {
  background-image: none !important;
}

html.a11y-on img,
html.a11y-on video,
html.a11y-on iframe:not(.widget-frame) {
  outline: 2px solid currentColor;
}

html.a11y-on.a11y-no-images img:not(.a11y-keep),
html.a11y-on.a11y-no-images video {
  visibility: hidden !important;
  height: 0 !important;
  width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

html.a11y-on *:focus-visible {
  outline: 3px solid currentColor !important;
  outline-offset: 2px;
}

@media (max-width: 768px) {
  :root {
    --a11y-panel-h: auto;
  }

  .a11y-panel__inner {
    padding: 12px 16px;
  }

  .a11y-panel__btn--off {
    margin-left: 0;
    width: 100%;
  }

  html.a11y-on .header {
    top: 0;
  }

  html.a11y-on .booking-page {
    padding-top: calc(104px + 88px);
  }
}

/* --- Прайс, карточки, запись на приём --- */
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .section,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .section--alt {
  background: #000 !important;
  color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .section__subtitle,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .price-row__name,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .price-row__price,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .service-card,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .guarantee-card {
  color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .price-table,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .price-row {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .price-row:nth-child(even) {
  background: #111 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .price-row__price {
  color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .price-table,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .price-row {
  background: #9dd1ff !important;
  color: #063462 !important;
  border-color: #063462 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .price-row:nth-child(even) {
  background: #8bc7ff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .price-row__name,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .price-row__price {
  color: #063462 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-page {
  background: #000 !important;
  color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-card,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-doctor,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-date,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-time,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-success,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-panel input,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-panel textarea {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-doctor__name,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-doctor__specialty,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-heading h1,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-panel h2,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-summary__label,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-summary__value,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-panel label,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-step,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-selection,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-consent,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-header__back,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-eyebrow,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-heading > p,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-empty,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-success p,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-success h2 {
  color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-summary,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-empty {
  background: #111 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-date.is-selected,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-time.is-selected {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-date.is-selected .booking-date__weekday {
  color: #333 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-step span {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-step.is-active span,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-dark .booking-step.is-done span {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-page {
  background: #9dd1ff !important;
  color: #063462 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-card,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-doctor,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-date,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-time,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-success,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-panel input,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-panel textarea {
  background: #9dd1ff !important;
  color: #063462 !important;
  border-color: #063462 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-doctor__name,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-doctor__specialty,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-heading h1,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-panel h2,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-summary__label,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-summary__value,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-panel label,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-step,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-selection,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-consent,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-header__back,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-eyebrow,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-heading > p,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-empty,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-success p,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-success h2 {
  color: #063462 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-summary,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-empty {
  background: #8bc7ff !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-date.is-selected,
:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-time.is-selected {
  background: #063462 !important;
  color: #9dd1ff !important;
  border-color: #063462 !important;
}

:is(html.a11y-on, html[data-a11y='on']).a11y-theme-blue .booking-date.is-selected .booking-date__weekday {
  color: #cfe8ff !important;
}
