/* ==========================
   Панель слабовидящих
========================== */

.a11y-bar {

	background:#fff;
	color:#000;

	width:100%;

	box-sizing:border-box;

	padding:26px 40px;

	border-bottom:1px solid #ddd;

	font-family:Arial, sans-serif;

	position:relative;

	z-index:99999;

}


.a11y-row {

	width:100%;

	display:flex;

	align-items:center;

	gap:100px;

	flex-wrap:wrap;

}


.a11y-col {

	display:flex;

	align-items:center;

	gap:22px;

}


.a11y-col-close {

	margin-left:auto;

}


.a11y-name {

	font-size:26px;

	color:#000;

	white-space:nowrap;

}


.a11y-options {

	display:flex;

	gap:10px;

	align-items:center;

}



/* кнопки */


.a11y-font-opt,
.a11y-color-opt {


	width:48px;

	height:48px;


	border:2px solid #bdbdbd;

	border-radius:10px;


	background:#fff;

	color:#000;


	cursor:pointer;


	display:flex;

	align-items:center;

	justify-content:center;


	font-family:Arial;

	position:relative;

}



.a11y-font-opt[data-step="0"]{

	font-size:18px;

}


.a11y-font-opt[data-step="1"]{

	font-size:22px;

}


.a11y-font-opt[data-step="2"]{

	font-size:26px;

}




.a11y-font-opt.is-active,
.a11y-color-opt.is-active,
.a11y-image-opt.is-active {

	border-color:#000;

}



.a11y-font-opt.is-active:after,
.a11y-color-opt.is-active:after {


	content:"";


	position:absolute;


	height:2px;


	background:#000;


	left:0;

	right:0;

	bottom:-15px;

}




/* изображения */


.a11y-image-opt {


	height:48px;


	padding:0 18px;


	background:#fff;


	border:2px solid #bbb;


	border-radius:10px;


	display:flex;

	align-items:center;

	gap:10px;


	font-size:18px;


	cursor:pointer;


	color:#000;


}


.a11y-image-opt svg{

	width:24px;

	height:24px;

	fill:currentColor;

}





/* обычная версия */


.a11y-close-btn {


	border:0;


	background:transparent;


	display:flex;


	align-items:center;


	gap:15px;


	font-size:26px;


	cursor:pointer;


	color:#000;

}



.a11y-close-btn svg {

	width:32px;

	height:28px;

	fill:#000;

}




/* ==========================
   Стили сайта
========================== */


/* размер */

/*
   В style.css размеры почти везде заданы в px (заголовки, кнопки,
   карточки и т.д.), поэтому простое увеличение font-size у body
   не масштабирует те элементы, у которых размер задан явно своим
   собственным правилом — а таких на сайте большинство.
   Чтобы увеличение размера реально затрагивало "все блоки" (а не
   только наследуемый текст), используем zoom — он масштабирует
   весь блок (текст, отступы, кнопки, иконки) пропорционально,
   как обычный зум браузера. font-size оставлен как доп. подстраховка
   для текста, который всё же наследует размер от body.
*/

html.a11y-fs-1 body {

	font-size:125%!important;

	zoom:1.25;

}


html.a11y-fs-2 body {

	font-size:150%!important;

	zoom:1.5;

}


/* саму панель и полноэкранные модалки/шторки сайта не масштабируем —
   у них фиксированные размеры (position:fixed, inset:0), и при зуме
   их геометрия "съезжает" относительно реального вьюпорта */

html.a11y-fs-1 .a11y-bar,
html.a11y-fs-1 .review-modal,
html.a11y-fs-1 .modal-max,
html.a11y-fs-1 .page_open-programs .programs .left {

	zoom:0.8;

}


html.a11y-fs-2 .a11y-bar,
html.a11y-fs-2 .review-modal,
html.a11y-fs-2 .modal-max,
html.a11y-fs-2 .page_open-programs .programs .left {

	zoom:0.6667;

}




/* ==========================
   Кнопки и бейджи с жёсткой
   высотой (height) — переводим
   в min-height + height:auto,
   чтобы при увеличении шрифта
   текст внутри не "обрезался",
   а кнопка/бейдж росли вместе
   с контентом
========================== */


/* кнопки высотой 43px (единый размер кнопок по всему сайту) */

body.a11y-enabled .page_main .cases .card-button,
body.a11y-enabled .page_news .news .show-more,
body.a11y-enabled .page_activity .event .send-application,
body.a11y-enabled .page_event .event .send-application,
body.a11y-enabled .page_for-employees .buns .card-button,
body.a11y-enabled .page_open-programs .programs .reset,
body.a11y-enabled .page_main .cases .card-button-text,
body.a11y-enabled .section_popular-programs .all-programs,
body.a11y-enabled .section_events .card-button,
body.a11y-enabled .section_events .card-button-text,
body.a11y-enabled .section_events .all-news,
body.a11y-enabled .page_for-employees .comments .card-button,
body.a11y-enabled .page_open-programs .comments .card-button,
body.a11y-enabled .page_corporate-programs .cases .card-button,
body.a11y-enabled .page_news .cases .card-button,
body.a11y-enabled .page_open-programs .programs .card-button,
body.a11y-enabled .page_main .start .button,
body.a11y-enabled .section_start .get-consultation,
body.a11y-enabled .section_form .submit,
body.a11y-enabled .section_flagman .grid .card .card-bottom button,
body.a11y-enabled .go-home-button,
body.a11y-enabled .room-card__button,
body.a11y-enabled #splide_partners_mob #showMorePartners,
body.a11y-enabled .programm-buttons-blog a {

	height:auto!important;

	min-height:43px!important;

	padding-top:10px!important;

	padding-bottom:10px!important;

}


/* бейджи/мини-кнопки высотой 32px */

body.a11y-enabled header .personal-cabinet,
body.a11y-enabled .section_popular-programs .date,
body.a11y-enabled .page_for-employees .section_start .tag,
body.a11y-enabled .component_tag-checkbox {

	height:auto!important;

	min-height:32px!important;

	padding-top:6px!important;

	padding-bottom:6px!important;

}




/* картинки */

body.a11y-img-hide img,
body.a11y-img-hide picture {

	opacity:0!important;

}


/* декоративные фоновые картинки, подставленные через inline-style
   (например, баннеры из админки), тег img/picture не используют —
   гасим и их */

body.a11y-img-hide [style*="background-image"]:not(.a11y-bar *) {

	background-image:none!important;

}






/* ==========================
   Контраст
   кроме панели
========================== */



html.a11y-theme-contrast1 body {

	background:#000!important;

	color:#fff!important;

}



html.a11y-theme-contrast1 body *:not(.a11y-bar):not(.a11y-bar *) {


	background-color:#000!important;

	color:#fff!important;

	border-color:#fff!important;

	box-shadow:none!important;

}


/* иконки на сайте часто залиты "своим" цветом (fill/stroke) —
   color/background-color/border-color их не трогают, поэтому
   перекрашиваем отдельно */

html.a11y-theme-contrast1 body svg:not(.a11y-bar svg),
html.a11y-theme-contrast1 body svg:not(.a11y-bar svg) * {

	fill:#fff!important;

	stroke:#fff!important;

}


/* фотографии в режиме высокого контраста переводим в ч/б,
   чтобы цветной контент не "спорил" с контрастной схемой */

html.a11y-theme-contrast1 body img:not(.a11y-bar *),
html.a11y-theme-contrast1 body picture:not(.a11y-bar *) {

	filter:grayscale(1) contrast(1.1)!important;

}




html.a11y-theme-contrast2 body {


	background:#000!important;


	color:#ffe500!important;

}




html.a11y-theme-contrast2 body *:not(.a11y-bar):not(.a11y-bar *) {


	background-color:#000!important;


	color:#ffe500!important;


	border-color:#ffe500!important;


	box-shadow:none!important;

}


html.a11y-theme-contrast2 body svg:not(.a11y-bar svg),
html.a11y-theme-contrast2 body svg:not(.a11y-bar svg) * {

	fill:#ffe500!important;

	stroke:#ffe500!important;

}


html.a11y-theme-contrast2 body img:not(.a11y-bar *),
html.a11y-theme-contrast2 body picture:not(.a11y-bar *) {

	filter:grayscale(1) contrast(1.1)!important;

}



body.a11y-enabled header,
body.a11y-enabled .header {

	transform:translateY(var(--a11y-height));

}


/* адаптив */


@media(max-width:1200px){


	.a11y-row{

		gap:30px;

	}


	.a11y-col-close{

		margin-left:0;

	}


}




/* ==========================
   Фокус при навигации
   с клавиатуры (Tab)
   В style.css outline снят
   у всех :focus — для версии
   для слабовидящих возвращаем
   видимый фокус (ГОСТ Р 52872-2019)
========================== */


body.a11y-enabled *:focus-visible:not(.a11y-bar *) {

	outline:3px solid #f17b2b!important;

	outline-offset:2px!important;

}


html.a11y-theme-contrast1 body *:focus-visible:not(.a11y-bar *) {

	outline-color:#fff!important;

}


html.a11y-theme-contrast2 body *:focus-visible:not(.a11y-bar *) {

	outline-color:#ffe500!important;

}




/* ==========================
   Ссылки должны отличаться
   не только цветом
========================== */


body.a11y-enabled a:not(.a11y-bar a) {

	text-decoration:underline!important;

	text-underline-offset:2px;

}