@import url("../bootstrap/bootstrap.min.css");
@import url("../jquery/jquery-ui/jquery-ui.css");
@import url("../owlcarousel/owl.carousel.min.css");
/*
* ----------------------------------------------------------------------------------------
* Fonts
* ----------------------------------------------------------------------------------------
*/
@import url("../fonts/fontawesome-free-6.7.2-web/css/all.min.css");
@import url("../fonts/bootstrap-icons-1.11.3/font/bootstrap-icons.min.css");
/*
* ----------------------------------------------------------------------------------------
* Root
* ----------------------------------------------------------------------------------------
*/
:root {
}
/*
* ----------------------------------------------------------------------------------------
* General
* ----------------------------------------------------------------------------------------
*/
*, *::before, *::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
body {
	font-size: 1em;
	font-weight: 400;
	font-family: "Roboto", sans-serif;
	color: var(--bs-dark);
	line-height: 1.3em;
}
html {
	scrollbar-gutter: stable;
	overflow-y: scroll;
}
a {
	color: var(--bs-dark);
	text-transform: inherit;
	text-decoration: none;
	transition: all 0.3s ease;
}
a:hover, a :focus {
	text-decoration: none;
	box-shadow: none;
	color: var(--bs-danger);
}
a:focus {
	outline: 0 solid;
}
img {
	max-width: 100%;
	height: auto;
}
h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
	line-height: 1;
}
ul {
	padding: 0px !important;
	margin: 0px !important;
	list-style: none;
}

@media (prefers-reduced-motion: no-preference) {
:root {
	scroll-behavior: auto;
}
}
main {
	flex: 1 0 auto;
}
/*
* ----------------------------------------------------------------------------------------
* Flex
* ----------------------------------------------------------------------------------------
*/
.flex {
	display: flex;
	flex-wrap: wrap;
}
.flex-item {
	height: 100%;
	flex: 1;
}
.container {
	position: relative !important;
}
/*
* ----------------------------------------------------------------------------------------
* Owl Carousel
* ----------------------------------------------------------------------------------------
*/
.owl-stage {
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.owl-item {
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	height: auto !important;
	padding: 5px;
}
.owl-carousel .owl-prev, .owl-carousel .owl-next {
	position: absolute !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 42px !important;
	height: 42px !important;
	border-radius: 50% !important;
	background-color: var(--bs-body-bg) !important;
	border: 1px solid var(--bs-border-color) !important;
	color: var(--bs-body-color) !important;
	box-shadow: var(--bs-box-shadow-sm) !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease-in-out;
	z-index: 100;
}
.owl-carousel .owl-prev {
	left: -50px !important;
}
.owl-carousel .owl-next {
	right: -50px !important;
}
.owl-carousel .owl-prev:hover, .owl-carousel .owl-next:hover {
	background-color: var(--bs-tertiary-bg) !important;
	border-color: var(--bs-border-color-translucent) !important;
	color: var(--green-color) !important;
	box-shadow: var(--bs-box-shadow) !important;
}
.owl-carousel .owl-nav {
	margin: 0 !important;
}
.owl-carousel .owl-nav button:hover {
	background: none !important;
}

@media (max-width: 991.98px) {
.owl-carousel .owl-nav {
	display: none !important;
}
}
/* Offcanvas */
#offcanvasVision, #offcanvasVision .offcanvas-header, #offcanvasVision .offcanvas-body {
	background-color: #ffffff !important;
	color: #212529 !important;
	letter-spacing: normal !important;
}
#offcanvasVision legend {
	font-size: 0.75rem !important;
	line-height: 1.2 !important;
	margin-bottom: 10px !important;
	float: none !important;
	display: block !important;
	color: #6c757d !important;
	width: 100% !important;
	border: none !important;
}
#offcanvasVision fieldset {
	border: none !important;
	padding: 0 !important;
	margin-bottom: 1.5rem !important;
}
#offcanvasVision .btn {
	border: 2px solid #dee2e6 !important;
	background-color: #f8f9fa !important;
	color: #212529 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: 1 1 0 !important;
	height: 48px !important;
}
#offcanvasVision .btn.btn-bvi-bw {
	background-color: #ffffff !important;
	color: #000 !important;
}
#offcanvasVision .btn.btn-bvi-blue {
	background-color: #E3F2FD !important;
	color: #002654 !important;
}
#offcanvasVision .btn.btn-bvi-yellow {
	background-color: #ffff00 !important;
	color: #000 !important;
}
#offcanvasVision .btn.btn-bvi-black-white {
	background-color: #000000 !important;
	color: #fff !important;
}
#offcanvasVision .btn.btn-bvi-black-green {
	background-color: #000000 !important;
	color: #00ff00 !important;
}
#offcanvasVision .btn.active {
	border-color: #dc3545 !important;
	border-width: 3px !important;
	z-index: 5;
	position: relative;
}
#offcanvasVision .btn-danger.lv-undo {
	background-color: #dc3545 !important;
	color: #fff !important;
	border: none !important;
	font-weight: bold !important;
	font-size: 14px !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
}
#offcanvasVision .btn-close {
	width: 1rem !important;
	height: 1rem !important;
	font-size: 1rem !important;
	opacity: 0.8;
}
#offcanvasVision .bvi-f-small {
	font-size: 14px !important;
}
#offcanvasVision .bvi-f-medium {
	font-size: 20px !important;
}
#offcanvasVision .bvi-f-large {	
	font-size: 26px !important;
}

/* Родителю (карточке) обязательно задаем позиционирование */
.card.bvi-border, .item {
    position: relative;
}

/* Стиль кнопки озвучки с абсолютным позиционированием */
.bvi-audio-trigger {
    position: absolute;
    top: 15px;      /* Отступ сверху */
    right: 15px;    /* Отступ справа */
    z-index: 10;    /* Чтобы была поверх картинок */
    
    border-radius: 20px !important;
    padding: 5px 12px !important;
    transition: all 0.3s ease;
    
    /* Убираем лишние внешние отступы, так как позиционируем вручную */
    margin: 0 !important; 
    white-space: nowrap;
}

/* Состояние когда звук ИГРАЕТ */
.bvi-audio-trigger.playing {
    background-color: #dc3545 !important;
    color: #fff !important;
    border-color: #dc3545 !important;
    animation: bvi-pulse 1.5s infinite;
}

@keyframes bvi-pulse {
    0% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(220, 53, 69, 0); }
    100% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0); }
}

/* В режиме BVI */
body.bvi-active .bvi-audio-trigger.playing {
    animation: none;
    text-decoration: none !important;
    border: 3px solid currentColor !important;
    background-color: transparent !important; /* В спецсхемах лучше прозрачный фон */
}

/* Фикс для мобильных: если кнопка слишком большая, чуть уменьшаем */
@media (max-width: 576px) {
    .bvi-audio-trigger {
        top: 10px;
        right: 10px;
        font-size: 0.8rem;
    }
}
















/* Позиционирование стрелок карусели */
.owl-nav {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 20px;
}

.owl-nav button {
    background: none !important;
    border: none !important;
}

/* Стилизация картинок работ */
.works-carousel .card-img-top {
    height: 220px;
    object-fit: cover;
}

/* Если включен режим слабовидящих, кнопки Owl тоже должны подчеркиваться (уже учтено в общем коде) */

















/* BVI */






/* 1. BODY — только фон */
body.bg-bvi-bw { background-color: #ffffff !important; }
body.bg-bvi-blue { background-color: #E3F2FD !important; }
body.bg-bvi-yellow { background-color: #ffff00 !important; }
body.bg-bvi-black-white { background-color: #000000 !important; }
body.bg-bvi-black-green { background-color: #000000 !important; }

/* 2. Цвета, тени и карусель */
.bg-bvi-bw header, .bg-bvi-bw main, .bg-bvi-bw footer, .bg-bvi-bw header *, .bg-bvi-bw main *, .bg-bvi-bw footer * { background-color: #ffffff !important; color: #000 !important; border-color: #000 !important; box-shadow: none !important; }
.bg-bvi-blue header, .bg-bvi-blue main, .bg-bvi-blue footer, .bg-bvi-blue header *, .bg-bvi-blue main *, .bg-bvi-blue footer * { background-color: #E3F2FD !important; color: #002654 !important; border-color: #002654 !important; box-shadow: none !important; }
.bg-bvi-yellow header, .bg-bvi-yellow main, .bg-bvi-yellow footer, .bg-bvi-yellow header *, .bg-bvi-yellow main *, .bg-bvi-yellow footer * { background-color: #ffff00 !important; color: #000 !important; border-color: #000 !important; box-shadow: none !important; }
.bg-bvi-black-white header, .bg-bvi-black-white main, .bg-bvi-black-white footer, .bg-bvi-black-white header *, .bg-bvi-black-white main *, .bg-bvi-black-white footer * { background-color: #000000 !important; color: #fff !important; border-color: #fff !important; box-shadow: none !important; }
.bg-bvi-black-green header, .bg-bvi-black-green main, .bg-bvi-black-green footer, .bg-bvi-black-green header *, .bg-bvi-black-green main *, .bg-bvi-black-green footer * { background-color: #000000 !important; color: #00ff00 !important; border-color: #00ff00 !important; box-shadow: none !important; }

/* 3. Кнопки в ссылки */
body.bvi-active header .btn, body.bvi-active main .btn, body.bvi-active footer .btn, 
body.bvi-active header a, body.bvi-active main a, body.bvi-active footer a {
    background: none !important; border: none !important; box-shadow: none !important; padding: 0 !important; margin: 0 5px !important; text-decoration: underline !important; display: inline !important; width: auto !important; height: auto !important;
}

/* 4. Шрифты и Межстрочный интервал (line-height) */
body.bvi-active header *, body.bvi-active main *, body.bvi-active footer * {
    transition: none !important; /* Отключаем анимации для скорости */
}
.bvi-f-small header *, .bvi-f-small main *, .bvi-f-small footer * { font-size: 16px !important; line-height: 1.5 !important; }
.bvi-f-medium header *, .bvi-f-medium main *, .bvi-f-medium footer * { font-size: 24px !important; line-height: 1.6 !important; }
.bvi-f-large header *, .bvi-f-large main *, .bvi-f-large footer * { font-size: 32px !important; line-height: 1.8 !important; }

/* 5. Интервал МЕЖДУ БУКВАМИ (letter-spacing) — Исправлено */
body.ls-normal header *, body.ls-normal main *, body.ls-normal footer * { letter-spacing: normal !important; }
body.ls-medium header *, body.ls-medium main *, body.ls-medium footer * { letter-spacing: 2px !important; }
body.ls-large header *, body.ls-large main *, body.ls-large footer * { letter-spacing: 5px !important; }

/* 6. Карусель в ДВЕ КОЛОНКИ (Жесткий фикс) */
body.bvi-active .owl-carousel, body.bvi-active .owl-stage-outer, body.bvi-active .owl-stage {
    display: flex !important; flex-wrap: wrap !important; width: 100% !important; transform: none !important; overflow: visible !important; height: auto !important;
}
body.bvi-active .owl-item {
    width: 50% !important; flex: 0 0 50% !important; max-width: 50% !important; padding: 10px !important; box-sizing: border-box !important; float: none !important;
}
@media (max-width: 767.98px) { body.bvi-active .owl-item { width: 100% !important; flex: 0 0 100% !important; max-width: 100% !important; } }
body.bvi-active .owl-nav, body.bvi-active .owl-dots { display: none !important; }

/* 7. Изображения, Иконки и Границы */
body.img-gray img { filter: grayscale(100%) !important; }
body.img-hide img { display: none !important; }
body.bvi-active i, body.bvi-active svg { color: currentColor !important; }
body.bvi-active .bvi-border { border: 2px solid currentColor !important; padding: 20px !important; box-shadow: none !important; display: block; margin-bottom: 15px; }

/* Кнопка звука */
#toggle-sound.active { border: 3px solid #dc3545 !important; box-shadow: none !important; }






/* 1. Заставляем контейнеры карусели вести себя как обычная сетка */
body.bvi-active .owl-carousel,
body.bvi-active .owl-stage-outer,
body.bvi-active .owl-stage {
    display: flex !important;
    flex-wrap: wrap !important; /* Разрешаем перенос блоков */
    width: 100% !important;
    transform: none !important; /* Отключаем сдвиг слайдов */
    height: auto !important;
    overflow: visible !important;
}

/* 2. Жестко фиксируем ширину каждого слайда в 50% */
/* Селектор [style] нужен, чтобы перебить инлайновые стили JS */
body.bvi-active .owl-carousel .owl-item[style] {
    width: 50% !important; 
    max-width: 50% !important;
    flex: 0 0 50% !important;
    display: block !important;
    float: none !important;
    margin: 0 !important;
    padding: 10px !important; /* Отступы между карточками */
    box-sizing: border-box !important;
}

/* 3. На мобильных устройствах (до 768px) делаем в одну колонку */
@media (max-width: 767.98px) {
    body.bvi-active .owl-carousel .owl-item[style] {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }
}

/* 4. Прячем кнопки навигации */
body.bvi-active .owl-nav, 
body.bvi-active .owl-dots {
    display: none !important;
}
