/*
 * Прелоадеры «ВСПЫШКА» — общие стили.
 * Индикатор загрузки «Показать ещё» (пагинация, AJAX-подгрузка):
 * буква «В» с раздельным переливом по граням (дизайн варианта 3).
 * Используется везде, где есть кнопка .more_text_ajax.
 */

/* Скрыт по умолчанию, показывается только во время загрузки. */
.more_text_ajax .afp-more{ display:none; }

/* На время загрузки прячем штатную стрелку-иконку и показываем букву. */
.more_text_ajax.loading .svg{ display:none !important; }
.more_text_ajax.loading{ padding-left:40px; }
.more_text_ajax.loading .afp-more{
	display:block;
	position:absolute;
	left:2px;
	top:50%;
	width:30px;
	height:30px;
	transform:translateY(-50%);
}

/* Часть знака: своя маска + свой слой заливки (перелив). */
.afp-more__part{
	position:absolute;
	inset:0;
	overflow:hidden;
	transform:translateZ(0);
}
.afp-more__part--b{
	-webkit-mask:url("../preloader-letter-b.svg") no-repeat center / contain;
	        mask:url("../preloader-letter-b.svg") no-repeat center / contain;
}
.afp-more__part--right{
	-webkit-mask:url("../preloader-square-right.svg") no-repeat center / contain;
	        mask:url("../preloader-square-right.svg") no-repeat center / contain;
}
.afp-more__part--top{
	-webkit-mask:url("../preloader-square-top.svg") no-repeat center / contain;
	        mask:url("../preloader-square-top.svg") no-repeat center / contain;
}

.afp-more__part::before{
	content:"";
	position:absolute;
	will-change:transform;
}

/* Буква «В» (плоская грань): прямой вертикальный перелив. */
.afp-more__part--b::before{
	left:0;
	right:0;
	top:-30px;
	height:60px;
	background:repeating-linear-gradient(
		to bottom,
		#dc2144 0px, #dc2144 13px,
		#23447c 15px, #23447c 28px,
		#dc2144 30px
	);
	animation:afpMoreV 1.4s linear infinite;
}
/* Флажки — наклонные грани: полосы под углом рёбер («/», 135deg). */
.afp-more__part--top::before,
.afp-more__part--right::before{
	left:-40px;
	top:-40px;
	width:calc(100% + 80px);
	height:calc(100% + 80px);
	background:repeating-linear-gradient(
		135deg,
		#dc2144 0px, #dc2144 13px,
		#23447c 15px, #23447c 28px,
		#dc2144 30px
	);
}
/* Верхний флажок — перелив поперёк грани. */
.afp-more__part--top::before{ animation:afpMoreDX 1.4s linear infinite; }
/* Правый флажок — перелив вдоль грани. */
.afp-more__part--right::before{ animation:afpMoreDY 1.4s linear infinite; }

@keyframes afpMoreV{
	from{ transform:translateY(0); }
	to{ transform:translateY(30px); }
}
/* Период по оси при полосах под 45° = 30 / cos45° ≈ 42.43px (бесшовно). */
@keyframes afpMoreDX{
	from{ transform:translateX(0); }
	to{ transform:translateX(42.43px); }
}
@keyframes afpMoreDY{
	from{ transform:translateY(0); }
	to{ transform:translateY(42.43px); }
}
@media (prefers-reduced-motion: reduce){
	.afp-more__part::before{ animation:none; }
}

/*
 * Подсветка цены при выборе варианта ТП в карточке товара.
 * Кратко «переливаем» цену фирменными цветами + лёгкий пульс,
 * чтобы было заметно, что цена изменилась.
 */
.catalog-detail__price{
	position:relative;
	transition:opacity .18s ease, filter .18s ease;
}
.catalog-detail__price::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:-6px;
	height:2px;
	border-radius:2px;
	opacity:0;
	transform:scaleX(.12);
	transform-origin:left center;
	background:linear-gradient(90deg, #dc2144 0%, #23447c 50%, #dc2144 100%);
	background-size:200% 100%;
	pointer-events:none;
}
.catalog-detail__price.afp-tp-pending{
	opacity:.58;
	filter:blur(.35px);
}
.catalog-detail__price.afp-tp-pending::after{
	opacity:1;
	animation:afpPriceLine .7s ease-in-out infinite;
}
.catalog-detail__price.afp-tp-updated{
	animation:afpPriceReveal .38s ease-out;
}
@keyframes afpPriceLine{
	0%{ transform:scaleX(.12); background-position:100% 0; }
	55%{ transform:scaleX(1); }
	100%{ transform:scaleX(.12); transform-origin:right center; background-position:-100% 0; }
}
@keyframes afpPriceReveal{
	0%{ opacity:.55; }
	100%{ opacity:1; }
}
@media (prefers-reduced-motion: reduce){
	.catalog-detail__price,
	.catalog-detail__price::after{
		animation:none !important;
		transition:none;
	}
}
