/*
 * Умысел 2026 — стили, которые нельзя выразить в theme.json.
 * Все значения — токены: --wp--preset--* и --wp--custom--* создаёт theme.json.
 */

:root {
	--umsl-pad: var(--wp--custom--layout--page-padding);
	--umsl-header-h: 56px;
	--umsl-admin-bar: 0px;
	--umsl-announce-h: 0px;
}

/* Всё закреплённое отсчитывает верх от панели администратора и полосы объявления. Считаем на body: класс admin-bar стоит на нём. */
body {
	--umsl-top: calc(var(--umsl-admin-bar) + var(--umsl-announce-h));
}

.umsl-has-announce {
	--umsl-announce-h: 40px;
}

.admin-bar {
	--umsl-admin-bar: 32px;
}

@media (max-width: 782px) {
	:root {
		--umsl-header-h: 48px;
	}

	.admin-bar {
		--umsl-admin-bar: 46px;
	}
}

/* ── Шапка: плавающая плашка поверх содержимого ─────────────────────────── */

/* ── Полоса объявления ───────────────────────────────────────────────────── */

.umsl-announce {
	position: fixed;
	top: var(--umsl-admin-bar);
	right: 0;
	left: 0;
	z-index: 100;
	display: none;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding: 0 48px;
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-has-announce .umsl-announce {
	display: flex;
}

.umsl-announce__text {
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.umsl-announce__close {
	position: absolute;
	top: 0;
	right: 0;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
}

.umsl-announce__close svg {
	fill: currentColor;
}

/* На телефоне объявление не должно обрезаться: текст мельче и ближе к краям. */
@media (max-width: 480px) {
	.umsl-announce {
		padding: 0 40px 0 var(--umsl-pad);
		font-size: var(--wp--preset--font-size--xs);
	}
}

.umsl-header {
	position: fixed;
	top: calc(var(--umsl-top) + var(--umsl-pad));
	left: var(--umsl-pad);
	right: var(--umsl-pad);
	z-index: 100;
	padding: 0 var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--bg-surface);
	border-radius: var(--wp--preset--border-radius--sm);
}

.umsl-header__bar {
	min-height: var(--umsl-header-h);
}

/* Три зоны равной ширины держат логотип по центру. */
.umsl-header__bar > .umsl-header__nav,
.umsl-header__bar > .umsl-header__actions {
	flex: 1 1 0;
}

.umsl-header__nav {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--10);
}

.umsl-header__toggle {
	border: 0;
	background: none;
	cursor: pointer;
}

.umsl-header__toggle[aria-expanded="true"] {
	background: var(--wp--preset--color--bg-panel);
}

/* У кнопки три подписи: «Каталог» на широком экране, «Меню» и «Закрыть» — на телефоне. */
.umsl-header__toggle-open,
.umsl-header__toggle-close {
	display: none;
}

/* Раскрытый каталог: плашка шапки вырастает вниз. */
.umsl-header__menu {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.umsl-header__series,
.umsl-header__extra {
	margin: 0;
	padding: 0;
	list-style: none;
}

.umsl-header__series a {
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--40) 0;
	border-bottom: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--border-default);
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--2-xl);
	font-weight: var(--wp--custom--font-weight--semibold);
	line-height: 1.1;
	text-decoration: none;
}

.umsl-header__count {
	padding: 2px var(--wp--preset--spacing--10);
	border-radius: var(--wp--preset--border-radius--xs);
	background: var(--wp--preset--color--bg-panel);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: var(--wp--custom--font-weight--medium);
	line-height: 1.3;
}

.umsl-header__all,
.umsl-header__extra a {
	display: flex;
	align-items: center;
	min-height: 40px;
	font-weight: var(--wp--custom--font-weight--regular);
	text-decoration: none;
}

.umsl-header__all {
	margin-top: var(--wp--preset--spacing--30);
}

.umsl-header__series a:hover span,
.umsl-header__all:hover,
.umsl-header__extra a:hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* Остальные ссылки меню на широком экране стоят в строке шапки. */
.umsl-header__extra {
	display: none;
}

@media (max-width: 782px) {
	.umsl-header__nav .umsl-header__link--wide,
	.umsl-header .wp-block-woocommerce-customer-account,
	.umsl-header__toggle-catalog {
		display: none;
	}

	.umsl-header__toggle[aria-expanded="false"] .umsl-header__toggle-open,
	.umsl-header__toggle[aria-expanded="true"] .umsl-header__toggle-close {
		display: inline;
	}

	.umsl-header__extra {
		display: block;
		margin-top: var(--wp--preset--spacing--30);
		padding-top: var(--wp--preset--spacing--30);
		border-top: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--border-default);
	}

	.umsl-header__extra a {
		font-size: var(--wp--preset--font-size--sm);
	}

	.umsl-header__series a {
		font-size: var(--wp--preset--font-size--xl);
	}

	/* Раскрытое меню не должно уходить за экран. */
	.umsl-header.is-open {
		max-height: calc(100dvh - var(--umsl-top) - var(--umsl-pad) * 2);
		overflow-y: auto;
	}
}

.umsl-header__actions {
	gap: var(--wp--preset--spacing--10);
}

/* Шапка оформления заказа: назад в магазин, логотип, пометка об оплате. */
.umsl-header--checkout {
	min-height: var(--umsl-header-h);
}

.umsl-header > .umsl-header__back,
.umsl-header > .umsl-header__note {
	flex: 1 1 0;
	margin: 0;
}

.umsl-header__back a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 var(--wp--preset--spacing--30);
	border-radius: var(--wp--preset--border-radius--sm);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
	text-decoration: none;
}

.umsl-header__back a:hover {
	background: var(--wp--preset--color--bg-muted);
}

.umsl-header__note {
	padding-right: var(--wp--preset--spacing--30);
}

/* Пункты меню выглядят как кнопки: подложка вместо подчёркивания. */
.umsl-nav .wp-block-navigation-item__content,
.umsl-header__link,
.umsl-header .wc-block-customer-account__link,
.umsl-header .wc-block-mini-cart__button {
	display: block;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border-radius: var(--wp--preset--border-radius--sm);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	/* Пункты меню — обычным начертанием: полужирное в шапке и подвале смотрелось тяжело. */
	font-weight: var(--wp--custom--font-weight--regular);
	line-height: 1.2;
	text-decoration: none;
	color: var(--wp--preset--color--text-primary);
}

.umsl-nav .wp-block-navigation-item__content:hover,
.umsl-header__link:hover,
.umsl-header .wc-block-customer-account__link:hover,
.umsl-header .wc-block-mini-cart__button:hover {
	background: var(--wp--preset--color--bg-muted);
	opacity: 1;
}

.umsl-nav .current-menu-item > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--bg-panel);
}

.umsl-nav .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--10);
}

/* Мини-корзина: вместо иконки — «Корзина (N)». Доступное имя кнопке даёт её aria-label. */
.umsl-header .wc-block-mini-cart__icon {
	display: none;
}

.umsl-header .wc-block-mini-cart__quantity-badge {
	display: inline;
}

.umsl-header .wc-block-mini-cart__quantity-badge::before {
	content: "Корзина ";
}

.umsl-header .wc-block-mini-cart__badge,
.umsl-header .wc-block-mini-cart__badge[hidden] {
	display: inline;
	position: static;
	margin: 0;
	min-width: 0;
	height: auto;
	padding: 0;
	border-radius: 0;
	/* Цвета счётчика WooCommerce задаёт скриптом прямо в атрибуте style. */
	background-color: transparent !important;
	color: inherit !important;
	font: inherit;
	transform: none;
}

.umsl-header .wc-block-mini-cart__badge::before {
	content: "(";
}

.umsl-header .wc-block-mini-cart__badge::after {
	content: ")";
}

/* ── Страница ────────────────────────────────────────────────────────────── */

/* Шапка вынута из потока — освобождаем под неё место. */
.umsl-main {
	margin-top: 0;
	padding-top: calc(var(--umsl-announce-h) + var(--umsl-header-h) + var(--umsl-pad) * 2 + var(--wp--preset--spacing--50));
}

/* Страницы с обложкой начинаются под шапкой. */
.umsl-main--flush {
	padding-top: 0;
}

.umsl-main > * + * {
	margin-block-start: var(--wp--custom--layout--section-gap);
}

.umsl-main.umsl-section > * + * {
	margin-block-start: var(--wp--preset--spacing--60);
}

.umsl-section {
	padding-left: var(--umsl-pad);
	padding-right: var(--umsl-pad);
}

.umsl-hero {
	min-height: min(860px, 100svh);
	padding: 0;
}

/* ── Блок серии ──────────────────────────────────────────────────────────── */

.umsl-series__head {
	gap: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--60);
}

.umsl-series__head > * {
	margin: 0;
}

.umsl-series__text {
	flex: 0 1 520px;
}

.umsl-link a {
	display: inline-block;
	margin-top: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-panel);
	font-weight: var(--wp--custom--font-weight--medium);
	text-decoration: none;
}

.umsl-link a:hover {
	background: var(--wp--preset--color--bg-media);
	color: var(--wp--preset--color--text-primary);
}

/* ── Сетка и карточка товара ─────────────────────────────────────────────── */

.umsl-products .wc-block-product-template {
	gap: var(--wp--preset--spacing--60) var(--wp--custom--layout--grid-gap);
	margin: 0;
	padding: 0;
}

.umsl-products .wc-block-product {
	margin: 0;
	text-align: left;
}

.umsl-products .wc-block-components-product-image {
	margin: 0 0 var(--wp--preset--spacing--30);
	overflow: hidden;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-media);
}

.umsl-products .wc-block-components-product-image img {
	transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
}

.umsl-products .wc-block-product:hover .wc-block-components-product-image img {
	transform: scale(1.04);
}

.umsl-products .wp-block-post-title {
	margin: 0 0 var(--wp--preset--spacing--10);
	line-height: 1.25;
}

.umsl-products .wp-block-post-title a {
	text-decoration: none;
}

.umsl-products .wc-block-components-product-price {
	margin: 0;
}

/* ── Избранное ───────────────────────────────────────────────────────────── */

.umsl-wish {
	position: relative;
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: var(--wp--preset--border-radius--full);
	background: var(--wp--preset--color--bg-surface);
	color: var(--wp--preset--color--icon-primary);
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.15s ease;
}

/* Область нажатия 48px при видимом круге 40px. */
.umsl-wish::before {
	content: "";
	position: absolute;
	inset: -4px;
}

.umsl-wish svg {
	display: block;
}

.umsl-wish[aria-pressed="true"] svg {
	fill: currentColor;
}

.umsl-wish:active {
	transform: scale(0.94);
}

.umsl-products .wc-block-components-product-image {
	position: relative;
}

.umsl-products .umsl-wish {
	position: absolute;
	top: var(--wp--preset--spacing--20);
	right: var(--wp--preset--spacing--20);
	z-index: 2;
}

/* На карточке сердечко появляется при наведении; отмеченное видно всегда. На сенсорных экранах — всегда. */
@media (hover: hover) {
	.umsl-products .umsl-wish {
		opacity: 0;
	}

	.umsl-products .wc-block-product:hover .umsl-wish,
	.umsl-products .umsl-wish:focus-visible,
	.umsl-products .umsl-wish[aria-pressed="true"] {
		opacity: 1;
	}
}

.umsl-wishlist__actions {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	margin: 0 0 var(--wp--preset--spacing--50);
}

.umsl-wishlist__share {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-muted);
	color: var(--wp--preset--color--text-primary);
	font: inherit;
	cursor: pointer;
}

.umsl-wishlist__status {
	color: var(--wp--preset--color--text-secondary);
}

.umsl-wishlist__empty {
	padding: var(--wp--preset--spacing--70) 0;
	color: var(--wp--preset--color--text-secondary);
}

.umsl-wishlist__empty[hidden] {
	display: none;
}

.umsl-wishlist__empty .wp-element-button {
	display: inline-block;
	text-decoration: none;
}

/* ── Страница товара ─────────────────────────────────────────────────────── */

.umsl-product .wc-block-breadcrumbs {
	margin: 0;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--text-secondary);
}

.umsl-product .wc-block-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

.umsl-product__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 440px;
	grid-template-areas:
		"photos panel"
		"details panel";
	gap: var(--wp--custom--layout--grid-gap);
	align-items: start;
}

.umsl-product__layout > * {
	margin: 0;
}

.umsl-product__photos {
	grid-area: photos;
	display: grid;
	gap: var(--wp--custom--layout--grid-gap);
}

.umsl-product__photo {
	margin: 0;
	overflow: hidden;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-media);
}

.umsl-product__photo img {
	display: block;
	width: 100%;
	height: auto;
}

/*
 * Панель покупки: закреплена, пока прокручиваются фотографии, и занимает всю высоту окна под шапкой.
 * Название и описание вверху, счётчик и кнопка — внизу.
 */
.umsl-buy-panel {
	--umsl-panel-top: calc(var(--umsl-top) + var(--umsl-header-h) + var(--umsl-pad) * 2);
	grid-area: panel;
	position: sticky;
	top: var(--umsl-panel-top);
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--50);
	min-height: calc(100svh - var(--umsl-panel-top) - var(--umsl-pad));
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-panel);
}

.umsl-buy-panel > * {
	margin: 0;
}

/* Всё, что относится к покупке, прижато к низу панели. */
.umsl-buy-panel > form.wc-block-add-to-cart-with-options,
.umsl-buy-panel > :has(form.wc-block-add-to-cart-with-options),
.umsl-buy-panel > .umsl-buy-panel__stock {
	margin-top: auto;
}

.umsl-buy-panel .wp-block-post-title {
	margin: 0;
	line-height: 1.2;
}

/* Заголовок и сердечко в одну строку. */
.umsl-buy-panel__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
}

/* Блок шорткода оборачивает кнопку в абзац — убираем его отступы. */
.umsl-buy-panel__head > * {
	margin: 0;
}

.umsl-buy-panel__text {
	color: var(--wp--preset--color--text-secondary);
}

.umsl-buy-panel__text > :last-child {
	margin-bottom: 0;
}

/*
 * Форма покупки — блок «Добавить в корзину с опциями» (parts/simple-product-add-to-cart-with-options.html).
 * Добавляет без перезагрузки страницы, после чего выезжает корзина.
 */
.umsl-buy-panel form.wc-block-add-to-cart-with-options {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--20);
	margin-bottom: 0;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options > * {
	margin: 0;
}

/* Счётчик количества: две широкие кнопки и число между ними, на всю ширину панели. */
.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-add-to-cart-with-options__quantity-selector div.wc-block-components-quantity-selector.quantity {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 72px minmax(0, 1fr);
	gap: var(--wp--preset--spacing--20);
	width: 100%;
	height: 48px;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

/* Подпись для экранного диктора не должна занимать ячейку сетки — иначе число уезжает к минусу. */
.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-quantity-selector > label {
	position: absolute;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--minus {
	grid-column: 1;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input {
	grid-column: 2;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--plus {
	grid-column: 3;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	width: 100%;
	min-width: 48px;
	height: 48px;
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-media);
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--lg);
	opacity: 1;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover:not(:disabled) {
	background: var(--wp--custom--color--gray-500);
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled {
	color: var(--wp--preset--color--text-tertiary);
	cursor: default;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-quantity-selector input[type="number"].input-text.qty.text {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	/* WooCommerce ограничивает поле шириной 3.6em — число прижималось к минусу. */
	max-width: none;
	height: 48px;
	padding: 0;
	border: 0;
	background: none;
	font-size: var(--wp--preset--font-size--md);
	font-weight: var(--wp--custom--font-weight--medium);
	color: var(--wp--preset--color--text-primary);
	text-align: center;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-product-button .wp-block-button__link {
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0 var(--wp--preset--spacing--50);
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--md);
	font-weight: var(--wp--custom--font-weight--medium);
	cursor: pointer;
}

.umsl-buy-panel form.wc-block-add-to-cart-with-options .wc-block-components-product-button .wp-block-button__link:hover {
	background: var(--wp--preset--color--bg-inverse-hover);
}

/* Абзацы описания: перенос строки в тексте товара становится отступом. */
.umsl-buy-panel__text p {
	margin: 0 0 var(--wp--preset--spacing--30);
}

/* Раскрывающиеся блоки под фотографиями. */
.umsl-product__details {
	grid-area: details;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-panel);
}

.umsl-accordion {
	padding: var(--wp--preset--spacing--40) 0;
	border-bottom: 1px solid var(--wp--preset--color--border-default);
}

.umsl-accordion:last-child {
	border-bottom: 0;
}

.umsl-accordion summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	font-weight: var(--wp--custom--font-weight--medium);
	cursor: pointer;
	list-style: none;
}

.umsl-accordion summary::-webkit-details-marker {
	display: none;
}

.umsl-accordion summary::after {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	margin-right: 4px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.15s ease-out;
}

.umsl-accordion[open] summary::after {
	transform: translateY(2px) rotate(-135deg);
}

.umsl-accordion__body {
	padding-top: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--text-secondary);
}

.umsl-accordion__body > :first-child {
	margin-top: 0;
}

.umsl-accordion__body > :last-child {
	margin-bottom: 0;
}

.umsl-related {
	margin-top: var(--wp--custom--layout--section-gap) !important;
}

.umsl-related > .wp-block-heading {
	margin: 0 0 var(--wp--preset--spacing--50);
}

/* Телефон и узкий планшет: фото слайдером, панель под ним, подробности в конце. */
@media (max-width: 900px) {
	.umsl-product__layout {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"photos"
			"panel"
			"details";
	}

	.umsl-buy-panel {
		position: static;
		min-height: 0;
		padding: var(--wp--preset--spacing--40);
	}

	.umsl-product__photos {
		display: flex;
		margin-inline: calc(var(--umsl-pad) * -1);
		gap: 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.umsl-product__photos::-webkit-scrollbar {
		display: none;
	}

	.umsl-product__photo {
		flex: 0 0 100%;
		border-radius: 0;
		scroll-snap-align: start;
	}

	.umsl-product__photo img {
		aspect-ratio: 4 / 5;
		object-fit: cover;
	}
}

/* ── Панель корзины (мини-корзина WooCommerce, шаблон parts/mini-cart.html) ─ */

.wc-block-components-drawer__screen-overlay {
	background-color: var(--wp--preset--color--bg-overlay);
}

/*
 * Закрытую панель WooCommerce только делает прозрачной — её кнопки и ссылки остаются в порядке обхода клавишей Tab.
 * Прячем по-настоящему, после того как панель уедет (0.3 с).
 */
.wc-block-components-drawer__screen-overlay--is-hidden {
	visibility: hidden;
	transition: opacity 0.3s, visibility 0s 0.3s;
}

.wc-block-mini-cart__drawer.wc-block-components-drawer {
	width: min(440px, 100vw);
	max-width: 100vw;
	background: var(--wp--preset--color--bg-page);
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--md);
}

/* WooCommerce прячет элементы атрибутом hidden — наши display не должны его перебивать. */
.wc-block-mini-cart__drawer [hidden] {
	display: none !important;
}

.wc-block-mini-cart__drawer .wp-block-woocommerce-mini-cart-contents {
	background: none;
}

/* Пустой блок уведомлений не должен сдвигать заголовок. */
.wc-block-mini-cart__drawer .wp-block-woocommerce-mini-cart-contents .wc-block-components-notices:not(:has(*)) {
	margin: 0;
}

.wc-block-mini-cart__drawer.wc-block-components-drawer .wc-block-components-drawer__close-wrapper .wc-block-components-button.wc-block-components-drawer__close {
	position: absolute;
	top: var(--wp--preset--spacing--30);
	right: var(--wp--preset--spacing--30);
	width: 48px;
	margin: 0;
	height: 48px;
	padding: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	background: none;
	color: var(--wp--preset--color--icon-primary);
	opacity: 1;
}

.wc-block-mini-cart__drawer .wc-block-components-drawer__close:hover {
	background: var(--wp--preset--color--bg-muted);
}

.wc-block-mini-cart__drawer h2.wc-block-mini-cart__title,
.umsl-cart__title {
	margin: 0;
	padding: var(--wp--preset--spacing--50);
	border: 0;
	background: none;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--md);
	font-weight: var(--wp--custom--font-weight--medium);
	line-height: 1.5;
	mask-image: none;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__items {
	padding: 0 var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
}

.umsl-cart__note {
	margin: 0 0 var(--wp--preset--spacing--50);
	color: var(--wp--preset--color--text-secondary);
	text-align: center;
}

/*
 * Товар — плитка: фотография во всю плитку, название и цена поверх, управление внизу.
 * Селекторы длинные намеренно: у WooCommerce для строки корзины они вида
 * «.is-mobile table.wc-block-cart-items .wc-block-cart-items__row …», короче их не перебить.
 */
.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items,
.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items tbody {
	display: block;
	margin: 0;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items thead {
	display: none;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items tr.wc-block-cart-items__row {
	position: relative;
	display: grid;
	grid-template: minmax(0, 1fr) / minmax(0, 1fr);
	aspect-ratio: 5 / 6;
	margin: 0 0 var(--wp--preset--spacing--20);
	padding: 0;
	overflow: hidden;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-media);
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items tr.wc-block-cart-items__row > td {
	grid-area: 1 / 1;
	margin: 0;
	padding: 0;
	border: 0;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__image {
	width: auto;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__image img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

/* Затемнение сверху и снизу держит контраст белого текста и кнопок на любой фотографии. */
.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, var(--wp--custom--color--ink-40) 0%, transparent 45%),
		linear-gradient(0deg, var(--wp--custom--color--ink-25) 0%, transparent 30%);
	pointer-events: none;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__product {
	position: relative;
	z-index: 1;
	display: flex;
	padding: var(--wp--preset--spacing--40);
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__wrap {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
	width: 100%;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__wrap .wc-block-components-product-name,
.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__wrap .wc-block-cart-item__prices,
.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__wrap .wc-block-components-product-price {
	max-width: none;
	margin: 0;
	color: var(--wp--preset--color--text-inverse);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: var(--wp--custom--font-weight--medium);
	line-height: 1.3;
	text-decoration: none;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__wrap .wc-block-components-product-metadata,
.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__total {
	display: none;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity {
	display: flex;
	align-items: stretch;
	gap: var(--wp--preset--spacing--20);
	align-self: stretch;
	width: 100%;
	margin: auto 0 0;
	padding: 0;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
	flex: none;
	order: -1;
	width: auto;
	height: 48px;
	margin: 0;
	padding: 0 var(--wp--preset--spacing--50);
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-muted);
	color: var(--wp--preset--color--text-primary);
	display: inline-flex;
	align-items: center;
	font: inherit;
	font-weight: var(--wp--custom--font-weight--medium);
	text-decoration: none;
	cursor: pointer;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link svg {
	display: none;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link::before {
	content: "Удалить";
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-components-quantity-selector {
	flex: 1;
	justify-content: center;
	width: auto;
	height: 48px;
	margin: 0;
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-surface);
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-components-quantity-selector::after {
	display: none;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	width: 48px;
	min-width: 48px;
	height: 48px;
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--lg);
	opacity: 1;
}

.wc-block-mini-cart__drawer.is-mobile table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	flex: 0 1 48px;
	min-width: 0;
	height: 48px;
	padding: 0;
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--md);
	font-weight: var(--wp--custom--font-weight--medium);
}

/* Низ панели — одна кнопка во всю ширину: слева действие, справа сумма. */
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer {
	position: relative;
	padding: 0;
	border: 0;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer::after {
	display: none;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-mini-cart__footer-subtotal {
	position: absolute;
	top: 0;
	right: var(--wp--preset--spacing--50);
	bottom: 0;
	left: auto;
	z-index: 1;
	display: flex;
	align-items: center;
	width: auto;
	margin: 0;
	color: var(--wp--preset--color--text-inverse);
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: var(--wp--custom--font-weight--semibold);
	pointer-events: none;
}

/* «Подытог» и пояснение остаются для экранных дикторов. */
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-components-totals-item__label,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-components-totals-item__description {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-mini-cart__footer-actions {
	display: block;
	margin: 0;
	padding: 0;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer a.wc-block-mini-cart__footer-checkout {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	min-height: 76px;
	margin: 0;
	padding: 0 var(--wp--preset--spacing--50);
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm) var(--wp--preset--border-radius--sm) 0 0;
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: var(--wp--custom--font-weight--semibold);
	text-decoration: none;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer a.wc-block-mini-cart__footer-checkout:hover {
	background: var(--wp--preset--color--bg-inverse-hover);
}

/* Пустая корзина. */
.wc-block-mini-cart__drawer .wc-block-mini-cart__empty-cart-wrapper {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 0 var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
	box-sizing: border-box;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__empty-cart-wrapper > * {
	margin: 0;
}

.wc-block-mini-cart__drawer .umsl-cart__title {
	padding-right: 0;
	padding-left: 0;
}

.wc-block-mini-cart__drawer .umsl-cart__empty {
	margin: auto 0;
	padding: var(--wp--preset--spacing--70) 0;
}

.umsl-cart__suggest > * + * {
	margin-top: var(--wp--preset--spacing--50);
}

/* Малая карточка в панели: название поверх фотографии, под ней кнопка. */
.umsl-products--compact .wc-block-product-template {
	gap: var(--wp--preset--spacing--30);
}

.umsl-products--compact .wc-block-product {
	position: relative;
}

.umsl-products--compact .wc-block-components-product-image {
	margin-bottom: var(--wp--preset--spacing--20);
}

.umsl-products--compact .wc-block-components-product-image a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, var(--wp--custom--color--ink-40) 0%, transparent 50%);
}

.umsl-products--compact .wp-block-post-title {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 1;
	margin: 0;
	padding: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--text-inverse);
	pointer-events: none;
}

.umsl-products--compact .wp-block-post-title a {
	color: inherit;
}

.umsl-products--compact .umsl-wish {
	display: none;
}

.umsl-products .wp-block-button,
.umsl-products .wc-block-components-product-button {
	margin: var(--wp--preset--spacing--30) 0 0;
}

/* Кнопка «В корзину» поверх фотографии: появляется при наведении и при переходе с клавиатуры. */
.umsl-products .wc-block-components-product-image .umsl-quick-add {
	position: absolute;
	right: var(--wp--preset--spacing--20);
	bottom: var(--wp--preset--spacing--20);
	left: var(--wp--preset--spacing--20);
	z-index: 2;
	margin: 0;
	transition: opacity 0.2s ease;
}

@media (hover: hover) {
	.umsl-products .umsl-quick-add {
		opacity: 0;
	}

	.umsl-products .wc-block-product:hover .umsl-quick-add,
	.umsl-products .umsl-quick-add:focus-within {
		opacity: 1;
	}
}

/* На сенсорном экране наведения нет: карточка ведёт на страницу товара, кнопка там. */
@media (hover: none) {
	.umsl-products .umsl-quick-add {
		display: none;
	}
}

.umsl-products--compact .wc-block-components-product-button {
	margin: 0;
}

.umsl-products .wc-block-components-product-button .wp-block-button__link {
	width: 100%;
	min-height: 40px;
	padding: 0 var(--wp--preset--spacing--30);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
	font-weight: var(--wp--custom--font-weight--medium);
}

/* Товара нет в наличии: пометка на фотографии в карточке и сообщение в панели покупки. */
.umsl-products .umsl-product-flag {
	position: absolute;
	left: var(--wp--preset--spacing--30);
	bottom: var(--wp--preset--spacing--30);
	z-index: 1;
	background: var(--wp--preset--color--bg-surface);
	color: var(--wp--preset--color--text-primary);
}

.umsl-buy-panel__stock {
	padding: var(--wp--preset--spacing--40);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-panel);
}

.umsl-buy-panel__stock p {
	margin: 0;
}

.umsl-buy-panel__stock-title {
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-buy-panel__stock-text {
	margin-top: var(--wp--preset--spacing--10);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
}

/* Пустая форма покупки (товара нет в наличии) места не занимает. */
.umsl-buy-panel form.wc-block-add-to-cart-with-options:not(:has(button, input:not([type="hidden"]))) {
	display: none;
}

/* ── Выезжающая панель (вход) и поля формы ──────────────────────────────── */

.umsl-panel {
	position: fixed;
	inset: 0 0 0 auto;
	display: flex;
	flex-direction: column;
	width: min(440px, 100vw);
	max-width: 100vw;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--wp--preset--color--bg-page);
	color: var(--wp--preset--color--text-primary);
	translate: 100% 0;
	transition: translate 0.3s cubic-bezier(0.23, 1, 0.32, 1), overlay 0.3s allow-discrete, display 0.3s allow-discrete;
}

.umsl-panel:not([open]) {
	display: none;
}

.umsl-panel[open] {
	translate: 0 0;
}

@starting-style {
	.umsl-panel[open] {
		translate: 100% 0;
	}
}

.umsl-panel::backdrop {
	background: var(--wp--preset--color--bg-overlay);
}

.umsl-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-panel__close {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	background: none;
	color: var(--wp--preset--color--icon-primary);
	cursor: pointer;
}

.umsl-panel__close:hover {
	background: var(--wp--preset--color--bg-muted);
}

.umsl-panel__close svg {
	fill: currentColor;
}

.umsl-panel__body {
	flex: 1;
	min-height: 0;
	padding: var(--wp--preset--spacing--50);
	overflow-y: auto;
}

.umsl-panel__body > * {
	margin: 0;
}

.umsl-panel__body > * + * {
	margin-top: var(--wp--preset--spacing--40);
}

/* Главное действие панели — кнопка во всю ширину внизу, как «Оформить заказ» в корзине. */
.umsl-panel__action {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 76px;
	padding: 0 var(--wp--preset--spacing--50);
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm) var(--wp--preset--border-radius--sm) 0 0;
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: var(--wp--custom--font-weight--semibold);
	text-align: left;
	cursor: pointer;
}

.umsl-panel__action:hover {
	background: var(--wp--preset--color--bg-inverse-hover);
}

.umsl-panel__action:disabled {
	opacity: 0.6;
	cursor: progress;
}

.umsl-auth__form {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	margin: 0;
}

.umsl-auth__form[hidden] {
	display: none;
}

.umsl-auth__title {
	padding-top: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--3-xl);
	line-height: 1.1;
}

.umsl-auth__tabs {
	display: flex;
	gap: var(--wp--preset--spacing--20);
}

.umsl-auth__tab {
	min-height: 40px;
	padding: 0 var(--wp--preset--spacing--40);
	border: 0;
	border-radius: var(--wp--preset--border-radius--full);
	background: var(--wp--preset--color--bg-muted);
	color: var(--wp--preset--color--text-primary);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
	cursor: pointer;
}

.umsl-auth__tab[aria-current="true"] {
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
}

.umsl-auth__link {
	min-height: 40px;
	padding: 0 var(--wp--preset--spacing--30);
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	background: none;
	color: var(--wp--preset--color--text-primary);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
	cursor: pointer;
}

.umsl-auth__link:hover {
	background: var(--wp--preset--color--bg-muted);
}

.umsl-auth__hint,
.umsl-auth__lead {
	color: var(--wp--preset--color--text-secondary);
}

.umsl-auth__hint {
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-auth__message:empty {
	display: none;
}

.umsl-auth__message {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-error);
	color: var(--wp--preset--color--text-error);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-auth__message.is-success {
	background: var(--wp--preset--color--bg-success);
	color: var(--wp--preset--color--text-success);
}

/* Поле формы: подпись сверху, поле с заливкой. */
.umsl-field__label {
	display: block;
	margin-bottom: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-field__input {
	box-sizing: border-box;
	width: 100%;
	height: 48px;
	padding: 0 var(--wp--preset--spacing--40);
	border: var(--wp--custom--border-width--thin) solid transparent;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-muted);
	color: var(--wp--preset--color--text-primary);
	font: inherit;
}

.umsl-field__input::placeholder {
	color: var(--wp--preset--color--text-tertiary);
}

.umsl-field__input:hover {
	border-color: var(--wp--preset--color--border-default);
}

.umsl-check {
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-check input {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--wp--preset--color--bg-inverse);
}

/* ── Кнопки, бейджи, плашки-фильтры ──────────────────────────────────────── */

.umsl-button,
.umsl-account__content .button,
.umsl-account__content .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 var(--wp--preset--spacing--40);
	border: var(--wp--custom--border-width--thin) solid transparent;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.umsl-button:hover,
.umsl-account__content .button:hover,
.umsl-account__content .wp-element-button:hover {
	background: var(--wp--preset--color--bg-inverse-hover);
	color: var(--wp--preset--color--text-inverse);
}

.umsl-button--secondary,
.umsl-button--secondary:hover {
	background: var(--wp--preset--color--bg-panel);
	color: var(--wp--preset--color--text-primary);
}

.umsl-button--outline,
.umsl-button--outline:hover {
	border-color: var(--wp--preset--color--border-strong);
	background: none;
	color: var(--wp--preset--color--text-primary);
}

.umsl-button--ghost,
.umsl-button--ghost:hover {
	background: none;
	color: var(--wp--preset--color--text-primary);
}

.umsl-button--secondary:hover,
.umsl-button--outline:hover,
.umsl-button--ghost:hover {
	background: var(--wp--preset--color--bg-muted);
}

.umsl-button--wide {
	width: 100%;
	min-height: 48px;
	font-size: var(--wp--preset--font-size--md);
}

.umsl-badge {
	display: inline-block;
	flex: none;
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
	border-radius: var(--wp--preset--border-radius--full);
	background: var(--wp--preset--color--bg-muted);
	color: var(--wp--preset--color--text-secondary);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: var(--wp--custom--font-weight--medium);
	line-height: 1.3;
	letter-spacing: 0;
	white-space: nowrap;
	vertical-align: middle;
}

.umsl-badge--active {
	background: var(--wp--preset--color--bg-info);
	color: var(--wp--preset--color--text-info);
}

.umsl-badge--success {
	background: var(--wp--preset--color--bg-success);
	color: var(--wp--preset--color--text-success);
}

.umsl-badge--pending {
	background: var(--wp--preset--color--bg-warning);
	color: var(--wp--preset--color--text-warning);
}

.umsl-badge--error {
	background: var(--wp--preset--color--bg-error);
	color: var(--wp--preset--color--text-error);
}

.umsl-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin: 0 0 var(--wp--preset--spacing--60);
	padding: 0;
	list-style: none;
}

.umsl-chip {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 var(--wp--preset--spacing--40);
	border-radius: var(--wp--preset--border-radius--full);
	background: var(--wp--preset--color--bg-panel);
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
	text-decoration: none;
}

.umsl-chip[aria-current="page"] {
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
}

/* ── Личный кабинет ──────────────────────────────────────────────────────── */

/* WooCommerce ограничивает свою обёртку 1000px — кабинету нужна вся ширина. */
.umsl-main .wp-block-post-content > .woocommerce {
	max-width: none;
}

.umsl-account {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: var(--wp--preset--spacing--70);
	align-items: start;
}

.umsl-account-nav__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.umsl-account-nav__link {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 var(--wp--preset--spacing--30);
	border-radius: var(--wp--preset--border-radius--sm);
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--regular);
	text-decoration: none;
}

.umsl-account-nav__link:hover,
.umsl-account-nav__link[aria-current="page"] {
	background: var(--wp--preset--color--bg-panel);
}

.umsl-account-nav__invite {
	display: block;
	margin: var(--wp--preset--spacing--50) 0;
	padding: var(--wp--preset--spacing--40);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-panel);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
	text-decoration: none;
}

.umsl-account-nav__invite strong {
	display: block;
	margin-bottom: var(--wp--preset--spacing--10);
	color: var(--wp--preset--color--text-primary);
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--md);
	font-weight: var(--wp--custom--font-weight--semibold);
}

.umsl-account__content > :first-child {
	margin-top: 0;
}

/* Пустой блок уведомлений WooCommerce не должен раздвигать заголовок и текст под ним. */
.umsl-account__content > .woocommerce-notices-wrapper:empty {
	display: none;
}

.umsl-account__title {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--4-xl);
	line-height: 1.05;
}

.umsl-account__title--order .umsl-badge {
	margin-left: var(--wp--preset--spacing--20);
}

.umsl-account__lead {
	margin: 0 0 var(--wp--preset--spacing--60);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--lg);
}

.umsl-account__back {
	margin: 0 0 var(--wp--preset--spacing--40);
}

.umsl-account__title + :not(.umsl-account__lead) {
	margin-top: var(--wp--preset--spacing--60);
}

.umsl-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: var(--wp--custom--layout--grid-gap);
	margin: 0 0 var(--wp--preset--spacing--60);
	padding: 0;
	list-style: none;
}

.umsl-stats__item {
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-surface);
}

.umsl-stats__item,
.umsl-stats__link {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
}

.umsl-stats__item:not(:has(.umsl-stats__link)),
.umsl-stats__link {
	padding: var(--wp--preset--spacing--50);
	color: inherit;
	text-decoration: none;
}

.umsl-stats__value {
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--3-xl);
	font-weight: var(--wp--custom--font-weight--semibold);
	line-height: 1;
}

.umsl-stats__label {
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-account__columns {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
	gap: var(--wp--custom--layout--grid-gap);
	align-items: start;
}

.umsl-order-card,
.umsl-account-cart,
.umsl-order__summary {
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-panel);
}

.umsl-order-card {
	margin: 0 0 var(--wp--custom--layout--grid-gap);
}

.umsl-order-card__caption {
	margin: 0 0 var(--wp--preset--spacing--50);
	color: var(--wp--preset--color--text-secondary);
}

.umsl-order-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
}

.umsl-order-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--xl);
}

.umsl-order-card__meta {
	margin: var(--wp--preset--spacing--10) 0 0;
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-order-card__actions {
	margin: var(--wp--preset--spacing--50) 0 0;
}

/* Трекер заказа: точки на линии; пройденная часть линии тёмная. */
.umsl-tracker {
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column;
	max-width: 760px;
	margin: var(--wp--preset--spacing--50) 0 0;
	padding: 0;
	list-style: none;
}

.umsl-tracker__step {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--text-primary);
	font-size: var(--wp--preset--font-size--xs);
	text-align: center;
}

.umsl-tracker__step::before {
	content: "";
	position: absolute;
	top: 9px;
	right: 50%;
	width: 100%;
	height: 2px;
	background: var(--wp--preset--color--text-primary);
}

.umsl-tracker__step:first-child::before {
	display: none;
}

.umsl-tracker__dot {
	position: relative;
	box-sizing: border-box;
	width: 20px;
	height: 20px;
	border: 2px solid var(--wp--preset--color--text-primary);
	border-radius: 50%;
	background: var(--wp--preset--color--text-primary);
}

.umsl-tracker__step.is-current {
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-tracker__step.is-current .umsl-tracker__dot {
	border-width: 6px;
	background: var(--wp--preset--color--bg-surface);
}

.umsl-tracker__step.is-upcoming {
	color: var(--wp--preset--color--text-secondary);
}

.umsl-tracker__step.is-upcoming::before {
	background: var(--wp--preset--color--border-strong);
}

.umsl-tracker__step.is-upcoming .umsl-tracker__dot {
	border-color: var(--wp--preset--color--border-strong);
	background: var(--wp--preset--color--bg-surface);
}

.umsl-order-rows,
.umsl-item-lines {
	margin: 0;
	padding: 0;
	list-style: none;
}

.umsl-order-row {
	border-bottom: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--border-default);
}

.umsl-order-row__link {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--40) 0;
	color: inherit;
	text-decoration: none;
}

.umsl-order-row__main {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
	min-width: 0;
}

.umsl-order-row__title,
.umsl-order-row__total {
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-order-row__meta {
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-order-row__total {
	min-width: 88px;
	text-align: right;
}

.umsl-order-row__arrow {
	flex: none;
	color: var(--wp--preset--color--icon-secondary);
}

.umsl-item-line {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--30) 0;
}

.umsl-item-line__image {
	position: relative;
	flex: none;
	width: 56px;
	height: 72px;
	border-radius: var(--wp--preset--border-radius--xs);
	background: var(--wp--preset--color--bg-media);
}

.umsl-item-line__image img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
}

.umsl-item-line__qty {
	position: absolute;
	top: -8px;
	right: -8px;
	display: grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 4px;
	box-sizing: border-box;
	border-radius: var(--wp--preset--border-radius--full);
	background: var(--wp--preset--color--bg-inverse);
	color: var(--wp--preset--color--text-inverse);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-item-line__name {
	flex: 1;
	min-width: 0;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-item-line__name a {
	color: inherit;
	text-decoration: none;
}

.umsl-item-line__total {
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
	white-space: nowrap;
}

.umsl-total,
.umsl-totals__row--total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: var(--wp--preset--spacing--40) 0;
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: var(--wp--custom--font-weight--semibold);
}

/* Страница заказа: шапка, оплата (если ждёт), ход заказа, затем чек слева и «доставка и оплата» справа. */
.umsl-order-head .umsl-account__title {
	font-size: var(--wp--preset--font-size--3-xl);
}

.umsl-order-head .umsl-account__lead {
	margin-bottom: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--md);
}

.umsl-order__card {
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--preset--border-radius--md);
	background: var(--wp--preset--color--bg-surface);
}

.umsl-order__card.umsl-order__summary {
	border-radius: var(--wp--preset--border-radius--md);
}

/* Заказ ждёт оплаты: что произойдёт и крупная кнопка. */
.umsl-order-pay {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--custom--layout--grid-gap);
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--preset--border-radius--md);
	background: var(--wp--preset--color--bg-warning);
}

.umsl-order-pay__text {
	flex: 1 1 320px;
}

.umsl-order-pay__title {
	margin: 0 0 var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--xl);
}

.umsl-order-pay__text p {
	max-width: 520px;
	margin: 0;
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-order-pay__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
}

.umsl-order-pay__actions .umsl-button--wide {
	width: auto;
	padding-inline: var(--wp--preset--spacing--60);
}

.umsl-order-progress {
	margin-bottom: var(--wp--custom--layout--grid-gap);
}

.umsl-order-progress .umsl-tracker {
	max-width: none;
	margin: 0;
}

.umsl-order {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr);
	gap: var(--wp--custom--layout--grid-gap);
	align-items: stretch;
}

.umsl-order__items .umsl-totals {
	margin-top: var(--wp--preset--spacing--40);
}

.umsl-facts__row + .umsl-facts__row {
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--40);
	border-top: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--border-default);
}

.umsl-facts__row dd {
	margin-bottom: 0;
}

.umsl-order__heading,
.umsl-tracking__title {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--xl);
}

.umsl-order__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin: var(--wp--preset--spacing--40) 0 0;
}

.umsl-facts,
.umsl-totals {
	margin: 0;
}

.umsl-facts dt {
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-facts dd {
	margin: var(--wp--preset--spacing--10) 0 var(--wp--preset--spacing--40);
}

.umsl-totals {
	padding-top: var(--wp--preset--spacing--40);
	border-top: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--border-default);
}

.umsl-totals__row {
	display: flex;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	margin: 0 0 var(--wp--preset--spacing--30);
}

.umsl-totals__row dt {
	color: var(--wp--preset--color--text-secondary);
}

.umsl-totals__row dd {
	margin: 0;
}

.umsl-totals__row--total {
	margin: var(--wp--preset--spacing--40) 0 0;
}

.umsl-totals__row--total dt {
	color: inherit;
}

/* Движение посылки. */
/* Движение посылки — такая же карточка на всю ширину, как ход заказа и состав. */
.umsl-tracking {
	margin: 0 0 var(--wp--custom--layout--grid-gap);
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--preset--border-radius--md);
	background: var(--wp--preset--color--bg-surface);
}

.umsl-tracking > * {
	margin: 0;
}

.umsl-tracking > * + * {
	margin-top: var(--wp--preset--spacing--30);
}

.umsl-tracking__carrier,
.umsl-tracking__updated,
.umsl-tracking__eta {
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-tracking__status {
	font-size: var(--wp--preset--font-size--lg);
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-tracking__pickup {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-success);
	color: var(--wp--preset--color--text-success);
}

.umsl-tracking__events {
	padding: 0;
	list-style: none;
}

.umsl-tracking__event {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0 var(--wp--preset--spacing--40);
	padding: 0 0 var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-tracking__event::before {
	content: "";
	position: absolute;
	top: 6px;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--border-strong);
}

.umsl-tracking__event:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 16px;
	bottom: 0;
	left: 3px;
	width: 2px;
	background: var(--wp--preset--color--border-default);
}

.umsl-tracking__event--current {
	color: var(--wp--preset--color--text-primary);
}

.umsl-tracking__event--current::before {
	background: var(--wp--preset--color--text-primary);
}

.umsl-tracking__event-title {
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-tracking__event-place {
	grid-column: 1;
}

.umsl-tracking__event-time {
	grid-row: 1;
	grid-column: 2;
	white-space: nowrap;
}

.umsl-empty {
	padding: var(--wp--preset--spacing--70) 0;
	color: var(--wp--preset--color--text-secondary);
}

.umsl-pager {
	display: flex;
	gap: var(--wp--preset--spacing--20);
	margin-top: var(--wp--preset--spacing--50);
}

/* Формы WooCommerce в кабинете (профиль, адрес) — в виде наших полей. */
.umsl-account__content .woocommerce-form-row,
.umsl-account__content .form-row {
	display: block;
	float: none;
	width: auto;
	max-width: 480px;
	margin: 0 0 var(--wp--preset--spacing--40);
	padding: 0;
}

.umsl-account__content .form-row label {
	display: block;
	margin-bottom: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
}

.umsl-account__content :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], select, textarea) {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border: var(--wp--custom--border-width--thin) solid transparent;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--bg-muted);
	color: var(--wp--preset--color--text-primary);
	font: inherit;
}

.umsl-account__content fieldset {
	margin: var(--wp--preset--spacing--60) 0 0;
	padding: 0;
	border: 0;
}

.umsl-account__content legend {
	margin-bottom: var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: var(--wp--custom--font-weight--semibold);
}

@media (max-width: 900px) {
	.umsl-account,
	.umsl-order {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--50);
	}

	/* На телефоне меню — лента с прокруткой над разделом. */
	.umsl-account-nav__list {
		display: flex;
		gap: var(--wp--preset--spacing--10);
		margin: 0 calc(var(--umsl-pad) * -1);
		padding: 0 var(--umsl-pad);
		overflow-x: auto;
		scrollbar-width: none;
	}

	.umsl-account-nav__link {
		min-height: 40px;
		white-space: nowrap;
	}

	.umsl-account-nav__invite,
	.umsl-account-nav__logout {
		display: none;
	}

	.umsl-order-row__link {
		flex-wrap: wrap;
	}

	.umsl-order-row__main {
		flex-basis: 100%;
	}

	.umsl-order-row__total {
		flex: 1;
	}
}

/* ── Подвал ──────────────────────────────────────────────────────────────── */

.umsl-footer {
	margin-top: var(--wp--custom--layout--section-gap);
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}

.umsl-footer a {
	text-decoration: none;
}

.umsl-logo--footer {
	font-size: var(--wp--preset--font-size--2-xl);
}

/* В подвале ссылки — простым списком, без подложек-кнопок. */
.umsl-nav--footer .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--30);
}

.umsl-nav--footer .wp-block-navigation-item__content {
	padding: 0;
	border-radius: 0;
}

.umsl-nav--footer .wp-block-navigation-item__content:hover {
	background: none;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.umsl-footer__columns .wp-block-column > * + * {
	margin-top: var(--wp--preset--spacing--30);
}

/* ── Уведомление о cookie ────────────────────────────────────────────────── */

.umsl-cookie {
	position: fixed;
	left: var(--umsl-pad);
	bottom: var(--umsl-pad);
	z-index: 90;
	box-sizing: border-box;
	width: min(480px, calc(100vw - var(--umsl-pad) * 2));
	max-height: calc(100svh - var(--umsl-pad) * 2);
	overflow-y: auto;
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--preset--border-radius--md);
	background: var(--wp--preset--color--bg-surface);
	box-shadow: var(--wp--preset--shadow--lg);
}

.umsl-cookie[hidden] {
	display: none;
}

.umsl-cookie__text {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--sm);
}

.umsl-cookie__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

.umsl-cookie [hidden] {
	display: none;
}

.umsl-cookie__title {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--brand);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 600;
}

.umsl-cookie__groups {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	margin: 0 0 var(--wp--preset--spacing--50);
	padding: 0;
	list-style: none;
}

/* Переключатель: флажок спрятан, рисуем дорожку и бегунок. */
.umsl-cookie__switch {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: var(--wp--custom--font-weight--medium);
	cursor: pointer;
}

.umsl-cookie__switch input {
	position: absolute;
	width: 44px;
	height: 24px;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.umsl-cookie__track {
	position: relative;
	flex: none;
	width: 44px;
	height: 24px;
	border-radius: var(--wp--preset--border-radius--full);
	background: var(--wp--preset--color--border-strong);
	transition: background 0.15s ease-out;
}

.umsl-cookie__track::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 2px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--wp--preset--color--bg-surface);
	transition: transform 0.15s ease-out;
}

.umsl-cookie__switch input:checked + .umsl-cookie__track {
	background: var(--wp--preset--color--bg-inverse);
}

.umsl-cookie__switch input:checked + .umsl-cookie__track::after {
	transform: translateX(20px);
}

.umsl-cookie__switch input:disabled,
.umsl-cookie__switch:has(input:disabled) {
	cursor: default;
}

.umsl-cookie__switch input:disabled + .umsl-cookie__track {
	opacity: 0.45;
}

.umsl-cookie__switch input:focus-visible + .umsl-cookie__track {
	outline: 2px solid var(--wp--preset--color--border-focus);
	outline-offset: 2px;
}

.umsl-cookie__hint {
	margin: var(--wp--preset--spacing--10) 0 0 calc(44px + var(--wp--preset--spacing--30));
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.4;
}

/* ── Движение ────────────────────────────────────────────────────────────── */

:root {
	--umsl-ease: cubic-bezier(0.23, 1, 0.32, 1);
}

/* Переход между страницами: плавная смена содержимого, шапка стоит на месте. */
@view-transition {
	navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: 0.28s;
}

.umsl-header {
	view-transition-name: umsl-header;
}

/* Наведение и нажатие: цвет и рамка меняются плавно. */
:is(.umsl-button, .wp-block-button__link, .wp-element-button, .umsl-chip, .umsl-header__link, .umsl-link a, .umsl-info-nav__link,
.umsl-pagination a, .umsl-shipping__label, .yd-slot, .umsl-coupon__preset, .umsl-wish, .umsl-accordion summary,
.wc-block-components-quantity-selector__button, .umsl-footer a, .umsl-crumbs a) {
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.15s ease;
}

:is(.umsl-button, .wp-block-button__link, .wp-element-button, .umsl-chip, .wc-block-components-quantity-selector__button):active {
	transform: scale(0.98);
}

:is(input, textarea, select) {
	transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

/* Появление блоков при прокрутке (inc/motion.php). Без скрипта и при «уменьшить движение» класса umsl-motion нет. */
.umsl-motion:not(.umsl-motion-done) main :is(.umsl-products .wc-block-product, .umsl-series__head, .umsl-manifest > *, .umsl-series-head,
.umsl-series-head__cover, .umsl-series-more__item, .umsl-product__photo:not(:first-child), .umsl-product__details,
.umsl-related > .wp-block-heading, .umsl-404 > *, .umsl-text__body > *, .umsl-catalog-empty):not(.is-in) {
	opacity: 0;
	transform: translateY(20px);
}

.umsl-motion main :is(.umsl-products .wc-block-product, .umsl-series__head, .umsl-manifest > *, .umsl-series-head,
.umsl-series-head__cover, .umsl-series-more__item, .umsl-product__photo:not(:first-child), .umsl-product__details,
.umsl-related > .wp-block-heading, .umsl-404 > *, .umsl-text__body > *, .umsl-catalog-empty) {
	transition: opacity 0.7s var(--umsl-ease) var(--umsl-delay, 0ms), transform 0.7s var(--umsl-ease) var(--umsl-delay, 0ms);
}

@keyframes umsl-rise {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
}

@keyframes umsl-fade {
	from {
		opacity: 0;
	}
}

/* Раскрытый каталог в шапке, уведомление о cookie, окна и появляющиеся блоки оформления. */
.umsl-header__menu:not([hidden]),
.umsl-cookie:not([hidden]),
.umsl-cookie__settings:not([hidden]),
.umsl-cookie__intro:not([hidden]),
.yd-extra,
.umsl-pickup,
.umsl-coupon__message:not(:empty),
.umsl-accordion[open] > .umsl-accordion__body,
.tab-pane.is-active {
	animation: umsl-rise 0.35s var(--umsl-ease) both;
}

dialog.umsl-points[open],
.yd-modal:not([hidden]) .yd-modal__dialog {
	animation: umsl-rise 0.3s var(--umsl-ease) both;
}

dialog.umsl-points[open]::backdrop,
.yd-modal:not([hidden]) .yd-modal__backdrop {
	animation: umsl-fade 0.3s ease both;
}

/* Фотография товара проявляется после загрузки, а не выскакивает. */
.umsl-product__photo img,
.umsl-series-head__cover-image {
	animation: umsl-fade 0.6s ease both;
}

/* ── Доступность ─────────────────────────────────────────────────────────── */

:where(a, button, input, select, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--border-focus);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
