/* ===========================================================
   Промо-блоки страницы акции (конструктор prostore_news)
   =========================================================== */

.promo-blocks {
	margin-top: 20px;
	--promo-brand: var(--theme-primary-color, #d85a0e);
}

.promo-blocks__row {
	row-gap: 0;
}

.promo-blocks__col {
	display: flex;
}

.promo-block {
	width: 100%;
	margin: 0 0 24px;
	border-radius: 16px;
}

/* --- Пресеты оформления ------------------------------------ */

.promo-block--pad {
	padding: 24px;
}

.promo-preset--light {
	background: #f5f6f8;
}

.promo-preset--brand {
	background: var(--promo-brand);
	color: #fff;
}

.promo-preset--dark {
	background: #1e2430;
	color: #fff;
}

.promo-preset--outline {
	background: #fff;
	border: 1px solid #e2e4e9;
}

.promo-block--text-light {
	color: #fff;
}

.promo-block--border {
	border: 1px solid #e2e4e9;
}

.promo-block--shadow {
	box-shadow: 0 10px 30px rgba(30, 36, 48, .12);
}

.promo-preset--brand a:not(.ui-btn),
.promo-preset--dark a:not(.ui-btn),
.promo-block--text-light a:not(.ui-btn) {
	color: inherit;
	text-decoration: underline;
}

.promo-preset--brand .promo-block__count,
.promo-preset--dark .promo-block__count,
.promo-preset--brand .promo-steps__desc,
.promo-preset--dark .promo-steps__desc,
.promo-preset--brand .promo-advantages__desc,
.promo-preset--dark .promo-advantages__desc {
	color: rgba(255, 255, 255, .75);
}

.promo-block__head {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
}

.promo-block__title {
	margin: 0;
}

.promo-block__count {
	color: #8c8c8c;
	font-size: 14px;
}

/* Карточки товаров имеют собственную светлую поверхность и не должны
   наследовать белый цвет текста от фирменного/тёмного фона блока. */
.promo-block--products .products__item,
.promo-block--products .products__item-in {
	color: #343434;
}

.promo-block--products .products__item-title,
.promo-block--products .products__item-title:hover,
.promo-block--products .products__item-status,
.promo-block--products .products__item-price,
.promo-block--products .products__item-price ins,
.promo-block--products .products__item-buttons .ui-btn {
	color: #343434;
}

.promo-block--products .products__item-title,
.promo-block--products .products__item-title:hover {
	text-decoration: none;
}

/* --- Countdown ------------------------------------------- */

.promo-countdown__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px 32px;
	text-align: center;
}

.promo-countdown__title {
	font-size: 22px;
	font-weight: 700;
}

.promo-countdown__expired {
	font-size: 18px;
	font-weight: 600;
	opacity: .7;
}

.promo-countdown__timer.ui-discount__countdown {
	justify-content: center;
	font-size: 28px;
}

.promo-preset--dark .promo-countdown__timer .countdown,
.promo-preset--brand .promo-countdown__timer .countdown {
	color: #fff;
}

/* узкий блок — таймер в столбик */
.promo-block--w-half .promo-countdown__inner,
.promo-block--w-third .promo-countdown__inner {
	flex-direction: column;
	gap: 10px;
}

.promo-block--w-third .promo-countdown__title {
	font-size: 18px;
}

/* --- Steps ------------------------------------------------ */

.promo-steps {
	padding: 8px 0;
}

.promo-steps .promo-block__title {
	display: block;
	margin-bottom: 20px;
}

.promo-steps__row {
	row-gap: 20px;
}

.promo-steps__item {
	height: 100%;
	padding: 20px;
	border-radius: 16px;
	background: #f5f6f8;
	text-align: center;
}

.promo-block--pad .promo-steps__item {
	background: #fff;
}

.promo-preset--dark .promo-steps__item,
.promo-preset--brand .promo-steps__item {
	background: rgba(255, 255, 255, .14);
}

.promo-steps__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-bottom: 12px;
	border-radius: 10px;
	background: var(--promo-brand);
	color: #fff;
	font-size: 20px;
	font-weight: 700;
}

.promo-steps__icon {
	margin: 0 0 12px;
}

.promo-steps__icon img {
	max-width: 72px;
	max-height: 72px;
}

.promo-steps__caption {
	display: block;
	margin-bottom: 8px;
	font-size: 16px;
	font-weight: 600;
}

.promo-steps__desc {
	margin: 0;
	color: #6c6c6c;
	font-size: 14px;
}

/* --- Banner ----------------------------------------------- */

.promo-banner {
	position: relative;
}

.promo-banner img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
}

.promo-banner__erid {
	position: absolute;
	left: 12px;
	bottom: 10px;
	padding: 2px 8px;
	border-radius: 6px;
	background: rgba(0, 0, 0, .45);
	color: #fff;
	font-size: 11px;
}

/* --- Slider ---------------------------------------------- */

.promo-slider {
	position: relative;
	overflow: hidden;
}

.promo-slider__swiper {
	position: relative;
}

.promo-slider__slide {
	height: auto;
}

.promo-slider__slide > a,
.promo-slider__slide > img {
	display: block;
	width: 100%;
}

.promo-slider__slide img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.promo-slider__prev,
.promo-slider__next {
	position: absolute;
	top: 50%;
	z-index: 5;
	width: 40px;
	height: 40px;
	margin-top: -20px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	color: #343434;
	box-shadow: 0 3px 12px rgba(0, 0, 0, .12);
}

.promo-slider__prev { left: 12px; }
.promo-slider__next { right: 12px; }
.promo-slider__prev .icon-arrow-toggle { transform: rotate(90deg); }
.promo-slider__next .icon-arrow-toggle { transform: rotate(-90deg); }

.promo-slider__pagination {
	position: relative;
	margin-top: 12px;
}

/* --- Преимущества с иконками ------------------------------- */

.promo-advantages .promo-block__title {
	display: block;
	margin-bottom: 20px;
}

.promo-advantages__row {
	row-gap: 16px;
}

.promo-advantages__item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	height: 100%;
	padding: 18px;
	border-radius: 16px;
	background: #f5f6f8;
}

.promo-block--pad .promo-advantages__item {
	background: #fff;
}

.promo-preset--dark .promo-advantages__item,
.promo-preset--brand .promo-advantages__item {
	background: rgba(255, 255, 255, .14);
}

.promo-advantages__icon {
	flex: 0 0 auto;
	margin: 0;
}

.promo-advantages__icon img {
	max-width: 48px;
	max-height: 48px;
}

.promo-advantages__caption {
	display: block;
	margin-bottom: 4px;
	font-size: 15px;
	font-weight: 600;
}

.promo-advantages__desc {
	margin: 0;
	color: #6c6c6c;
	font-size: 13px;
}

/* --- Текст + картинка -------------------------------------- */

.promo-textimage__row {
	row-gap: 20px;
}

.promo-textimage--reverse .promo-textimage__row {
	flex-direction: row-reverse;
}

.promo-textimage__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
}

.promo-textimage__title {
	display: block;
	margin-bottom: 14px;
}

/* --- Аккордеон условий -------------------------------------- */

.promo-accordion .promo-block__title {
	display: block;
	margin-bottom: 16px;
}

.promo-accordion__item {
	border: 1px solid #e2e4e9;
	border-radius: 12px;
	background: #fff;
	margin-bottom: 10px;
}

.promo-accordion__summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	user-select: none;
}

.promo-accordion__summary::-webkit-details-marker {
	display: none;
}

.promo-accordion__summary:after {
	content: "";
	flex: 0 0 auto;
	width: 9px;
	height: 9px;
	margin-left: 12px;
	border-right: 2px solid #8c8c8c;
	border-bottom: 2px solid #8c8c8c;
	transform: rotate(45deg);
	transition: transform .15s;
}

.promo-accordion__item[open] > .promo-accordion__summary:after {
	transform: rotate(225deg);
}

.promo-accordion__content {
	padding: 0 20px 16px;
	color: #4c4c4c;
	font-size: 14px;
}

/* --- Промокод ------------------------------------------------ */

.promo-coupon__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
}

.promo-coupon__title {
	display: block;
	font-size: 20px;
	font-weight: 700;
}

.promo-coupon__desc {
	margin: 6px 0 0;
	font-size: 14px;
	opacity: .8;
}

.promo-coupon__action {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.promo-coupon__code {
	padding: 10px 18px;
	border: 2px dashed var(--promo-brand);
	border-radius: 10px;
	color: var(--promo-brand);
	font-family: monospace;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 2px;
}

.promo-preset--brand .promo-coupon__code,
.promo-preset--dark .promo-coupon__code,
.promo-block--text-light .promo-coupon__code {
	border-color: rgba(255, 255, 255, .7);
	color: #fff;
}

/* на фирменном фоне кнопка копирования — белая */
.promo-preset--brand .promo-coupon__copy {
	background: #fff;
	color: var(--promo-brand);
}

/* узкий блок — промокод в столбик */
.promo-block--w-half .promo-coupon__inner,
.promo-block--w-third .promo-coupon__inner {
	flex-direction: column;
	align-items: flex-start;
}

/* --- Товар + подарок ---------------------------------------- */

.promo-gift .promo-block__title {
	display: block;
	margin-bottom: 16px;
}

.promo-gift__row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px 28px;
	padding: 20px;
	border-radius: 16px;
	background: #f5f6f8;
	margin-bottom: 16px;
}

.promo-block--pad .promo-gift__row {
	background: #fff;
}

.promo-preset--dark .promo-gift__row,
.promo-preset--brand .promo-gift__row {
	background: rgba(255, 255, 255, .14);
}

.promo-gift__side {
	flex: 0 1 auto;
	min-width: 190px;
}

.promo-gift__label {
	display: block;
	margin-bottom: 10px;
	color: #8c8c8c;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .5px;
}

.promo-gift__label--gift {
	color: #e6003b;
}

/* контраст подписей на тёмных пресетах */
.promo-preset--dark .promo-gift__label,
.promo-preset--brand .promo-gift__label {
	color: rgba(255, 255, 255, .65);
}

.promo-preset--dark .promo-gift__label--gift,
.promo-preset--brand .promo-gift__label--gift {
	color: #ffb3a1;
}

.promo-gift__plus {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	color: var(--promo-brand);
	font-size: 32px;
	font-weight: 700;
}

.promo-gift__items {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.promo-gift__card {
	position: relative;
	width: 170px;
	padding: 12px;
	border: 1px solid #eef0f3;
	border-radius: 12px;
	background: #fff;
	color: #1e2430; /* карточка всегда белая — текст не должен наследовать цвет тёмных пресетов */
	text-align: center;
}

.promo-preset--dark .promo-gift__card,
.promo-preset--brand .promo-gift__card {
	border-color: transparent;
}

.promo-gift__card a {
	color: inherit !important;
	text-decoration: none !important;
}

.promo-gift__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
}

.promo-gift__image {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

.promo-gift__name {
	display: block;
	margin-top: 8px;
	color: inherit;
	font-size: 13px;
	line-height: 1.35;
}

.promo-gift__price {
	margin: 6px 0 0;
	font-size: 14px;
	font-weight: 600;
}

.promo-gift__price del {
	color: #a0a0a0;
	font-weight: 400;
	font-size: 12px;
}

.promo-gift__free {
	color: #e6003b;
	text-decoration: none;
	font-style: normal;
}

/* на мобильном — стороны в столбик, стрелка вниз */
@media (max-width: 767px) {
	.promo-gift__plus {
		width: 100%;
		justify-content: center;
		transform: rotate(90deg);
	}
}

/* --- Фильтры «Все товары акции» ---------------------------- */

.promo-filters {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 20px;
}

.promo-filters__select,
.promo-filters__summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid #e2e4e9;
	border-radius: 20px;
	background: #fff;
	font-size: 14px;
	cursor: pointer;
}

.promo-filters__select {
	appearance: auto;
	max-width: 220px;
}

.promo-filters__dropdown {
	position: relative;
}

.promo-filters__summary {
	list-style: none;
	user-select: none;
}

.promo-filters__summary::-webkit-details-marker {
	display: none;
}

.promo-filters__summary:after {
	content: "";
	width: 8px;
	height: 8px;
	margin-left: 2px;
	border-right: 2px solid #8c8c8c;
	border-bottom: 2px solid #8c8c8c;
	transform: rotate(45deg) translateY(-2px);
}

.promo-filters__dropdown[open] .promo-filters__summary {
	border-color: var(--promo-brand);
}

.promo-filters__panel {
	position: absolute;
	z-index: 20;
	top: calc(100% + 6px);
	left: 0;
	min-width: 240px;
	max-height: 320px;
	overflow: auto;
	padding: 12px;
	border: 1px solid #e2e4e9;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(30, 36, 48, .12);
}

.promo-filters__option {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 6px 4px;
	font-size: 14px;
	font-weight: 400;
	cursor: pointer;
}

.promo-filters__option:hover {
	background: #f5f6f8;
	border-radius: 6px;
}

.promo-filters__qty {
	margin-left: auto;
	color: #a0a0a0;
	font-size: 12px;
}

.promo-filters__panel--price {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 220px;
}

.promo-filters__price {
	width: 90px;
	padding: 6px 10px;
	border: 1px solid #e2e4e9;
	border-radius: 8px;
}

.promo-filters__stock {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	margin: 0;
	padding: 8px 16px;
	border: 1px solid #e2e4e9;
	border-radius: 20px;
	background: #fff;
	font-size: 14px;
	font-weight: 400;
	cursor: pointer;
}

.promo-filters__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: var(--promo-brand);
	color: #fff;
	font-size: 11px;
}

.promo-filters__reset {
	min-height: 40px;
	padding: 8px 16px;
	border: none;
	border-radius: 20px;
	background: transparent;
	color: var(--promo-brand);
	font-size: 14px;
	cursor: pointer;
}

.promo-filters__reset:hover {
	text-decoration: underline;
}

.promo-block__empty {
	padding: 40px 0;
	color: #8c8c8c;
	text-align: center;
}

/* --- Пагинация -------------------------------------------- */

.promo-pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 16px;
}

.promo-pagination__page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 8px;
	border: 1px solid #e2e4e9;
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
	cursor: pointer;
}

.promo-pagination__page.is-active {
	border-color: var(--promo-brand);
	background: var(--promo-brand);
	color: #fff;
	cursor: default;
}

.js-promo-block.is-loading .js-promo-products {
	opacity: .5;
	pointer-events: none;
	transition: opacity .15s;
}

@media (max-width: 767px) {
	.promo-block--pad {
		padding: 16px;
	}

	.promo-countdown__title {
		font-size: 18px;
	}

	.promo-countdown__timer.ui-discount__countdown {
		font-size: 22px;
	}

	.promo-filters__panel {
		min-width: 200px;
	}
}

/* --- Плитки-категории (нативная сетка products-categories) --- */

.promo-cats .promo-block__title {
	display: block;
	margin-bottom: 16px;
}

.promo-cats__count {
	display: block;
	margin-top: 4px;
	color: #8c8c8c;
	font-size: 12px;
	text-align: center;
}
