/* SUMMARY */

/* === 1. NORMALIZING STYLES === */

/* === 2. GLOBAL STYLES === */

/* === 3. HEADER === */

/* == 3.1 MENU == */

/* === 4. MAIN === */

/* === 5. FOOTER === */

/* --------------------------------------------- */

/* 1. NORMALIZING STYLES */

*, section {
	padding: 0;
	margin: 0;
	border: 0;
	box-sizing: border-box;
}

*,
*:before,
*:after {
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

:focus,
:active {
	outline: none;
}

a:focus,
a:active {
	outline: none;
}

nav,
footer,
header,
aside {
	display: block;
}

html,
body {
	height: 100%;
	line-height: 1;
	-ms-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

input,
button,
textarea {
	font-family: inherit;
}

input::-ms-clear {
	display: none;
}

button {
	cursor: pointer;
}

button::-moz-focus-inner {
	padding: 0;
	border: 0;
}

ul li {
	list-style: none;
}

img {
	vertical-align: top;
}

/* === 2. GLOBAL STYLES === */
body {
	background-color: #000;
	font-family: "Montserrat", sans-serif;
}

.container {
	max-width: 1880px;
	/* max-height: 100vh; */
	margin: 0 auto;
	padding: 0 20px 0 20px;
	position: relative;
}

.mask {
	width: 100%;
	height: 100%;
	background-color: #000;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 6;
	/* Убедимся, что z-index маски ниже, чем у текста */
	opacity: 1;
	/* Начальное значение непрозрачности */
	transition: opacity 1s ease-in-out 2s;
	/* Плавное изменение прозрачности с задержкой в 2 секунды */
	display: flex;
	justify-content: center;
	align-items: center;
}

.hidden {
	opacity: 0;
}

.text {
	color: #fff;
	z-index: 7;
	/* Убедимся, что z-index текста выше, чем у маски */
	font-family: "Dynalight", cursive;
	font-size: 122px;
	opacity: 0;
	/* Начальное значение непрозрачности */
	transition: opacity 2s ease-in-out;
	/* Плавное изменение прозрачности */
}

@media (max-width: 768px) {
	.text {
		font-size: 64px;
	}
}

/* === 3. HEADER === */

header {
	width: 100%;
	max-height: 70px;
	padding: 20px 20px 20px 0;
	margin: 0 20px 0 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	z-index: 5;
	background-color: #000;
}

.header {
	position: fixed;
	left: 0;
	top: 0;
}

.logo {
	width: 30%;
	height: fit-content;
	padding-left: 20px;
}

#logo {
	font-family: "Dynalight", cursive;
	font-size: calc(30px + (46 - 30) * ((100vw - 320px) / (1920 - 320)));
	color: #fff;
}

/* == 3.1 MENU === */
menu {
	width: 70%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: right;
	z-index: 5;
}

.menuContainer {
	width: 100%;
	height: 100%;
	margin: 0px auto;
	display: flex;
	align-items: center;
	justify-content: right;
	flex-wrap: nowrap;
}

.menuIcon {
	display: none;
}

.menuList>li {
	position: relative;
	width: fit-content;
	margin-right: calc(24px + (59 - 24) * ((100vw - 991px) / (1920 - 991)));
}

.menuList>li:last-child {
	margin-right: 0;
}

@media (min-width: 1921px) {
	.menuList>li {
		margin-right: 70px;
	}
}

.menuLink {
	color: #fff;
	font-size: calc(13px + (22 - 13) * ((100vw - 991px) / (1920 - 991)));
	text-decoration: none;
}

.menuLink:hover {
	opacity: 0.8;
}
#affiche {
	color: #FF0303;
}
@media (min-width: 1921px) {
	.menuLink {
		font-size: 23px;
	}
}

.menuSubList {
	position: absolute;
	top: 100%;
	left: 0;
	background-color: #000;
	padding: 10px;
	min-width: 300px;
	height: auto;
}

.menuSubList li {
	margin: 0px 0px 20px 0px;
}

.menuSubList li:last-child {
	margin: 0;
}

.menuSubLink {
	color: #fff;
	text-decoration: none;
}

.menuSubLink:hover {
	opacity: 0.8;
}

.menuArrow {
	display: none;
}

body._pc .menuList>li:hover .menuSubList {
	opacity: 1;
	visibility: visible;
	transform: translate(0px, 0px);
	pointer-events: all;
}

body._touch .menuList>li {
	display: flex;
	align-items: center;
}

body._touch .menuLink {
	flex: 1 1 auto;
}

body._touch .menuArrow {
	display: block;
	width: 0;
	height: 0;
	margin: 0px 0px 0px 5px;
	transition: transform 0.3s ease 0s;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 10px solid #fff;
}

body._touch .menuList>li._active .menuSubList {
	opacity: 1;
	visibility: visible;
	transform: translate(0px, 0px);
	pointer-events: all;
}

body._touch .menuList>li._active .menuArrow {
	transform: rotate(-180deg);
}

@media (min-width: 992px) {
	.menuList {
		display: flex;
	}

	.menuList>li {
		padding: 10px 0;
	}

	.menuSubList {
		transform: translate(0px, 10%);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: all 0.3s ease 0s;
	}
}

@media (max-width: 991px) {
	.menuWraper {
		padding: 10px;
	}

	.menuIcon {
		z-index: 2;
		display: block;
		position: absolute;
		right: 20px;
		width: 30px;
		height: 20px;
		cursor: pointer;
		margin-left: 0px;
		margin-top: 0px;
		margin-right: 20px;
	}

	.menuIcon span,
	.menuIcon::before,
	.menuIcon::after {
		right: 0;
		position: absolute;
		height: 10%;
		width: 100%;
		transition: all 0.3s ease 0s;
		background-color: #fff;
	}

	.menuIcon::before,
	.menuIcon::after {
		content: "";
	}

	.menuIcon::before {
		top: 0;
	}

	.menuIcon::after {
		bottom: 0;
	}

	.menuIcon span {
		top: 50%;
		transform: scale(1) translate(0px, -50%);
	}

	.menuIcon._active span {
		transform: scale(0) translate(0px, -50%);
	}

	.menuIcon._active::before {
		top: 50%;
		transform: rotate(-45deg) translate(0px, -50%);
	}

	.menuIcon._active::after {
		bottom: 50%;
		transform: rotate(45deg) translate(0px, 50%);
	}

	.menuBody {
		position: fixed;
		top: 0px;
		left: -100%;
		width: 100%;
		height: 100%;
		background-color: #000;
		padding: 100px 30px 30px 30px;
		transition: left 0.3s ease 0s;
		overflow: auto;
	}

	.menuBody._active {
		left: 0;
	}

	.menuBody::before {
		content: "";
		position: fixed;
		width: 100%;
		top: 100px;
		left: 0;
		height: 10px;
		z-index: 20;
	}

	.menuList>li {
		flex-wrap: wrap;
		margin: 0px 0px 30px 0px;
	}

	.menuList>li:last-child {
		margin-bottom: 0;
	}

	.menuList>li._active .menuSubList {
		display: block;
	}

	.menuLink {
		font-size: 24px;
	}

	.menuSubList {
		position: relative;
		flex: 1 1 100%;
		margin: 20px 0px 0px 0px;
		display: none;
		background-color: #000;
	}

	.menuSubLink {
		font-size: 20px;
		color: #fff;
	}
}

@media (max-width: 991px) {
	.menuContainer {
		right: 0;
		width: 100%;
		margin: 0px auto;
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
	}
}

@media (max-width: 460px) {
	.menuContainer {
		justify-content: center;
	}

	.logo {
		margin-top: 20px;
	}
}

/* === 4. MAIN === */
main {
	color: #D9D9D9;
	position: relative;
	padding-top: 0px;
}

.main-page {
	max-width: 1920px;
	margin: 0 auto;
}

.main-image-container {
	width: 100%;
	height: calc(100vh - 160px);
}

.main-image-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* Сохраняет пропорции изображения и обрезает лишнее, чтобы оно занимало всю доступную область */
}

.overlay {
	position: absolute;
	top: 0px;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
	opacity: 0.5;
	z-index: 2;
}

.citation-wraper {
	position: absolute;
	top: 35%;
	left: -10px;
	color: #fff;
	z-index: 4;
	font-family: "Dynalight", cursive;
	font-size: calc(22px + (60 - 22) * ((100vw - 320px) / (1920 - 320)));
	flex-direction: column;
	height: auto;
	justify-content: space-evenly;
	font-family: "Dynalight", cursive;
}

@media (min-width: 2560px) {
	.citation-wraper {
		left: 5%;
	}
}

@media (max-width: 1920px) {
	.citation-wraper {
		top: 33%;
		left: 18%;
	}
}

@media (max-width: 768px) {
	.citation-wraper {
		top: 30%;
		left: 10%;
	}
}

@media (max-width: 640px) {
	.citation-wraper {
		top: 30%;
		left: 5%;
	}
}

@media (max-width: 320px) {
	.citation-wraper {
		top: 12%;
		left: 3%;
	}
}

.picasso {
	margin-top: 20px;
	text-align: right;
}

.slider-main-page {
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 100%;
	height: 200px;
	z-index: 4;
	overflow: hidden;
	position: absolute;
	left: 0px;
	bottom: 80px;
}

@media(max-width: 1200px) {
	.slider-main-page {
		bottom: 10px;
	}
}

@media(max-width: 768px) {
	.slider-main-page {
		bottom: 40px;
	}
}

@media(max-width: 640px) {
	.slider-main-page {
		bottom: 10px;
	}
}

@media(max-width: 320px) {
	.slider-main-page {
		bottom: 20px;
	}
}

.swiper {
	width: 100%;
	height: 100%;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
}

.swiper-wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: 100%;
}

.swiper-slide {
	width: 100%;
	height: 100%;
	transition: transform 0.5s ease;
	padding: 0;
}

.swiper-main {
	width: 100%;
	max-height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* 5. === FOOTER === */

footer {
	position: relative;
	width: 100%;
	max-height: 70px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 20px 0 20px;
	color: #fff;
	z-index: 5;
}

hr {
	margin-top: 20px;
	border: 1px solid #fff;
	width: 100%;
}

.footer-link,
.press-link {
	color: #fff;
	text-decoration: none;
}

.footer-link:hover,
.press-link {
	opacity: 0.8;
}

.line {
	margin-bottom: 10px;
	font-size: calc(8px + (16 - 8) * ((100vw - 320px) / (1920 - 320)));
}

#legal,
#facebook {
	text-align: right;
}

@media (max-width: 480px) {
	footer {
		padding: 20px 0px 0 0px;

	}
}

.page-title {
	margin-top: 80px;
}

/* FOOTER END */

/* *** ABOUT PAGE *** */

.slider-about {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 1880px;
	height: fit-content;
	margin: 70px auto;
	overflow: hidden;
}

.swiper {
	width: 100%;
	height: auto;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
}

.swiper-wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: auto;
}

.swiper-slide {
	width: 100%;
	height: auto;
	transition: transform 0.5s ease;
	padding: 0;
}

.swiper-about {
	width: 100%;
	height: auto;
}

article {
	margin-top: 20px;
}

h1,
h2 {
	text-align: center;
	margin-top: 30px;
	margin-bottom: 30px;
}

h3 {
	text-align: center;
}

@media (min-width: 767px) {
	#wide {
		display: none;
	}
}

@media (max-width: 768px) {
	#narrow {
		display: none;
	}
}

p {
	margin-top: 15px;
	font-size: 20px;
	text-align: justify;
	line-height: 25px;
}

.about-picture {
	width: 50%;
	height: auto;
	float: left;
	margin-right: 20px;
}

@media (max-width: 768px) {
	.about-picture {
		width: 100%;
		margin-top: 10px;
	}
}

/* *** GALLERY PAGE *** */

.gallery {
	position: relative;
	width: 100%;
	height: auto;
	display: flex;
	justify-content: space-evenly;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px;
}

.image-container {
	position: relative;
	width: 300px;
	height: 100%;
	margin-bottom: 20px;
	font-size: 14px;
	opacity: 0;
	/* Устанавливаем изначальную непрозрачность */
	transition: opacity 0.5s ease, transform 0.5s ease;
	/* Добавляем переходы для opacity и transform */
	transform: translateY(20px);
	/* Сдвигаем изображение вниз на 20 пикселей */
}

.image-full {
	width: 300px;
	max-height: 225px;
}

.image-container.loaded {
	opacity: 1;
	/* При добавлении класса "loaded" изображение станет видимым */
	transform: translateY(0);
	/* При добавлении класса "loaded" изображение сдвигается вверх на 20 пикселей */
}

figcaption {
	margin-top: 5px;
	font-style: italic;
	color: #D9D9D9;
}

.hint {
	font-size: 12px;
}

/* Стили для модального окна и фонового затемнения */
.modal {
	display: none;
	position: fixed;
	z-index: 2;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgba(0, 0, 0, 1);
	/* Затемненный фон */
}

.modal-content {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	margin: 0 auto;
}

.modal-content img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.close {
	display: block;
	color: #fff;
	position: absolute;
	top: 65px;
	right: 30px;
	font-size: 40px;
	cursor: pointer;
	z-index: 500;
}

.close:hover {
	color: #ccc;
}

/* VIDEO */

.video-gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	justify-content: space-evenly;
}

.video-container {
	position: relative;
	width: 100%;
	max-width: 560px;
	margin-bottom: 50px;
}

.video-container::before {
	content: "";
	display: block;
	padding-top: 56.25%; /* 16:9 aspect ratio */
}

.lazy-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

@media (max-width: 1600px) {
	.video-container {
		max-width: 600px;
	}
}

@media (max-width: 1200px) {
	.video-container {
		max-width: 100%;
	}
}

@media (max-width: 640px) {
	.video-container {
		max-width: 100%;
	}
}

@media (max-width: 480px) {
	.video-container {
		max-width: 100%;
	}
}

@media (max-width: 320px) {
	.video-container {
		max-width: 100%;
	}
}

/* PRESS */

.press-title-wraper {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	width: 100%;
}
@media (max-width: 480px) {
	.press-title-wraper {
		flex-direction: column;
		align-items: flex-start;
	}
	.press-title {
		width: 100%;
		text-align: center;
		margin: 10px auto;
	}
}
.press-article {
	margin-top: 20px;
	width: 100%;
	height: auto;
}
@media (max-width: 768px) {
	.press-article {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
	}
	.press-title-photo-wraper {
		width: 10%;
		margin-right: 150px;
	}
}
.press-image {
	max-width: 600px;
	max-height: 338px;
	margin: 0px 30px 15px 40px;
	float: left;
}
.press-text {
	padding-top: 15px;
	margin-left: 0px;
	clear: both;
}
.source,
.press-source {
	margin-top: 15px;
	font-size: 18px;
}

/* ANNOUNCES */
.announce {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: start;
}
.announce-img {
	width: 40%;
	height: auto;
}
.announce-img img {
	max-width: 100%;
	height: auto;
}
.announce-text {
	margin-left: 30px;
	width: 60%;
}
.announce-text p {
	margin: 0 0 20px 0;
}
.participants li, .concert-programme li {
	margin: 10px;
}
.lazy-load-container {
    opacity: 0;
    transform: translateY(20px); /* Начальная позиция для анимации */
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.lazy-load-container.visible {
    opacity: 1;
    transform: translateY(0); /* Конечная позиция для анимации */
}
@media (max-width: 639px) {
	.announce {
		flex-direction: column;
	}
	.announce-img {
		width: 100%;
		height: auto;
	}
	.announce-text {
		margin: 30px auto 0 auto;
		width: 100%;
	}
	.announce-text p {
		padding: 0 0 0 0;
		margin: 0 0 20px 0;
		font-size: 16px;
	}
}
.contact {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: nowrap;
	gap: 40px;
	font-size: 24px;
}
.contact-form,
.donation {
	width: 50%;
}
#name,
#subject,
#email {
	margin-top: 15px;
	width: 300px;
	height: 40px;
	background-color: #012E64;
	border: 1px solid #6663E2;
	color: #fff;
}
.limit {
	font-size: 18px;
	margin-top: 10px;
}
textarea {
	margin-top: 15px;
	height: 400px;
	background-color: #012E64;
	border: 1px solid #6663E2;
	color: #fff;
}

.notice {
	font-size: 18px;
	margin-top: 10px;
	color: #FF0303;
}

#send {
	width: 300px;
	height: 40px;
	margin-top: 15px;
	background-color: #012E64;
	border: 1px solid #6663E2;
	border-radius: 10px;
	color: #fff;
	font-size: 18px;
	font-weight: 600;
}

.appeal {
	text-align: justify;
	line-height: 25px;
}

#donation-form {
	color: #FF0303;
}

.addresse {
	text-align: center;
	margin-top: 30px;
}

@media (max-width: 768px) {
	.contact {
		flex-direction: column;
		font-size: 20px;
	}

	.contact h1 {
		font-size: 20px;
	}

	.contact-form,
	.donation {
		width: 100%;
	}
}

@media (max-width:320px) {

	#name,
	#subject,
	#email {
		width: 280px;
		height: 30px;
	}
}

/* LEGAL NOTICES SECTION */
#notice-title {
	font-size: 32px;
}

/* CONTACT FORM */
.mail {
    display: flex;
    justify-content: center; /* Центрирование по горизонтали */
    align-items: center; /* Центрирование по вертикали */
    height: 100vh; /* Задаем высоту контейнера */
}

.content {
    text-align: center; /* Центрирование текста внутри элемента */
	color: #fff;
	font-size: 24px;
}
/* DASHBOARD */
.menuLink-admin {
	color: #fff;
	font-size: calc(13px + (20 - 13) * ((100vw - 991px) / (1920 - 991)));
	text-decoration: none;
}


.add-form {
	position: relative;
	width: 100%;
	margin: 50px auto;
}

.title-admin {
	width: 280px;
	text-align: center;
	line-height: 20px;
	margin-bottom: 10px;
}

/* Скрываем стандартный input для загрузки файла */
.admin-input-file {
	display: none;
}

/* Стилизуем нашу собственную кнопку */
.file-upload {
	background-color: #012E64;
	border: 1px solid #6663E2;
	border-radius: 5px;
	margin: 0 auto 10px auto;
	width: 280px;
	height: 35px;
	color: white;
	font-weight: 600;
	text-align: center;
	padding: 10px 0;
	cursor: pointer;
	display: inline-block;
}
#fileNameDisplay {
	margin: 10px 0;
	
}

.file-replace {
	background-color: #012E64;
	border: 2px solid #6663E2;
	font-size: 14px;
	color: #fff;
	text-align: center;
	border-radius: 5px;
	width: 200px;
	height: 40 px;
	padding: 4px 10px;
	cursor: pointer;
	display: inline-block;
}

.admin-button {
	background-color: #22ac22;
	border: 2px solid #a0f87e;
	border-radius: 5px;
	margin: 15px auto;
	width: 280px;
	height: 40px;
	color: white;
	font-weight: 600;
	text-align: center;
	padding: 10px 0;
	cursor: pointer;
	display: inline-block;
}

.admin-button:hover {
	background-color: #bd2028;
	border: 2px solid #f74848;
}

.uploaded-images, .uploaded-videos {
	position: relative;
	width: 100%;
	height: auto;
	display: flex;
	justify-content: space-evenly;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px;
}

.uploaded-image img {
	width: 200px;
	/* Ширина будет автоматически рассчитываться */
	height: 113px;
	/* Установите желаемую высоту */
	margin: 5px;
}

.uploaded-image-id {
	text-align: center;
}

.delete, .replace {
	text-align: center;
}

.delete-button {
	background-color: #bd2028;
	border: 2px solid #f74848;
	color: #fff;
	border-radius: 5px;
	margin-top: 5px;
	width: 200px;
	height: 25px;
}

.delete-button:hover {
	background-color: #22ac22;
	border: 2px solid #a0f87e;
	color: #fff;
	border-radius: 5px;
}

.replace-button {
	background-color: #28a745;
	border: 2px solid #a0f87e;
	color: #fff;
	border-radius: 5px;
	margin-top: 5px;
	width: 200px;
	height: 25px;
}

.replace-button:hover {
	background-color: #bd2028;
	border: 2px solid #f74848;
	border-radius: 5px;
}

.add-info-form {
	width: 100%;
	margin-top: 25px;
}
.add-info {
	width: 280px;
	height: 40px;
	background-color: #012E64;
	border: 1px solid #6663E2;
	color: #fff;
	margin: 10px 0 15px 0;
}

.add-info-text {
	width: 100%;
	height: 400px;
	margin-top: 10px;
	color: #fff;
}
.new-video-url {
	width: 200px;
	height: 25px;
	background-color: #6663E2;
	border: 1px solid #012E64;
	color: #fff;
}
/* UPLOADS */

.success {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 300px;
	height: 200px;
	background-color: #012E64;
	border: 1px solid #6663E2;
	color: #fff;
	font-size: 16px;
	padding: 5px;
}

.success p {
	margin-top: -15px;
}

.article-title {
	font-size: 20px;
	font-weight: 600;
	color: #fff;
	margin-bottom: 15px;
}

.edit-article {
	color: #22ac22;
	margin-right: 15px;
}

.edit-article:hover {
	font-weight: 600;
}

.delete-article {
	color: #bd2028;
}

.delete-article:hover {
	font-weight: 600;
}

.register {
	margin-top: 150px;
}

.footer-admin {
	position: fixed;
	bottom: 0;
}
#logout {
	height: 50px;
	margin-top: 20px;
}
#logout-link {
	color: #FF0303;
	text-decoration: none;
}
#logout-link:hover {
	color: #FFF;
	text-decoration: none;
}