/* ===== Планшет / узкий десктоп (941–1015px): убираем горизонтальную прокрутку ===== */
@media only screen and (max-width: 1015px) {
	.main {
		min-width: 0;
		max-width: 100%;
	}

	.maps-block {
		min-width: 0;
	}

	.header,
	header.header,
	.baners,
	nav.top-navi,
	.top-block,
	.top-block_ins,
	.footer,
	.sub_footer,
	.footer_ins,
	.content,
	.contentanons,
	.prev-items-block,
	.section-block_list,
	.subsection-block,
	.calendar-block_ins,
	.contacts-block {
		width: 100% !important;
		max-width: 100%;
		box-sizing: border-box;
	}

	.top-block,
	.footer,
	.sub_footer {
		min-width: 0 !important;
	}

	.prev-items-block_list {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	.section-block_list ul,
	.subsection-block ul {
		width: 100%;
		max-width: 100%;
	}
}

/* ===== МОБИЛЬНЫЕ СТИЛИ (max-width: 940px) ===== */
@media only screen and (max-width: 940px) {
	header.header,
	.baners,
	nav.top-navi,
	.top-block_ins,
	.section-block_list ul,
	.section-block_list,
	.top-block,
	.prev-items-block_list,
	.sub_footer,
	.footer_ins,
	.contacts-block,
	.footer,
	.contentanons,
	.content,
	.prev-items-block,
	.calendar-block_ins,
	.subsection-block,
	.subsection-block ul {
		width: 100% !important;
	}
	.fotorama__wrap {
		margin: 0 auto;
	}
	.slider {
		margin: 0 auto;
		float: none !important;
	}
	div.side {
		float: none !important;
		margin: 0 auto !important;
		max-width: 300px !important;
		width: 100%;
	}
	.section-block_list ul li {
		margin: 0 auto !important;
	}
	.top-block,
	.footer {
		min-width: 0 !important;
	}
	.prev-items-block_item,
	.prev-items-block_item1 {
		margin: 0 auto 35px !important;
		display: inline-block;
		vertical-align: middle;
		float: none;
	}
	.section-block_list,
	.prev-items-block_list {
		text-align: center;
	}
	.top-navi_link {
		padding: 0 1vw !important;
	}
	.top-navi_item {
		padding-left: 0 !important;
	}
	.top-navi_item::before {
		display: none !important;
		content: none !important;
	}
	.logo {
		width: 30vw;
	}
	#logo {
		width: 30vw;
		height: auto;
		max-height: 120px;
		object-fit: contain;
	}
	ul#days {
		width: auto !important;
		float: left !important;
	}
	.text-block.marg {
		margin: 0 5px 69px;
	}
	.press-center-sections {
		padding: 0 10px;
		gap: 15px;
	}
	.press-center-section-item {
		flex: 0 0 calc(50% - 8px);
		min-width: auto;
	}
	.press-center-section-link {
		padding: 20px 15px;
	}
	.form-table input[type="text"],
	.form-table textarea {
		width: 95%;
	}
	.search-block_text {
		width: auto !important;
	}

	/* Заголовки секций: на мобилке 34px + uppercase часто даёт горизонтальный скролл на длинных словах */
	.title-block {
		max-width: 100%;
		box-sizing: border-box;
		padding: 0 12px;
	}

	.title-block span,
	.title-block h1 {
		font-size: 22px !important;
		line-height: 1.15 !important;
		hyphens: auto;
		-webkit-hyphens: auto;
		overflow-wrap: anywhere;
		word-break: auto-phrase;
	}

	.title-block .before,
	.title-block .after {
		max-width: 100%;
		box-sizing: border-box;
	}

	.pagi .prev,
	.pagi .next {
		overflow: hidden;
	}
	form.ts-form.ts-filter.news,
	form.ts-form.ts-filter.events {
		margin: 0 0 36px;
		padding: 12px 10px 16px;
		display: block !important;
		height: auto !important;
		border: 1px solid var(--color-primary, #009055);
		border-radius: 4px;
	}
	form.ts-form.ts-filter.news .ts-items,
	form.ts-form.ts-filter.events .ts-items {
		display: block;
	}
	form.ts-form.ts-filter.news .ts-item,
	form.ts-form.ts-filter.events .ts-item {
		display: block;
		width: 100% !important;
		margin-bottom: 14px;
		min-height: 0;
	}
	form.ts-form.ts-filter.news .ts-name,
	form.ts-form.ts-filter.events .ts-name {
		display: block;
		margin-bottom: 4px;
		font-weight: bold;
		color: var(--color-text-muted);
	}
	form.ts-form.ts-filter.news .ts-item--date,
	form.ts-form.ts-filter.events .ts-item--date {
		text-align: center;
		margin-bottom: 8px;
	}
	form.ts-form.ts-filter.news .ts-item--date .ts-name,
	form.ts-form.ts-filter.events .ts-item--date .ts-name {
		text-align: center;
		margin-bottom: 6px;
	}
	form.ts-form.ts-filter.news .ts-filter,
	form.ts-form.ts-filter.events .ts-filter {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding: 6px 8px;
		border: 1px solid #ccc;
		border-radius: 4px;
		font-size: 14px;
	}
	form.ts-form.ts-filter.news .ts-buttons,
	form.ts-form.ts-filter.events .ts-buttons {
		margin-top: 16px;
		text-align: left;
	}
	form.ts-form.ts-filter.news .ts-buttons button,
	form.ts-form.ts-filter.events .ts-buttons button {
		padding: 8px 16px;
		margin-right: 10px;
		font-size: 14px;
		cursor: pointer;
		border-radius: 4px;
		border: 1px solid var(--color-primary, #009055);
	}
	form.ts-form.ts-filter.news .ts-buttons button[type="submit"],
	form.ts-form.ts-filter.events .ts-buttons button[type="submit"] {
		background: var(--color-primary, #009055);
		color: var(--color-white);
	}
	form.ts-form.ts-filter.news .ts-buttons button[type="button"],
	form.ts-form.ts-filter.events .ts-buttons button[type="button"] {
		background: var(--color-bg);
		color: var(--color-text);
	}
	.filter-block {
		display: block;
	}
	.top-block_ins {
		height: auto !important;
	}
	.rightside {
		display: block !important;
		width: 100% !important;
		margin: 10px 0 0 0;
		float: none;
	}
	.top-block.bg {
		background-attachment: scroll;
	}
}

/* Шапка: после переверстки отменяем legacy-позиционирование из /design/styles/jsmenu/demo.css
   (оно подключается глобально и перебивает fixes.css из-за порядка CSS) */
@media only screen and (max-width: 890px) {
	.header #nullp,
	.header .oneplus,
	.header .twoplus,
	.header #table_soc_icons1 {
		position: static !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		z-index: auto !important;
	}

	.header .lang {
		top: 111px !important;
		position: absolute !important;
		left: 252px !important;
	}

	.header .header-actions-left {
		top: 111px !important;
		position: absolute !important;
		left: 329px !important;
	}

	.header-topbar-right > .personal-cabinet-link {
		top: 12px !important;
		position: absolute !important;
		left: 397px !important;
	}

	.header .personal-cabinet-split {
		top: 12px !important;
		position: absolute !important;
		left: 397px !important;
	}

	.header #table_soc_icons1 {
		padding-left: 241px;
		margin: 0 !important;
		justify-content: flex-start !important;
		gap: 1px !important;
	}

	.header .header-right {
		position: static;
		right: auto;
		width: 100%;
		max-width: 100%;
		padding: 12px 10px 0;
		box-sizing: border-box;
		grid-template-columns: 1fr;
		row-gap: 12px;
	}

	.header .header-topbar-right,
	.header .header-actions-right {
		width: 100%;
		justify-content: space-between;
	}

	.header .search-block {
		top: 158px !important;
		position: absolute !important;
		z-index: 1000 !important;
		width: 230px !important;
	}

	/* iOS: не даём Safari автоматически зумить страницу при фокусе в input с font-size < 16px */
	.header .search-block_text {
		font-size: 16px !important;
		line-height: 1.15 !important;
	}

	.rightside {
		float: none !important;
		display: block !important;
		width: 100% !important;
		max-width: 336px;
		margin-left: auto !important;
		margin-right: auto !important;
		margin-top: 10px;
		text-align: center;
	}
}

/* ===== МОБИЛЬНЫЕ СТИЛИ (max-width: 604px) ===== */
@media only screen and (max-width: 604px) {
	.contacts-block {
		display: flex !important;
		flex-direction: column;
		align-items: center;
	}
	.contacts-block_phone,
	.contacts-block_mail,
	.contacts-block_addr {
		float: none !important;
		text-align: center;
		margin-bottom: 30px;
		width: 100%;
		position: relative !important;
		left: auto !important;
		transform: none !important;
		flex: none !important;
	}
	/* Баннеры: адаптив в components/.../banners/style.css (не скрываем .slide_box) */
	.slider {
		width: 100% !important;
	}
	.bx-caption {
		display: block;
	}
	.novelty-block .prev-novelty_locs,
	.novelty-block .vidds {
		clear: both;
		margin-left: 5px !important;
		margin-top: 10px;
	}
	.bx-caption span {
		padding-bottom: 40px !important;
		font-size: 0.9em !important;
	}
}

/* ===== МОБИЛЬНЫЕ СТИЛИ (max-width: 554px) ===== */
@media only screen and (max-width: 554px) {
	header.header .logo__text,
	.header .logo__text {
		display: none !important;
	}

	.header-topbar-right > .personal-cabinet-link {
		top: 47px !important;
		position: absolute !important;
		left: 235px !important;
	}

	.header .personal-cabinet-split {
		top: 47px !important;
		position: absolute !important;
		left: 235px !important;
	}

	.header .header-actions-left {
		top: 80px !important;
		position: absolute !important;
		left: 235px !important;
	}
	.header #table_soc_icons1 {
		padding-left: 225px;
	}
	.header .lang {
		left: 235px !important;
	}
}

@media only screen and (max-width: 400px) {
	.header .twoplus {
		display: none !important;
	}
	.header #table_soc_icons1 {
		gap: 0px !important;
	}
}