@font-face {
    font-family: rtkFont;
    src: url(/assets/fonts/rtk.woff2) format("woff2");
    font-display: auto;
    font-weight: 300;
    font-style: normal
}

@font-face {
    font-family: rtkFont Fallback;
    src: local("Arial");
    ascent-override:91.57%;
	descent-override:34.19%;
	line-gap-override:0.00%;
	size-adjust:102.65%
}

:root {
	--primary: #7700FF;
	--primary-light: #9466FF;
	--secondary: #0055FF;
	--accent: #57D9B7;
	--warning: #FF6B35;
	--success: #00B23B;
	--bg: #fff;
	--surface: #ffffff;
	--text: #232020;
	--text-secondary: #726961;
	--border: #e0e0e0;
	--radius-sm: 8px;
	--radius-md: 16px;
	--radius-lg: 24px;
	--shadow-sm: 0 2px 8px rgba(0,0,0,0.04);
	--shadow-md: 0 4px 20px rgba(0,0,0,0.08);
	--shadow-lg: 0 8px 40px rgba(0,0,0,0.12);
}

img, table, section {
    max-width: 100%;
    overflow-wrap: break-word;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: "rtkFont","rtkFont Fallback", sans-serif;
}

body {
	background-color: #fff;
	color: #333;
	line-height: 1.6;
}

a {
	text-decoration: none;
	color: inherit;
	transition: color .3s ease;
}

ul {
	list-style: none;
}

img {
	max-width: 100%;
}

.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.header {
	background-color: #fff;
	padding: 15px 0;
	border-bottom: 1px solid #e7e7e9;
}

.header__container {
	display: flex;
	align-items: center;
	justify-content: space-evenly;
	position: relative;
}

.header__logo {
	flex-shrink: 0;
}

.header__logo-img {
	height: 50px;
	width: auto;
}

.mobile-menu-btn {
	display: none;
	background: none;
	border: none;
	font-size: 24px;
	cursor: pointer;
	padding: 5px;
	color: 000;
}

.navigation__list {
	display: flex;
	gap: 25px;
}

.navigation__item {
	position: relative;
}

.navigation__item--newyear .navigation__link {
	background-color: #008dfb36;
}

.navigation__item--active .navigation__link {
	background-color: #0a090936;
}

.navigation__item--newyear.navigation__item--active .navigation__link {
	background-color: #008dfb36;
}

.navigation__link {
	align-items: center;
	border-radius: 18px;
	cursor: pointer;
	display: flex;
	font-size: 16px;
	font-weight: 400;
	line-height: 36px;
	padding: 0 16px;
	text-decoration: none;
	transition: background-color .15s ease;
	white-space: nowrap;
}

.navigation__link:hover {
	background-color: #00000012;
}

.calendar__title {
    font-size: 32px;
    color: #232020;
    margin-bottom: 20px;
}

.calendar {
    position: relative;
	max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.calendar__container {
    position: relative;
    display: flex;
    align-items: center;
}

.calendar__button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;
    background-color: transparent;
    border-radius: unset;
    border: none;
	cursor: pointer;
	width: 20px;
    height: 20px;
}

.calendar__button--prev {
    left: -30px;
}

.calendar__button--next {
    right: -30px;
}

.calendar__button::after {
	content: "";
	width: 12px;
	height: 22px;
	display: block;
	background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iMjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMjFsMTAtMTBMMSAxIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+') center/contain no-repeat;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}

.calendar__button--prev::after {
	transform: translate(-50%,-50%) rotate(180deg);
}

.calendar__wrapper {
	position: relative;
	width: 100%;
}

.calendar__months {
	display: flex;
	align-items: flex-start;
	margin-bottom: 15px;
	overflow-x: auto;
	scrollbar-width: none;
	width: 100%;
}

.calendar__months::-webkit-scrollbar {
	display: none;
}

.calendar__month-section {
	display: flex;
	align-items: flex-start;
	margin-right: 15px;
}

.calendar__month-label {
	margin-right: 15px;
	writing-mode: vertical-lr;
	transform: rotate(180deg);
	font-size: 10px;
	font-weight: 600;
	color: #7700FF;
	text-transform: uppercase;
	flex-shrink: 0;
	height: fit-content;
	align-self: center;
}

.calendar__month-dates {
	display: flex;
	gap: 10px;
}

.calendar__dates-wrapper {
	overflow-x: auto;
	scrollbar-width: none;
	width: 100%;
}

.calendar__dates-wrapper::-webkit-scrollbar {
	display: none;
}

.calendar__dates {
	display: flex;
	gap: 10px;
	padding-bottom: 10px;
}

.calendar__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    padding: 5px 5px;
    min-width: 50px;
    border-radius: 16px;
    transition: all .3s ease;
    flex-shrink: 0;
    border: 2px solid transparent;
}

.calendar__date:hover {
    color: #111111;
    border-color: #7700FF; 
    background-color: rgba(136, 16, 29, 0.05); 
}

.calendar__date--active {
    background-color: #b97878;
    border-color: #7700FF;
}

.calendar__date--active .calendar__week-day,
.calendar__date--active .calendar__day-number {
    color: #fff;
}

.calendar__date--past:hover {
    border-color: #cccccc;
    background-color: rgba(0, 0, 0, 0.05);
    cursor: not-allowed;
}

.calendar__date--active {
	background-color: #b97878;
}

.calendar__date--active .calendar__week-day,.calendar__date--active .calendar__day-number {
	color: #fff;
}

.calendar__week-day {
	font-size: 10px;
	color: #726961;
	margin-bottom: 3px;
	text-transform: lowercase;
}

.calendar__day-number {
	font-size: 14px;
	font-weight: 700;
	color: #000;
}

.calendar__day-number--weekend {
	color: #7700FF;
}

.calendar__date--past {
	opacity: .5;
	cursor: not-allowed;
}

.custom-select-wrapper {
	max-width: 360px;
	box-shadow: 0 10px 40px rgba(0,0,0,.23);
	position: absolute;
	width: 100%;
	z-index: 20001;
	top: 100%;
	left: 0;
	transform: translateY(0);
	opacity: 1;
	overflow: hidden;
	background: #fff;
	border-radius: 12px;
	transition: transform .3s,opacity .3s;
	display: none;
	margin-top: 5px;
}

.custom-select-container {
	position: relative;
	display: inline-block;
}

.custom-select-wrapper.active {
	display: block!important;
}

.custom-select-options {
	padding: 8px 0;
}

.custom-select-option {
	display: block;
	padding: 12px 16px;
	cursor: pointer;
	font-size: 16px;
	color: #333;
	text-decoration: none;
	transition: background-color .2s, color .2s;
	border: none;
	background: none;
	width: 100%;
	text-align: left;
	box-sizing: border-box;
}

.custom-select-option:hover {
	background-color: #f5f5f5;
	color: #333;
	text-decoration: none;
}

.custom-select-option[data-selected="true"] {
	background-color: #7700FF;
	color: #fff;
}

.custom-select-option[data-selected="true"]:hover {
	background-color: #9466FF;
	color: #fff;
}

.banners-title {
	margin: 20px 0px;
	font-weight: 700;
    font-size: 24px;
    margin-bottom: 20px;
    position: relative;
    padding-bottom: 8px;
    display: inline-block;
}

.filters__select {
	display: none;
}

.filter-popup__content {
	padding: 15px;
}

.filter-popup__title {
	font-size: 18px;
	font-weight: 600;
	color: #232020;
	margin-bottom: 15px;
}

.filter-popup__options {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 15px;
}

.filter-popup__option {
	display: flex;
	align-items: center;
	cursor: pointer;
	padding: 6px 0;
	transition: background-color .2s;
	border-radius: 6px;
}

.filter-popup__option:hover {
	background-color: #f5f5f5;
}

.filter-popup__radio {
	margin-right: 10px;
	width: 16px;
	height: 16px;
	accent-color: #7700FF;
}

.filter-popup__label {
	font-size: 14px;
	color: #333;
}

.filter-popup__apply {
	width: 100%;
	padding: 10px 15px;
	background-color: #7700FF;
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .3s ease;
}

.filter-popup__apply:hover {
	background-color: #9466FF;
}

.custom-select-trigger {
	border: 1px solid #e7e7e9;
	border-radius: 34px;
    background: #e7e7e9;
    color: #575d68;
	cursor: pointer;
	position: relative;
	transition: border-color .3s ease;
	max-width: 300px;
    width: 100%;
    height: 48px;
    line-height: 48px;
    padding: 0 24px;
    font-size: 1rem;
    outline: none;
    box-sizing: border-box;
}

.filters {
	padding: 15px 0;
	background-color: #fff;
}

.filters__button {
	border-radius: 28px;
	height: 40px;
	width: 40px;
	background-color: #fff;
	border: none;
	box-shadow: inset 0 0 0 1px #7700ff;
	justify-items: center;
	cursor: pointer;
	transition: box-shadow .3s ease;
}

.filters__button:hover {
	box-shadow: inset 0 0 0 1px #7700FF;
}

.filters__container {
	display: flex;
	gap: 15px;
	position: relative;
	align-items: center;
}

.filter-popup {
	max-width: 300px;
	box-shadow: 0 10px 40px rgba(0,0,0,.23);
	position: absolute;
	width: 250px;
	z-index: 20001;
	top: 100%;
	left: 0;
	transform: translateY(10px);
	opacity: 0;
	overflow: hidden;
	background: #fff;
	border-radius: 10px;
	transition: transform .3s,opacity .3s;
	margin-top: 8px;
	display: none;
}

.filter-popup.active {
	transform: translateY(0);
	opacity: 1;
	display: block;
}

.filters__select {
	padding: 10px 15px;
	border: 1px solid #7700ff;
	border-radius: 34px;
	background-color: #fff;
	color: #333;
	font-size: 14px;
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237700FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 14px;
	padding-right: 40px;
	transition: border-color .3s ease;
}

.filters__select:hover,.filters__select:focus {
	border-color: #7700FF;
	outline: none;
}

.events {
	padding: 10px 0;
}

.events__block {
	margin-bottom: 20px;
}

.events__title {
	font-weight: 700;
	font-size: 24px;
	margin-bottom: 20px;
	position: relative;
	padding-bottom: 8px;
	display: inline-block;
}

.events__title:hover {
	color: #7700FF;
}

.events__slider {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.events__button {
    background-color: transparent;
    border: none;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    position: relative;
    padding: 0;
    margin-top: -3%;
    position: absolute;
    z-index: 10;
    top: 50%;
    transform: translateY(-50%);
}

.events__button--prev {
    left: -30px;
}

.events__button--next {
    right: -30px;
}

.events__button::after {
    content: "";
    width: 10px;
    height: 18px;
    display: block;
    background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iMjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMjFsMTAtMTBMMSAxIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+') center/contain no-repeat;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

.events__button--prev::after {
    transform: translate(-50%,-50%) rotate(180deg);
}

.events__list {
    display: flex;
    gap: 15px;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 8px 3px;
    scroll-behavior: smooth;
    width: 100%;
}

.events__list::-webkit-scrollbar {
	display: none;
}

.event-card {
	background-color: transparent;
	overflow: hidden;
	flex: 0 0 250px;
	display: flex;
	flex-direction: column;
	position: relative;
}

.event-card__image-container {
	position: relative;
	overflow: hidden;
	height: 160px;
	border-radius: 12px;
	margin-bottom: 10px;
}

.event-card__image {
    width: 250px;
    height: 237px;
    object-fit: cover;
	transition: transform .5s ease;
}

.event-card:hover .event-card__image {
	transform: scale(1.05);
}

.event-card__price {
	position: absolute;
	bottom: 8px;
	right: 8px;
	background-color: #fff;
	color: #000;
	padding: 4px 8px;
	border-radius: 12px;
	font-weight: 600;
	font-size: 12px;
}

.event-card__title {
	font-size: 16px;
	margin-bottom: 4px;
	color: #000;
	font-weight: 600;
	line-height: 1.3;
}

.event-card__info {
	color: #726961;
	font-size: 12px;
	line-height: 1.4;
	margin-bottom: 3px;
}

.event-card__info__dot {
	margin-left: 6px;
	margin-right: 6px;
}

.event-card__place {
	color: #726961;
	font-size: 12px;
}

.footer {
	background-color: #272f3d;
	color: #fff;
	padding: 20px 0 20px;
}

.footer__container {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
}

.footer__section {
	flex: 1;
	min-width: 200px;
}

.footer__title {
	font-size: 16px;
	position: relative;
	padding-bottom: 8px;
}

.footer__list-item {
	margin-bottom: 4px;
}

.footer__link {
	transition: color .3s ease;
	color: #767676;
	font-size: 14px;
}

.footer__link:hover {
	color: #fff;
}

.footer__copyright {
	width: 100%;
	color: #767676;
	font-size: 11px;
}

.footer__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.footer__social-icons {
	display: flex;
	gap: 3px;
}

.footer__social-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	color: #fff;
	transition: color .3s ease;
}

.footer__section-image {
	justify-self: right;
}

.footer__social-icon:hover {
	color: #7700FF;
}

.icon {
	width: 100%;
	height: 100%;
}

#loading-mask {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 1000;
	color: white;
	font-size: 18px;
}

.loading-content {
	text-align: center;
}

.loading-spinner {
	width: 40px;
	height: 40px;
	border: 4px solid rgba(255, 255, 255, 0.3);
	border-top: 4px solid white;
	border-radius: 50%;
	animation: spin 1s linear infinite;
	margin: 0 auto 15px;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

.page-cinema {
    --accent-color: #2196F3;
}

.page-theatre {
    --accent-color: #9C27B0;
}

.page-concerts {
    --accent-color: #FF9800;
}

.page-festivals {
    --accent-color: #4CAF50;
}

.page-standup {
    --accent-color: #795548;
}

.page-kids {
    --accent-color: #00BCD4;
}

.page-excursions {
    --accent-color: #607D8B;
}

.hero {
    padding: 60px 0;
    background: linear-gradient(135deg, var(--accent-color) 0%, rgba(136, 16, 29, 0.1) 100%);
    text-align: center;
    margin-bottom: 40px;
}

.hero__title {
    font-size: 48px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 20px;
    text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.hero__description {
    font-size: 20px;
    color: rgba(255,255,255,0.9);
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.page-cinema .events__title:hover,
.page-cinema .navigation__link:hover,
.page-cinema .footer__link:hover {
    color: var(--accent-color);
}

.page-cinema .events__title:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 16.5L9 9 1.5 1.5' stroke='%232196F3' stroke-width='2.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E");
}

.page-theatre .events__title:hover,
.page-theatre .navigation__link:hover,
.page-theatre .footer__link:hover {
    color: var(--accent-color);
}

.page-theatre .events__title:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 16.5L9 9 1.5 1.5' stroke='%239C27B0' stroke-width='2.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E");
}

.page-concerts .events__title:hover,
.page-concerts .navigation__link:hover,
.page-concerts .footer__link:hover {
    color: var(--accent-color);
}

.page-concerts .events__title:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 16.5L9 9 1.5 1.5' stroke='%23FF9800' stroke-width='2.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E");
}

.page-festivals .events__title:hover,
.page-festivals .navigation__link:hover,
.page-festivals .footer__link:hover {
    color: var(--accent-color);
}

.page-festivals .events__title:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 16.5L9 9 1.5 1.5' stroke='%234CAF50' stroke-width='2.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E");
}

.page-standup .events__title:hover,
.page-standup .navigation__link:hover,
.page-standup .footer__link:hover {
    color: var(--accent-color);
}

.page-standup .events__title:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 16.5L9 9 1.5 1.5' stroke='%23795548' stroke-width='2.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E");
}

.page-kids .events__title:hover,
.page-kids .navigation__link:hover,
.page-kids .footer__link:hover {
    color: var(--accent-color);
}

.page-kids .events__title:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 16.5L9 9 1.5 1.5' stroke='%2300BCD4' stroke-width='2.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E");
}

.page-excursions .events__title:hover,
.page-excursions .navigation__link:hover,
.page-excursions .footer__link:hover {
    color: var(--accent-color);
}

.page-excursions .events__title:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 16.5L9 9 1.5 1.5' stroke='%23607D8B' stroke-width='2.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E");
}

.new-year-hero {
    background: linear-gradient(135deg, #008dfb 0%, #4db8ff 25%, #66c1ff 50%, #4db8ff 75%, #008dfb 100%);
    padding: 50px 0;
    position: relative;
    overflow: hidden;
    margin-bottom: 40px;
}

.new-year-hero__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
    z-index: 2;
    text-align: center;
}

.new-year-hero__title {
    font-size: 48px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 20px;
    position: relative;
    display: inline-block;
}

.new-year-hero__description {
    font-size: 20px;
    color: rgba(255, 255, 255, 0.95);
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
    background: rgba(255, 255, 255, 0.1);
    padding: 20px;
    border-radius: 16px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.new-year-hero__year {
	color: #4947a5ba;
}

.event-card__rating {
    position: absolute;
    top: 8px;
    left: 8px;
    background: rgba(255,255,255,0.95);
    padding: 4px 8px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
}

.event-card__rating--bad {
    background: #ff3118;
	color: white;
}

.event-card__rating--normal {
    background: #ff8a2d;
	color: white;
}

.event-card__rating--good {
    background: #31be00;
	color: white;
}

.fade {
	background: linear-gradient(180deg, #000, rgba(0, 0, 0, .254) 66.23%, rgba(0, 0, 0, .116) 79.15%, rgba(0, 0, 0, .056) 89.65%, #0000);
    height: 100%;
    mix-blend-mode: normal;
    opacity: .8;
    position: absolute;
    top: 0;
    width: 100%;
	z-index: 5;
}

.fade::after {
	background: linear-gradient(180deg, #000, rgba(0, 0, 0, .254) 66.23%, rgba(0, 0, 0, .116) 79.15%, rgba(0, 0, 0, .056) 89.65%, #0000);
    height: 100%;
    mix-blend-mode: normal;
    opacity: .8;
    position: absolute;
    top: 0;
    width: 100%;
	z-index: 5;
}

.event-hero {
    position: relative;
    padding: 120px 0 80px;
    margin-bottom: 40px;
    color: #fff;
    overflow: hidden;
	background-size: cover;
}

.event-hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
}

.event-hero__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
    z-index: 10;
}

.event-hero__content {
    max-width: 600px;
}

.event-hero__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    font-size: 14px;
    opacity: 0.9;
}

.event-hero__type {
    background: rgba(255,255,255,0.2);
    padding: 4px 12px;
    border-radius: 12px;
    backdrop-filter: blur(10px);
}

.event-hero__age {
    background: #9466ffb0;
    padding: 4px 8px;
    border-radius: 8px;
    font-weight: 600;
}

.event-hero__pushkin {
    background: #E21F86;
    padding: 4px 8px;
    border-radius: 8px;
    font-weight: 600;
}

.event-hero__title {
    font-size: 48px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 16px;
}

.event-hero__subtitle {
    font-size: 20px;
    margin-bottom: 30px;
    opacity: 0.95;
    line-height: 1.4;
}

.event-hero__button {
    display: inline-block;
    background: #7700FF;
    color: #fff;
    padding: 14px 32px;
    border-radius: 28px;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.event-hero__button:hover {
    background: #9466FF;
    transform: translateY(-2px);
    color: #fff;
}

.newsletter {
    background: linear-gradient(135deg, #7700FF 0%, #9466FF 100%);
    color: #fff;
    padding: 60px 0;
    position: relative;
    overflow: hidden;
}

.newsletter::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 20% 80%, rgba(255,255,255,0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(255,255,255,0.1) 0%, transparent 50%);
    z-index: 1;
}

.newsletter__content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 600px;
    margin: 0 auto;
}

.newsletter__content h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 15px;
    color: #fff;
}

.newsletter__content p {
    font-size: 18px;
    color: rgba(255,255,255,0.9);
    margin-bottom: 30px;
    line-height: 1.5;
}

.newsletter__form {
    display: flex;
    gap: 12px;
    max-width: 480px;
    margin: 0 auto;
    flex-wrap: wrap;
    justify-content: center;
}

.newsletter__form input {
    flex: 1;
    min-width: 250px;
    padding: 15px 20px;
    border: none;
    border-radius: 28px;
    font-size: 16px;
    background: rgba(255,255,255,0.95);
    color: #333;
    transition: all 0.3s ease;
}

.newsletter__form input:focus {
    outline: none;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(255,255,255,0.3);
}

.newsletter__form input::placeholder {
    color: #999;
}

.newsletter__form button {
    padding: 15px 32px;
    background: #fff;
    color: #7700FF;
    border: none;
    border-radius: 28px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.newsletter__form button:hover {
    background: #fff;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

@media (max-width: 768px) {
    .newsletter {
        padding: 40px 0;
    }
    
    .newsletter__content h2 {
        font-size: 24px;
    }
    
    .newsletter__content p {
        font-size: 16px;
        margin-bottom: 25px;
    }
    
    .newsletter__form {
        flex-direction: column;
        gap: 15px;
    }
    
    .newsletter__form input {
        min-width: 100%;
        padding: 12px 20px;
    }
    
    .newsletter__form button {
        width: 100%;
        padding: 12px 20px;
    }
}

@media (max-width: 480px) {
    .newsletter__content h2 {
        font-size: 20px;
    }
    
    .newsletter__content p {
        font-size: 14px;
    }
}

.newsletter__form input:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.newsletter__form button:focus-visible {
    outline: 2px solid #7700FF;
    outline-offset: 2px;
}

.newsletter__form input:invalid:not(:focus) {
    border: 1px solid #9466FF;
}

.newsletter__form input:valid {
    border-color: #4CAF50;
}

.newsletter--success .newsletter__form {
    display: none;
}

.newsletter__success {
    display: none;
    font-size: 18px;
    color: #fff;
}

.newsletter--success .newsletter__success {
    display: block;
}

.pushkin-hero {
	background: linear-gradient(135deg, #E21F86 0%, #7C2CA7 100%);
	padding: 100px 0 80px;
	color: white;
	position: relative;
	overflow: hidden;
}

.pushkin-hero::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: 
		radial-gradient(circle at 20% 80%, rgba(255,255,255,0.1) 0%, transparent 50%),
		radial-gradient(circle at 80% 20%, rgba(255,255,255,0.1) 0%, transparent 50%),
		url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" opacity="0.03"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="white" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
}

.pushkin-hero__content {
	position: relative;
	z-index: 2;
	max-width: 800px;
}

.pushkin-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255,255,255,0.15);
	backdrop-filter: blur(10px);
	padding: 8px 16px;
	border-radius: 100px;
	font-size: 14px;
	margin-bottom: 20px;
	border: 1px solid rgba(255,255,255,0.2);
}

.pushkin-hero__title {
	font-size: 56px;
	font-weight: 800;
	line-height: 1.1;
	margin-bottom: 16px;
	background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.pushkin-hero__subtitle {
	font-size: 20px;
	opacity: 0.9;
	margin-bottom: 32px;
	line-height: 1.5;
}

.pushkin-features {
	padding: 80px 0;
	background: var(--surface);
}

.pushkin-features__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 24px;
}

.pushkin-feature {
	background: var(--surface);
	padding: 32px;
	border-radius: var(--radius-md);
	border: 1px solid var(--border);
	position: relative;
	overflow: hidden;
}

.pushkin-feature::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
}

.pushkin-feature__icon {
	width: 48px;
	height: 48px;
	background: var(--bg);
	border-radius: var(--radius-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	margin-bottom: 20px;
}

.pushkin-feature__title {
	font-size: 20px;
	font-weight: 600;
	margin-bottom: 12px;
}

.pushkin-feature__text {
	color: var(--text-secondary);
	line-height: 1.6;
}

.pushkin-steps {
	padding: 80px 0;
	background: var(--bg);
}

.pushkin-steps__header {
	text-align: center;
	margin-bottom: 60px;
}

.pushkin-steps__title {
	font-size: 40px;
	font-weight: 700;
	margin-bottom: 16px;
}

.pushkin-steps__subtitle {
	font-size: 18px;
	color: var(--text-secondary);
	max-width: 600px;
	margin: 0 auto;
}

.pushkin-steps__timeline {
	display: flex;
	justify-content: space-between;
	position: relative;
	max-width: 900px;
	margin: 0 auto;
}

.pushkin-steps__timeline::before {
	content: "";
	position: absolute;
	top: 40px;
	left: 50px;
	right: 50px;
	height: 2px;
	background: var(--border);
	z-index: 1;
}

.pushkin-step {
	text-align: center;
	position: relative;
	z-index: 2;
	flex: 1;
	padding: 0 20px;
}

.pushkin-step__number {
	width: 80px;
	height: 80px;
	background: var(--surface);
	border: 2px solid var(--border);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	font-weight: 700;
	margin: 0 auto 20px;
	transition: all 0.3s ease;
}

.pushkin-step:hover .pushkin-step__number {
	background: var(--primary);
	color: white;
	border-color: var(--primary);
	transform: scale(1.1);
}

.pushkin-step__title {
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 12px;
}

.pushkin-step__text {
	color: var(--text-secondary);
	font-size: 14px;
	line-height: 1.5;
}

.pushkin-faq {
	padding: 80px 0;
	background: var(--bg);
}

.pushkin-faq__title {
	font-size: 32px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
}

.pushkin-faq__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
	gap: 24px;
	max-width: 900px;
	margin: 0 auto;
}

.pushkin-faq-item {
	background: var(--surface);
	border-radius: var(--radius-md);
	padding: 24px;
	border: 1px solid var(--border);
	transition: all 0.3s ease;
}

.pushkin-faq-item:hover {
	border-color: var(--primary);
	box-shadow: var(--shadow-md);
}

.pushkin-faq-item__question {
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 12px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	cursor: pointer;
}

.pushkin-faq-item__toggle {
	font-size: 20px;
	color: var(--primary);
	transition: transform 0.3s ease;
}

.pushkin-faq-item__answer {
	color: var(--text-secondary);
	line-height: 1.6;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.pushkin-faq-item--active .pushkin-faq-item__answer {
	max-height: 200px;
}

.pushkin-faq-item--active .pushkin-faq-item__toggle {
	transform: rotate(45deg);
}

.pushkin-cta {
	padding: 80px 0;
	background: linear-gradient(135deg, #E21F86 0%, #7C2CA7 100%);
	color: white;
	text-align: center;
}

.pushkin-cta__title {
	font-size: 40px;
	font-weight: 700;
	margin-bottom: 16px;
}

.pushkin-cta__text {
	font-size: 18px;
	opacity: 0.9;
	margin-bottom: 32px;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}

.pushkin-cta__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #42FD0F;
	color: var(--text);
	padding: 16px 32px;
	border-radius: var(--radius-md);
	font-weight: 600;
	text-decoration: none;
	transition: all 0.3s ease;
	box-shadow: var(--shadow-md);
}

.pushkin-cta__button:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-lg);
}

/* Обновляем контейнер hero для размещения контента и картинки */
.pushkin-hero .container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    min-height: 600px;
}

.pushkin-hero__content {
    position: relative;
    z-index: 2;
}

/* Стили для визуального блока с картинкой */
.pushkin-hero__visual {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
}

.pushkin-hero__image-container {
    position: relative;
    max-width: 500px;
    width: 100%;
}

.pushkin-hero__image {
    width: 100%;
    height: auto;
    border-radius: 24px;
    transform: perspective(1000px) rotateY(-5deg) rotateX(5deg);
    transition: all 0.5s ease;
    animation: float 6s ease-in-out infinite;
}

.pushkin-hero__image:hover {
    transform: perspective(1000px) rotateY(0deg) rotateX(0deg) scale(1.05);
}

/* Плавающие элементы вокруг картинки */
.pushkin-hero__floating-elements {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.floating-element {
    position: absolute;
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(20px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    animation: float-element 8s ease-in-out infinite;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.floating-element--1 {
    top: 10%;
    left: -10%;
    animation-delay: 0s;
    background: rgba(255, 204, 0, 0.2);
}

.floating-element--2 {
    top: 70%;
    left: -5%;
    animation-delay: 1.5s;
    background: rgba(0, 85, 255, 0.2);
}

.floating-element--3 {
    top: 30%;
    right: -8%;
    animation-delay: 3s;
    background: rgba(0, 178, 59, 0.2);
}

.floating-element--4 {
    top: 80%;
    right: -12%;
    animation-delay: 4.5s;
    background: rgba(136, 16, 29, 0.2);
}

/* Анимации */
@keyframes float {
    0%, 100% {
        transform: perspective(1000px) rotateY(-5deg) rotateX(5deg) translateY(0px);
    }
    50% {
        transform: perspective(1000px) rotateY(-5deg) rotateX(5deg) translateY(-20px);
    }
}

@keyframes float-element {
    0%, 100% {
        transform: translateY(0px) rotate(0deg);
    }
    33% {
        transform: translateY(-20px) rotate(5deg);
    }
    66% {
        transform: translateY(10px) rotate(-5deg);
    }
}

.refund-hero {
	background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
	padding: 200px 0 150px;
	color: white;
	position: relative;
	overflow: hidden;
}

.refund-hero::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: 
		radial-gradient(circle at 20% 80%, rgba(255,255,255,0.1) 0%, transparent 50%),
		radial-gradient(circle at 80% 20%, rgba(255,255,255,0.1) 0%, transparent 50%);
}

.refund-hero__content {
	position: relative;
	z-index: 2;
	max-width: 800px;
}

.refund-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255,255,255,0.15);
	backdrop-filter: blur(10px);
	padding: 8px 16px;
	border-radius: 100px;
	font-size: 14px;
	margin-bottom: 20px;
	border: 1px solid rgba(255,255,255,0.2);
}

.refund-hero__title {
	font-size: 48px;
	font-weight: 800;
	line-height: 1.1;
	margin-bottom: 16px;
}

.refund-hero__subtitle {
	font-size: 20px;
	opacity: 0.9;
	margin-bottom: 32px;
	line-height: 1.5;
}

.refund-hero__warning {
	background: rgba(255,255,255,0.1);
	backdrop-filter: blur(10px);
	border-radius: var(--radius-md);
	padding: 20px;
	border-left: 4px solid var(--accent);
	margin-top: 30px;
}

.refund-hero__warning-title {
	font-weight: 600;
	margin-bottom: 8px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.refund-content {
	padding: 80px 0;
}

.refund-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 60px;
}

.refund-steps {
	margin-bottom: 60px;
}

.refund-steps__title {
	font-size: 32px;
	font-weight: 700;
	margin-bottom: 40px;
	color: var(--text);
}

.refund-step {
	background: var(--surface);
	border-radius: var(--radius-md);
	padding: 32px;
	margin-bottom: 24px;
	border: 1px solid var(--border);
	transition: all 0.3s ease;
	position: relative;
	counter-increment: step-counter;
}

.refund-step:hover {
	border-color: var(--primary);
	box-shadow: var(--shadow-md);
}

.refund-step::before {
	content: counter(step-counter);
	position: absolute;
	top: -15px;
	left: 32px;
	width: 40px;
	height: 40px;
	background: var(--primary);
	color: white;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 18px;
}

.refund-step__title {
	font-size: 20px;
	font-weight: 600;
	margin-bottom: 16px;
	color: var(--text);
}

.refund-step__content {
	color: var(--text-secondary);
	line-height: 1.6;
}

.refund-step__list {
	margin: 16px 0;
	padding-left: 24px;
}

.refund-step__list li {
	margin-bottom: 8px;
	color: var(--text-secondary);
}

.refund-conditions {
	background: var(--surface);
	border-radius: var(--radius-md);
	padding: 32px;
	border: 1px solid var(--border);
	margin-bottom: 40px;
}

.refund-conditions__title {
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 24px;
	color: var(--text);
}

.refund-condition {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 20px;
	padding: 20px;
	background: var(--bg);
	border-radius: var(--radius-sm);
	transition: all 0.3s ease;
}

.refund-condition:hover {
	background: #f0f0f0;
}

.refund-condition__icon {
	width: 40px;
	height: 40px;
	background: var(--primary);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-size: 12px;
	flex-shrink: 0;
}

.refund-condition__content {
	flex: 1;
}

.refund-condition__title {
	font-weight: 600;
	margin-bottom: 8px;
	color: var(--text);
}

.refund-condition__text {
	color: var(--text-secondary);
	line-height: 1.5;
}

.refund-sidebar {
	position: sticky;
	top: 20px;
}

.refund-important {
	background: var(--surface);
	border-radius: var(--radius-md);
	padding: 32px;
	border: 1px solid var(--border);
	margin-bottom: 30px;
	box-shadow: var(--shadow-sm);
}

.refund-important__title {
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 20px;
	color: var(--text);
	display: flex;
	align-items: center;
	gap: 8px;
}

.refund-important__title::before {
	content: "⚠️";
}

.refund-important__list {
	list-style: none;
}

.refund-important__list li {
	margin-bottom: 16px;
	padding-left: 24px;
	position: relative;
	color: var(--text-secondary);
}

.refund-important__list li::before {
	content: "•";
	color: var(--primary);
	font-weight: bold;
	position: absolute;
	left: 8px;
}

.refund-help {
	background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
	color: white;
	border-radius: var(--radius-md);
	padding: 32px;
	text-align: center;
}

.refund-help__title {
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 16px;
}

.refund-help__text {
	opacity: 0.9;
	margin-bottom: 24px;
	line-height: 1.5;
}

.refund-help__button {
	display: inline-block;
	background: var(--accent);
	color: var(--text);
	padding: 12px 24px;
	border-radius: var(--radius-md);
	font-weight: 600;
	text-decoration: none;
	transition: all 0.3s ease;
}

.refund-help__button:hover {
	transform: translateY(-2px);
}

.refund-faq {
	background: var(--surface);
	padding: 80px 0;
	border-radius: var(--radius-lg);
	margin-top: 40px;
}

.refund-faq__title {
	font-size: 32px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
	color: var(--text);
}

.refund-faq__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
	gap: 24px;
	max-width: 900px;
	margin: 0 auto;
}

.refund-faq-item {
	background: var(--bg);
	border-radius: var(--radius-md);
	padding: 24px;
	border: 1px solid var(--border);
	transition: all 0.3s ease;
}

.refund-faq-item:hover {
	border-color: var(--primary);
}

.refund-faq-item__question {
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 12px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	cursor: pointer;
}

.refund-faq-item__toggle {
	font-size: 20px;
	color: var(--primary);
	transition: transform 0.3s ease;
}

.refund-faq-item__answer {
	color: var(--text-secondary);
	line-height: 1.6;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.refund-faq-item--active .refund-faq-item__answer {
	max-height: 200px;
}

.refund-faq-item--active .refund-faq-item__toggle {
	transform: rotate(45deg);
}

@media (max-width: 1024px) {
	.refund-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	
	.refund-sidebar {
		position: static;
	}
}

@media (max-width: 768px) {
	.refund-hero__title {
		font-size: 36px;
	}
	
	.refund-faq__grid {
		grid-template-columns: 1fr;
	}
	
	.refund-step {
		padding: 24px 24px 24px 20px;
	}
	
	.refund-step::before {
		left: 20px;
		width: 36px;
		height: 36px;
		font-size: 16px;
	}
}

/* Адаптивность */
@media (max-width: 1024px) {
    .pushkin-hero .container {
        grid-template-columns: 1fr;
        gap: 40px;
        text-align: center;
    }
    
    .pushkin-hero__visual {
        order: -1;
        max-width: 400px;
        margin: 0 auto;
    }
    
    .pushkin-hero__image {
        max-width: 300px;
    }
    
    .floating-element {
        width: 50px;
        height: 50px;
        font-size: 20px;
    }
}

@media (max-width: 768px) {
    .pushkin-hero__image {
        max-width: 250px;
    }
    
    .floating-element {
        width: 40px;
        height: 40px;
        font-size: 18px;
    }
    
    .floating-element--1 {
        left: -5%;
    }
    
    .floating-element--2 {
        left: 0%;
    }
    
    .floating-element--3 {
        right: -5%;
    }
    
    .floating-element--4 {
        right: -8%;
    }
}

@media (max-width: 768px) {
	.pushkin-hero__title {
		font-size: 40px;
	}
	
	.pushkin-steps__timeline {
		flex-direction: column;
		gap: 40px;
	}
	
	.pushkin-steps__timeline::before {
		display: none;
	}
	
	.pushkin-faq__grid {
		grid-template-columns: 1fr;
	}
	
	.pushkin-header__nav {
		display: none;
	}
	
	.pushkin-hero__actions {
		flex-direction: column;
	}
}

@media (max-width: 768px) {
    .container {
        padding: 0 15px;
    }

    .header__container {
        justify-content: space-between;
        padding: 0 15px;
    }

    .mobile-menu-btn {
        display: block;
    }

    .navigation {
        position: fixed;
        top: 0;
        left: -100%;
        width: 80%;
        height: 100vh;
        background: #fff;
        z-index: 1000;
        transition: left 0.3s ease;
        box-shadow: 2px 0 10px rgba(0,0,0,0.1);
    }

    .navigation.active {
        left: 0;
    }

    .navigation__list {
        flex-direction: column;
        padding: 80px 20px 20px;
        gap: 10px;
    }

    .navigation__link {
        padding: 12px 16px;
        border-radius: 8px;
        font-size: 16px;
    }

    .calendar {
        padding: 0 15px;
    }

    .calendar__title {
        font-size: 24px;
        margin-bottom: 15px;
    }

    .calendar__container {
        gap: 10px;
    }

    .calendar__month-label {
        font-size: 9px;
        margin-right: 10px;
    }

    .calendar__date {
        min-width: 45px;
        padding: 4px;
        border-radius: 12px;
    }

    .calendar__week-day {
        font-size: 9px;
    }

    .calendar__day-number {
        font-size: 12px;
    }

    .filters__container {
        flex-wrap: wrap;
        gap: 10px;
    }

    .custom-select-trigger {
        max-width: 100%;
        font-size: 14px;
    }

    .filter-popup {
        width: 100%;
        max-width: none;
        left: 0;
        right: 0;
        margin: 8px 15px 0;
        width: calc(100% - 30px);
    }

    .events__title {
        font-size: 20px;
        margin-bottom: 15px;
    }

    .events__button {
        display: none; 
    }

    .calendar__button {
        display: none; 
    }

    .event-card__title {
        font-size: 14px;
    }

    .event-card__info,
    .event-card__place {
        font-size: 11px;
    }

    .hero {
        padding: 40px 0;
        margin-bottom: 30px;
    }

    .hero__title {
        font-size: 32px;
        margin-bottom: 15px;
    }

    .hero__description {
        font-size: 16px;
        padding: 0 15px;
    }

    .new-year-hero {
        padding: 40px 0;
        margin-bottom: 30px;
    }

    .new-year-hero__title {
        font-size: 32px;
    }

    .new-year-hero__description {
        font-size: 16px;
        padding: 15px;
        margin: 0 15px;
    }

    .event-hero {
        padding: 100px 0 60px;
        margin-bottom: 30px;
    }

    .event-hero__title {
        font-size: 32px;
    }

    .event-hero__subtitle {
        font-size: 16px;
    }

    .event-hero__meta {
        flex-wrap: wrap;
        gap: 8px;
    }

    .footer__container {
        flex-direction: column;
        gap: 30px;
    }

    .footer__section {
        min-width: 100%;
    }

    .footer__bottom {
        flex-direction: column;
        gap: 15px;
        text-align: center;
    }

    .footer__social-icons {
        justify-content: center;
    }

    .calendar__date,
    .event-card,
    .navigation__link,
    .custom-select-trigger {
        min-height: 44px;
    }

    .calendar__date {
        min-height: auto;
        padding: 8px 5px;
    }
	
    .calendar__months,
    .calendar__dates-wrapper,
    .events__list {
        -webkit-overflow-scrolling: touch;
    }

    .custom-select-wrapper {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 90%;
        max-width: 300px;
        max-height: 80vh;
        overflow-y: auto;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 10px;
    }

    .header__container {
        padding: 0 10px;
    }

    .header__logo-img {
        height: 40px;
    }

    .calendar__title {
        font-size: 20px;
    }

    .calendar__date {
        min-width: 40px;
    }

    .calendar__day-number {
        font-size: 11px;
    }

    .events__title {
        font-size: 18px;
    }

    .hero__title,
    .new-year-hero__title,
    .event-hero__title {
        font-size: 28px;
    }

    .hero__description,
    .new-year-hero__description,
    .event-hero__subtitle {
        font-size: 14px;
    }

    .event-hero__button {
        padding: 12px 24px;
        font-size: 14px;
        width: 100%;
        text-align: center;
    }

    .calendar__month-dates {
        gap: 5px;
    }

    .calendar__dates {
        gap: 5px;
    }

    .events__list {
        gap: 8px;
    }
}

@media (max-width: 768px) and (orientation: portrait) {
    .event-hero {
        padding: 80px 0 40px;
    }
    
    .event-hero__content {
        text-align: center;
    }
}

@media (max-width: 768px) and (orientation: landscape) {
    .navigation {
        width: 60%;
    }
    
    .hero,
    .new-year-hero,
    .event-hero {
        padding: 30px 0;
    }
}

@media (max-width: 768px) and (-webkit-min-device-pixel-ratio: 2) {
    .calendar__button::after,
    .events__button::after {
        background-size: contain;
        background-repeat: no-repeat;
    }
}

@media (max-width: 768px) {
    select,
    textarea,
    input[type="text"],
    input[type="password"],
    input[type="datetime"],
    input[type="datetime-local"],
    input[type="date"],
    input[type="month"],
    input[type="time"],
    input[type="week"],
    input[type="number"],
    input[type="email"],
    input[type="url"],
    input[type="search"],
    input[type="tel"],
    input[type="color"] {
        font-size: 16px; 
    }
}

@media (hover: none) and (pointer: coarse) {
    .navigation__link:hover {
        background-color: transparent;
    }
    
    .event-card:hover .event-card__image {
        transform: none;
    }
    
    .calendar__date:hover {
        background-color: transparent;
    }
    
    .navigation__link,
    .calendar__date,
    .event-card,
    .custom-select-trigger {
        padding: 12px 16px;
    }
}

.event-card__pushkin {
    position: absolute;
    top: 8px;
    right: 8px;
    background-color: #E21F86;
    color: #fff;
    padding: 4px 8px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 5;
    transition: all 0.3s ease;
    cursor: help;
    max-width: 90px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}