/* BVI - Версия для слабовидящих */
.bvi-panel-wrap {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 99999;
	background: #fff;
	border-bottom: 2px solid #000;
	padding: 12px 20px;
	display: none;
	font-family: Arial, sans-serif;
}
.bvi-panel-wrap.active {
	display: block;
}
.bvi-panel {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}
.bvi-panel__group {
	display: flex;
	align-items: center;
	gap: 8px;
}
.bvi-panel__label {
	font-size: 14px;
	color: #000;
	white-space: nowrap;
}
.bvi-panel__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 4px 10px;
	border: 2px solid #333;
	background: #fff;
	color: #000;
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
	transition: all 0.2s;
}
.bvi-panel__btn:hover,
.bvi-panel__btn.active {
	background: #333;
	color: #fff;
}
.bvi-panel__btn--theme-white { background: #fff; color: #000; border-color: #000; }
.bvi-panel__btn--theme-black { background: #000; color: #fff; border-color: #000; }
.bvi-panel__btn--theme-blue { background: #063462; color: #fff; border-color: #063462; }
.bvi-panel__btn--theme-white.active { outline: 3px solid #c33; }
.bvi-panel__btn--theme-black.active { outline: 3px solid #ff0; }
.bvi-panel__btn--theme-blue.active { outline: 3px solid #ff0; }
.bvi-panel__close {
	margin-left: auto;
	background: none;
	border: 2px solid #c33;
	color: #c33;
	padding: 4px 14px;
	font-size: 14px;
	cursor: pointer;
}
.bvi-panel__close:hover {
	background: #c33;
	color: #fff;
}

/* BVI Open Button */
.bvi-open-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	cursor: pointer;
	color: inherit;
	font-size: 12px;
	white-space: nowrap;
	text-decoration: none;
	padding: 0 0.5rem;
}
.bvi-open-btn svg {
	width: 24px;
	height: 24px;
	fill: currentColor;
}

.right-nav__buttons .bvi-open-btn {
	font-size: inherit;
	line-height: 1;
}

.right-nav__buttons .bvi-open-btn svg {
	width: 1em;
	height: 1em;
}

/* BVI Active — push content down */
body.bvi-active {
	padding-top: 62px;
}
body.bvi-active .header {
	top: 62px;
}

/* Theme: Black */
body.bvi-theme-black {
	background: #000 !important;
	color: #fff !important;
}
body.bvi-theme-black .page-content,
body.bvi-theme-black .page-content *,
body.bvi-theme-black .header,
body.bvi-theme-black .header *,
body.bvi-theme-black .footer,
body.bvi-theme-black .footer * {
	background-color: #000 !important;
	color: #fff !important;
	border-color: #fff !important;
}
body.bvi-theme-black .page-content a,
body.bvi-theme-black .header a,
body.bvi-theme-black .footer a {
	color: #ff0 !important;
}
body.bvi-theme-black img {
	background-color: transparent !important;
}
body.bvi-theme-black .bvi-panel-wrap,
body.bvi-theme-black .bvi-panel-wrap * {
	background-color: #fff !important;
	color: #000 !important;
	border-color: #333 !important;
}
body.bvi-theme-black .bvi-panel__btn--theme-black {
	background-color: #000 !important;
	color: #fff !important;
	border-color: #000 !important;
}
body.bvi-theme-black .bvi-panel__btn--theme-blue {
	background-color: #063462 !important;
	color: #fff !important;
	border-color: #063462 !important;
}
body.bvi-theme-black .bvi-panel__close {
	border-color: #c33 !important;
	color: #c33 !important;
	background: none !important;
}

/* Theme: Blue */
body.bvi-theme-blue {
	background: #063462 !important;
	color: #fff !important;
}
body.bvi-theme-blue .page-content,
body.bvi-theme-blue .page-content *,
body.bvi-theme-blue .header,
body.bvi-theme-blue .header *,
body.bvi-theme-blue .footer,
body.bvi-theme-blue .footer * {
	background-color: #063462 !important;
	color: #fff !important;
	border-color: #fff !important;
}
body.bvi-theme-blue .page-content a,
body.bvi-theme-blue .header a,
body.bvi-theme-blue .footer a {
	color: #dd0 !important;
}
body.bvi-theme-blue img {
	background-color: transparent !important;
}
body.bvi-theme-blue .bvi-panel-wrap,
body.bvi-theme-blue .bvi-panel-wrap * {
	background-color: #fff !important;
	color: #000 !important;
	border-color: #333 !important;
}
body.bvi-theme-blue .bvi-panel__btn--theme-black {
	background-color: #000 !important;
	color: #fff !important;
	border-color: #000 !important;
}
body.bvi-theme-blue .bvi-panel__btn--theme-blue {
	background-color: #063462 !important;
	color: #fff !important;
	border-color: #063462 !important;
}
body.bvi-theme-blue .bvi-panel__close {
	border-color: #c33 !important;
	color: #c33 !important;
	background: none !important;
}

/* Hide images */
body.bvi-no-images img,
body.bvi-no-images [style*="background-image"],
body.bvi-no-images .poster-item__img-wrap,
body.bvi-no-images .banner-slide,
body.bvi-no-images .swiper-slide {
	visibility: hidden;
}
body.bvi-no-images .poster-item__img-wrap {
	min-height: 50px;
}

/* Scale the root font-size so rem-based typography keeps its hierarchy. */
html.bvi-font-size-1 { font-size: calc(0.78125vw * 1.3) !important; }
html.bvi-font-size-2 { font-size: calc(0.78125vw * 1.6) !important; }
html.bvi-font-size-3 { font-size: calc(0.78125vw * 2) !important; }

/* BVI panel stays fixed in px */
body[class*="bvi-font-size"] .bvi-panel-wrap { font-size: 14px !important; }
body[class*="bvi-font-size"] .bvi-panel-wrap * { font-size: inherit !important; }
body[class*="bvi-font-size"] .bvi-panel__btn { font-size: 16px !important; }

/* Restore icon fonts */
body[class*="bvi-font-size"] .fa,
body[class*="bvi-font-size"] [class^="icon-"],
body[class*="bvi-font-size"] [class*=" icon-"],
body[class*="bvi-font-size"] .icon-search { font-size: 1em !important; }
body[class*="bvi-font-size"] .poster-item__date-number { font-size: 3rem !important; }

/* ====== HEADER: контролируемое масштабирование при BVI ====== */

/* Логотип: полный +30%, фиксированный в px */
body[class*="bvi-font-size"] .header-navbar .logo-wrap {
	width: 315px !important;
	margin-left: -158px !important;
	margin-top: 13px !important;
	padding: 0 13px 13px 13px !important;
	transform: none !important;
	position: absolute !important;
	left: 50% !important;
}
body[class*="bvi-font-size"] .header-navbar .logo-img {
	width: 280px !important;
	height: 195px !important;
}
/* При скролле: горизонтальный логотип */
body[class*="bvi-font-size"] .header.scrolled .logo-wrap {
	width: auto !important;
	height: 70px !important;
	margin-left: 0 !important;
	transform: translateX(-50%) !important;
	margin-top: 0 !important;
	padding: 0 10px 5px 10px !important;
	display: flex !important;
	align-items: center !important;
}
body[class*="bvi-font-size"] .header.scrolled .logo-scrolled {
	max-height: 60px !important;
	width: auto !important;
}

/* Структурные ограничения (общие для всех размеров) */
body[class*="bvi-font-size"] .header-top {
	margin-top: 0 !important;
}

/*
 * Нормальные размеры при 1920px (base 0.78125vw = 15px/rem):
 *   nav-link: 1.4rem = 21px
 *   buy-ticket: 1.4rem = 21px, padding 16.5px 19.5px
 *   header-top links: 1.3rem = 19.5px, height 3.5rem = 52.5px
 *   header-top social svg: 2.2rem = 33px, span: 1.6rem = 24px
 *   right-nav__buttons font: 2.2rem = 33px
 *   right-nav__button height: 3.8rem = 57px, svg: 37.5x39px
 *   lang: width 75px, text 24px
 */

/* --- Размер 1: +10% от нормы --- */
html.bvi-font-size-1 .header-top__link-wrap { height: 58px !important; }
html.bvi-font-size-1 .header-top__link-wrap a { font-size: 21px !important; }
html.bvi-font-size-1 .header-top__link-wrap:last-child a span { font-size: 26px !important; }
html.bvi-font-size-1 .header-top__link-wrap:last-child a svg { width: 25px !important; height: 25px !important; }

html.bvi-font-size-1 .header-navbar .nav { margin-top: 46px !important; }
html.bvi-font-size-1 .header-navbar .nav-link { font-size: 23px !important; }
html.bvi-font-size-1 .header-navbar .nav-link:not(:last-child) { margin-right: 55px !important; }

html.bvi-font-size-1 .header-navbar .buy-ticket { font-size: 23px !important; padding: 18px 21px !important; }

html.bvi-font-size-1 .header-navbar .right-nav { max-width: 500px !important; margin-top: 28px !important; }
html.bvi-font-size-1 .header-navbar .right-nav__buttons { max-width: 290px !important; font-size: 36px !important; }
html.bvi-font-size-1 .header-navbar .right-nav__button { padding: 0 16px !important; height: 50px !important; }
html.bvi-font-size-1 .header-navbar .right-nav__button svg { width: 28px !important; height: 29px !important; }
html.bvi-font-size-1 .header-navbar .bvi-open-btn svg { width: 25px !important; height: 25px !important; }

html.bvi-font-size-1 .right-nav .lang { width: 58px !important; min-width: 58px !important; }
html.bvi-font-size-1 .right-nav .lang-items-wrap { width: 174px !important; }
html.bvi-font-size-1 .right-nav .lang-item { width: 58px !important; height: 50px !important; }
html.bvi-font-size-1 .right-nav .lang-item a,
html.bvi-font-size-1 .right-nav .lang-item span { font-size: 26px !important; line-height: 30px !important; }

/* --- Размер 2: +20% от нормы --- */
html.bvi-font-size-2 .header-top__link-wrap { height: 63px !important; }
html.bvi-font-size-2 .header-top__link-wrap a { font-size: 23px !important; }
html.bvi-font-size-2 .header-top__link-wrap:last-child a span { font-size: 29px !important; }
html.bvi-font-size-2 .header-top__link-wrap:last-child a svg { width: 27px !important; height: 27px !important; }

html.bvi-font-size-2 .header-navbar .nav { margin-top: 50px !important; }
html.bvi-font-size-2 .header-navbar .nav-link { font-size: 25px !important; }
html.bvi-font-size-2 .header-navbar .nav-link:not(:last-child) { margin-right: 48px !important; }

html.bvi-font-size-2 .header-navbar .buy-ticket { font-size: 25px !important; padding: 20px 23px !important; }

html.bvi-font-size-2 .header-navbar .right-nav { max-width: 530px !important; margin-top: 30px !important; }
html.bvi-font-size-2 .header-navbar .right-nav__buttons { max-width: 310px !important; font-size: 39px !important; }
html.bvi-font-size-2 .header-navbar .right-nav__button { padding: 0 14px !important; height: 54px !important; }
html.bvi-font-size-2 .header-navbar .right-nav__button svg { width: 31px !important; height: 32px !important; }
html.bvi-font-size-2 .header-navbar .bvi-open-btn svg { width: 27px !important; height: 27px !important; }

html.bvi-font-size-2 .right-nav .lang { width: 62px !important; min-width: 62px !important; }
html.bvi-font-size-2 .right-nav .lang-items-wrap { width: 186px !important; }
html.bvi-font-size-2 .right-nav .lang-item { width: 62px !important; height: 54px !important; }
html.bvi-font-size-2 .right-nav .lang-item a,
html.bvi-font-size-2 .right-nav .lang-item span { font-size: 29px !important; line-height: 33px !important; }

/* --- Размер 3: +30% от нормы --- */
html.bvi-font-size-3 .header-top__link-wrap { height: 68px !important; }
html.bvi-font-size-3 .header-top__link-wrap a { font-size: 25px !important; }
html.bvi-font-size-3 .header-top__link-wrap:last-child a span { font-size: 31px !important; }
html.bvi-font-size-3 .header-top__link-wrap:last-child a svg { width: 29px !important; height: 29px !important; }

html.bvi-font-size-3 .header-navbar .nav { margin-top: 54px !important; }
html.bvi-font-size-3 .header-navbar .nav-link { font-size: 27px !important; }
html.bvi-font-size-3 .header-navbar .nav-link:not(:last-child) { margin-right: 40px !important; }

html.bvi-font-size-3 .header-navbar .buy-ticket { font-size: 27px !important; padding: 21px 25px !important; }

html.bvi-font-size-3 .header-navbar .right-nav { max-width: 560px !important; margin-top: 32px !important; }
html.bvi-font-size-3 .header-navbar .right-nav__buttons { max-width: 330px !important; font-size: 43px !important; }
html.bvi-font-size-3 .header-navbar .right-nav__button { padding: 0 12px !important; height: 58px !important; }
html.bvi-font-size-3 .header-navbar .right-nav__button svg { width: 33px !important; height: 34px !important; }
html.bvi-font-size-3 .header-navbar .bvi-open-btn svg { width: 29px !important; height: 29px !important; }

html.bvi-font-size-3 .right-nav .lang { width: 66px !important; min-width: 66px !important; }
html.bvi-font-size-3 .right-nav .lang-items-wrap { width: 198px !important; }
html.bvi-font-size-3 .right-nav .lang-item { width: 66px !important; height: 58px !important; }
html.bvi-font-size-3 .right-nav .lang-item a,
html.bvi-font-size-3 .right-nav .lang-item span { font-size: 31px !important; line-height: 36px !important; }

/* Footer */
html.bvi-font-size-1 .footer .footer-nav a { font-size: 23px !important; }
html.bvi-font-size-2 .footer .footer-nav a { font-size: 25px !important; }
html.bvi-font-size-3 .footer .footer-nav a { font-size: 27px !important; }

/* Mobile */
@media screen and (max-width: 720px) {
	.bvi-panel-wrap { padding: 8px 12px; }
	.bvi-panel { gap: 10px; }
	.bvi-panel__label { font-size: 12px; }
	.bvi-panel__btn { min-width: 30px; height: 30px; font-size: 13px; padding: 2px 8px; }
	.bvi-panel__close { font-size: 12px; padding: 3px 10px; }
	body.bvi-active { padding-top: 100px; }
	body.bvi-active .header { top: 100px; }
}
