/* ParfumMarket - дизайн-слой витрины. Светлая тема в стиле Крайт. */

/* Гасим родные шапку/подвал Kadence - используем кастомные Крайт-аналоги. */
#masthead, .site-header-wrap, .site-header,
#colophon, .site-footer-wrap, .site-footer { display: none !important; }
.pm-sitefooter { background: var(--pm-surface); border-top: 1px solid var(--pm-border); }

/* ---------- База ---------- */
body, .site {
	background: var(--pm-bg);
	color: var(--pm-text);
	font-family: var(--pm-font-body);
	font-size: var(--pm-fs-body);
	line-height: var(--pm-lh-body);
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .entry-title, .product_title,
.woocommerce-loop-product__title {
	font-family: var(--pm-font-head);
	color: var(--pm-text);
	font-weight: 700;
	letter-spacing: 0;
	line-height: var(--pm-lh-tight);
}
a { color: var(--pm-text); text-decoration: none; }
a:hover { color: var(--pm-pink); }
::selection { background: var(--pm-pink-soft); color: var(--pm-on-pink); }

/* Skip-link: первый в tab-порядке (layout-krayt → wp_body_open). */
.pm-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000002;
	padding: 10px var(--pm-space-4);
	background: var(--pm-color-panel-ink);
	color: var(--pm-on-pink);
	font-weight: 600;
	font-size: var(--pm-fs-md);
	border-radius: 8px;
	text-decoration: none;
}
.pm-skip:focus {
	left: var(--pm-space-3);
	top: var(--pm-space-3);
	color: var(--pm-on-pink);
	outline: 2px solid var(--pm-pink);
	outline-offset: 2px;
}

.pm-container { max-width: var(--pm-maxw); margin: 0 auto; padding: 0 var(--pm-container-pad); }
@media (max-width: 640px) {
	.pm-container { padding-inline: var(--pm-container-pad-sm); }
}

/* ---------- Кастомная шапка Крайт ---------- */
.pm-header { background: var(--pm-surface); border-bottom: 1px solid var(--pm-border); }
.pm-topbar {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--pm-space-5);
	max-width: var(--pm-maxw);
	margin: 0 auto;
	padding: var(--pm-space-4) var(--pm-space-5);
}
.pm-topbar__phone { font-weight: 600; font-size: var(--pm-fs-body-plus); color: var(--pm-text); }
.pm-topbar__phone small { display: block; font-weight: 400; font-size: var(--pm-fs-xs); color: var(--pm-text-faint); }
.pm-logo { text-align: center; line-height: 1; }
.pm-logo--img {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: min(220px, 42vw);
}
.pm-logo__img {
	display: block;
	width: auto;
	height: 52px;
	max-width: 100%;
	object-fit: contain;
}
.pm-logo--footer { text-align: left; max-width: 200px; }
.pm-logo--footer .pm-logo__img { height: 64px; }
.pm-logo__crown { color: var(--pm-pink-soft); font-size: 22px; }
.pm-logo__name {
	display: block;
	font-family: var(--pm-font-head);
	font-weight: 700;
	font-size: 26px;
	letter-spacing: .28em;
	color: var(--pm-pink);
	padding-left: .28em;
}
.pm-logo__tag { display: block; font-size: 9px; letter-spacing: .22em; color: var(--pm-text-faint); text-transform: uppercase; margin-top: 3px; }
.pm-topbar__actions { display: flex; gap: var(--pm-space-6); justify-content: flex-end; align-items: center; }
.pm-act { display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: var(--pm-fs-xs); color: var(--pm-text-faint); cursor: pointer; }
.pm-act:hover { color: var(--pm-pink); }
.pm-act svg { width: 22px; height: 22px; stroke: currentColor; fill: none; }

/* ---------- Слим-шапка: одна строка ---------- */
.pm-bar { display: flex; align-items: center; gap: 18px; max-width: var(--pm-maxw); margin: 0 auto; padding: 14px var(--pm-space-5); position: relative; }
.pm-bar .pm-logo { flex: none; }
/* Горизонтальный локап 572x200: при height 40 занимает ~114px и слово читается. */
.pm-bar .pm-logo__img { height: 40px; }
.pm-nav { margin: 0 auto; }
.pm-nav__inner { display: flex; align-items: center; gap: 15px; }
.pm-nav__inner > a, .pm-nav__item > a, .pm-more__btn {
	display: inline-flex; align-items: center; gap: 6px;
	font-weight: 500; font-size: var(--pm-fs-sm-plus); letter-spacing: .05em; text-transform: uppercase;
	white-space: nowrap; color: var(--pm-text); text-decoration: none;
	background: none; border: none; cursor: pointer; font-family: var(--pm-font-body);
	padding: var(--pm-space-2) 0; transition: color .15s;
}
.pm-nav__inner > a:hover, .pm-nav__item > a:hover, .pm-more__btn:hover { color: var(--pm-pink); }
.pm-nav__item { position: static; display: inline-flex; align-items: center; }
.pm-nav__item.has-mega > a::after, .pm-more__btn::after {
	content: ''; width: 5px; height: 5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-1px); opacity: .5;
}
/* Специфичность (0,2,0): должна побеждать `.pm-nav__inner > a` и `.pm-search`. */
.pm-nav__inner > .pm-nav__drawer-only { display: none; }

/* Гамбургер (десктоп: скрыт) */
.pm-burger { display: none; flex-direction: column; justify-content: center; gap: var(--pm-space-1); width: 42px; height: 42px; padding: 9px; background: none; border: none; cursor: pointer; flex: none; }
.pm-burger span { display: block; height: 2px; border-radius: 2px; background: var(--pm-text); transition: transform .25s, opacity .2s; }
.pm-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.pm-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.pm-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.pm-nav__head { display: none; }
.pm-nav__ov { display: none; }

/* Мегаменю - богатая панель под строкой */
.pm-mega {
	position: absolute; left: 50%; top: calc(100% + var(--pm-space-1)); width: min(880px, 94vw);
	background: var(--pm-surface); border: 1px solid var(--pm-border);
	border-radius: var(--pm-radius-xl);
	box-shadow: var(--pm-shadow-lg);
	opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(-8px);
	transition: opacity var(--pm-dur-mid) var(--pm-ease-out),
		transform var(--pm-dur-mid) var(--pm-ease-out),
		visibility var(--pm-dur-mid);
	z-index: 1000;
}
/* focus-within: без него мега открывается только мышью и недостижима с клавиатуры. */
.pm-nav__item:hover .pm-mega, .pm-mega:hover, .pm-nav__item:focus-within .pm-mega {
	opacity: 1; visibility: visible; transform: translateX(-50%);
}
.pm-mega__in { padding: 26px 28px 28px; display: grid; grid-template-columns: 1.2fr 1.2fr 1.1fr; gap: 30px; }
.pm-mega__in--brands { grid-template-columns: 2fr 1.1fr; }
.pm-mega__col h5 { font-size: var(--pm-fs-xs); letter-spacing: .16em; text-transform: uppercase; color: var(--pm-pink); margin: 0 0 var(--pm-space-3); font-weight: 700; }
.pm-mega__col a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-family: var(--pm-font-display);
	font-size: var(--pm-fs-xl);
	line-height: var(--pm-lh-snug);
	color: var(--pm-text);
	text-decoration: none;
	padding: 5px 0;
}
.pm-mega__col a:hover { color: var(--pm-pink); }
.pm-mega__cols2 { columns: 2; column-gap: 28px; }
.pm-mega__cols2 a { break-inside: avoid; }
/* «Все бренды» - не ещё один бренд в списке, а отдельный призыв. */
.pm-mega__all {
	display: inline-block; margin-top: 14px; font-family: var(--pm-font-body); font-size: var(--pm-fs-sm-plus);
	font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--pm-pink); text-decoration: none;
}
.pm-mega__all:hover { color: var(--pm-pink-deep); }
.pm-mega__feat { display: flex; flex-direction: column; gap: var(--pm-space-1); justify-content: flex-end; min-height: 180px; padding: var(--pm-space-5); border-radius: 14px; background: var(--pm-pink-wash); text-decoration: none; }
.pm-mega__feat-k { font-size: var(--pm-fs-xs); letter-spacing: .16em; text-transform: uppercase; color: var(--pm-pink-deep); font-weight: 700; }
.pm-mega__feat-t {
	font-family: var(--pm-font-display);
	font-size: var(--pm-fs-2xl);
	line-height: var(--pm-lh-tight);
	color: var(--pm-text);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}
.pm-mega__feat-d { font-size: var(--pm-fs-md); color: var(--pm-text-muted); margin-bottom: var(--pm-space-2); }
.pm-mega__feat-b { align-self: flex-start; background: var(--pm-pink); color: var(--pm-on-pink); border-radius: var(--pm-radius-pill); padding: var(--pm-space-2) var(--pm-space-4); font-size: var(--pm-fs-sm-plus); }

/* Kadence (global.min.css) красит любые <button> в :hover/:focus/:active - селектор
   `button:focus` (0,1,1) бьёт наши классы (0,1,0), и кнопки шапки заливались розовым.
   Гасим точечно: `.pm-header button:hover` = (0,2,1) выигрывает. */
.pm-header button:hover, .pm-header button:focus, .pm-header button:active {
	background: none; box-shadow: none; border-radius: 0;
}
.pm-more__btn, .pm-more__btn:hover, .pm-more__btn:focus, .pm-more__btn:active {
	background: none; border: none; border-radius: 0; box-shadow: none; padding: var(--pm-space-2) 0;
}
.pm-more__btn:hover, .pm-more__btn:focus { color: var(--pm-pink); }

/* Поповер «Ещё» */
.pm-more { position: relative; }
.pm-more__pop {
	position: absolute; top: calc(100% + 10px); right: 0; background: var(--pm-surface); border: 1px solid var(--pm-border);
	border-radius: var(--pm-radius-md); box-shadow: var(--pm-shadow-lg); padding: var(--pm-space-2); min-width: 190px;
	opacity: 0; visibility: hidden; transform: translateY(-6px);
	transition: opacity var(--pm-dur-mid) var(--pm-ease-out), transform var(--pm-dur-mid) var(--pm-ease-out), visibility var(--pm-dur-mid);
	z-index: 1000;
}
.pm-more.is-open .pm-more__pop { opacity: 1; visibility: visible; transform: none; }
.pm-more__pop a { display: block; padding: 9px 14px; font-size: var(--pm-fs-md); text-transform: none; letter-spacing: 0; color: var(--pm-text); text-decoration: none; border-radius: 8px; }
.pm-more__pop a:hover { background: var(--pm-pink-wash); color: var(--pm-pink-deep); }

/* Правая группа: поиск + Подбор + иконки */
.pm-bar__right { display: flex; align-items: center; gap: var(--pm-space-4); flex: none; }
.pm-bar__actions { display: flex; align-items: center; gap: 14px; }
.pm-bar__actions .pm-act { flex-direction: row; gap: 0; font-size: 0; }
.pm-nav__cta.pm-bar__cta {
	background: var(--pm-pink); color: var(--pm-on-pink); border-radius: var(--pm-radius-pill); padding: 10px 18px; font-size: var(--pm-fs-sm);
	text-transform: uppercase; letter-spacing: .05em; text-decoration: none; white-space: nowrap; font-weight: 600;
}
.pm-nav__cta.pm-bar__cta::before { content: '✦'; margin-right: 5px; font-size: var(--pm-fs-2xs); }
.pm-nav__cta.pm-bar__cta:hover { background: var(--pm-pink-deep); }

/* Поиск в строке */
.pm-search--bar { flex: none; }
.pm-search { display: flex; align-items: center; position: relative; }
.pm-search__input {
	width: 190px; max-width: 100%; padding: 9px 38px 9px 14px; border: 1px solid var(--pm-border);
	border-radius: var(--pm-radius-pill); background: var(--pm-bg-2); font-family: var(--pm-font-body);
	font-size: var(--pm-fs-md); color: var(--pm-text); transition: border-color .15s, background .15s;
}
.pm-search__input:focus { outline: none; border-color: var(--pm-pink); background: var(--pm-surface); }
.pm-search__input::placeholder { color: var(--pm-text-faint); }
.pm-search__btn {
	position: absolute; right: 5px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px;
	display: inline-flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--pm-text-faint); padding: 0;
}
.pm-search__btn:hover { color: var(--pm-pink); }
.pm-search__btn svg { width: 17px; height: 17px; stroke: currentColor; fill: none; }

/* липкая шапка */
.pm-header.is-stuck { position: sticky; top: 0; z-index: 999; box-shadow: var(--pm-shadow-soft); }

/* ---------- Energy: промобар ---------- */
.pm-announce {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: 10px var(--pm-space-4);
	padding: 9px var(--pm-space-5);
	background: var(--pm-cta-ink);
	color: var(--pm-on-ink);
	font-size: var(--pm-fs-sm);
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
	line-height: 1.3;
	overflow: hidden;
}
.pm-announce__sep { opacity: .45; font-weight: 400; }
.pm-announce__item:first-child { color: var(--pm-pink-soft); }
a.pm-announce__item--link {
	color: var(--pm-pink-soft);
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--pm-pink-soft) 45%, transparent);
	cursor: pointer;
}
a.pm-announce__item--link:hover { color: var(--pm-on-pink); border-bottom-color: var(--pm-on-pink); }
@media (max-width: 640px) {
	.pm-announce { font-size: var(--pm-fs-xs); gap: var(--pm-space-2) var(--pm-space-3); padding: var(--pm-space-2) 14px; }
	.pm-announce__item:last-child,
	.pm-announce__sep:last-of-type { display: none; }
}
/* Телефон: два промо-пункта (распив + акции), «бесплатно по Москве» прячем. */
@media (max-width: 560px) {
	.pm-announce__item:last-child,
	.pm-announce__sep:last-of-type { display: none; }
}
/* Планшет: та же грабля, просто брейкпоинт не был покрыт. Три пункта занимают 483px при
   штатном шрифте и уже не влезают в 768, если браузер поднимает текст до 16px, - полоса
   становится двухэтажной. Оставляем два пункта и запрещаем перенос внутри пункта. */
@media (min-width: 561px) and (max-width: 1024px) {
	.pm-announce__item { white-space: nowrap; }
	.pm-announce__item:last-child { display: none; }
	/* Второй разделитель, а не «:last-of-type»: пункты и разделители это одинаковые span,
	   и last-of-type попадал в пункт, оставляя точку висеть в конце строки без пары. */
	.pm-announce__sep ~ .pm-announce__sep { display: none; }
}

/* ---------- Зона нажатия на сенсорных экранах ----------
   Пальцем промахиваются по всему, что мельче 44px, а у нас иконки шапки 22x22, крестик
   дровера 26x30, кнопка поиска 30x30. Увеличивать сами иконки нельзя - поедет вся шапка,
   поэтому расширяем НЕВИДИМУЮ зону псевдоэлементом: внешний вид не меняется, палец попадает.
   Только для pointer:coarse - на мыши это лишнее и мешало бы наведению. */
@media (pointer: coarse) {
	.pm-act,
	.pm-nav__close,
	.pm-search__btn,
	.pm-filters__reset,
	.pm-footer-mini__a,
	.pm-logo,
	.pm-announce__item { position: relative; }

	.pm-act::after,
	.pm-nav__close::after,
	.pm-search__btn::after,
	.pm-filters__reset::after,
	.pm-footer-mini__a::after,
	.pm-logo::after,
	.pm-announce__item::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: max(100%, 44px);
		height: max(100%, 44px);
		transform: translate(-50%, -50%);
	}

	/* На карточке каталога сердечко и быстрый просмотр стоят в 8px друг под другом:
	   зоны по 44px перекрылись бы и воровали нажатия друг у друга, поэтому здесь 40px. */
	.woocommerce ul.products li.product .pm-wish--card::after,
	.woocommerce ul.products li.product .pm-qv::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 40px;
		height: 40px;
		transform: translate(-50%, -50%);
	}
	/* У .pm-qv псевдоэлемент уже занят иконкой-глазом (::before рисует маску), проверяем,
	   что зона не перекрывает саму иконку по слою. */
	.woocommerce ul.products li.product .pm-qv::after { z-index: 0; }
}

/* ---------- Energy: тикер наличия ---------- */
.pm-ticker {
	overflow: hidden;
	contain: layout paint;
	background: var(--pm-cta-ink);
	color: var(--pm-on-ink);
	border-top: 1px solid rgba(255,255,255,.06);
}
.pm-ticker__track {
	display: flex;
	flex-wrap: nowrap;
	gap: 0;
	width: max-content;
	animation: pm-marquee 42s linear infinite;
}
.pm-ticker:hover .pm-ticker__track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
	.pm-ticker__track { animation: none; transform: none; }
}
.pm-ticker__item {
	flex: none;
	padding: 9px 26px;
	font-size: var(--pm-fs-xs);
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: .92;
}
.pm-ticker__item strong { color: var(--pm-pink-soft); font-weight: 700; }
.pm-ticker__item + .pm-ticker__item { border-left: 1px solid rgba(255,255,255,.12); }

/* ---------- Кнопки ---------- */
.pm-btn {
	display: inline-block;
	padding: 13px 30px;
	border-radius: var(--pm-btn-radius, var(--pm-radius-pill));
	font-family: var(--pm-font-head);
	font-weight: 600;
	font-size: var(--pm-btn-font-size, var(--pm-fs-md));
	letter-spacing: .03em;
	text-transform: uppercase;
	cursor: pointer;
	transition: var(--pm-transition-ui);
	border: 2px solid var(--pm-pink);
}
.pm-btn--solid {
	background: var(--pm-btn-bg, var(--pm-pink));
	color: var(--pm-btn-fg, var(--pm-on-pink));
	border-color: var(--pm-btn-bg, var(--pm-pink));
}
.pm-btn--solid:hover {
	background: var(--pm-btn-bg-hover, var(--pm-pink-hover));
	border-color: var(--pm-btn-bg-hover, var(--pm-pink-hover));
	color: var(--pm-btn-fg, var(--pm-on-pink));
	box-shadow: var(--pm-btn-shadow-hover, var(--pm-shadow-md));
	transform: translateY(-1px);
}
.pm-btn--solid:active {
	background: var(--pm-btn-bg-active, var(--pm-pink-active));
	border-color: var(--pm-btn-bg-active, var(--pm-pink-active));
	transform: translateY(0);
	box-shadow: none;
}
.pm-btn--solid:focus-visible {
	outline: none;
	box-shadow: var(--pm-focus-ring);
}
.pm-btn--ink { background: var(--pm-cta-ink); color: var(--pm-on-ink); border-color: var(--pm-cta-ink); }
.pm-btn--ink:hover {
	background: var(--pm-cta-ink-hov);
	border-color: var(--pm-cta-ink-hov);
	color: var(--pm-on-ink);
	box-shadow: var(--pm-shadow-md);
	transform: translateY(-1px);
}
.pm-btn--ink:focus-visible { outline: none; box-shadow: var(--pm-focus-ring); }
.pm-btn--ghost { background: transparent; color: var(--pm-pink); }
.pm-btn--ghost:hover { background: var(--pm-pink); color: var(--pm-on-pink); }
.pm-btn--ghost:focus-visible { outline: none; box-shadow: var(--pm-focus-ring); }
.pm-btn--ghost-ink { background: transparent; color: var(--pm-cta-ink); border-color: var(--pm-cta-ink); }
.pm-btn--ghost-ink:hover { background: var(--pm-cta-ink); color: var(--pm-on-ink); }
.pm-btn--ghost-ink:focus-visible { outline: none; box-shadow: var(--pm-focus-ring); }
.pm-btn.is-disabled,
.pm-btn:disabled {
	opacity: var(--pm-disabled-opacity);
	pointer-events: none;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.pm-btn--solid:hover,
	.pm-btn--ink:hover { transform: none; }
}

/* кнопки WooCommerce */
.woocommerce a.button, .woocommerce button.button,
.woocommerce .button.alt, .single_add_to_cart_button,
.wp-block-button__link {
	background: var(--pm-pink) !important;
	color: var(--pm-on-pink) !important;
	border: none !important;
	border-radius: var(--pm-radius-pill) !important;
	font-family: var(--pm-font-head) !important;
	font-weight: 600 !important;
	letter-spacing: .03em;
	text-transform: uppercase;
	font-size: var(--pm-fs-sm);
	padding: 11px var(--pm-space-6) !important;
	transition: background .18s, box-shadow .18s;
}
.woocommerce a.button:hover, .single_add_to_cart_button:hover,
.wp-block-button__link:hover { background: var(--pm-pink-deep) !important; box-shadow: var(--pm-shadow); }

/* ---------- Секции ---------- */
.pm-section { padding: 28px 0; position: relative; }
.pm-section--alt { background: var(--pm-grad-section-alt); position: relative; overflow: hidden; }
.pm-section--alt::before {
	content: ""; position: absolute; right: -140px; top: -140px; width: 380px; height: 380px; border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--pm-pink-soft) 18%, transparent), transparent 70%); pointer-events: none;
}
.pm-section--gray { background: var(--pm-bg-3); }
.pm-section-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 14px; position: relative; z-index: 1; }
.pm-eyebrow { display: inline-block; color: var(--pm-pink); font-weight: 700; font-size: var(--pm-fs-sm); letter-spacing: .16em; text-transform: uppercase; margin: 0 0 var(--pm-space-2); position: relative; padding-left: var(--pm-space-10); }
.pm-eyebrow::before { content: ""; position: absolute; left: 0; top: 50%; width: 28px; height: 1px; background: var(--pm-gold); }
.pm-eyebrow--center { padding-left: 0; }
.pm-eyebrow--center::before { display: none; } /* центр-вариант без декоративного тире (иначе уезжает влево на блоке) */
.pm-section-title {
	font-family: var(--pm-font-display);
	font-size: var(--pm-fs-h2);
	font-weight: 600;
	margin: 0;
	line-height: var(--pm-lh-tight);
	letter-spacing: 0.01em;
}
.pm-section-title--center { text-align: center; display: block; margin-bottom: var(--pm-space-4); }
.pm-section-link { flex: none; font-size: var(--pm-fs-md); color: var(--pm-pink); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; transition: color .15s; padding-bottom: var(--pm-space-1); }
.pm-section-link:hover { color: var(--pm-pink-deep); }

/* ---------- Hero (Energy+compact + active WOW banner) ---------- */
.pm-hero {
	background: radial-gradient(80% 120% at 85% 10%, rgba(215,165,156,.22), transparent 55%),
		radial-gradient(60% 80% at 10% 90%, color-mix(in srgb, var(--pm-gold) 8%, transparent), transparent 50%),
		var(--pm-grad-hero);
	border-bottom: 1px solid var(--pm-border);
	position: relative;
	overflow: hidden;
}
.pm-hero--wow::after {
	content: "";
	position: absolute; right: -8%; top: -20%;
	width: 42%; height: 140%;
	background: radial-gradient(circle at 40% 40%, color-mix(in srgb, var(--pm-pink-soft) 16%, transparent), transparent 65%);
	pointer-events: none;
}
.pm-hero__inner {
	position: relative; z-index: 1;
	max-width: var(--pm-maxw); margin: 0 auto; padding: 28px var(--pm-space-6) var(--pm-space-6);
	display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 28px; min-height: 0;
}
.pm-hero__eyebrow { color: var(--pm-pink-deep); font-weight: 700; font-size: var(--pm-fs-sm); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 10px; }
.pm-hero__brand {
	font-family: var(--pm-font-display);
	font-weight: 600;
	font-size: clamp(32px, 5vw, 48px);
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--pm-text);
	margin: 0 0 10px;
}
.pm-hero__title { font-size: clamp(22px, 2.8vw, 30px); font-weight: 800; line-height: 1.1; margin: 0 0 var(--pm-space-3); text-transform: uppercase; }
.pm-hero__sub { color: var(--pm-text-muted); font-size: var(--pm-fs-body); line-height: 1.5; max-width: 46ch; margin: 0 0 18px; }
.pm-hero__cta { display: flex; gap: var(--pm-space-3); flex-wrap: wrap; }
.pm-hero__trust {
	list-style: none; margin: var(--pm-space-4) 0 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: var(--pm-space-2) 10px;
}
.pm-hero__trust li {
	font-size: var(--pm-fs-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	color: var(--pm-text-muted);
	padding: 6px 10px; border-radius: var(--pm-radius-pill);
	background: rgba(255,255,255,.72);
	border: 1px solid color-mix(in srgb, var(--pm-pink) 14%, transparent);
}
@media (max-width: 480px) {
	.pm-hero__cta { flex-direction: column; align-items: stretch; }
	.pm-hero__cta .pm-btn { width: 100%; text-align: center; }
	.pm-hero__trust { justify-content: center; }
}
.pm-hero__media { text-align: center; min-width: 0; }
.pm-hero__media img { max-width: 100%; height: auto; }
.pm-hero__placeholder {
	aspect-ratio: 4/3; border-radius: var(--pm-radius-lg);
	background: radial-gradient(circle at 50% 40%, var(--pm-color-white), var(--pm-color-soft-glow));
	display: flex; align-items: center; justify-content: center; color: var(--pm-pink-soft); font-size: 60px;
}

/* Active slider: clickable bottles + progress */
.pm-hero__slider { position: relative; }
.pm-hero__slides { position: relative; min-height: 280px; }
.pm-hero__slide {
	position: absolute; inset: 0;
	opacity: 0; visibility: hidden;
	pointer-events: none !important;
	z-index: 0;
	transition: opacity .55s ease, visibility .55s;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-decoration: none; color: inherit;
	cursor: pointer;
	-webkit-tap-highlight-color: color-mix(in srgb, var(--pm-pink) 15%, transparent);
}
.pm-hero__slide.is-active {
	position: relative; inset: auto;
	opacity: 1; visibility: visible;
	pointer-events: auto !important;
	z-index: 2;
}
.pm-hero__stage {
	position: relative; width: 100%; min-height: 240px;
	display: flex; align-items: center; justify-content: center;
	background: rgba(255,255,255,.5);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1px solid rgba(255,255,255,.78);
	border-radius: calc(var(--pm-radius-lg) + 6px);
	box-shadow: var(--pm-shadow-md), inset 0 0 0 1px color-mix(in srgb, var(--pm-gold) 12%, transparent);
	overflow: hidden;
	transition: box-shadow var(--pm-dur-mid) var(--pm-ease-out), transform var(--pm-dur-mid) var(--pm-ease-out);
	pointer-events: auto;
}
a.pm-hero__slide:hover .pm-hero__stage,
a.pm-hero__slide:focus-visible .pm-hero__stage {
	box-shadow: var(--pm-shadow-lg), inset 0 0 0 1px color-mix(in srgb, var(--pm-pink) 28%, transparent);
	transform: translateY(-2px);
}
.pm-hero__stage::before {
	content: ""; position: absolute; width: 380px; height: 380px; border-radius: 50%;
	background: radial-gradient(circle, rgba(255,255,255,.95) 0%, color-mix(in srgb, var(--pm-pink-soft) 22%, transparent) 42%, transparent 70%);
	filter: blur(4px);
	animation: pm-hero-glow 6s ease-in-out infinite alternate;
	pointer-events: none;
}
@keyframes pm-hero-glow {
	from { transform: scale(.96); opacity: .85; }
	to { transform: scale(1.05); opacity: 1; }
}
.pm-hero__bottle {
	position: relative; max-height: 250px; width: auto; object-fit: contain;
	filter: drop-shadow(0 24px 36px rgba(90,40,60,.24));
	background: transparent; border-radius: 8px;
	transform: translateY(8px) scale(.98);
	transition: transform .55s ease;
	z-index: 2;
}
.pm-hero__slide.is-active .pm-hero__bottle { transform: none; }
.pm-hero__bottle--main { z-index: 3; max-height: 258px; }
.pm-hero__price {
	position: absolute; z-index: 4;
	right: var(--pm-space-3); bottom: var(--pm-space-3);
	font-size: var(--pm-fs-md); font-weight: 800; letter-spacing: .02em;
	color: var(--pm-on-pink);
	background: linear-gradient(120deg, var(--pm-cta-ink), var(--pm-color-ink-mid));
	padding: 7px var(--pm-space-3); border-radius: var(--pm-radius-pill);
	box-shadow: 0 8px 18px rgba(30,20,30,.22);
}
.pm-hero__cap {
	margin: 10px 0 0; max-width: 34ch;
	font-family: var(--pm-font-display); font-size: var(--pm-fs-body-plus); font-weight: 600; line-height: 1.25;
	color: var(--pm-text); letter-spacing: .01em;
}
.pm-hero__controls {
	display: flex; align-items: center; justify-content: center; gap: var(--pm-space-3);
	margin-top: var(--pm-space-3);
}
.pm-hero__dots { display: flex; gap: var(--pm-space-2); align-items: center; }
.pm-hero__dot {
	/* Визуально 8px, хит-зона 28px - иначе на мобайле «не реагирует». */
	width: 8px; height: 8px; padding: 0; border: none; border-radius: 50%;
	background: var(--pm-border); cursor: pointer;
	transition: background .2s, transform .2s;
	position: relative;
}
.pm-hero__dot::after {
	content: ""; position: absolute; inset: -10px;
}
.pm-hero__dot.is-on { background: var(--pm-pink); transform: scale(1.15); }
.pm-hero__ctrl {
	width: 34px; height: 34px; border-radius: 50%;
	border: 1px solid var(--pm-border); background: rgba(255,255,255,.9);
	color: var(--pm-text); cursor: pointer; display: grid; place-items: center;
	transition: color .15s, border-color .15s;
}
.pm-hero__ctrl:hover { color: var(--pm-pink); border-color: var(--pm-pink); }
.pm-hero__ctrl::before {
	content: ''; width: 7px; height: 7px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
}
.pm-hero__ctrl--prev::before { transform: rotate(135deg); margin-left: 2px; }
.pm-hero__ctrl--next::before { transform: rotate(-45deg); margin-right: 2px; }
.pm-hero__progress {
	margin: 10px auto 0; max-width: 180px; height: 2px;
	background: rgba(40,30,40,.08); border-radius: 2px; overflow: hidden;
}
.pm-hero__progress-bar {
	display: block; height: 100%; width: 0;
	background: linear-gradient(90deg, var(--pm-pink), var(--pm-gold));
	border-radius: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.pm-hero__slide, .pm-hero__bottle { transition: none; }
	.pm-hero__stage::before { animation: none; }
	.pm-hero__progress { display: none; }
}
@media (max-width: 860px){
	.pm-hero__slides { min-height: 0; }
	.pm-hero__stage { min-height: 200px; max-width: min(300px, 78vw); margin: 0 auto; }
	.pm-hero__bottle--main { max-height: 210px; }
	.pm-hero__cap { font-size: var(--pm-fs-body); }
	.pm-hero__ctrl { display: none; }
	.pm-hero__price { font-size: var(--pm-fs-sm); padding: 6px 10px; right: 10px; bottom: 10px; }
}

/* ---------- Кинокадр T: кружки + сцена + наезд ---------- */
.pm-cine { background: #fff; }
.pm-cine__chips {
	display: flex; gap: 10px; padding: 10px 16px 8px;
	overflow-x: auto; scrollbar-width: none; background: #fff;
	-webkit-overflow-scrolling: touch;
}
.pm-cine__chips::-webkit-scrollbar { display: none; }
.pm-cine__chip {
	flex: none; width: 62px; padding: 0; border: 0; background: none;
	font: inherit; color: var(--pm-text); text-align: center; cursor: pointer;
}
.pm-cine__chip i {
	display: block; width: 54px; height: 54px; margin: 0 auto 4px;
	border-radius: 50%; background: #eee center / cover;
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--pm-pink);
}
.pm-cine__chip.is-on i {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--pm-gold);
	transform: scale(1.08);
}
.pm-cine__chip small {
	display: block; font-size: 9.5px; line-height: 1.15; color: var(--pm-text-muted);
	max-width: 62px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pm-cine__stage { position: relative; background: #10080c; min-height: 228px; overflow: hidden; }
.pm-cine__slide {
	position: absolute; inset: 0;
	opacity: 0; visibility: hidden; pointer-events: none;
	display: flex; align-items: flex-end; color: #fff;
	text-decoration: none;
}
a.pm-cine__slide,
a.pm-cine__slide:hover,
a.pm-cine__slide:focus { color: #fff; }
.pm-cine__slide.is-on {
	position: relative; opacity: 1; visibility: visible; pointer-events: auto;
}
.pm-cine__mood {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; transform: scale(1.22); transform-origin: 68% 45%;
}
.pm-cine__slide.is-ken .pm-cine__mood {
	animation: pm-cine-ken 7s ease-out forwards;
}
@keyframes pm-cine-ken {
	from { transform: scale(1.22); }
	to { transform: scale(1); }
}
.pm-cine__scrim {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, #10080cf5 34%, #10080c66 58%, transparent);
}
.pm-cine__medal {
	position: absolute; right: 7%; bottom: 18%; z-index: 1;
	width: 132px; height: 132px; border-radius: 50%; overflow: hidden;
	box-shadow: 0 0 0 3px #fff8, 0 0 0 6px #c6a15baa, 0 18px 36px #0008;
	pointer-events: none;
}
.pm-cine__medal img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.pm-cine__in {
	position: relative; z-index: 2; padding: 26px 20px; max-width: 42ch;
	display: flex; flex-direction: column; align-items: flex-start;
}
.pm-cine__k {
	font-size: 10px; font-weight: 700; letter-spacing: .16em;
	text-transform: uppercase; color: #f0b070; margin: 0 0 6px;
}
.pm-cine__name {
	font-family: var(--pm-font-display); font-size: clamp(26px, 3.4vw, 42px);
	font-weight: 650; letter-spacing: -.03em; line-height: 1; margin: 0 0 6px;
}
.pm-cine__sub { margin: 0 0 6px; color: #f0d8d0; font-size: 13px; }
.pm-cine__pr {
	font-family: var(--pm-font-display); font-size: 17px; font-weight: 650; margin: 0 0 12px;
}
.pm-cine__go {
	display: inline-flex; align-items: center; justify-content: center;
	height: 36px; padding: 0 14px; border-radius: 10px;
	font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	background: #fff; color: #1c1c1c;
}
a.pm-cine__slide:hover .pm-cine__go,
a.pm-cine__slide:focus .pm-cine__go { color: #1c1c1c; }
.pm-cine__slide.is-on .pm-cine__in { animation: pm-cine-pop .42s cubic-bezier(.2, .8, .2, 1); }
@keyframes pm-cine-pop {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: none; }
}
@media (min-width: 861px) {
	.pm-cine__stage { min-height: 340px; }
	.pm-cine__chips { padding: 12px 24px 10px; }
}
@media (max-width: 860px) {
	.pm-cine__stage { min-height: 300px; }
	.pm-cine__medal { width: 84px; height: 84px; right: 12px; bottom: 14px; }
	.pm-cine__in { padding: 20px 108px 20px 16px; max-width: none; }
	.pm-cine__name { font-size: 26px; }
}
@media (max-width: 700px) {
	.pm-cine__chips.is-start {
		-webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 32px), transparent);
		mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 32px), transparent);
	}
	.pm-cine__chips.is-end {
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 32px, #000);
		mask-image: linear-gradient(90deg, transparent, #000 32px, #000);
	}
	.pm-cine__chips:not(.is-start):not(.is-end) {
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent);
		mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent);
	}
}
@media (max-width: 520px) {
	.pm-cine__scrim {
		background: linear-gradient(180deg, #10080c22 10%, #10080c70 52%, #10080cf4 100%);
	}
}
@media (prefers-reduced-motion: reduce) {
	.pm-cine__slide.is-ken .pm-cine__mood,
	.pm-cine__slide.is-on .pm-cine__in { animation: none; }
	.pm-cine__mood { transform: none; }
}

/* ---------- УТП-полоса ---------- */
.pm-usp { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; max-width: var(--pm-maxw); margin: 0 auto; padding: 14px var(--pm-space-6); border-top: 1px solid var(--pm-border); border-bottom: 1px solid var(--pm-border); }
.pm-usp__item { display: flex; gap: var(--pm-space-3); align-items: center; padding: 2px var(--pm-space-5); }
.pm-usp__item + .pm-usp__item { border-left: 1px solid var(--pm-border); }
.pm-usp__item:first-child { padding-left: 0; }
.pm-usp__item:last-child { padding-right: 0; }
.pm-usp__ic { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--pm-pink-wash); display: flex; align-items: center; justify-content: center; color: var(--pm-pink); }
.pm-usp__ic svg { width: 17px; height: 17px; stroke: currentColor; fill: none; }
.pm-usp__item > span:last-child { display: flex; flex-direction: column; }
.pm-usp__t { display: block; font-weight: 700; font-size: var(--pm-fs-md); margin-bottom: 1px; }
.pm-usp__d { display: block; color: var(--pm-text-faint); font-size: var(--pm-fs-sm); line-height: 1.35; }
@media (max-width: 860px){
	.pm-usp { grid-template-columns: 1fr; gap: var(--pm-space-2); padding: 10px var(--pm-space-4); }
	.pm-usp__item { padding: 0; }
	.pm-usp__item + .pm-usp__item { border-left: none; }
}

/* Главная: клин — отливант / бирка / блоттер. «О компании» остаётся на .pm-usp без модификатора. */
.pm-usp.pm-usp--klin {
	grid-template-columns: 1.25fr .88fr .88fr;
	gap: 8px;
	align-items: stretch;
	padding: 10px var(--pm-space-4);
}
.pm-usp--klin .pm-usp__item {
	gap: 10px;
	padding: 10px 12px;
	min-height: 72px;
	border: 1px solid var(--pm-border);
	border-radius: 14px;
	background: var(--pm-surface);
	position: relative;
	overflow: hidden;
}
.pm-usp--klin .pm-usp__item + .pm-usp__item { border-left: 1px solid var(--pm-border); }
.pm-usp--klin .pm-usp__item:first-child,
.pm-usp--klin .pm-usp__item:last-child { padding-left: 12px; padding-right: 12px; }
.pm-usp--klin .pm-usp__t {
	font-family: var(--pm-font-display);
	font-size: 15px;
	font-weight: 650;
	letter-spacing: -.02em;
	margin-bottom: 1px;
}
.pm-usp--klin .pm-usp__item--raspiv {
	background: linear-gradient(135deg, var(--pm-pink-wash), #fff 62%);
	border-color: color-mix(in srgb, var(--pm-pink) 22%, #fff);
}
.pm-usp--klin .pm-usp__item--raspiv::after {
	content: "";
	position: absolute;
	right: -18px;
	bottom: -22px;
	width: 88px;
	height: 88px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .55);
	pointer-events: none;
}
.pm-usp--klin .pm-usp__item--raspiv .pm-usp__t { font-size: 18px; }
.pm-usp--klin .pm-usp__item--ship {
	background: linear-gradient(135deg, #f7f1e4, #fff 70%);
	border-color: #eadfc8;
}
.pm-usp--klin .pm-usp__item--pick {
	background: linear-gradient(135deg, #f3eef2, #fff 70%);
	border-color: #e6dde4;
}
.pm-usp__vial {
	flex: none;
	width: 22px;
	height: 38px;
	border: 1.6px solid var(--pm-pink-deep);
	border-radius: 0 0 9px 9px;
	position: relative;
	background: linear-gradient(180deg, transparent 28%, #f3b4c8 28%);
}
.pm-usp__vial::before {
	content: "";
	position: absolute;
	top: -8px;
	left: 50%;
	width: 12px;
	height: 8px;
	margin-left: -6px;
	background: var(--pm-pink-deep);
	border-radius: 2px 2px 0 0;
}
.pm-usp__vial::after {
	content: "";
	position: absolute;
	top: -11px;
	left: 50%;
	width: 6px;
	height: 4px;
	margin-left: -3px;
	background: var(--pm-text);
	border-radius: 1px;
}
.pm-usp__vial--gold {
	border-color: var(--pm-gold-ink);
	background: linear-gradient(180deg, transparent 28%, #ecd9a4 28%);
}
.pm-usp__vial--gold::before { background: var(--pm-gold-ink); }
.pm-usp__vial--ink {
	border-color: #3a2a30;
	background: linear-gradient(180deg, transparent 28%, #c9b4bc 28%);
}
.pm-usp__vial--ink::before { background: #3a2a30; }
.pm-usp__tag {
	flex: none;
	width: 40px;
	height: 48px;
	border: 1.4px solid var(--pm-gold-ink);
	background: color-mix(in srgb, var(--pm-gold) 28%, #fff);
	border-radius: 3px 10px 10px 3px;
	position: relative;
	box-shadow: 2px 3px 0 rgba(80, 50, 20, .08);
}
.pm-usp__tag::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 7px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #fff;
	box-shadow: inset 0 0 0 1.3px var(--pm-gold-ink);
}
.pm-usp__tag b {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 8px;
	text-align: center;
	font-family: var(--pm-font-display);
	font-size: 13px;
	font-weight: 650;
	color: var(--pm-gold-ink);
	letter-spacing: -.03em;
}
.pm-usp__blot {
	flex: none;
	width: 16px;
	height: 46px;
	background: linear-gradient(180deg, #fff, var(--pm-pink-wash));
	border: 1.3px solid color-mix(in srgb, var(--pm-pink) 28%, #e2c8d4);
	border-radius: 2px 2px 11px 11px;
	position: relative;
}
.pm-usp__blot::before {
	content: "";
	position: absolute;
	top: -5px;
	left: 50%;
	width: 9px;
	height: 9px;
	margin-left: -4.5px;
	border-radius: 50%;
	background: var(--pm-pink);
	box-shadow: 0 0 0 3px var(--pm-pink-wash);
}
@media (max-width: 860px){
	.pm-usp.pm-usp--klin { grid-template-columns: 1fr 1fr; }
	.pm-usp--klin .pm-usp__item--raspiv { grid-column: 1 / -1; }
}

/* ---------- Промо-баннеры ---------- */
.pm-promos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pm-promo {
	display: flex; flex-direction: column; justify-content: center;
	min-height: 120px; padding: 18px var(--pm-space-5); border-radius: var(--pm-radius-lg);
	background: linear-gradient(135deg, var(--pm-color-promo-pink) 0%, var(--pm-pink-wash) 100%); position: relative; overflow: hidden;
	align-items: flex-start; box-shadow: var(--pm-shadow-soft);
}
.pm-promo::after {
	content: ""; position: absolute; right: -50px; bottom: -50px; width: 180px; height: 180px; border-radius: 50%;
	background: rgba(255,255,255,.45); pointer-events: none;
}
.pm-promo { text-decoration: none; color: inherit; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.pm-promo:hover { transform: translateY(-3px); box-shadow: var(--pm-shadow); color: inherit; }
.pm-promo .pm-btn { margin-top: 6px; position: relative; z-index: 1; pointer-events: none; }
.pm-promo:hover .pm-btn--solid { background: var(--pm-pink-deep); }
.pm-promo--alt { background: linear-gradient(135deg, var(--pm-color-promo-cool-1) 0%, var(--pm-color-promo-cool-2) 100%); }
.pm-promo--alt::after { background: color-mix(in srgb, var(--pm-pink) 8%, transparent); }
.pm-promo__small { font-size: var(--pm-fs-sm); color: var(--pm-text-muted); margin-bottom: 6px; text-transform: uppercase; letter-spacing: .06em; position: relative; z-index: 1; }
.pm-promo__big { font-size: 20px; font-weight: 800; line-height: 1.15; margin-bottom: 10px; max-width: 70%; position: relative; z-index: 1; }
.pm-promo__pct { font-size: 36px; font-weight: 800; color: var(--pm-pink); line-height: 1; }
@media (max-width: 760px){
	.pm-promos { grid-template-columns: 1fr; }
	.pm-promo__pct { font-size: 28px; }
	.pm-promo__big { max-width: none; }
}
@media (min-width: 761px) and (max-width: 860px){ .pm-promos { grid-template-columns: 1fr 1fr; gap: 12px; } }

/* ---------- Карточки товара ---------- */
/* D1 дыра → U2 полоса чип|цена → D3 portrait: фото 4:5 flush, текст в body-pad. */
.woocommerce ul.products li.product,
.wc-block-grid__product {
	background: var(--pm-surface);
	border: 1px solid var(--pm-border);
	border-radius: var(--pm-radius-lg);
	padding: 0 !important;
	overflow: hidden;
	text-align: left;
	transition: box-shadow .2s, border-color .2s;
	position: relative;
	display: flex; flex-direction: column;
}
/* Карточку целиком не поднимаем: transform уезжает вместе с названием
   и оно залезает на соседний ряд. Живой отклик - тень и зум флакона. */
.woocommerce ul.products li.product:hover {
	box-shadow: var(--pm-shadow);
	border-color: var(--pm-color-soft-border);
	transform: none;
	z-index: 4;
}
/* Kadence в режиме `woo-archive-action-on-hover` поднимает весь текстовый блок карточки на
   2rem, освобождая место всплывающей снизу кнопке «В корзину». У нас кнопка не всплывает,
   а живёт в статичном доке .pm-card-buybox - поднимать нечего, и сдвиг лишь загонял бренд и
   верх названия ПОД фото: .pm-card-ph позиционирован (position:relative) и перекрывает
   уехавший текст. На главной и в каталоге баг не проявлялся - там родительский
   woocommerce.min.css снят в inc/perf.php; на странице товара он остаётся ради галереи. */
.woocommerce ul.products.woo-archive-action-on-hover li.product:hover .entry-content-wrap,
.woocommerce ul.products.woo-archive-action-on-hover li.product:focus-within .entry-content-wrap {
	transform: none;
}
/* Второй хвост того же режима, и он дороже косметики: обёртку .product-action-wrap, внутри
   которой рендерится наш док, Kadence кладёт absolute с opacity:0 и bottom:-2rem. На PDP это
   значило, что в блоке «похожие» объём и «В корзину» НЕ ВИДНЫ до наведения. Возвращаем док в
   поток. Ховерное правило темы (специфичность выше) трогает bottom - при position:static оно
   игнорируется, а его opacity:1 совпадает с нашей, поэтому дёрганья при наведении нет. */
.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap {
	position: static;
	bottom: auto;
	left: auto;
	right: auto;
	/* width:auto, а не 100% - см. базовое правило дока: при 100% отрицательные поля выводят
	   наружу только левый край. Это правило специфичнее и раньше гасило там же поставленный auto. */
	width: auto;
	opacity: 1;
	transition: none;
}
/* Квадрат вместо портрета 4:5 (вариант B, выбор владельца 14.08): портретное фото делало
   карточку 595px высотой, и на планшет помещалось всего две штуки. Флакон в контейне и так
   центрируется, а карточка становится ниже примерно на четверть. */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img,
.wc-block-grid__product img {
	border-radius: 0;
	margin: 0 !important;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	width: 100%;
	background: var(--pm-surface);
	transition: transform .4s cubic-bezier(.2,.7,.2,1);
}
/* B2-d: лого бренда вместо пустого фото */
.woocommerce ul.products li.product .pm-ph--brand {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	width: 100%;
	margin: 0;
	padding: 18%;
	border-radius: 0;
	background: linear-gradient(180deg, var(--pm-color-powder-6) 0%, var(--pm-pink-wash-2) 100%);
	box-sizing: border-box;
}
.woocommerce ul.products li.product .pm-ph--brand img,
.woocommerce ul.products li.product img.woocommerce-placeholder--brand {
	aspect-ratio: auto !important;
	width: 100% !important;
	height: auto !important;
	max-height: 100%;
	margin: 0 !important;
	background: transparent !important;
	object-fit: contain;
}
.woocommerce ul.products li.product:hover .pm-ph--brand img {
	transform: scale(1.04);
}
.woocommerce-product-gallery .pm-ph--brand {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	padding: 22%;
	background: linear-gradient(180deg, var(--pm-color-powder-6) 0%, var(--pm-pink-wash-2) 100%);
	border-radius: var(--pm-radius-lg);
}
.woocommerce-product-gallery .pm-ph--brand img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	margin: 0;
}
.woocommerce ul.products li.product a.woocommerce-loop-image-link,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	overflow: hidden;
	border-radius: 0;
	margin: 0;
}
/* Зона фото: подложка наливается цветом семейства, флакон приподнимается, снизу всплывают
   ноты (выбор владельца 02.08). Фото у нас JPEG на белом фоне, без прозрачности, поэтому
   белую подложку снимаем режимом multiply - иначе на цветном фоне фото выглядит наклейкой. */
.pm-card-ph {
	position: relative;
	overflow: hidden;
	border-radius: 0;
	margin: 0;
	background: var(--pm-grad-card-ph);
	transition: background .45s;
}
.pm-card-ph img { mix-blend-mode: multiply; }
.woocommerce ul.products li.product:hover .pm-card-ph {
	background: linear-gradient(160deg, color-mix(in srgb, var(--pm-fam, var(--pm-pink)) 22%, var(--pm-color-white)), color-mix(in srgb, var(--pm-fam, var(--pm-pink)) 9%, var(--pm-color-white)));
}
.woocommerce ul.products li.product:hover .pm-card-ph img { transform: scale(1.04); }
.woocommerce ul.products li.product:hover { border-color: color-mix(in srgb, var(--pm-fam, var(--pm-pink)) 40%, var(--pm-color-white)); }
/* Ховер-накладка с нотами снята 15.08: ноты переехали в тело карточки (.pm-card-notes-row),
   потому что под курсором их видел только десктоп, а @media (hover:none) прятал их на
   телефонах совсем - при 100% покрытии данными. */
@media (prefers-reduced-motion: reduce) {
	.pm-card-ph, .woocommerce ul.products li.product img { transition: none; }
}
.pm-card-brand {
	display: block;
	grid-column: 1 / -1;
	font-size: 10px;
	color: var(--pm-text-faint);
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-bottom: 0;
	font-weight: 600;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--pm-font-head) !important; /* C каталог: Onest, Fraunces только H1/герой */
	font-size: 13px !important; /* 14.08: C Onest 13, выбор владельца */
	font-weight: 500; /* 600 у Onest выглядит как жирный, не как витрина */
	padding: 0 !important;
	line-height: 1.22;
	min-height: calc(1.22em * 2);
	margin: 2px 0 0 !important;
	letter-spacing: -.01em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	grid-column: 1 / -1;
}
/* Каталог: чипы вместо short description */
.woocommerce ul.products li.product .product-excerpt { display: none !important; }
/* U2: чипы слева в полосе с ценой */
.pm-card-chips {
	display: flex;
	flex-wrap: nowrap;
	gap: 4px;
	align-items: center;
	min-width: 0;
	min-height: 22px;
	margin: 0;
	padding-top: 6px;
	border-top: 1px solid color-mix(in srgb, var(--pm-border) 70%, transparent);
	grid-column: 1;
	align-self: center;
}
.pm-chip {
	display: inline-flex; align-items: center;
	padding: var(--pm-space-1) var(--pm-space-2); border-radius: var(--pm-radius-pill);
	font-size: var(--pm-fs-xs); font-weight: 600; line-height: 1.2;
	color: var(--pm-text-muted); background: var(--pm-bg-3);
}
/* Плашка семейства на карточке. Селектор с родителем намеренно: ниже по файлу живёт
   `.pm-chip` для чипов активных фильтров (padding 6/12, 13px, розовая заливка) - с равной
   специфичностью он перебивал и размер, и цвет семейства, из-за чего плашки на витрине
   были крупными и все одинаково розовыми.
   Одна строка с многоточием: у составных семейств («Древесно-ароматические») перенос на
   вторую строку раздувал карточку с 27 до 46px и спорил с ценой. */
.pm-card-chips .pm-chip {
	display: block;
	max-width: 100%;
	min-width: 0;
	padding: 2px 7px;
	font-size: 10px;
	font-weight: 600;
	line-height: 1.35;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	border: 0;
	color: color-mix(in srgb, var(--pm-chip-fam, var(--pm-pink)) 62%, var(--pm-color-ink-deep));
	background: color-mix(in srgb, var(--pm-chip-fam, var(--pm-pink)) 16%, var(--pm-color-white));
}
/* Объём: нейтральный чип (не семейство). Из title срезан, в корзине дописан - на карточке нужен явно. */
.pm-card-chips .pm-chip--vol,
.pm-card-chips .pm-chip--conc {
	color: var(--pm-text-muted);
	background: var(--pm-color-muted-bg);
	flex: 0 0 auto;
	/* Объём обрезать нельзя: при увеличенном минимальном шрифте в браузере «100 мл»
	   превращалось в «100 …», а объём в парфюмерии это половина цены. Семейство рядом
	   ужимать можно, оно и остаётся с многоточием. */
	overflow: visible;
	text-overflow: clip;
}
.pm-card-chips .pm-chip--family {
	flex: 1 1 auto;
	min-width: 0;
}
.woocommerce ul.products li.product .price {
	color: var(--pm-text) !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	/* U2: цена справа в одной полосе с чипами */
	margin: 0 !important;
	padding-top: 6px;
	border-top: 1px solid color-mix(in srgb, var(--pm-border) 70%, transparent);
	white-space: nowrap;
	grid-column: 2;
	justify-self: end;
	align-self: center;
	line-height: 1.15;
	text-align: right;
}
.woocommerce ul.products li.product .price del { color: var(--pm-text-faint); font-weight: 400; font-size: var(--pm-fs-body); }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--pm-sale) !important; }
.woocommerce ul.products li.product .pm-badges { position: absolute; top: 10px; left: 10px; z-index: 3; margin: 0; display: flex; flex-direction: column; gap: 5px; align-items: flex-start; max-width: calc(100% - 52px); }
.pm-price-per-ml {
	display: block;
	font-size: 10px;
	color: var(--pm-text-faint);
	margin: 0;
	font-weight: 500;
	line-height: 1.2;
	min-height: 12px;
	grid-column: 2;
	justify-self: end;
	text-align: right;
	white-space: nowrap;
}
.pm-price-per-ml--gap { visibility: hidden; }
.pm-card-price-hint {
	display: flex;
	align-items: center;
	/* Тот же margin, что у .pm-card-formats: иначе в одном рельсе 464 и 470. */
	margin-top: var(--pm-space-2);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--pm-pink-deep);
	grid-column: 1 / -1;
	min-height: 22px;
	box-sizing: border-box;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title.pm-title--same-brand {
	visibility: hidden;
}
/* Звёзды-рейтинг на карточке (скрываем дубль Kadence, оставляем свой с числом) */
.woocommerce ul.products li.product .product-details > .star-rating { display: none !important; }
.pm-card-rating {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 2px 0 0;
	grid-column: 1 / -1;
}
.woocommerce ul.products li.product .pm-card-rating .star-rating { font-size: var(--pm-fs-md); color: var(--pm-gold); margin: 0; }
.pm-card-rating__count { font-size: var(--pm-fs-sm); color: var(--pm-text-faint); }
.woocommerce ul.products li.product .button { margin-top: 10px !important; }

/* Бейджи: A · Hairline label — матовая этикетка + цветная рейка, без glow. */
.woocommerce span.onsale {
	display: inline-flex !important;
	align-items: center;
	background: rgba(255, 255, 255, .92) !important;
	color: var(--pm-pink-deep) !important;
	border-radius: 2px !important;
	border-left: 2px solid var(--pm-pink);
	font-weight: 800;
	font-size: 8.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1;
	min-height: 0 !important;
	min-width: 0 !important;
	width: auto;
	padding: var(--pm-space-1) 7px !important;
	margin: 0 !important;
	top: 11px !important;
	left: 11px !important;
	right: auto !important;
	box-shadow: 0 1px 0 rgba(0, 0, 0, .04);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	white-space: nowrap;
	z-index: 3;
	transform: none;
}
.single-product div.product span.onsale,
.single-product .woocommerce-product-gallery span.onsale {
	top: var(--pm-space-3) !important;
	left: var(--pm-space-3) !important;
}

.pm-badge {
	display: inline-flex;
	align-items: center;
	gap: 0;
	font-size: 8.5px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1;
	padding: var(--pm-space-1) 7px;
	border-radius: 2px;
	white-space: nowrap;
	color: var(--pm-text);
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 1px 0 rgba(0, 0, 0, .04);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-left: 2px solid transparent;
}
.pm-badge::before { display: none; content: none; }
.pm-badge--hit {
	border-left-color: var(--pm-color-cond-gold-2);
	color: var(--pm-text);
}
.pm-badge--ucenka {
	border-left-color: var(--pm-fam-spice-dot);
	color: var(--pm-fam-spice-ink);
}
.pm-badge--sample,
.pm-badge--split {
	border-left-color: var(--pm-color-cool-2);
	color: var(--pm-color-violet-deep);
}
/* В .pm-condition (под ценой) оставляем читаемый чип без «пилюльного» glow */
.pm-condition .pm-badge {
	font-size: 9px;
	letter-spacing: .05em;
	padding: var(--pm-space-1) var(--pm-space-2);
}
.pm-badge--sale {
	border-left-color: var(--pm-pink);
	color: var(--pm-pink-deep);
}
/* Скидка живёт в стопке .pm-badges. Родной Woo-флеш на каталоге совпадал
   с «Распив» (оба top:11px, сдвиг из ux-fixes проигрывал !important). */
.woocommerce ul.products li.product span.onsale {
	display: none !important;
}
.pm-badge--orig {
	background: rgba(255, 255, 255, .88);
	color: var(--pm-color-success-bright);
	border-left-color: var(--pm-color-success-bright);
	box-shadow: 0 1px 0 rgba(0, 0, 0, .04), inset 0 0 0 1px rgba(63, 157, 99, .22);
}

/* ---------- Большой баннер (активный WOW-оффер) ---------- */
.pm-bigbanner {
	background:
		radial-gradient(80% 120% at 90% 20%, color-mix(in srgb, var(--pm-pink-soft) 28%, transparent), transparent 55%),
		linear-gradient(105deg, var(--pm-color-ink-deep) 0%, var(--pm-color-panel-wine) 42%, var(--pm-color-panel-rose) 100%);
	min-height: 0; display: flex; align-items: center;
	position: relative; overflow: hidden;
}
.pm-bigbanner--wow::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(26,18,22,.15), transparent 55%);
	pointer-events: none;
}
.pm-bigbanner__inner {
	position: relative; z-index: 1;
	max-width: var(--pm-maxw); margin: 0 auto; padding: 28px var(--pm-space-6);
}
.pm-bigbanner__kicker {
	display: inline-block;
	font-size: var(--pm-fs-xs); font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
	color: var(--pm-pink-soft); margin-bottom: var(--pm-space-2);
}
.pm-bigbanner__title {
	font-family: var(--pm-font-display);
	font-size: clamp(26px, 3.4vw, 40px); font-weight: 600;
	text-transform: none; line-height: 1.08; margin: 0 0 var(--pm-space-2);
	color: var(--pm-on-pink); text-shadow: 0 2px 18px rgba(0,0,0,.25);
}
.pm-bigbanner__sub {
	font-size: var(--pm-fs-body); color: rgba(255,255,255,.88);
	text-shadow: 0 1px 10px rgba(0,0,0,.25); margin: 0 0 var(--pm-space-4); max-width: 48ch;
}
.pm-bigbanner__cta { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 560px) {
	.pm-bigbanner__inner { padding: 22px var(--pm-space-4); }
	.pm-bigbanner__cta .pm-btn { width: 100%; text-align: center; }
}

/* ---------- Бренды (бегущая лента логотипов) ---------- */
.pm-brands { overflow: hidden; position: relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.pm-brands__track { display: flex; flex-wrap: nowrap; gap: var(--pm-space-4); width: max-content; animation: pm-marquee 45s linear infinite; }
.pm-brands:hover .pm-brands__track { animation-play-state: paused; }
@keyframes pm-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.pm-brand-logo {
	flex: 0 0 auto; width: 190px;
	display: flex; align-items: center; justify-content: center; text-align: center;
	font-family: var(--pm-font-head); font-weight: 700; font-size: var(--pm-fs-lg); letter-spacing: .06em;
	color: var(--pm-color-silver); text-transform: uppercase; transition: box-shadow .2s ease, border-color .2s ease;
	padding: 18px 14px; border: 1px solid var(--pm-border); border-radius: var(--pm-radius-lg); min-height: 96px; background: var(--pm-surface);
}
.pm-brand-logo:hover { box-shadow: var(--pm-shadow-soft); border-color: var(--pm-color-soft-border); }
.pm-brand-logo--img { padding: var(--pm-space-4); }
.pm-brand-logo--img img { max-height: 56px; max-width: 92%; object-fit: contain; transition: transform .2s ease; }
.pm-brand-logo--img:hover img { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce){ .pm-brands__track { animation: none; } }

/* Сетка брендов (статичная, плотная - заменяет ленту на главной) */
.pm-brand-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-top: var(--pm-space-3); }
.pm-brand-grid .pm-brand-logo { width: auto; min-height: 64px; }
@media (max-width: 1100px) { .pm-brand-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px)  { .pm-brand-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; } .pm-brand-grid .pm-brand-logo { min-height: 56px; } }
@media (max-width: 480px)  { .pm-brand-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Страница «Бренды» (алфавитный индекс) ---------- */
.pm-brands-index { display: flex; flex-wrap: wrap; gap: var(--pm-space-1); margin: 0 0 var(--pm-space-3); }
.pm-brands-index__l { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 6px; border: 1px solid var(--pm-border); border-radius: var(--pm-radius); font-weight: 600; font-size: var(--pm-fs-sm); color: var(--pm-text-muted); transition: color .15s, border-color .15s; }
.pm-brands-index__l:hover { border-color: var(--pm-pink); color: var(--pm-pink); }
.pm-brands-group { padding-top: 2px; margin-bottom: 14px; scroll-margin-top: 100px; }
.pm-brands-group__letter { font-family: var(--pm-font-display); font-size: 22px; color: var(--pm-pink-deep); margin: 0 0 6px; border-bottom: 1px solid var(--pm-border); padding-bottom: 2px; }
.pm-brands-group .pm-brand-grid { margin-top: var(--pm-space-2); }
.pm-brands-group__list { list-style: none; padding: 0; margin: 0; columns: 4; column-gap: 28px; }
.pm-brands-group__list li { break-inside: avoid; margin: 0 0 var(--pm-space-1); }
.pm-brands-group__list a { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 5px 0; color: var(--pm-text); font-size: var(--pm-fs-body-plus); }
.pm-brands-group__list a:hover { color: var(--pm-pink); }
.pm-brands-group__n { color: var(--pm-text-faint); font-size: var(--pm-fs-sm); flex: 0 0 auto; }
@media (max-width: 860px) { .pm-brands-group__list { columns: 2; } }
@media (max-width: 480px) { .pm-brands-group__list { columns: 1; } }

/* ---------- Страница «Акции» ---------- */
.pm-akcii-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pm-space-3); margin-top: var(--pm-space-2); }
.pm-akcii-card { display: flex; flex-direction: column; gap: var(--pm-space-1); padding: var(--pm-space-4) 18px; border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-pink-wash); transition: transform .18s, box-shadow .18s; }
.pm-akcii-card--alt { background: var(--pm-bg-2, var(--pm-color-quiz-lilac-3)); }
.pm-akcii-card:hover { transform: translateY(-2px); box-shadow: var(--pm-shadow-md); }
.pm-akcii-card__pct { font-family: var(--pm-font-display); font-size: 32px; line-height: 1; color: var(--pm-pink-deep); font-weight: 600; }
.pm-akcii-card__t { font-weight: 700; font-size: var(--pm-fs-lg); color: var(--pm-text); }
.pm-akcii-card__d { color: var(--pm-text-muted); line-height: 1.45; font-size: var(--pm-fs-md); flex: 1; }
.pm-akcii-card__link { font-weight: 600; font-size: var(--pm-fs-md); color: var(--pm-pink-deep); margin-top: var(--pm-space-1); }
@media (max-width: 860px) { .pm-akcii-grid { grid-template-columns: 1fr; gap: 10px; } }

/* ---------- Юридические страницы ---------- */
.pm-legal { max-width: 800px; }
.pm-legal h2 { font-family: var(--pm-font-display); font-weight: 600; font-size: 20px; margin: var(--pm-space-4) 0 6px; color: var(--pm-text); line-height: 1.2; }
.pm-legal h2:first-child { margin-top: 0; }
.pm-legal p, .pm-legal li { line-height: 1.55; color: var(--pm-text-muted); margin: 0 0 10px; font-size: var(--pm-fs-body); }
.pm-legal ul { padding-left: 18px; margin: var(--pm-space-1) 0 10px; }
.pm-legal li { margin: 2px 0; }
.pm-legal a { color: var(--pm-pink-deep); }
.pm-legal a:hover { color: var(--pm-pink); }

/* FAQ */
.pm-faq-block { margin: var(--pm-space-4) 0 var(--pm-space-2); }
.pm-faq-block__h {
	margin: 0 0 10px;
	font-size: var(--pm-fs-sm);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pm-text-faint);
}
.pm-faq { margin: var(--pm-space-2) 0 0; border-top: 1px solid var(--pm-border); }
.pm-faq__item { border-bottom: 1px solid var(--pm-border); }
.pm-faq__q {
	cursor: pointer; list-style: none; font-weight: 600; font-size: var(--pm-fs-body); color: var(--pm-text);
	padding: var(--pm-space-3) 28px var(--pm-space-3) 0; position: relative; line-height: 1.35;
}
.pm-faq__q::-webkit-details-marker { display: none; }
.pm-faq__q::after {
	content: "+"; position: absolute; right: 0; top: var(--pm-space-3); font-size: var(--pm-fs-xl); line-height: 1;
	color: var(--pm-pink); font-weight: 500;
}
.pm-faq__item[open] .pm-faq__q::after { content: "-"; }
.pm-faq__a { padding: 0 var(--pm-space-2) var(--pm-space-3) 0; font-size: var(--pm-fs-body); line-height: 1.5; color: var(--pm-text-muted); }
.pm-faq__a p { margin: 0 0 var(--pm-space-2); }
.pm-faq-ol { margin: 6px 0 var(--pm-space-3); padding-left: 18px; }
.pm-faq-ol li { margin: var(--pm-space-1) 0; line-height: 1.5; color: var(--pm-text-muted); font-size: var(--pm-fs-body); }

/* Перелинковка moat в конце страницы */
.pm-related-moat { margin: 18px 0 var(--pm-space-2); padding: 14px 0 0; border-top: 1px solid var(--pm-border); }
.pm-related-moat__h { margin: 0 0 10px; font-size: var(--pm-fs-sm); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pm-text-faint); }
.pm-related-moat__row { display: flex; flex-wrap: wrap; gap: var(--pm-space-2); }
.pm-related-moat__a {
	display: inline-flex; align-items: center; padding: var(--pm-space-2) var(--pm-space-3);
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	background: var(--pm-surface); font-size: var(--pm-fs-md); font-weight: 600; color: var(--pm-text); text-decoration: none;
}
.pm-related-moat__a:hover { border-color: var(--pm-pink-soft); color: var(--pm-pink-deep); }

/* Квиз: moat-ссылки под результатом */
.pm-quiz__moat { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pm-space-2) 14px; margin-top: var(--pm-space-1); }
.pm-quiz__moat a { font-size: var(--pm-fs-md); font-weight: 600; color: var(--pm-pink-deep); text-decoration: none; }
.pm-quiz__moat a:hover { color: var(--pm-pink); }
.pm-footer-copy a { color: var(--pm-text-faint); margin: 0 2px; }
.pm-footer-copy a:hover { color: var(--pm-pink); }

/* P1 лендинги: карточки объёмов / семейств */
.pm-p1-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pm-space-3); margin-top: var(--pm-space-3); }
.pm-p1-cards--fam { grid-template-columns: repeat(2, 1fr); }
.pm-p1-card {
	display: flex; flex-direction: column; gap: var(--pm-space-1); padding: var(--pm-space-4) 18px;
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-surface);
	color: var(--pm-text); text-decoration: none; transition: border-color .15s, transform .15s;
}
.pm-p1-card:hover { border-color: var(--pm-pink-soft); transform: translateY(-2px); color: var(--pm-text); }
.pm-p1-card__k { font-family: var(--pm-font-display); font-weight: 600; font-size: 28px; line-height: 1; color: var(--pm-pink-deep); }
.pm-p1-card__t { font-weight: 700; font-size: var(--pm-fs-body-plus); }
.pm-p1-card__d { font-size: var(--pm-fs-md); line-height: 1.4; color: var(--pm-text-muted); }
.pm-p1-card__n { margin-top: var(--pm-space-1); font-size: var(--pm-fs-sm); color: var(--pm-text-faint); font-weight: 600; }
.pm-p1-card--fam { min-height: 110px; }
@media (max-width: 640px) {
	.pm-p1-cards { grid-template-columns: 1fr; }
	.pm-p1-cards--fam { grid-template-columns: 1fr; }
}

/* Moat-strip на главной */
.pm-moat-strip { padding-top: 10px; padding-bottom: var(--pm-space-2); }
.pm-moat-links {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.pm-moat-link {
	display: flex; flex-direction: column; gap: 2px; padding: var(--pm-space-3) 14px;
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	background: var(--pm-surface); color: inherit; text-decoration: none;
	position: relative;
	transition: border-color .15s, background .15s, transform .15s;
}
.pm-moat-link:hover { border-color: var(--pm-pink-soft); background: var(--pm-pink-wash); color: inherit; transform: translateY(-1px); }
.pm-moat-link b { font-family: var(--pm-font-display); font-weight: 600; font-size: var(--pm-fs-lg); color: var(--pm-text); line-height: 1.2; padding-right: 14px; }
.pm-moat-link span { font-size: var(--pm-fs-sm); line-height: 1.35; color: var(--pm-text-muted); }
.pm-moat-link::after {
	content: "→";
	position: absolute;
	top: var(--pm-space-3);
	right: var(--pm-space-3);
	font-size: var(--pm-fs-body);
	line-height: 1;
	color: var(--pm-pink);
	opacity: .55;
	transition: opacity .15s, transform .15s;
}
.pm-moat-link:hover::after { opacity: 1; transform: translateX(2px); }
@media (max-width: 760px) {
	.pm-moat-links { grid-template-columns: 1fr 1fr; gap: var(--pm-space-2); }
	.pm-moat-link { padding: 10px var(--pm-space-3); }
	.pm-moat-link b { font-size: var(--pm-fs-body); }
}

/* Moat: сравнение / шаги / таблица / калькулятор */
.pm-moat-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pm-space-3); margin: 14px 0 18px; }
.pm-moat-step { padding: 14px var(--pm-space-4); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-surface); }
.pm-moat-step span { display: block; font-family: var(--pm-font-display); font-size: 22px; color: var(--pm-pink-soft); line-height: 1; margin-bottom: var(--pm-space-1); }
.pm-moat-step b { display: block; font-size: var(--pm-fs-body); margin-bottom: var(--pm-space-1); color: var(--pm-text); }
.pm-moat-step p { margin: 0; font-size: var(--pm-fs-md); line-height: 1.4; color: var(--pm-text-muted); }
.pm-vs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pm-vs__col { padding: 18px 18px var(--pm-space-4); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-surface); }
.pm-vs__col--alt { background: var(--pm-pink-wash); }
.pm-vs__col h2 { font-family: var(--pm-font-display); font-weight: 600; font-size: 22px; margin: 0 0 10px; }
.pm-vs__col ul { margin: 0 0 14px; padding-left: 18px; }
.pm-vs__col li { margin: var(--pm-space-1) 0; font-size: var(--pm-fs-body); line-height: 1.45; color: var(--pm-text-muted); }
.pm-table-wrap { overflow-x: auto; margin: 10px 0 var(--pm-space-2); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); }
.pm-table { width: 100%; border-collapse: collapse; font-size: var(--pm-fs-md); }
.pm-table th, .pm-table td { padding: 10px var(--pm-space-3); text-align: left; border-bottom: 1px solid var(--pm-border); }
.pm-table th { background: var(--pm-bg-2); font-size: var(--pm-fs-xs); text-transform: uppercase; letter-spacing: .04em; color: var(--pm-text-faint); }
.pm-table tr:last-child td { border-bottom: 0; }
.pm-table-note { font-size: var(--pm-fs-sm); color: var(--pm-text-faint); margin-top: 0; }
.pm-calc { display: flex; flex-wrap: wrap; gap: var(--pm-space-3) 18px; align-items: end; padding: 14px var(--pm-space-4); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-bg-2); }
.pm-calc label { display: flex; flex-direction: column; gap: var(--pm-space-1); font-size: var(--pm-fs-sm); font-weight: 600; color: var(--pm-text-muted); }
.pm-calc input { min-width: 120px; padding: 10px var(--pm-space-3); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); font: inherit; font-size: var(--pm-fs-body); color: var(--pm-text); background: var(--pm-surface); }
.pm-calc__out { margin: 0; font-size: var(--pm-fs-lg); color: var(--pm-text); }
.pm-calc__out strong { color: var(--pm-pink-deep); font-size: 22px; }
.pm-blog-list { display: grid; gap: 14px; margin: var(--pm-space-3) 0 var(--pm-space-6); }
.pm-blog-card { display: block; padding: var(--pm-space-4) 18px; border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-surface); color: inherit; }
.pm-blog-card:hover { border-color: var(--pm-pink-soft); color: inherit; }
.pm-blog-card__t { font-family: var(--pm-font-display); font-weight: 600; font-size: 20px; margin: 0 0 6px; color: var(--pm-text); }
.pm-blog-card__x { margin: 0; font-size: var(--pm-fs-body); line-height: 1.45; color: var(--pm-text-muted); }

/* Архив блога (Kadence loop) */
body.blog .content-area,
body.archive.category .content-area { margin-top: var(--pm-space-1) !important; margin-bottom: 28px !important; }
body.blog .entry-hero .entry-header,
body.archive.category .entry-hero .entry-header { padding: var(--pm-space-2) 0 var(--pm-space-1) !important; min-height: 0 !important; }
body.blog .entry-hero .entry-title,
body.archive.category .entry-hero .entry-title { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(24px, 3vw, 34px); margin: 0; }
body.blog .entry.content-bg,
body.archive.category .entry.content-bg { margin-bottom: var(--pm-space-3); padding: 14px var(--pm-space-4); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-surface); }
body.blog .entry-taxonomies,
body.archive.category .entry-taxonomies { margin: 0 0 var(--pm-space-1); }
body.blog .entry-taxonomies a,
body.archive.category .entry-taxonomies a { font-size: var(--pm-fs-xs); letter-spacing: .04em; text-transform: uppercase; color: var(--pm-pink-deep); font-weight: 600; }
body.blog .entry-title,
body.archive.category .loop-entry .entry-title { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(18px, 2.4vw, 22px); line-height: 1.2; margin: 0 0 var(--pm-space-1); }
body.blog .entry-meta,
body.archive.category .entry-meta { margin: 0 0 var(--pm-space-2); font-size: var(--pm-fs-sm); color: var(--pm-text-faint); }
body.blog .entry-meta .meta-label,
body.blog .entry-meta .author-avatar,
body.blog .entry-meta .posted-by,
body.archive.category .entry-meta .meta-label,
body.archive.category .entry-meta .author-avatar,
body.archive.category .entry-meta .posted-by { display: none; }
body.blog .entry-summary p,
body.archive.category .entry-summary p { margin: 0 0 var(--pm-space-2); font-size: var(--pm-fs-body); line-height: 1.45; color: var(--pm-text-muted); }
body.blog .entry-read-more,
body.archive.category .entry-read-more { font-size: var(--pm-fs-md); font-weight: 600; color: var(--pm-pink-deep); }

@media (max-width: 640px) {
	.pm-moat-steps, .pm-vs { grid-template-columns: 1fr; }
}

/* ---------- Футер ---------- */
.site-footer, .site-footer-wrap, #colophon { background: var(--pm-surface); border-top: 1px solid var(--pm-border); color: var(--pm-text-muted); }
.pm-footer {
	max-width: var(--pm-maxw);
	margin: 0 auto;
	padding: var(--pm-space-8) var(--pm-space-5);
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: var(--pm-space-6);
	align-items: start;
}
.pm-footer__phone {
	margin: 14px 0 6px;
	font-weight: 600;
	color: var(--pm-text);
}
.pm-footer__cb { margin: 0 0 10px; }
.pm-footer__cb-btn {
	border: 0;
	background: none;
	padding: 0;
	color: var(--pm-pink);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.pm-footer__cb-btn:hover { color: var(--pm-pink-deep); }
.pm-footer__messengers {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: 0 0 10px;
}
.pm-footer__messengers a {
	color: var(--pm-text-muted);
	font-size: var(--pm-fs-md);
	font-weight: 600;
}
.pm-footer__messengers a:hover { color: var(--pm-pink); }
.pm-footer__tag {
	margin: 0;
	color: var(--pm-text-faint);
	font-size: var(--pm-fs-md);
	line-height: 1.45;
	max-width: 28ch;
}
.pm-footer-quick,
.pm-footer-cloud,
.pm-footer-mini,
.pm-footer__hair,
.pm-dock { display: none; }
.pm-footer__heading {
	font-size: var(--pm-fs-body);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin: 0 0 var(--pm-space-4);
	font-weight: 700;
	color: var(--pm-text);
}
.pm-footer__list { list-style: none; margin: 0; padding: 0; }
.pm-footer__list li { margin-bottom: 9px; }
.pm-footer__list a { color: var(--pm-text-muted); font-size: var(--pm-fs-body); }
.pm-footer__list a:hover { color: var(--pm-pink); }
.pm-sitefooter svg { width: 17px; height: 17px; stroke: currentColor; fill: none; vertical-align: -3px; color: var(--pm-pink); }
.pm-footer__pay { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pm-pay { height: 26px; min-width: 40px; padding: 0 var(--pm-space-2); display: inline-flex; align-items: center; justify-content: center; background: var(--pm-surface); border: 1px solid var(--pm-border); border-radius: 5px; }
.pm-pay svg { height: 15px; width: auto; display: block; }
.pm-pay-word { font-weight: 800; font-size: var(--pm-fs-sm); line-height: 1; letter-spacing: .02em; font-style: normal; }
.pm-pay-word--visa { color: #1434cb; font-style: italic; letter-spacing: .05em; font-size: var(--pm-fs-sm); }
.pm-pay-word--mir { color: var(--pm-color-stock-ok); font-size: var(--pm-fs-md); }
.pm-pay-word--sbp { background: linear-gradient(95deg, #7b1fa2 0%, #e6196e 48%, #16a0dd 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.pm-pay-word--cdek { color: var(--pm-color-stock-ok-2); font-size: var(--pm-fs-xs); letter-spacing: .04em; }
.pm-pay-word--pochta { color: #2d2e83; font-size: 8px; line-height: 1.02; text-align: center; }
.pm-footer-bottom { border-top: 1px solid var(--pm-border); padding: 14px var(--pm-space-6); font-size: var(--pm-fs-md); color: var(--pm-text-faint); display: flex; align-items: center; justify-content: space-between; gap: var(--pm-space-3) 18px; flex-wrap: wrap; max-width: var(--pm-maxw); margin: 0 auto; }
.pm-footer-pay { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pm-footer-pay__label { font-size: var(--pm-fs-sm); color: var(--pm-text-faint); margin-right: var(--pm-space-1); }
@media (max-width: 860px){ .pm-footer-bottom { justify-content: center; text-align: center; } .pm-footer-pay { justify-content: center; width: 100%; } }
/* Планшет+мобайл W3 (≤860): компактный футер + плавающий док.
   Раньше док был только ≤600 — зона 601–860 оставалась с длинными колонками. */
@media (max-width: 860px){
	.pm-footer {
		grid-template-columns: 1fr;
		gap: 0;
		padding: var(--pm-space-5) var(--pm-space-4) var(--pm-space-2);
	}
	.pm-footer__col--brand {
		grid-column: auto;
		padding-bottom: 10px;
		text-align: center;
	}
	.pm-footer__col--brand .pm-logo { justify-content: center; }
	.pm-footer__hair {
		display: block;
		height: 1px;
		width: 42%;
		margin: var(--pm-space-3) auto 10px;
		background: linear-gradient(90deg, transparent, var(--pm-gold), transparent);
	}
	.pm-footer__tag {
		max-width: none;
		margin: 0 auto;
		font-size: var(--pm-fs-sm-plus);
	}
	.pm-footer__phone {
		margin: var(--pm-space-2) 0 6px;
		font-size: var(--pm-fs-body);
	}
	.pm-footer__messengers { justify-content: center; }
	.pm-footer__col--links { display: none; }
	.pm-footer-mini {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 6px;
		padding: var(--pm-space-1) 0 14px;
	}
	.pm-footer-mini__a {
		padding: 6px 11px;
		border-radius: var(--pm-radius-pill);
		background: var(--pm-color-neutral-bg);
		color: var(--pm-text-muted);
		font-size: var(--pm-fs-sm);
		font-weight: 500;
		text-decoration: none;
		line-height: 1.2;
	}
	.pm-footer-mini__a:hover,
	.pm-footer-mini__a:focus-visible {
		color: var(--pm-pink-deep);
		background: var(--pm-pink-wash);
	}
	.pm-sitefooter { padding-bottom: var(--pm-space-2); }
	body { padding-bottom: 72px; }
	.pm-dock {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 2px;
		position: fixed;
		left: 10px;
		right: 10px;
		bottom: calc(10px + env(safe-area-inset-bottom, 0px));
		z-index: 55;
		padding: 6px var(--pm-space-1) 5px;
		border-radius: 16px;
		border: 1px solid var(--pm-border);
		background: rgba(255,255,255,.94);
		-webkit-backdrop-filter: blur(12px);
		backdrop-filter: blur(12px);
		box-shadow: 0 10px 32px rgba(40, 20, 40, .14);
	}
	.pm-dock__a {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2px;
		padding: 6px 2px 5px;
		border-radius: 12px;
		text-decoration: none;
		color: var(--pm-text-muted);
		min-height: 48px;
		-webkit-tap-highlight-color: transparent;
	}
	.pm-dock__a--main {
		color: var(--pm-pink-deep);
	}
	.pm-dock__a.is-active {
		color: var(--pm-pink-deep);
		background: var(--pm-pink-wash);
	}
	.pm-dock__a--main:not(.is-active) {
		background: transparent;
	}
	.pm-dock__ic {
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 22px;
		height: 22px;
	}
	.pm-dock__ic svg {
		width: 20px;
		height: 20px;
		stroke: currentColor;
		fill: none;
		color: inherit;
		vertical-align: 0;
	}
	.pm-dock__t {
		font-size: 9.5px;
		font-weight: 600;
		letter-spacing: .01em;
		line-height: 1.1;
	}
	.pm-dock .pm-act__count,
	.pm-dock__badge {
		position: absolute;
		top: -5px;
		right: -var(--pm-space-2);
		min-width: 15px;
		height: 15px;
		padding: 0 var(--pm-space-1);
		border-radius: var(--pm-radius-pill);
		background: var(--pm-pink);
		color: var(--pm-on-pink);
		font-size: 9px;
		font-weight: 700;
		line-height: 15px;
		text-align: center;
	}
	/* PDP sticky ATC и чекаут — док прячем */
	body.single-product .pm-dock,
	body.woocommerce-checkout .pm-dock { display: none; }
	body.single-product,
	body.woocommerce-checkout { padding-bottom: 0; }
}

/* ============================================================
   ВАУ-СЛОЙ: люкс-детали и движение (Пакет 1)
   ============================================================ */

/* --- Reveal на скролле ---
   Важно: opacity:0 всё равно ловит клики. Пока нет .is-in - pointer-events:none,
   иначе «невидимые» промо/карточки перехватывают нажатия и «кнопка не реагирует». */
.pm-reveal {
	opacity: 0;
	transform: translateY(24px);
	pointer-events: none;
	transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
	will-change: opacity, transform;
}
.pm-reveal.is-in { opacity: 1; transform: none; pointer-events: auto; }
/* лёгкий стаггер для карточек в ряду */
.woocommerce ul.products li.product.pm-reveal:nth-child(2) { transition-delay: .06s; }
.woocommerce ul.products li.product.pm-reveal:nth-child(3) { transition-delay: .12s; }
.woocommerce ul.products li.product.pm-reveal:nth-child(4) { transition-delay: .18s; }
.pm-brand-logo.pm-reveal { transition-duration: .5s; }

/* --- Стеклянная липкая шапка с компрессией --- */
.pm-header { position: sticky; top: 0; z-index: 999; transition: box-shadow .25s, background .25s; }
.pm-header.is-stuck {
	background: color-mix(in srgb, var(--pm-surface) 82%, transparent);
	backdrop-filter: saturate(150%) blur(14px);
	box-shadow: var(--pm-shadow-md);
}
.pm-header .pm-bar { transition: padding .25s; }
.pm-header.is-stuck .pm-bar { padding-top: var(--pm-space-2); padding-bottom: var(--pm-space-2); }
.pm-header.is-stuck .pm-bar .pm-logo__img { height: 34px; }

/* --- Золотой хэйрлайн-акцент под заголовками секций --- */
.pm-section-title {
	position: relative; padding-bottom: var(--pm-space-3);
	font-family: var(--pm-font-display);
	font-weight: 600;
	letter-spacing: .01em;
}
.pm-section-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 54px; height: 2px; background: var(--pm-gold-line); }
.pm-section-title--center { padding-bottom: var(--pm-space-4); }
.pm-section-title--center::after { left: 50%; transform: translateX(-50%); width: 90px; }

/* --- Hero: бренд как главный сигнал, затем serif-заголовок --- */
.pm-hero__brand {
	position: relative;
	display: inline-block;
	padding-bottom: var(--pm-space-2);
}
.pm-hero__brand::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 56px;
	height: 2px;
	background: var(--pm-gold-line, linear-gradient(90deg, var(--pm-gold), transparent));
}
.pm-hero__eyebrow { position: relative; padding-left: 0; margin-top: var(--pm-space-1); }
.pm-hero__eyebrow::before { display: none; }
.pm-hero__title {
	font-family: var(--pm-font-display);
	text-transform: none;
	font-weight: 600;
	font-size: clamp(26px, 3.4vw, 40px);
	line-height: 1.08;
	letter-spacing: .005em;
}
.pm-hero__title .pm-accent { font-style: italic; color: var(--pm-pink); }
.pm-hero {
	background:
		radial-gradient(80% 120% at 85% 10%, rgba(215,165,156,.18), transparent 55%),
		var(--pm-grad-hero);
}

/* --- Карточки: лёгкая глубина, без золотой полосы --- */
.woocommerce ul.products li.product { box-shadow: var(--pm-shadow-sm); }
.woocommerce ul.products li.product:hover { box-shadow: var(--pm-shadow-md); transform: none; z-index: 4; }
/* кнопка "в корзину" мягко проявляется на hover (десктоп) */
/* Обёртка Kadence прятала и нашу кнопку «В корзину». Глушим только родную Woo. */
ul.products li.product .product-action-wrap {
	display: block !important;
	margin: 8px -10px -10px !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	grid-column: 1 / -1;
	/* НЕ width:100%. Отрицательные поля выше выводят док за паддинги .product-details, но
	   width:100% фиксирует ширину по контенту родителя - и наружу уезжает только левый край:
	   док вставал в 1px от левой кромки карточки и в 21px от правой. При width:auto блок сам
	   заполняет грид-область, а отрицательные поля расширяют его симметрично (1px/1px). */
	width: auto;
	justify-self: stretch;
}
ul.products li.product .product-action-wrap > a.button,
ul.products li.product .product-action-wrap > .added_to_cart,
ul.products li.product .product-action-wrap > .screen-reader-text {
	display: none !important;
}

/* ----- C3/C5: dock внизу - сегменты мл + «В корзину · цена» ----- */
.pm-card-buybox {
	display: flex;
	flex-direction: column;
	flex: 0 0 auto;
	gap: 6px;
	padding: 8px 10px 10px;
	margin: 0;
	width: 100%;
	box-sizing: border-box;
	position: relative;
	z-index: 4;
	border-top: 1px solid color-mix(in srgb, var(--pm-border) 80%, transparent);
	background: linear-gradient(180deg, color-mix(in srgb, var(--pm-bg-2) 55%, transparent), color-mix(in srgb, var(--pm-bg-2) 92%, #fff));
}
.pm-card-segs {
	display: flex;
	align-items: stretch;
	gap: 2px;
	padding: 2px;
	min-height: 37px;
	box-sizing: border-box;
	border-radius: var(--pm-radius-pill);
	background: color-mix(in srgb, var(--pm-surface) 70%, var(--pm-bg-2));
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pm-border) 70%, transparent);
}
.pm-card-segs--gap {
	visibility: hidden;
	background: none;
	box-shadow: none;
	min-height: 37px;
}
.pm-card-segs:not(:has(.pm-card-seg + .pm-card-seg)) .pm-card-seg {
	flex: 1 1 auto;
	width: 100%;
	text-align: center;
}
.pm-card-seg {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	padding: 5px 3px;
	border: 0;
	border-radius: var(--pm-radius-pill);
	background: transparent;
	color: var(--pm-text-muted);
	font: 700 10px/1.15 var(--pm-font-body, inherit);
	letter-spacing: .01em;
	cursor: pointer;
	transition: background .15s, color .15s, box-shadow .15s;
}
.pm-card-seg:hover { color: var(--pm-text); }
.pm-card-seg.is-on {
	background: var(--pm-surface);
	color: var(--pm-pink-deep);
	box-shadow: var(--pm-shadow-sm, 0 1px 3px rgba(40, 20, 30, .08));
}
.pm-card-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 36px;
	padding: 8px 10px;
	margin: 0;
	border: 0;
	border-radius: var(--pm-radius-pill);
	background: var(--pm-pink);
	color: var(--pm-on-pink) !important;
	font: 700 12px/1.2 var(--pm-font-body, inherit);
	text-align: center;
	text-decoration: none !important;
	white-space: nowrap;
	cursor: pointer;
	box-sizing: border-box;
	transition: background .15s, transform .15s, opacity .15s;
}
.pm-card-cta:hover {
	background: var(--pm-pink-deep);
	color: var(--pm-on-pink) !important;
}
.pm-card-cta:active { transform: scale(.98); }
.pm-card-cta.is-busy {
	opacity: .72;
	pointer-events: none;
}
.pm-card-cta.is-done {
	background: color-mix(in srgb, var(--pm-pink) 18%, #1a7a4c);
}
.pm-card-cta.is-disabled,
.pm-card-cta.disabled {
	opacity: .55;
	pointer-events: none;
	cursor: default;
}
.pm-card-cta--ghost {
	background: transparent;
	color: var(--pm-pink-deep) !important;
	box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--pm-pink) 55%, transparent);
}
.pm-card-cta--ghost:hover {
	background: var(--pm-pink-wash);
	color: var(--pm-pink-deep) !important;
}
/* При сегментах мл чип объёма дублирует - прячем */
.woocommerce ul.products li.product:has(.pm-card-segs:not(.pm-card-segs--gap)) .pm-chip--vol { display: none; }
@media (max-width: 640px) {
	.pm-card-buybox { padding: 0 8px 8px; gap: 5px; }
	.pm-card-seg { font-size: 9px; padding: 4px 2px; }
	.pm-card-cta { min-height: 34px; font-size: 11px; padding: 7px 8px; }
	/* На карточке 166px «В корзину · 18 490 ₽» режется до «рзину · 18 4».
	   Цена уже над кнопкой, в CTA оставляем только глагол. */
	.pm-card-cta__sum { display: none; }
}
/* У variable-товара родитель без SKU -> «Артикул: Н/Д». Прячем (SKU вариации показывается при выборе). */
/* SKU у variable: показываем, JS/Woo меняют на KOD выбранной вариации. */
.product_meta .sku_wrapper { font-size: var(--pm-fs-md); color: var(--pm-text-faint); }
.product_meta .sku { color: var(--pm-text); font-weight: 600; font-variant-numeric: tabular-nums; }
/* C3 buybox: объёмы + CTA внизу карточки (не hover-overlay). Старый product-action-wrap глушим. */
/* Kadence добавляет .product-details свой padding (content-bg) - убираем пустоту снизу.
   D3 body-pad + U2 grid: brand/title/rating full, чипы | цена внизу. */
.woocommerce ul.products li.product .product-details {
	padding: 8px 10px 10px !important;
	margin: 0 !important;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 8px;
	row-gap: 0;
	flex: 1 1 auto;
	min-height: 0;
	align-items: start;
	/* align-content по умолчанию (normal) для грида работает как stretch: свободную высоту
	   карточки он раздаёт строкам. У карточки с плашкой «N форматов» строк с содержимым
	   больше, и раздача идёт иначе - из-за этого цены в ряду расходились на 18px. Прижимаем
	   содержимое к верху и заводим отдельную растущую строку под док: слабина собирается
	   в ней, а не размазывается по всем строкам и не повисает под кнопкой. */
	align-content: start;
	grid-template-rows: repeat(6, auto) 1fr;
	position: relative;
	z-index: 1;
	background: var(--pm-surface);
}
/* Рейтинг на карточке разной длины ломает ряд - звёзды только на PDP. */
.woocommerce ul.products li.product .pm-card-rating { display: none !important; }

/* ============================================================================
   Карточка A+B (решение владельца 15.08). Что поменялось и почему - по данным
   выборки 80 живых карточек:
     ноты        100% товаров, но показывались ТОЛЬКО под курсором (на тач - никогда)
     ₽/мл         99% товаров, набран серым 10px как сноска
     форматы      25% товаров, а пустой слот-распорка занимал место у всех
     рейтинг       0% товаров - блок был мёртвым
   Итог: ноты выходят в тело карточки, ₽/мл поднимается в пилюлю с полосой выгоды,
   мёртвые слоты убраны. Раскладка задаётся явными строками грида - без этого
   элементы падают в неявные строки в порядке хуков и разъезжаются.
   ========================================================================== */
.woocommerce ul.products li.product .pm-card-brand {
	grid-row: 1; grid-column: 1;
	align-self: center;
	/* Одна строка всегда. В узкой карточке длинный бренд («12 PARFUMEURS») переносился на
	   вторую строку, строка грида росла с 22 до 31px, и весь текст с ценой уезжал вниз
	   относительно соседей - на мобиле это давало разброс 9px. Бренд здесь подпись, а не
	   контент: обрезать хвост допустимо, разъезжать ряд - нет. */
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.woocommerce ul.products li.product .pm-card-chips {
	grid-row: 1; grid-column: 2;
	justify-self: end;
	align-self: center;
	/* Высоту строки держим ВСЕГДА, даже когда чипа нет. Иначе у товара без концентрации
	   (или там, где чип спрятан) строка схлопывается, и весь текст с ценой уезжает вверх
	   относительно соседей - ряд разъезжается по высоте. */
	min-height: 22px;
	padding-top: 0;
	border-top: 0;
}
/* Семейство больше не отдельным чипом: его цвет теперь несут пилюли нот, а текстовая
   плашка на строке бренда не помещалась рядом с «Ароматические» + EDP. */
.woocommerce ul.products li.product .pm-card-chips .pm-chip--family { display: none; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { grid-row: 2; grid-column: 1 / -1; }
.pm-card-notes-row { grid-row: 3; grid-column: 1 / -1; }
.woocommerce ul.products li.product .price {
	grid-row: 4; grid-column: 1;
	justify-self: start;
	text-align: left;
	font-size: 17px !important;
	padding-top: 8px;
	/* Линия переехала на .pm-card-notes-row - см. комментарий там. */
	border-top: 0;
}
.woocommerce ul.products li.product .pm-price-per-ml {
	grid-row: 4; grid-column: 2;
	align-self: center;
	margin-top: 8px;
}
.pm-ppm-bar { grid-row: 5; grid-column: 1 / -1; }
.pm-card-formats, .pm-card-price-hint { grid-row: 6; grid-column: 1 / -1; }
/* Док - последний элемент грида карточки (Kadence оборачивает его в .product-action-wrap).
   Строка 7 растущая, док прижат к её низу: кнопки «В корзину» стоят на одной линии во всём
   ряду независимо от того, есть ли у товара плашка «N форматов». */
.woocommerce ul.products li.product .product-action-wrap {
	grid-row: 7;
	align-self: end;
}

/* ---- ноты строкой ---- */
.pm-card-notes-row {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	gap: 4px;
	margin: 6px 0 0;
	min-width: 0;
	/* Ровно две строки пилюль. Названия нот разной длины («дрок» против «зелёная банановая
	   кожура»): без фиксированной высоты примерно у 40% карточек ноты переносятся на вторую
	   строку, и цены в ряду встают на разной высоте - ряд выглядит расхлябанным. Ограничение
	   сверху нужно по той же причине: третья строка снова всё сдвинет.
	   54 = 45 (две строки пилюль) + 8 padding + 1 border: box-sizing тут border-box, и без
	   этой добавки рамка съела бы вторую строку нот. */
	min-height: 54px;
	max-height: 54px;
	padding-bottom: 8px;
	overflow: hidden;
	/* Разделитель живёт здесь, а не на .price: цена занимает только первую колонку грида,
	   и линия обрывалась на половине карточки - читалась как случайный обрубок. Строка нот
	   растянута на 1/-1, поэтому линия идёт во всю ширину. */
	border-bottom: 1px solid color-mix(in srgb, var(--pm-border) 70%, transparent);
}
.pm-card-notes-row span {
	font-size: 10.5px;
	line-height: 1.3;
	padding: 2.5px 8px;
	border-radius: var(--pm-radius-pill);
	white-space: nowrap;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	background: color-mix(in srgb, var(--pm-fam, var(--pm-text-faint)) 11%, var(--pm-color-white));
	color: color-mix(in srgb, var(--pm-fam, var(--pm-color-ink-deep)) 62%, var(--pm-color-ink-deep));
	border: 1px solid color-mix(in srgb, var(--pm-fam, var(--pm-text-faint)) 22%, var(--pm-color-white));
}

/* ---- ₽/мл: из сноски в пилюлю ---- */
.woocommerce ul.products li.product .pm-price-per-ml {
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	padding: 5px 9px;
	border-radius: var(--pm-radius-pill);
	color: var(--pm-pink-deep);
	background: color-mix(in srgb, var(--pm-pink) 12%, var(--pm-color-white));
	border: 1px solid color-mix(in srgb, var(--pm-pink) 26%, var(--pm-color-white));
	font-variant-numeric: tabular-nums;
}
.woocommerce ul.products li.product .pm-price-per-ml--gap {
	visibility: hidden;
	border-color: transparent;
	background: none;
}

/* ---- полоса «выгода за мл» ----
   Ширину ставит store.js по всей странице. До этого блок скрыт атрибутом hidden:
   если на странице сравнивать не с чем (одна карточка или все ₽/мл равны), полосы
   не будет вовсе - пустая шкала врала бы больше, чем её отсутствие. */
.pm-ppm-bar {
	display: flex;
	align-items: center;
	gap: 7px;
	margin-top: 7px;
}
.pm-ppm-bar[hidden] { display: none; }
.pm-ppm-bar__track {
	flex: 1 1 auto;
	min-width: 0;
	height: 4px;
	border-radius: 4px;
	overflow: hidden;
	background: color-mix(in srgb, var(--pm-border) 85%, transparent);
}
/* display:block обязателен: инлайновый span игнорирует height, и полоса остаётся пустой. */
.pm-ppm-bar__fill {
	display: block;
	height: 100%;
	border-radius: 4px;
	width: var(--pm-ppm-w, 0%);
	background: linear-gradient(90deg, var(--pm-pink-soft, var(--pm-pink)), var(--pm-pink));
	transition: width .4s cubic-bezier(.2,.7,.2,1);
}

/* ---- мобильный: карточка ~166px, всё длинное обязано ужиматься ---- */
@media (max-width: 640px) {
	/* Пилюли нот в 166px ужимаются до «Чёрн…», «Б…» - до бессмыслицы. Разворачиваем в одну
	   текстовую строку: обрежется хвост, а первые (самые важные) ноты читаются целиком. */
	.pm-card-notes-row {
		display: block;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		font-size: 10px;
		color: var(--pm-text-faint);
		/* На мобиле ноты - одна текстовая строка, резерв под две пилюли не нужен. */
		min-height: 0;
		max-height: none;
		padding-bottom: 6px;
	}
	.pm-card-notes-row span {
		background: none;
		border: 0;
		padding: 0;
		color: inherit;
		font-size: inherit;
		max-width: none;
	}
	.pm-card-notes-row span + span::before { content: ' · '; }
	.woocommerce ul.products li.product .price { font-size: 15px !important; }
	/* Плашка ₽/мл сидела во второй колонке грида (она `auto`), и её ширина задавала колонку
	   для ВСЕХ строк - включая строку бренда. На узкой карточке бренду оставалось 83px из 174,
	   и 6 названий из 16 обрезались («ABERCROMBI…»). Растягиваем плашку на обе колонки и жмём
	   вправо: визуально она там же, но ширину второй колонки больше не диктует - её задаёт
	   только чип EDP/EDT. Элемент, пересекающий гибкую 1fr-дорожку, свой вклад отдаёт ей. */
	.woocommerce ul.products li.product .pm-price-per-ml {
		font-size: 10px; padding: 4px 7px;
		grid-column: 1 / -1; justify-self: end;
	}
	/* Цена в той же строке слева - страхуем от наезда на плашку, если цена шестизначная. */
	.woocommerce ul.products li.product .price { max-width: calc(100% - 84px); }
}

/* --- Промо: тонкая золотая рамка-акцент --- */
.pm-promo { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pm-gold) 18%, transparent); }
.pm-promo__pct { position: relative; z-index: 1; background: linear-gradient(120deg, var(--pm-pink), var(--pm-rosegold)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* --- Большой баннер: золотая черта над kicker/title --- */
.pm-bigbanner__kicker { position: relative; padding-top: 10px; }
.pm-bigbanner__kicker::before {
	content: ""; position: absolute; left: 0; top: 0; width: 64px; height: 2px;
	background: var(--pm-gold-line);
}

/* --- Бренды: разделители-точки золотом --- */
.pm-brands { gap: 26px 44px; }
.pm-brand-logo { position: relative; }

/* ---------- Хлебные крошки ---------- */
.pm-breadcrumbs { background: var(--pm-bg-2); border-bottom: 1px solid var(--pm-border); padding: var(--pm-space-3) 0; }

/* ---------- Хлебные крошки (Kadence + pm-bc) ---------- */
.kadence-breadcrumbs.pm-bc,
nav.kadence-breadcrumbs {
	display: block;
	max-width: var(--pm-maxw);
	margin: 0 auto;
	padding: var(--pm-space-2) var(--pm-space-5) 6px;
	font-family: var(--pm-font-body);
	font-size: var(--pm-fs-sm-plus);
	line-height: 1.3;
	letter-spacing: .01em;
	color: var(--pm-text-faint);
	background: transparent;
}
.pm-bc__inner,
.kadence-breadcrumb-container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 2px;
	min-width: 0;
}
.pm-bc__inner > span {
	flex: none;
	min-width: 0;
}
.kadence-breadcrumbs a {
	color: var(--pm-text-muted);
	font-weight: 500;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color .15s, border-color .15s, background .15s;
}
.kadence-breadcrumbs a:hover {
	color: var(--pm-pink-deep);
	border-bottom-color: var(--pm-pink-soft);
}
.kadence-breadcrumbs a.kadence-bc-home-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 6px;
	border-bottom: none;
	color: var(--pm-text-muted);
}
.kadence-breadcrumbs a.kadence-bc-home-icon:hover {
	color: var(--pm-pink-deep);
	background: var(--pm-pink-wash);
	border-bottom-color: transparent;
}
.kadence-breadcrumbs a.kadence-bc-home-icon svg {
	width: 16px;
	height: 16px;
	display: block;
	fill: currentColor;
}
.kadence-breadcrumbs .kadence-bc-home span {
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-size: var(--pm-fs-xs);
}
.pm-bc__sep,
.kadence-breadcrumbs .bc-delimiter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	flex: none;
	color: var(--pm-text-faint);
	opacity: .55;
}
.pm-bc__sep::before,
.kadence-breadcrumbs .bc-delimiter::before {
	content: "";
	width: 5px;
	height: 5px;
	border-right: 1.5px solid currentColor;
	border-top: 1.5px solid currentColor;
	transform: rotate(45deg);
}
.pm-bc__current,
.kadence-breadcrumbs .kadence-bread-current {
	display: inline-block;
	max-width: min(42ch, 70vw);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--pm-text);
	font-family: var(--pm-font-body);
	font-size: var(--pm-fs-md);
	font-weight: 600;
	font-style: normal;
	letter-spacing: .01em;
	line-height: 1.2;
	vertical-align: baseline;
	background: none;
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--pm-pink) 55%, transparent);
	padding: 0 0 1px;
	border-radius: 0;
	box-shadow: none;
}

/* Мобайл: одна линия-трейл, текущий — underline, без чипа */
@media (max-width: 640px) {
	.kadence-breadcrumbs.pm-bc,
	nav.kadence-breadcrumbs {
		padding: var(--pm-space-2) 0 6px;
		font-size: var(--pm-fs-sm);
	}
	.pm-bc__inner,
	.kadence-breadcrumb-container {
		flex-wrap: nowrap;
		gap: 0;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		overscroll-behavior-x: contain;
		scroll-snap-type: x proximity;
		padding: 0 var(--pm-space-4);
		/* Намёк, что путь длиннее: на узком экране store.js скроллит крошки к текущей
		   странице, поэтому начало пути уезжает влево намеренно. Маска сужена до 12px -
		   на 18px она съедала ещё и первую видимую букву. */
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 12px, #000 100%);
		mask-image: linear-gradient(90deg, transparent, #000 12px, #000 100%);
	}
	.pm-bc__inner::-webkit-scrollbar,
	.kadence-breadcrumb-container::-webkit-scrollbar { display: none; }
	.pm-bc__inner > span {
		white-space: nowrap;
		scroll-snap-align: start;
	}
	.kadence-breadcrumbs a:not(.kadence-bc-home-icon) {
		display: inline-flex;
		align-items: center;
		min-height: 28px;
		padding: 0 2px;
		border-bottom: none;
		font-size: var(--pm-fs-sm);
		font-weight: 600;
		letter-spacing: .01em;
		color: var(--pm-text-muted);
	}
	.kadence-breadcrumbs a:not(.kadence-bc-home-icon):hover,
	.kadence-breadcrumbs a:not(.kadence-bc-home-icon):active {
		color: var(--pm-pink-deep);
		background: transparent;
	}
	.kadence-breadcrumbs a.kadence-bc-home-icon {
		width: 28px;
		height: 28px;
		border-radius: 8px;
		background: var(--pm-surface);
		border: 1px solid var(--pm-border);
		box-shadow: 0 1px 0 rgba(40, 25, 40, .04);
	}
	.kadence-breadcrumbs a.kadence-bc-home-icon svg {
		width: 14px;
		height: 14px;
	}
	.pm-bc__sep,
	.kadence-breadcrumbs .bc-delimiter {
		width: 14px;
		height: 28px;
		opacity: .4;
	}
	.pm-bc__sep::before,
	.kadence-breadcrumbs .bc-delimiter::before {
		width: 4px;
		height: 4px;
	}
	.pm-bc__current,
	.kadence-breadcrumbs .kadence-bread-current {
		display: inline-flex;
		align-items: center;
		max-width: min(48ch, 55vw);
		min-height: 28px;
		margin-left: 2px;
		padding: 0 0 1px;
		border-radius: 0;
		background: none;
		border: 0;
		border-bottom: 1px solid color-mix(in srgb, var(--pm-pink) 55%, transparent);
		color: var(--pm-text);
		font-family: var(--pm-font-body);
		font-size: var(--pm-fs-sm);
		font-weight: 600;
		font-style: normal;
		letter-spacing: .01em;
		line-height: 1.2;
		box-shadow: none;
		scroll-snap-align: end;
	}
}

/* Alphabet-бар брендов на PDP шумит рядом с крошками - только каталог/архивы. */
body.single-product .pm-brandbar { display: none !important; }

.pm-bc { font-size: var(--pm-fs-md); color: var(--pm-text-faint); }
.pm-bc a { color: var(--pm-text-muted); }
.pm-bc a:hover { color: var(--pm-pink); }
.pm-bc-sep { color: var(--pm-border); margin: 0 2px; }

/* ============================================================
   SINGLE-СТРАНИЦА ТОВАРА
   ============================================================ */
.pm-single-brand { display: block; font-size: var(--pm-fs-sm); letter-spacing: .1em; text-transform: uppercase; color: var(--pm-text-faint); font-weight: 600; margin-bottom: var(--pm-space-1); text-decoration: none; }
a.pm-single-brand:hover { color: var(--pm-text); }
.woocommerce div.product .product_title { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(24px, 3vw, 34px); line-height: 1.1; margin: 0 0 var(--pm-space-2) !important; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--pm-text) !important; font-weight: 700; margin-bottom: var(--pm-space-1) !important; }
.pm-single-vol { display: block; font-size: var(--pm-fs-md); color: var(--pm-text-faint); margin: -2px 0 4px; }
.pm-single-ppm { display: block; font-size: var(--pm-fs-md); color: var(--pm-text-faint); margin: -2px 0 var(--pm-space-3); }
.pm-single-vol + .pm-single-ppm { margin-top: 0; }
.single-product .product_meta .sku_wrapper { display: none; }

/* Buy-path A: ноты чипами под H1 */
.pm-scent-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.pm-scent-chip {
	font-size: var(--pm-fs-xs); font-weight: 600; color: var(--pm-text-muted);
	background: var(--pm-bg-2); border-radius: var(--pm-radius-pill); padding: var(--pm-space-1) 10px;
}
/* Нота окрашена своей ольфакторной семьёй: класс pm-fam-* (общий с пирамидой) даёт
 * --pm-dot/--pm-ink, из них строим заливку, обводку и точку. */
.pm-scent-chip--fam {
	display: inline-flex; align-items: center; gap: 6px;
	background: color-mix(in srgb, var(--pm-dot) 14%, var(--pm-surface));
	border: 1px solid color-mix(in srgb, var(--pm-dot) 30%, transparent);
	color: var(--pm-ink);
}
.pm-scent-chip--fam::before {
	content: ""; flex: none;
	width: var(--pm-chip-dot-size); height: var(--pm-chip-dot-size);
	border-radius: 50%; background: var(--pm-dot);
}
/* Концентрация - не запах, а характеристика: пунктир вместо заливки. */
.pm-scent-chip--conc {
	background: var(--pm-surface);
	border: 1px dashed var(--pm-color-gray-border);
	text-transform: uppercase; letter-spacing: var(--pm-track-wide);
}

/* Вариант 7 (тест): тёмная прайс-плашка */
.pm-price-band { position: relative; overflow: hidden; margin: var(--pm-space-1) 0 var(--pm-space-4); padding: 15px var(--pm-space-4) 14px; border-radius: 12px;
	background: var(--pm-color-panel-ink-2); color: var(--pm-on-pink); }
.pm-price-band::before { content: ""; position: absolute; inset: 0;
	background: radial-gradient(120% 80% at 92% 0, color-mix(in srgb, var(--pm-pink) 35%, transparent), transparent 60%); pointer-events: none; }
.pm-price-band > * { position: relative; }
.pm-price-band__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.pm-price-band__main { display: flex; flex-direction: column; gap: 3px; }
.pm-price-band__amount { font-size: 30px; font-weight: 700; line-height: 1; color: var(--pm-on-pink); white-space: nowrap; }
.pm-price-band__amount .woocommerce-Price-amount { color: var(--pm-on-pink); }
.pm-price-band__meta { font-size: var(--pm-fs-sm-plus); color: var(--pm-color-gray-border); letter-spacing: .01em; }
.pm-price-band__meta:empty { display: none; }
/* Строка цены после выбора объёма: текущая, зачёркнутая старая, экономия числом. */
.pm-price-band__amount { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--pm-space-2); }
.pm-price-band__now { font-weight: 700; }
.pm-price-band__old {
	font-size: var(--pm-fs-lg); font-weight: 400; color: var(--pm-color-silver);
	text-decoration: line-through;
}
.pm-price-band__save {
	font-size: var(--pm-fs-sm); font-weight: 700; white-space: nowrap;
	padding: 2px var(--pm-space-2); border-radius: var(--pm-radius-pill);
	background: var(--pm-pink); color: var(--pm-on-pink);
}
/* Наличие: в точке решения «отправим сегодня» весомее ещё одного эпитета о цене. */
.pm-price-band__stock {
	display: inline-flex; align-items: center; gap: 6px; margin-top: var(--pm-space-2);
	font-size: var(--pm-fs-sm); font-weight: 600; color: var(--pm-pink-glow);
}
.pm-price-band__stock::before {
	content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pm-color-stock-ok);
}
/* Дубль цены Woo снимается фильтром `woocommerce_available_variation` (пустой price_html),
 * а не стилями: правило внутри формы проигрывало теме через раз из-за кэша ассетов. */
.pm-price-band__badge { flex: none; font-size: var(--pm-fs-xs); font-weight: 600; color: var(--pm-color-soft-pink-mid); white-space: nowrap;
	padding-bottom: 2px; }
.pm-price-band__hint { margin-top: 11px; padding-top: 11px; font-size: var(--pm-fs-sm); color: var(--pm-color-gray-border-2);
	border-top: 1px solid color-mix(in srgb, var(--pm-gold) 45%, transparent); }
.pm-single-decant { display: inline-block; font-size: var(--pm-fs-sm); font-weight: 600; letter-spacing: .02em; color: var(--pm-pink-deep); background: var(--pm-pink-wash); border-radius: var(--pm-radius-pill); padding: 3px 11px; margin: 0 0 10px; }
.woocommerce div.product .woocommerce-product-details__short-description { margin: 0 0 var(--pm-space-3); font-size: var(--pm-fs-body); line-height: 1.45; color: var(--pm-text-muted); }
.woocommerce div.product .woocommerce-product-details__short-description p { margin: 0; }
.pm-desc-more { display: inline; white-space: nowrap; color: var(--pm-pink-deep); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--pm-pink-wash); }
.pm-desc-more:hover { border-bottom-color: var(--pm-pink-deep); }

/* Распив: пилюли выбора объёма (заменяют нативный dropdown вариаций).
   Подпись всегда НАД пилюлями (как «Другие форматы») — иначе th слева съедает ряд. */
.woocommerce div.product form.cart .variations { margin-bottom: 6px; width: 100%; }
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr {
	display: block; width: 100%;
}
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
	display: block; width: 100%; padding: 0; border: none; vertical-align: top;
}
.woocommerce div.product form.cart .variations th.label {
	width: 100%; padding: 0 0 var(--pm-space-2); white-space: normal;
}
.woocommerce div.product form.cart .variations td.value {
	width: 100%; padding: 0;
}
.woocommerce div.product form.cart .variations .reset_variations { display: none !important; }
/* Volume plates: объём + цена (центр); ₽/мл и выгода — meta под рядом.
   position: relative — якорь для .pm-hint__pop у пилюли-уценки.
   --four: 4 пластины в один ряд на ~390 (min-width: 0). */
.pm-volpills {
	display: flex; flex-wrap: nowrap; gap: 6px; align-items: stretch;
	position: relative; width: 100%; margin: 0 0 var(--pm-space-1);
}
.pm-volpills--four .pm-volpill-wrap { flex: 1 1 0; min-width: 0; }
.pm-volpills--two { flex-wrap: wrap; }
.pm-volpills--two .pm-volpill-wrap { flex: 0 1 auto; }
.pm-volpill-wrap { display: inline-flex; align-items: center; gap: 3px; min-width: 0; }
.pm-volpill-wrap .pm-hint.pm-hint { margin: 0; align-self: center; flex: none; }
.pm-volpill {
	flex: 1; min-width: 0;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
	padding: 7px var(--pm-space-2); min-height: var(--pm-touch-min);
	border: 1.5px solid var(--pm-border); border-radius: var(--pm-radius-md); background: var(--pm-surface);
	cursor: pointer; font-family: var(--pm-font-body); text-align: center;
	line-height: 1.2;
	transition: border-color var(--pm-dur-fast) var(--pm-ease-std), background var(--pm-dur-fast) var(--pm-ease-std);
	color: var(--pm-text); box-shadow: none;
}
.pm-volpills--two .pm-volpill { min-width: 92px; padding: 7px var(--pm-space-3); }
/* Kadence global button:hover/:focus заливает розовым + color: var(--pm-on-pink) — текст пропадает.
   Специфичность (0,2,1) бьёт `button:hover` (0,1,1). */
.pm-volpill:hover,
.pm-volpill:focus,
.pm-volpill:active {
	border-color: var(--pm-border-active);
	background: var(--pm-surface);
	color: var(--pm-text);
	box-shadow: none;
}
.pm-volpill:focus-visible {
	outline: none;
	box-shadow: var(--pm-focus-ring);
}
.pm-volpill.is-on,
.pm-volpill.is-on:hover,
.pm-volpill.is-on:focus,
.pm-volpill.is-on:active {
	border-color: var(--pm-border-active);
	background: var(--pm-bg-selected);
	color: var(--pm-text-selected);
}
.pm-volpill__v {
	font-weight: 700; font-size: var(--pm-fs-sm-plus); font-family: var(--pm-font-head); color: var(--pm-text);
	line-height: 1.15; letter-spacing: .01em;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%;
}
.pm-volpill__p {
	font-weight: 600; font-size: var(--pm-fs-xs); color: var(--pm-pink-deep); line-height: 1.2;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%;
}
.pm-volpill:hover .pm-volpill__v,
.pm-volpill:focus .pm-volpill__v,
.pm-volpill.is-on .pm-volpill__v { color: var(--pm-text); }
.pm-volpill:hover .pm-volpill__p,
.pm-volpill:focus .pm-volpill__p,
.pm-volpill.is-on .pm-volpill__p { color: var(--pm-pink-deep); }
.pm-volpill:hover .pm-volpill__cond,
.pm-volpill:focus .pm-volpill__cond,
.pm-volpill.is-on .pm-volpill__cond { color: var(--pm-color-cond-gold); }
/* ===== Лестница выгоды: ₽/мл и полоса внутри пластины =====
 * Полоса показывает ВЫГОДУ за мл относительно самого дорогого миллилитра в наборе:
 * длиннее = дешевле мл. Обратная полярность (длина растёт с ценой) читается наоборот
 * смыслу - у самого невыгодного пробника полоса была бы во всю ширину. */
/* Сетка 2 колонки: объём и цена расходятся по краям верхней строки,
 * ₽/мл и полоса идут во всю ширину под ними. */
.pm-volpills--ladder .pm-volpill {
	display: grid; grid-template-columns: 1fr auto; align-items: baseline;
	text-align: left; gap: 2px var(--pm-space-2); padding: var(--pm-space-2) 10px;
}
.pm-volpills--ladder .pm-volpill__p { justify-self: end; }
.pm-volpills--ladder .pm-volpill__ppm,
.pm-volpills--ladder .pm-volpill__track,
.pm-volpills--ladder .pm-volpill__cond { grid-column: 1 / -1; }
.pm-volpill__ppm {
	display: flex; align-items: center; justify-content: space-between; gap: 4px; flex-wrap: wrap;
	min-height: 1em;
	font-size: var(--pm-fs-2xs); font-weight: 500; color: var(--pm-text-muted); line-height: 1.3;
}
.pm-volpill__delta {
	font-style: normal; font-weight: 700; white-space: nowrap;
	padding: 1px 6px; border-radius: var(--pm-radius-pill);
	background: color-mix(in srgb, var(--pm-success) 14%, transparent); color: var(--pm-success);
}
.pm-volpill__delta.is-best { background: var(--pm-success); color: var(--pm-on-ink); }
.pm-volpill__track {
	display: block; height: 3px; margin-top: 1px;
	border-radius: var(--pm-radius-pill); background: var(--pm-bg-3); overflow: hidden;
}
.pm-volpill__fill {
	display: block; height: 100%; width: var(--pm-fill, 0%);
	border-radius: var(--pm-radius-pill); background: var(--pm-pink-subtle);
}
.pm-volpill__fill.is-best { background: var(--pm-success); }
/* На телефоне четыре пластины в один ряд дают ~80px на штуку - «2 мл» и «800 ₽»
 * в одну строку туда не влезают. Лестница переносится в 2×2. */
@media (max-width: 640px) {
	.pm-volpills--ladder { flex-wrap: wrap; }
	.pm-volpills--ladder .pm-volpill-wrap { flex: 1 1 calc(50% - 3px); }
}

/* Микро-бейдж уценки внутри (3-я строка); −N ₽ и ₽/мл — в .pm-volpills-meta. */
.pm-volpill__cond {
	font-size: 8px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	color: var(--pm-color-cond-gold); line-height: 1; margin-top: 1px; padding: 1px 0;
}
.pm-volpills:has(.pm-volpill__cond) .pm-volpill { min-height: 48px; }
.pm-volpills-meta {
	font-size: var(--pm-fs-sm); color: var(--pm-text-faint); margin: 6px 0 10px; min-height: 18px; line-height: 1.35;
}
.pm-volpills-meta__ppm { color: var(--pm-text-muted); font-weight: 600; }
.pm-volpills-meta__save { color: var(--pm-color-cond-gold); font-weight: 600; }
.pm-volpills-meta__sep { color: var(--pm-text-faint); }
@media (min-width: 782px) {
	.pm-volpill { padding: 9px 14px; min-height: 48px; }
	.pm-volpills--two .pm-volpill { min-width: 110px; }
	.pm-volpill__v { font-size: var(--pm-fs-md); }
	.pm-volpill__p { font-size: var(--pm-fs-sm-plus); }
	.pm-volpills:has(.pm-volpill__cond) .pm-volpill { min-height: 52px; }
}
/* Пульс-подсказка: «В корзину» нажали без выбора объёма. */
@keyframes pm-vp-pulse { 0%, 100% { transform: none; } 35% { transform: scale(1.03); } }
.pm-volpills--pulse .pm-volpill { animation: pm-vp-pulse .5s ease; border-color: var(--pm-pink); background: var(--pm-pink-wash); }

/* ---------- Быстрый просмотр (модалка) ---------- */
.pm-qvm { position: fixed; inset: 0; z-index: 100010; display: none; }
.pm-qvm.is-open { display: block; }
.pm-qvm__ov { position: absolute; inset: 0; background: rgba(30,20,28,.5); }
.pm-qvm__box {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
	width: min(860px, 94vw); max-height: 90vh; overflow-y: auto;
	background: var(--pm-surface);
	border-radius: var(--pm-radius-xl);
	box-shadow: var(--pm-shadow-lg);
	animation: pm-qvm-in var(--pm-dur-mid) var(--pm-ease-out);
}
@keyframes pm-qvm-in { from { opacity: 0; transform: translate(-50%,-46%); } to { opacity: 1; transform: translate(-50%,-50%); } }
.pm-qvm__close { position: absolute; right: 14px; top: var(--pm-space-3); z-index: 2; width: 38px; height: 38px; border: none; background: rgba(255,255,255,.92); border-radius: 50%; font-size: 26px; line-height: 1; color: var(--pm-text-faint); cursor: pointer; box-shadow: var(--pm-shadow-soft); }
.pm-qvm__close:hover { color: var(--pm-pink); }
.pm-qvm__body { display: grid; grid-template-columns: minmax(0, 42%) 1fr; min-height: 220px; }
.pm-qvm__spin { grid-column: 1 / -1; width: 44px; height: 44px; margin: 80px auto; border: 3px solid var(--pm-color-soft-ring); border-top-color: var(--pm-pink); border-radius: 50%; animation: pm-spin .8s linear infinite; }
.pm-qvm__err { grid-column: 1 / -1; padding: 50px; text-align: center; color: var(--pm-text-faint); }
.pm-qv-modal__media { background: var(--pm-pink-wash); display: flex; align-items: center; justify-content: center; padding: 28px; border-radius: 20px 0 0 20px; }
.pm-qv-modal__media img { max-width: 100%; height: auto; border-radius: 8px; }
.pm-qv-modal__info { padding: 34px 34px 30px; }
.pm-qv-modal__brand { display: block; font-size: var(--pm-fs-sm); letter-spacing: .08em; text-transform: uppercase; color: var(--pm-text-faint); font-weight: 600; margin-bottom: 6px; }
.pm-qv-modal__title { font-family: var(--pm-font-display); font-weight: 600; font-size: 26px; margin: 0 0 10px; line-height: 1.15; }
.pm-qv-modal__rating { display: flex; align-items: center; gap: 6px; margin-bottom: var(--pm-space-3); }
.pm-qv-modal__rating .star-rating { font-size: var(--pm-fs-md); color: var(--pm-gold); margin: 0; }
.pm-qv-modal__rating span { font-size: var(--pm-fs-sm); color: var(--pm-text-faint); }
.pm-qv-modal__price { font-family: var(--pm-font-head); font-weight: 800; font-size: 22px; color: var(--pm-text); }
.pm-qv-modal__price del { color: var(--pm-text-faint); font-weight: 400; font-size: var(--pm-fs-lg); }
.pm-qv-modal__ppm { font-size: var(--pm-fs-md); color: var(--pm-text-faint); margin-top: 2px; }
.pm-qv-modal__notes { margin: var(--pm-space-4) 0 22px; }
.pm-qv-modal__fam { display: block; font-size: var(--pm-fs-md); color: var(--pm-text-muted); margin-bottom: var(--pm-space-2); }
.pm-qv-modal__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pm-qv-modal__actions { display: flex; flex-direction: column; gap: var(--pm-space-3); align-items: center; }
.pm-qv-modal__actions .pm-btn { width: 100%; text-align: center; }
.pm-qv-modal__actions .pm-btn.is-disabled { opacity: .5; pointer-events: none; }
.pm-qv-modal__more { font-size: var(--pm-fs-body); color: var(--pm-pink-deep); font-weight: 600; }
.pm-qv-modal__more:hover { color: var(--pm-pink); }
@media (max-width: 640px) {
	.pm-qvm__body { grid-template-columns: 1fr; }
	.pm-qv-modal__media { border-radius: 20px 20px 0 0; padding: var(--pm-space-5); }
	.pm-qv-modal__info { padding: 22px; }
	.pm-qv-modal__title { font-size: 22px; }
}

/* Пирамида нот + характер — досье Aurora (тайминг + continuous bars, радужная шапка) */
.pm-pyramid,
.pm-char {
	margin: var(--pm-section-gap) 0 0;
	padding: 0;
	border: none;
	border-radius: var(--pm-radius-xl);
	background: var(--pm-surface);
	box-shadow: var(--pm-shadow-md);
	position: relative;
	overflow: hidden;
}
.pm-pyramid::before,
.pm-char::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 5px;
	background: linear-gradient(90deg, var(--pm-pink) 0%, var(--pm-color-soft-pink-edge) 25%, var(--pm-gold) 50%, var(--pm-color-cool-1) 75%, var(--pm-color-cool-2) 100%);
	z-index: 1;
}
.pm-pyr__inner,
.pm-char__inner {
	padding: var(--pm-space-4) var(--pm-space-4) var(--pm-subsection-gap);
	position: relative;
	z-index: 1;
}

.pm-pyr__eyebrow,
.pm-char__eyebrow {
	display: inline-block;
	margin-bottom: 6px;
	padding: 3px var(--pm-space-2);
	border-radius: var(--pm-radius-pill);
	background: var(--pm-color-panel-ink-2);
	color: var(--pm-color-soft-pink-mid);
	font-size: var(--pm-fs-2xs);
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.pm-pyr__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pm-space-2);
	margin-bottom: var(--pm-space-1);
}
.pm-pyr__title,
.pm-char__title {
	font-family: var(--pm-font-display);
	font-size: 19px;
	font-weight: 600;
	margin: 0;
}
.pm-char__title { margin-bottom: var(--pm-space-3); }
.pm-pyr__fam {
	flex: none;
	font-size: var(--pm-fs-2xs);
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--pm-color-cond-gold);
	padding: 3px 9px;
	border-radius: var(--pm-radius-pill);
	background: var(--pm-color-gold-wash);
	border: 1px solid rgba(120, 100, 40, .16);
	white-space: nowrap;
}

.pm-pyr__journey {
	display: grid;
	gap: 0;
	margin: var(--pm-space-2) 0 0 2px;
	padding-left: 10px;
	border-left: 2px solid var(--pm-color-soft-rose);
}
.pm-pyr__step {
	display: grid;
	/* Колонка подписи тянется за своим текстом, а не заперта в 56px: при увеличенном
	   минимальном размере шрифта в браузере «СЕРДЦЕ»/«характер» вылезали за колонку и
	   наезжали на чипы нот (при 14px вылет 16px, при 16px - 26px). */
	grid-template-columns: auto 1fr;
	gap: 10px;
	padding: 10px 0 10px var(--pm-space-1);
	border-bottom: 1px solid var(--pm-color-soft-lilac);
	position: relative;
}
.pm-pyr__step:last-child { border-bottom: 0; }
.pm-pyr__step::before {
	content: "";
	position: absolute;
	left: -14px;
	top: 14px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--pm-pink);
	box-shadow: 0 0 0 3px var(--pm-pink-wash);
}
.pm-pyr__when {
	/* Ширина в ch, а не в px: растёт вместе со шрифтом, поэтому три яруса остаются
	   выровненными по левому краю чипов при любом размере текста. */
	width: 8.5ch;
	min-width: 56px;
	font-size: var(--pm-fs-2xs);
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pm-text-faint, var(--pm-color-gray-chip));
	padding-top: 2px;
	overflow-wrap: anywhere;
}
.pm-pyr__when small {
	display: block;
	margin-top: 2px;
	font-size: var(--pm-fs-2xs);
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--pm-text-muted);
}
.pm-pyr__notes { display: flex; flex-wrap: wrap; gap: 5px; align-content: flex-start; min-width: 0; }
/* На телефоне ярус в одну колонку: подпись строкой над нотами. В две колонки подпись
   забирала ~136px из 390 (при крупном шрифте), и ноты вставали по одной в строку. */
@media (max-width: 560px) {
	.pm-pyr__step { grid-template-columns: 1fr; gap: var(--pm-space-1); padding-left: 2px; }
	.pm-pyr__when { width: auto; min-width: 0; display: flex; align-items: baseline; gap: 7px; padding-top: 0; }
	.pm-pyr__when small { display: inline; margin: 0; }
	/* Капсулы плотнее: цвет семейства несёт рейка слева, точка перед словом дублировала её
	   и забирала 11px на каждой капсуле. На узком экране это два лишних ряда в ярусе. */
	.pm-pyr__notes { gap: var(--pm-space-1); }
	.pm-pyr__chip { gap: 0; padding: 3px 9px 3px 7px; box-shadow: inset 4px 0 0 var(--pm-dot, var(--pm-fam-neutral-dot)); }
	.pm-pyr__chip::before { display: none; }
}

.pm-pyr__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: var(--pm-space-1) 10px var(--pm-space-1) var(--pm-space-2);
	border-radius: var(--pm-radius-pill);
	font-size: var(--pm-fs-sm);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	background: var(--pm-surface);
	color: var(--pm-ink, var(--pm-color-panel-ink-3));
	border: 1px solid color-mix(in srgb, var(--pm-dot, var(--pm-fam-neutral-dot)) 42%, var(--pm-color-gray-border-3));
	box-shadow: inset 3px 0 0 var(--pm-dot, var(--pm-fam-neutral-dot));
	white-space: nowrap;
	position: relative;
	transition: transform .12s, box-shadow .12s;
}
.pm-pyr__chip::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--pm-dot, var(--pm-fam-neutral-dot));
	flex: none;
}
.pm-pyr__chip.is-key {
	background: color-mix(in srgb, var(--pm-dot, var(--pm-fam-neutral-dot)) 14%, var(--pm-color-white));
	border-color: color-mix(in srgb, var(--pm-dot, var(--pm-fam-neutral-dot)) 52%, var(--pm-color-white));
	font-weight: 800;
}
.pm-pyr__chip:hover,
.pm-pyr__chip.is-open {
	transform: translateY(-1px);
	box-shadow: inset 3px 0 0 var(--pm-dot, var(--pm-fam-neutral-dot)), 0 4px 12px color-mix(in srgb, var(--pm-dot, var(--pm-fam-neutral-dot)) 26%, transparent);
}

.pm-pyr__tip {
	display: none;
	position: absolute;
	left: 50%;
	bottom: calc(100% + var(--pm-space-2));
	transform: translateX(-50%);
	z-index: 8;
	width: max-content;
	max-width: min(210px, 78vw);
	padding: var(--pm-space-2) 10px;
	border-radius: 10px;
	background: var(--pm-color-panel-ink-3);
	color: var(--pm-on-pink);
	font-size: var(--pm-fs-xs);
	font-weight: 500;
	line-height: 1.35;
	box-shadow: 0 10px 28px rgba(30, 30, 40, .25);
	text-align: left;
	white-space: normal;
	cursor: default;
}
.pm-pyr__tip::after {
	content: "";
	position: absolute;
	left: var(--pm-tip-arrow, 50%);
	top: 100%;
	transform: translateX(-50%);
	border: 6px solid transparent;
	border-top-color: var(--pm-color-panel-ink-3);
}
.pm-pyr__tip b {
	display: block;
	font-size: var(--pm-fs-2xs);
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pm-color-soft-pink-mid);
	margin-bottom: 2px;
}
.pm-pyr__chip:hover .pm-pyr__tip,
.pm-pyr__chip.is-open .pm-pyr__tip { display: block; }

/* 12 ольфакторных цвет-семей: --pm-dot = точка/бордер/тень, --pm-ink = текст чипа */
.pm-fam-citrus       { --pm-dot: var(--pm-fam-citrus-dot); --pm-ink: var(--pm-fam-citrus-ink); }
.pm-fam-fruit        { --pm-dot: var(--pm-fam-fruit-dot); --pm-ink: var(--pm-fam-fruit-ink); }
.pm-fam-white-floral { --pm-dot: var(--pm-fam-white-floral-dot); --pm-ink: var(--pm-fam-white-floral-ink); }
.pm-fam-floral       { --pm-dot: var(--pm-fam-floral-dot); --pm-ink: var(--pm-fam-floral-ink); }
.pm-fam-green        { --pm-dot: var(--pm-fam-green-dot); --pm-ink: var(--pm-fam-green-ink); }
.pm-fam-spice        { --pm-dot: var(--pm-fam-spice-dot); --pm-ink: var(--pm-fam-spice-ink); }
.pm-fam-wood         { --pm-dot: var(--pm-fam-wood-dot); --pm-ink: var(--pm-fam-wood-ink); }
.pm-fam-amber        { --pm-dot: var(--pm-fam-amber-dot); --pm-ink: var(--pm-fam-amber-ink); }
.pm-fam-sweet        { --pm-dot: var(--pm-fam-sweet-dot); --pm-ink: var(--pm-fam-sweet-ink); }
.pm-fam-musk         { --pm-dot: var(--pm-fam-musk-dot); --pm-ink: var(--pm-fam-musk-ink); }
.pm-fam-moss         { --pm-dot: var(--pm-fam-moss-dot); --pm-ink: var(--pm-fam-moss-ink); }
.pm-fam-aqua         { --pm-dot: var(--pm-fam-aqua-dot); --pm-ink: var(--pm-fam-aqua-ink); }
.pm-fam-neutral      { --pm-dot: var(--pm-fam-neutral-dot); --pm-ink: var(--pm-fam-neutral-ink); }

/* Чип ноты в quickview-модалке (оставлен как был) */
.pm-note-chip {
	display: inline-block;
	padding: var(--pm-chip-pad-y) var(--pm-chip-pad-x);
	border-radius: var(--pm-chip-radius);
	background: var(--pm-pink-wash);
	color: var(--pm-color-note-ink);
	font-size: var(--pm-chip-fs);
	font-weight: 500;
	transition: background var(--pm-dur-fast) var(--pm-ease-std), color var(--pm-dur-fast) var(--pm-ease-std);
	text-decoration: none;
}
a.pm-note-chip:hover { background: var(--pm-pink-soft); color: var(--pm-on-pink); }
.pm-note-chip:hover { background: var(--pm-pink-soft); color: var(--pm-on-pink); }

/* Характер — досье */
.pm-char__meter {
	display: grid;
	/* Та же история, что в пирамиде: колонка подписи росла не вместе с текстом, и при
	   увеличенном минимальном шрифте браузера «Стойкость» наезжала на полосу (при 16px
	   вылет 20px). Ширина в ch держит подписи выровненными при любом размере. */
	grid-template-columns: auto 1fr auto;
	gap: var(--pm-space-2);
	align-items: center;
	margin: 0 0 var(--pm-space-2);
}
.pm-char__meter b { width: 9.5ch; min-width: 72px; overflow-wrap: anywhere; font-size: var(--pm-fs-xs); font-weight: 800; }
.pm-char__meter span { font-size: var(--pm-fs-xs); font-weight: 700; color: var(--pm-pink-deep); white-space: nowrap; }
.pm-char__bar {
	height: 8px;
	border-radius: var(--pm-radius-pill);
	background: var(--pm-color-soft-lilac);
	overflow: hidden;
}
.pm-char__bar u {
	display: block;
	height: 100%;
	width: var(--pm-fill, 0%);
	border-radius: inherit;
	text-decoration: none;
}
.pm-char__bar--warm u { background: linear-gradient(90deg, var(--pm-pink), var(--pm-gold)); }
.pm-char__bar--cool u { background: linear-gradient(90deg, var(--pm-color-cool-1), var(--pm-color-cool-2)); }

.pm-char__cap {
	font-size: var(--pm-fs-2xs);
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pm-text-faint);
	margin: 10px 0 6px;
}
.pm-char__seasons {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
	margin: 0 0 var(--pm-space-1);
}
.pm-char__sea {
	text-align: center;
	padding: var(--pm-space-2) var(--pm-space-1) 7px;
	border-radius: 10px;
	border: 1.5px solid transparent;
	background: var(--pm-color-quiz-lilac);
}
.pm-char__sea-n {
	display: block;
	font-size: var(--pm-fs-2xs);
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--pm-text-faint);
	margin-bottom: 5px;
}
.pm-char__dots {
	display: flex;
	gap: 3px;
	justify-content: center;
}
.pm-char__dots i {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--pm-color-gray-border-2);
}
.pm-char__dots i.on { background: var(--pm-color-gray-border); }
.pm-char__sea--off {
	opacity: .4;
	background: var(--pm-color-quiz-lilac);
}
.pm-char__sea--off .pm-char__sea-n { color: var(--pm-fam-neutral-dot); }
.pm-char__sea--mid {
	background: var(--pm-color-powder-6);
}
.pm-char__sea--mid .pm-char__sea-n { color: var(--pm-text-muted); }
.pm-char__sea--hot {
	background: var(--pm-pink-wash, var(--pm-pink-wash));
	border-color: var(--pm-pink);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--pm-pink) 25%, transparent);
}
.pm-char__sea--hot .pm-char__sea-n {
	color: var(--pm-pink-deep);
	font-weight: 800;
}
.pm-char__sea--hot .pm-char__dots i.on { background: var(--pm-pink); }

.pm-char__time { display: flex; gap: 6px; margin: 0 0 var(--pm-space-1); }
.pm-char__pill {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 9px var(--pm-space-2);
	border-radius: 10px;
	font-size: var(--pm-fs-sm);
	font-weight: 700;
	color: var(--pm-color-gray-chip);
	background: var(--pm-color-muted-bg);
	border: 1.5px solid transparent;
	opacity: .55;
}
.pm-char__pill.on {
	opacity: 1;
	font-weight: 800;
}
.pm-char__pill--day.on {
	background: linear-gradient(135deg, var(--pm-color-gold-wash-2), var(--pm-color-gold-wash-3));
	color: var(--pm-fam-citrus-ink);
	border-color: var(--pm-fam-amber-dot);
	box-shadow: 0 2px 8px rgba(200, 150, 60, .18);
}
.pm-char__pill--eve.on {
	background: linear-gradient(135deg, var(--pm-color-violet-deep), var(--pm-color-violet-deep-2));
	color: var(--pm-color-violet-soft-2);
	border-color: var(--pm-color-violet-deep);
	box-shadow: 0 2px 8px rgba(40, 20, 50, .2);
}

.pm-char__occ { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--pm-space-1); }
.pm-char__occ span {
	font-size: var(--pm-fs-xs);
	font-weight: 600;
	padding: 5px 10px;
	border-radius: var(--pm-radius-pill);
	background: linear-gradient(135deg, var(--pm-color-violet-soft), var(--pm-color-violet-soft-2));
	color: var(--pm-color-panel-wine);
	border: none;
}
.pm-char__src { margin: var(--pm-space-3) 0 0; font-size: var(--pm-fs-2xs); color: var(--pm-text-faint); }
.pm-char__src a { color: var(--pm-pink-deep); text-decoration: none; }

/* Состояние товара (тестер / уценка) на странице товара */
.pm-condition { display: flex; gap: var(--pm-space-3); align-items: flex-start; margin: 2px 0 18px; padding: var(--pm-space-3) 14px; border-radius: var(--pm-radius); background: var(--pm-bg-2); border: 1px solid var(--pm-border); }
.pm-condition .pm-badge { flex: none; margin-top: 1px; }
.pm-condition__note { font-size: var(--pm-fs-md); line-height: 1.5; color: var(--pm-text-muted); }
.pm-condition--damaged, .pm-condition--nobox, .pm-condition--tester { background: var(--pm-color-gold-wash-2); border-color: var(--pm-color-gold-wash); }

/* Переключатель форматов (соседние SKU) */
/* position: relative - точка отсчёта для .pm-hint__pop, см. ниже. */
.pm-variants { margin: var(--pm-space-3) 0 var(--pm-space-1); position: relative; }
.pm-variants__label { display: block; font-size: var(--pm-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--pm-text-faint); margin-bottom: var(--pm-space-2); }
.pm-variants__hint { display: none; }
.pm-variants__opts { display: flex; flex-wrap: wrap; gap: var(--pm-space-2); }
.pm-variant { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; min-width: 76px; padding: 7px var(--pm-space-3); border: 1.5px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-surface); color: var(--pm-text); transition: border-color .15s, box-shadow .15s, transform .15s; cursor: pointer; }
a.pm-variant:hover { border-color: var(--pm-pink); box-shadow: var(--pm-shadow-soft); transform: translateY(-1px); }
.pm-variant.is-active { border-color: var(--pm-pink); background: var(--pm-pink-wash); box-shadow: inset 0 0 0 1px var(--pm-pink); cursor: default; }
.pm-variant__vol { font-weight: 700; font-size: var(--pm-fs-body-plus); font-family: var(--pm-font-head); line-height: 1.1; }
.pm-variant__tag { font-size: var(--pm-fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--pm-pink); }
.pm-variant__tag--mute { color: var(--pm-text-faint); font-weight: 600; }
.pm-variant__price { font-size: var(--pm-fs-md); color: var(--pm-text-muted); font-weight: 600; }
/* Подпись Woo «Выберите объём» над пилюлями - визуально отделена от «Другие форматы». */
.variations_form .variations .label label {
	font-size: var(--pm-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--pm-text-faint);
}
.pm-variant__price .amount { color: inherit; }
.pm-variant.is-oos { opacity: .5; }
.pm-variant.is-oos .pm-variant__vol { text-decoration: line-through; }

/* Сноска «?» у чипа уценки/пробника.
   Кнопка - сосед чипа-ссылки (внутрь <a> её класть нельзя), поэтому нужна обёртка.
   Открывается по :hover и по :focus - тап на тач-экране даёт фокус, hover там не бывает. */
.pm-variant-wrap { display: inline-flex; align-items: flex-start; gap: 3px; }
/* Класс удвоен ради веса (0,2,0): Kadence красит любой <button> в розовый правилом (0,1,1),
   и на одинарном .pm-hint (0,1,0) получался розовый «?» на розовом залитом кружке. */
.pm-hint.pm-hint {
	flex: none; margin: 3px 0 0; padding: 0;
	width: 15px; height: 15px; min-width: 0; min-height: 0; border-radius: 50%;
	display: grid; place-items: center;
	border: 1px solid var(--pm-border); background: var(--pm-surface); color: var(--pm-text-faint);
	font-family: var(--pm-font-head); font-size: var(--pm-fs-2xs); font-weight: 800; line-height: 1;
	box-shadow: none; text-transform: none; letter-spacing: 0;
	cursor: help; transition: color .15s, border-color .15s;
}
.pm-hint.pm-hint:hover, .pm-hint.pm-hint:focus {
	background: var(--pm-surface); color: var(--pm-pink); border-color: var(--pm-pink); outline: none; transform: none;
}
/* Подсказка привязана к .pm-variants, а НЕ к чипу: чип узкий (76px) и стоит в произвольном
   месте ряда, поэтому подсказка шириной 264px гарантированно вылезала за край экрана - вправо
   или влево, смотря какой чип. Блок форматов занимает всю колонку, от его левого края текст
   всегда помещается. */
.pm-hint__pop {
	position: absolute; top: 100%; left: 0; margin-top: var(--pm-space-2); transform: translateY(-3px);
	z-index: 40; width: max-content; max-width: min(320px, 100%);
	padding: 10px var(--pm-space-3); border-radius: var(--pm-radius);
	background: var(--pm-color-panel-ink-5); color: var(--pm-on-pink); font-size: var(--pm-fs-sm); line-height: 1.45; font-weight: 400;
	text-align: left; text-transform: none; letter-spacing: 0;
	box-shadow: var(--pm-shadow-lg);
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity .16s, transform .16s, visibility .16s;
}
/* Триггер - только сама кнопка: на :hover всей обёртки подсказка лезла бы каждый раз, когда
   курсор просто идёт к чипу, чтобы кликнуть. */
.pm-hint:hover + .pm-hint__pop,
.pm-hint:focus + .pm-hint__pop {
	opacity: 1; visibility: visible; transform: translateY(0);
}

/* Карточка каталога: подсказка о числе форматов в группе.
   Слот всегда в разметке (пустой или с текстом), иначе карточки пляшут по высоте. */
.pm-card-formats {
	display: inline-flex; align-items: center; gap: 5px; margin-top: var(--pm-space-2);
	padding: 3px 10px 3px 9px; font-size: var(--pm-fs-2xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
	color: var(--pm-pink); background: var(--pm-pink-wash); border-radius: var(--pm-radius-pill);
	grid-column: 1 / -1;
	min-height: 22px;
	box-sizing: border-box;
	justify-self: start;
}
.pm-card-formats--gap {
	visibility: hidden;
	background: none;
}
.pm-card-formats::before {
	content: ""; width: 10px; height: 10px; flex: none; background: currentColor;
	-webkit-mask: var(--pm-ic-layers) center / contain no-repeat; mask: var(--pm-ic-layers) center / contain no-repeat;
	--pm-ic-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 2 7l10 5 10-5zM2 12l10 5 10-5M2 17l10 5 10-5' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* CTA распива */
.pm-split-cta { display: flex; gap: 10px; align-items: flex-start; margin: 14px 0; padding: var(--pm-space-3) 14px; border-radius: var(--pm-radius); background: var(--pm-pink-wash); font-size: var(--pm-fs-md); line-height: 1.4; }
.pm-split-cta__ic { flex: none; color: var(--pm-pink); }
.pm-split-cta__ic svg { width: 22px; height: 22px; stroke: currentColor; fill: none; }
.pm-split-cta a { color: var(--pm-pink-deep); font-weight: 700; white-space: nowrap; }

/* Блок доверия - полноширинная полоса под галереей+саммари */
.woocommerce div.product .pm-trust { grid-column: 1 / -1; }
.pm-trust {
	list-style: none; margin: 18px 0 0; padding: var(--pm-space-4) var(--pm-space-5);
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	background: linear-gradient(180deg, var(--pm-color-white), var(--pm-bg-2));
	display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pm-space-4);
}
.pm-trust li { display: flex; gap: 10px; align-items: center; }
.pm-trust li + li { border-left: 1px solid var(--pm-border); padding-left: var(--pm-space-4); }
@media (max-width: 760px){
	.pm-trust { grid-template-columns: 1fr; gap: var(--pm-space-3); padding: 14px; }
	.pm-trust li + li { border-left: none; padding-left: 0; }
}
.pm-trust__ic { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--pm-pink-wash); display: flex; align-items: center; justify-content: center; color: var(--pm-pink); }
.pm-trust__ic svg { width: 17px; height: 17px; stroke: currentColor; fill: none; }
.pm-trust__t { display: block; font-weight: 700; font-size: var(--pm-fs-md); }
a.pm-trust__t { color: var(--pm-text); text-decoration: none; }
a.pm-trust__t:hover { color: var(--pm-pink-deep); }
.pm-trust__d { display: block; color: var(--pm-text-faint); font-size: var(--pm-fs-sm); line-height: 1.4; }

/* PDP: перелинковка на moat */
.woocommerce div.product .pm-help-links { grid-column: 1 / -1; margin: var(--pm-space-2) 0 var(--pm-space-1); padding: 14px var(--pm-space-4); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-bg-2); }
.pm-help-links__h { margin: 0 0 10px; font-size: var(--pm-fs-sm); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pm-text-faint); }
.pm-help-links__row { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--pm-space-2); }
.pm-help-links__a {
	display: flex; flex-direction: column; gap: 2px; padding: 10px var(--pm-space-3);
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-surface);
	color: inherit; text-decoration: none;
}
.pm-help-links__a:hover { border-color: var(--pm-pink-soft); color: inherit; }
.pm-help-links__a b { font-size: var(--pm-fs-md); font-weight: 700; color: var(--pm-text); line-height: 1.25; }
.pm-help-links__a span { font-size: var(--pm-fs-xs); line-height: 1.3; color: var(--pm-text-muted); }
@media (max-width: 860px) {
	.pm-help-links__row { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px) {
	.pm-help-links { padding: var(--pm-space-3); }
	.pm-help-links__row { grid-template-columns: 1fr 1fr; gap: 6px; }
	.pm-help-links__a { padding: var(--pm-space-2) 10px; }
}

.woocommerce div.product .pm-yadro-flankers,
.woocommerce div.product .pm-yadro-compare { grid-column: 1 / -1; margin: 0 0 var(--pm-space-2); }
.pm-yadro-compare__t { margin: 0 0 8px; font-size: var(--pm-fs-sm); line-height: 1.4; color: var(--pm-text-muted); }

.pm-yadro-rail { margin: 0 0 var(--pm-space-3); padding: 12px var(--pm-space-3); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); background: var(--pm-bg-2); }
.pm-yadro-rail__h { margin: 0 0 8px; font-size: var(--pm-fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pm-text-faint); }
.pm-yadro-rail__row { display: flex; flex-wrap: wrap; gap: 8px; }
.pm-yadro-rail__a { display: inline-block; padding: 6px 12px; border: 1px solid var(--pm-border); border-radius: 999px; font-size: var(--pm-fs-sm); font-weight: 600; color: var(--pm-text); text-decoration: none; }
.pm-yadro-rail__a:hover { border-color: var(--pm-pink-soft); color: var(--pm-pink); }

/* Layout single: фото слева (липкое) + саммари справа, табы/похожие на всю ширину */
.woocommerce div.product {
	margin-top: var(--pm-space-1);
	display: grid !important;
	grid-template-columns: minmax(0, 44%) minmax(0, 1fr) !important;
	column-gap: 36px !important; row-gap: 0 !important; align-items: start;
}
.woocommerce div.product .pm-gallery-wrap {
	grid-column: 1; grid-row: 1; align-self: start;
	position: relative;
	min-width: 0;
}
.woocommerce div.product .woocommerce-product-gallery {
	float: none !important; width: auto !important; margin: 0 !important;
	padding: 0 !important;
	position: relative;
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius-lg); background: var(--pm-surface); padding: 28px;
}
/* Саммари охватывает оба ряда правой колонки, пирамида нот встаёт под фото слева -
   колонки уплотняются, не остаётся пустоты под фото. */
.woocommerce div.product .entry-summary { grid-column: 2; grid-row: 1; }
/* Пирамида и «Характер» - во втором ряду бок о бок, растянуты на одинаковую высоту (вровень).
   Ярусы пирамиды распределяются по вертикали, поэтому короткая карточка заполняется ровно. */
.woocommerce div.product .pm-pyramid { grid-column: 1; grid-row: 2; align-self: stretch; margin: var(--pm-section-gap) 0 0; display: flex; flex-direction: column; }
.woocommerce div.product .pm-char { grid-column: 2; grid-row: 2; align-self: stretch; margin: var(--pm-section-gap) 0 0; display: flex; flex-direction: column; }
.woocommerce div.product .pm-pyramid .pm-pyr__inner,
.woocommerce div.product .pm-char .pm-char__inner { flex: 1 1 auto; display: flex; flex-direction: column; }
.woocommerce div.product .pm-pyramid .pm-pyr__journey { flex: 1 1 auto; }
.woocommerce div.product .pm-char .pm-char__src { margin-top: auto; padding-top: var(--pm-space-3); }
.woocommerce div.product .woocommerce-product-gallery__wrapper { display: flex; align-items: center; justify-content: center; margin: 0; }
.woocommerce div.product .woocommerce-product-gallery__image { width: 100%; }
.woocommerce div.product .woocommerce-product-gallery img {
	width: auto !important; max-width: 100%; max-height: 440px; margin: 0 auto; border: none; border-radius: 0; background: transparent;
}
.woocommerce div.product .woocommerce-product-gallery a.woocommerce-product-gallery__trigger {
	top: 56px !important;
	right: 12px !important;
}
.woocommerce div.product .pm-gallery-wrap .pm-wish--card {
	top: 12px;
	right: 12px;
	z-index: 7;
}
.woocommerce div.product .entry-summary { float: none !important; width: auto !important; margin: 0 !important; padding: 0; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells,
.woocommerce div.product .pm-recent { grid-column: 1 / -1; }
/* На PDP секция уже внутри контейнера товара. Внутренний .pm-container
   повторно сжимал ленту до левой колонки (546px вместо 1242). */
.woocommerce div.product .pm-recent > .pm-container {
	width: 100%;
	max-width: none;
	padding-inline: 0;
	margin: 0;
}
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 14px; }
@media (max-width: 860px){
	.woocommerce div.product { display: block !important; }
	.woocommerce div.product .woocommerce-product-gallery { position: relative; }
	.woocommerce div.product .pm-gallery-wrap { position: relative; }
	.woocommerce div.product .entry-summary { margin-top: 14px !important; }
	.woocommerce div.product .woocommerce-product-gallery__wrapper { display: block; }
	.woocommerce div.product .woocommerce-product-gallery img { width: 100%; height: auto; max-height: none; }
}

/* Количество + кнопка покупки */
.woocommerce div.product form.cart { display: flex; gap: 10px; align-items: center; margin: 14px 0; }
/* Вариативный товар (распив): пилюли объёма над строкой qty+кнопка, а не в две колонки -
   иначе на мобайле пилюли жмутся в узкий столбец, а кнопку «В корзину» обрезает до «В». */
.woocommerce div.product form.cart.variations_form { display: block; }
.woocommerce div.product form.cart.variations_form .woocommerce-variation-add-to-cart { display: flex; gap: 10px; align-items: center; }
.woocommerce div.product form.cart .quantity { margin: 0; }
.woocommerce .quantity input.qty {
	height: 44px; width: 68px; border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	text-align: center; font-weight: 600; background: var(--pm-surface);
}
.woocommerce div.product .single_add_to_cart_button { height: 44px; padding: 0 28px !important; font-size: var(--pm-fs-md) !important; }

/* Табы */
.woocommerce div.product .woocommerce-tabs { margin-top: 10px; }
/* wrap + overflow: у Woo на списке табов стоит overflow:hidden, и при крупном шрифте
   «Отзывы» уезжали за край - вкладка становилась недоступной. Переносим в две строки. */
.woocommerce div.product .woocommerce-tabs ul.tabs { margin: 0 0 var(--pm-space-4); padding: 0; border-bottom: 1px solid var(--pm-border); display: flex; flex-wrap: wrap; overflow: visible; gap: 2px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent !important; border: none !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block; padding: var(--pm-space-3) var(--pm-space-5); font-weight: 700; font-size: var(--pm-fs-md); text-transform: uppercase;
	letter-spacing: .03em; color: var(--pm-text-faint); border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--pm-pink); border-bottom-color: var(--pm-pink); }
.woocommerce div.product .woocommerce-Tabs-panel h2 { font-family: var(--pm-font-display); font-weight: 600; font-size: 22px; margin: 0 0 var(--pm-space-3); }

/* Похожие / апселлы */
.woocommerce .related.products, .woocommerce .upsells.products { margin-top: var(--pm-space-6); padding-top: var(--pm-space-5); border-top: 1px solid var(--pm-border); }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 {
	font-size: 22px; font-weight: 700; margin-bottom: var(--pm-space-4); position: relative; padding-bottom: var(--pm-space-2);
}
.woocommerce .related.products > h2::after,
.woocommerce .upsells.products > h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 54px; height: 2px; background: var(--pm-gold-line); }
.pm-related-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--pm-space-3); flex-wrap: wrap; margin: 0 0 14px; }
.pm-related-head h2 {
	font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(20px, 2.4vw, 26px);
	margin: 0; position: relative; padding-bottom: var(--pm-space-2);
}
.pm-related-head h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 54px; height: 2px; background: var(--pm-gold-line); }
.pm-related-head__a { font-size: var(--pm-fs-md); font-weight: 600; color: var(--pm-pink-deep); text-decoration: none; white-space: nowrap; }
.pm-related-head__a:hover { color: var(--pm-pink); }

/* CusRev на PDP */
.woocommerce #reviews .star-rating,
.woocommerce .cr-summaryBox-wrap .star-rating { color: var(--pm-pink-deep); }
.woocommerce #review_form #respond .form-submit input {
	background: var(--pm-cta-ink); color: var(--pm-on-ink); border: 0;
	border-radius: var(--pm-radius-pill); padding: 10px 18px; font-weight: 700;
}

/* ---------- Фасетные фильтры: сайдбар (десктоп) + bottom-sheet (мобайл) ---------- */
/* Раскладка каталога в сайдбар - только на десктопе и только когда есть панель фасетов. */
@media (min-width: 861px){
	.site-main:has(> .pm-facets){ display: grid; grid-template-columns: 240px minmax(0, 1fr); column-gap: 28px; align-items: start; }
	.site-main:has(> .pm-facets) > .pm-facets{ grid-column: 1; grid-row: 1 / 999; align-self: start; position: sticky; top: var(--pm-space-5); margin: 0; }
	.site-main:has(> .pm-facets) > *:not(.pm-facets){ grid-column: 2; min-width: 0; }
	/* Узкий сайдбар: семейства в 1 колонку - длинные имена («Ароматические») не режутся.
	   Спецификсть через .pm-facets, иначе дефолтное 2-col правило (позже в исходнике) перебивает. */
	.pm-facets .pm-facet--pills .pm-facet__list { grid-template-columns: 1fr; }
}
.pm-facets { margin: 0 0 var(--pm-space-5); font-size: var(--pm-fs-md); }
.pm-facets.is-loading .pm-filters { opacity: .6; pointer-events: none; }
.pm-filters { display: block; transition: opacity .18s; }
.pm-filters__head { display: none; }
.pm-filters__scroll { display: block; }

.pm-facet { padding: 15px 0; border-bottom: 1px solid var(--pm-border); }
.pm-facet:first-child { padding-top: 0; }
.pm-facet__title { font-size: var(--pm-fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; line-height: 1.4; color: var(--pm-text-faint); margin: 0 0 11px; }
.pm-facet__opt.is-hidden, .pm-facet__opt.pm-facet__opt--empty { display: none !important; }
.pm-facet__dot { width: 9px; height: 9px; border-radius: 50%; flex: none; line-height: 0; }
.pm-facet__name,
.pm-facet__cnt { line-height: 1.25; }

/* Тип: список (Бренд) */
.pm-facet__q {
	width: 100%;
	padding: var(--pm-field-pad-y) var(--pm-field-pad-x);
	margin: 0 0 var(--pm-space-2);
	border: 1px solid var(--pm-field-border);
	border-radius: var(--pm-field-radius);
	background: var(--pm-field-bg);
	font-family: var(--pm-font-body);
	font-size: var(--pm-fs-sm-plus);
	color: var(--pm-text);
}
.pm-facet__q::placeholder { color: var(--pm-field-placeholder); }
.pm-facet__q:focus { outline: none; border-color: var(--pm-field-border-focus); }
.pm-facet__q:focus-visible { outline: none; border-color: var(--pm-field-border-focus); box-shadow: var(--pm-focus-ring); }
/* Высота окна прокрутки - в единицах шрифта самого списка, а не в пикселях: при поднятом
   минимальном размере шрифта в браузере строки становятся выше, и фиксированные 188px
   резали последнюю строку пополам - выглядело как обрезка, а не как прокрутка.
   Формула: 7 строк (padding .74em + line-height 1.25em) + 6 промежутков по 1px. */
.pm-facet--list .pm-facet__list { display: flex; flex-direction: column; gap: 1px; font-size: var(--pm-fs-md); max-height: calc(7 * 1.99em + 6px); overflow-y: auto; padding-right: var(--pm-space-1); }
.pm-facet__list::-webkit-scrollbar { width: 5px; }
.pm-facet__list::-webkit-scrollbar-thumb { background: var(--pm-border); border-radius: 3px; }
/* padding в em, иначе высота строки растёт не пропорционально шрифту и окно прокрутки
   (оно считается в em) перестаёт попадать в целое число строк. */
.pm-facet--list .pm-facet__opt { display: flex; align-items: center; gap: 9px; padding: .37em .3em; font-size: var(--pm-fs-md); color: var(--pm-text); cursor: pointer; border-radius: 6px; }
.pm-facet--list .pm-facet__opt:hover { background: var(--pm-bg-2); }
.pm-facet--list .pm-facet__opt input { width: 16px; height: 16px; margin: 0; accent-color: var(--pm-pink); flex: none; }
.pm-facet--list .pm-facet__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-facet--list .pm-facet__opt.is-checked .pm-facet__name { font-weight: 600; color: var(--pm-text-selected-accent); }
.pm-facet--list .pm-facet__cnt { flex: none; font-size: var(--pm-fs-sm); color: var(--pm-text-faint); font-variant-numeric: tabular-nums; }

/* Тип: сегмент-контрол (Кому) */
.pm-facet--seg .pm-facet__list { display: flex; align-items: stretch; background: var(--pm-bg-2); border-radius: var(--pm-radius-pill); padding: 3px; }
.pm-facet--seg .pm-facet__opt {
	flex: 1; display: flex; align-items: center; justify-content: center;
	padding: var(--pm-space-2) var(--pm-space-1); border-radius: var(--pm-radius-pill); font-family: var(--pm-font-head); font-weight: 600;
	font-size: var(--pm-fs-sm); line-height: 1.2; color: var(--pm-text-faint); cursor: pointer; text-align: center; white-space: nowrap;
}
/* Счётчик прячем совсем, а инпут - только визуально (общее правило ниже, после чипов):
   display:none выкидывает его из таб-порядка, и фасет становится недоступен с клавиатуры.
   Замерено 19.08: у --seg, --pills и --chips было 0 фокусируемых опций из 60. */
.pm-facet--seg .pm-facet__cnt { display: none; }
.pm-facet--seg .pm-facet__opt.is-checked { background: var(--pm-surface); color: var(--pm-pink-deep); box-shadow: 0 1px 4px rgba(0,0,0,.08); }

/* Тип: цветные пилюли (Семейство) */
.pm-facet--pills .pm-facet__list { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.pm-facet--pills .pm-facet__opt {
	display: flex; align-items: center; gap: var(--pm-space-2); padding: var(--pm-space-2) 10px;
	border: 1px solid var(--pm-border); border-radius: 8px; background: var(--pm-surface);
	font-size: var(--pm-fs-sm); font-weight: 500; line-height: 1.25; cursor: pointer; min-width: 0;
}
.pm-facet--pills .pm-facet__name { flex: 1; min-width: 0; white-space: normal; overflow: visible; text-overflow: unset; line-height: 1.3; }
.pm-facet--pills .pm-facet__cnt { flex: none; font-size: var(--pm-fs-xs); color: var(--pm-text-faint); font-variant-numeric: tabular-nums; }
.pm-facet--pills .pm-facet__opt:hover { border-color: var(--pm-border-active); }
.pm-facet--pills .pm-facet__opt.is-checked {
	border-color: var(--pm-border-active);
	background: var(--pm-bg-selected);
	color: var(--pm-text-selected-accent);
	font-weight: 600;
}
/* В узком сайдбаре семейства - 1 колонка (см. ниже). */

/* Тип: чипы-размеры (Объём) */
/* Та же история, что у списка брендов: 4 ряда чипов считаем от шрифта, а не в пикселях.
   Чип = line-height 1em + padding 1.28em + рамка 2px, между рядами 6px. */
.pm-facet--chips .pm-facet__list { display: flex; flex-wrap: wrap; gap: 6px; font-size: var(--pm-fs-sm-plus); max-height: calc(4 * 2.7em + 3 * 6px); overflow-y: auto; padding-right: 2px; }
.pm-facet--chips .pm-facet__opt {
	/* Высоту чипа задаём явно: иначе её диктует счётчик со своим шрифтом, и окно
	   прокрутки перестаёт попадать в целое число рядов. */
	min-height: 2.7em; box-sizing: border-box;
	display: inline-flex; align-items: center; gap: var(--pm-space-2); padding: .3em .96em;
	border: 1px solid var(--pm-border); border-radius: 9px; background: var(--pm-surface);
	font-size: var(--pm-fs-sm-plus); font-weight: 600; line-height: 1; cursor: pointer; color: var(--pm-text);
}
/* Визуально скрытый, но фокусируемый инпут для трёх типов фасета (см. --seg выше). */
.pm-facet--seg .pm-facet__opt input,
.pm-facet--pills .pm-facet__opt input,
.pm-facet--chips .pm-facet__opt input {
	position: absolute;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	clip-path: inset(50%);
	overflow: hidden; white-space: nowrap;
}
.pm-facet--chips .pm-facet__cnt { font-size: var(--pm-fs-xs); color: var(--pm-text-faint); font-weight: 400; font-variant-numeric: tabular-nums; }
.pm-facet--chips .pm-facet__cnt::before { content: "·"; margin-right: 5px; opacity: .55; }
.pm-facet--chips .pm-facet__opt:hover { border-color: var(--pm-pink); }
.pm-facet--chips .pm-facet__opt.is-checked {
	border-color: var(--pm-border-active);
	background: var(--pm-bg-selected);
	color: var(--pm-text-selected-accent);
}

/* Цена: гистограмма распределения + дуал-слайдер */
.pm-price__hist { display: flex; align-items: flex-end; gap: 2px; height: 34px; margin: 2px 0 5px; }
.pm-price__hist i { flex: 1; background: var(--pm-pink-wash); border-radius: 2px 2px 0 0; transition: background .15s; }
.pm-price__hist i.a { background: var(--pm-pink); }
.pm-price { position: relative; height: 28px; margin: 2px 2px var(--pm-space-1); }
.pm-price__track { position: absolute; left: 0; right: 0; top: var(--pm-space-3); height: 4px; background: var(--pm-border); border-radius: 2px; }
.pm-price__fill { position: absolute; top: var(--pm-space-3); height: 4px; background: var(--pm-pink); border-radius: 2px; }
.pm-price__r { position: absolute; left: 0; top: 0; width: 100%; height: 28px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.pm-price__r::-webkit-slider-runnable-track { background: none; border: none; }
.pm-price__r::-moz-range-track { background: none; border: none; }
.pm-price__r::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: var(--pm-surface); border: 2px solid var(--pm-pink); box-shadow: 0 1px 3px rgba(0,0,0,.18); cursor: pointer; }
.pm-price__r::-moz-range-thumb { pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; background: var(--pm-surface); border: 2px solid var(--pm-pink); box-shadow: 0 1px 3px rgba(0,0,0,.18); cursor: pointer; }
.pm-price__vals { display: flex; justify-content: space-between; font-size: var(--pm-fs-sm-plus); font-weight: 600; color: var(--pm-text); font-variant-numeric: tabular-nums; }

.pm-filters__foot { display: none; }
.pm-filters__apply { width: 100%; }

/* Подзаголовок каталога */
.pm-catalog-sub { color: var(--pm-text-muted); font-size: var(--pm-fs-md); line-height: 1.4; margin: var(--pm-space-1) 0 var(--pm-space-2); max-width: 72ch; }

/* Активные фильтры чипами */
.pm-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 var(--pm-space-3); }
.pm-chips__label { font-size: var(--pm-fs-md); color: var(--pm-text-faint); margin-right: 2px; }
.pm-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px var(--pm-space-3); border-radius: var(--pm-radius-pill); background: var(--pm-pink-wash); color: var(--pm-pink-deep); font-size: var(--pm-fs-md); font-weight: 600; border: 1px solid transparent; transition: background .15s, border-color .15s, color .15s; }
.pm-chip:hover { background: var(--pm-surface); border-color: var(--pm-pink); color: var(--pm-pink); }
.pm-chip__x { font-size: var(--pm-fs-lg); line-height: 1; opacity: .75; }
.pm-chip--clear { background: transparent; color: var(--pm-text-faint); }
.pm-chip--clear:hover { background: transparent; border-color: transparent; color: var(--pm-pink); text-decoration: underline; }

/* Кнопка-переключатель и оверлей - только на мобайле/планшете */
.pm-filters-toggle { display: none; }
.pm-facets__ov { display: none; }
body.pm-sheet-lock, body.pm-nav-lock { overflow: hidden; }
@media (max-width: 860px){
	.pm-facets { margin: 0 0 var(--pm-space-4); }
	.pm-filters-toggle {
		display: inline-flex; align-items: center; justify-content: center; gap: var(--pm-space-2); width: 100%;
		padding: 10px; margin: 0 0 var(--pm-space-2); border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
		background: var(--pm-surface); font-family: var(--pm-font-head); font-weight: 700; font-size: var(--pm-fs-md); color: var(--pm-text); cursor: pointer;
	}
	.pm-filters-toggle svg { width: 18px; height: 18px; }
	.pm-filters-toggle__n { background: var(--pm-pink); color: var(--pm-on-pink); border-radius: var(--pm-radius-pill); min-width: 20px; height: 20px; line-height: 20px; font-size: var(--pm-fs-sm); font-weight: 700; text-align: center; padding: 0 5px; }

	/* Затемнение (выше липкой шапки Kadence) */
	.pm-facets__ov {
		display: block; position: fixed; inset: 0; background: rgba(30,20,28,.45);
		opacity: 0; visibility: hidden; z-index: 99998;
		transition: opacity var(--pm-dur-mid) var(--pm-ease-std), visibility var(--pm-dur-mid);
	}
	.pm-filters.is-open ~ .pm-facets__ov { opacity: 1; visibility: visible; }

	/* Bottom-sheet (выше шапки) */
	.pm-filters {
		position: fixed; left: 0; right: 0; bottom: 0; height: 90vh; background: var(--pm-surface);
		border-radius: 22px 22px 0 0;
		box-shadow: var(--pm-shadow-lg);
		transform: translateY(100%);
		transition: transform var(--pm-dur-mid) var(--pm-ease-out);
		z-index: 99999; display: flex; flex-direction: column;
	}
	.pm-filters.is-open { transform: none; }
	.pm-filters__head { display: flex; align-items: center; justify-content: space-between; padding: 18px var(--pm-space-5) 14px; border-bottom: 1px solid var(--pm-border); position: relative; }
	.pm-filters__grip { display: block; position: absolute; top: var(--pm-space-2); left: 50%; transform: translateX(-50%); width: 42px; height: 5px; background: var(--pm-border); border-radius: 3px; }
	.pm-filters__ttl { font-family: var(--pm-font-display); font-size: 23px; font-weight: 600; }
	.pm-filters__reset { font-size: var(--pm-fs-md); color: var(--pm-pink); font-weight: 600; }
	.pm-filters__scroll { flex: 1; overflow-y: auto; padding: var(--pm-space-1) var(--pm-space-5); -webkit-overflow-scrolling: touch; }
	.pm-facet__title { font-size: var(--pm-fs-xs); line-height: 1.4; }
	/* В bottom-sheet: семейства в 1 колонку - длинные имена не режутся («Ароматические»). */
	.pm-facet--pills .pm-facet__list { grid-template-columns: 1fr; }
	.pm-facet--pills .pm-facet__name { white-space: normal; overflow: visible; text-overflow: unset; }
	/* Крупнее под палец: min 44px touch */
	.pm-facet--pills .pm-facet__opt {
		min-height: var(--pm-touch-min);
		padding: var(--pm-space-3);
		font-size: var(--pm-fs-md);
		align-items: center;
	}
	.pm-facet--pills .pm-facet__dot { width: 12px; height: 12px; line-height: 0; }
	.pm-facet--chips .pm-facet__opt {
		display: inline-flex;
		align-items: center;
		gap: var(--pm-space-2);
		min-height: var(--pm-touch-min);
		padding: var(--pm-space-2) var(--pm-space-3);
		font-size: var(--pm-fs-body);
		line-height: 1;
	}
	.pm-facet--seg .pm-facet__opt {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: var(--pm-touch-min);
		padding: var(--pm-space-3) var(--pm-space-1);
		font-size: var(--pm-fs-md);
		line-height: 1.15;
	}
	.pm-facet--seg .pm-facet__list { gap: 0; min-width: 0; }
	.pm-facet--list .pm-facet__opt {
		min-height: var(--pm-touch-min);
		padding: var(--pm-space-3) var(--pm-space-2);
		font-size: var(--pm-fs-body-plus);
	}
	.pm-facet--list .pm-facet__opt input { width: 20px; height: 20px; }
	.pm-facet--list .pm-facet__list { max-height: 240px; }
	/* Тулбар: счётчик строкой, сортировка + вид ниже. На узком - прячем переключатель сетки. */
	.kadence-shop-top-row { gap: 10px var(--pm-space-3); }
	.kadence-shop-top-row .kadence-woo-results-count { flex: 1 1 100%; }
	.kadence-shop-top-row .kadence-woo-ordering { flex: 1 1 auto; min-width: 0; }
	.kadence-shop-top-row .kadence-woo-ordering select { width: 100%; max-width: 100%; }
	.pm-filters__foot { display: block; padding: 14px var(--pm-space-5) calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--pm-border); }
	.pm-filters__apply { padding: var(--pm-space-4); font-size: var(--pm-fs-body); }
}
@media (max-width: 480px) {
	.kadence-shop-top-row .kadence-woo-toggle { display: none; }
	.pm-facet--seg .pm-facet__opt { font-size: var(--pm-fs-sm); padding: 10px 2px; }
}
@media (prefers-reduced-motion: reduce) {
	.pm-mega,
	.pm-filters,
	.pm-facets__ov,
	.pm-nav,
	.pm-qvm__box {
		transition: none !important;
		animation: none !important;
	}
	.pm-btn--solid:hover,
	.pm-btn--ink:hover,
	.woocommerce ul.products li.product:hover {
		transform: none;
	}
}

/* «Загрузить ещё» */
.pm-loadmore { text-align: center; margin-top: 36px; }
.pm-loadmore__btn.is-loading { opacity: .7; pointer-events: none; }

/* Дим сетки товаров при AJAX-фильтрации */
.woocommerce ul.products.pm-grid-loading { opacity: .5; pointer-events: none; transition: opacity .2s; }
.woocommerce ul.products .pm-noresults { grid-column: 1 / -1; list-style: none; margin: 0; padding: 46px 0; text-align: center; color: var(--pm-text-muted); font-size: var(--pm-fs-body-plus); }

/* ---------- Архив каталога ---------- */
/* Kadence ставит .content-area margin: 80px 0 - огромный воздух сверху каталога/архивов.   Поджимаем на страницах архивов (магазин + архивы атрибутов), низ тоже умереннее. */
body.archive .content-area { margin-top: var(--pm-space-1) !important; margin-bottom: var(--pm-space-8) !important; }
/* Тот же провал Kadence (.content-area 80px) на одиночном товаре/корзине/оформлении. */
body.woocommerce-page:not(.archive) .content-area,
body.single-product .content-area { margin-top: var(--pm-space-1) !important; margin-bottom: var(--pm-space-8) !important; }
/* Статические страницы (контакты, доставка, квиз, избранное, бренды…). */
body.page:not(.woocommerce-page) .content-area { margin-top: var(--pm-space-1) !important; margin-bottom: var(--pm-space-8) !important; }
body.page:not(.woocommerce-page) .entry-hero-container-inner,
body.page:not(.woocommerce-page) .entry-hero-container { background: transparent !important; }
body.page:not(.woocommerce-page) .entry-header { min-height: 0 !important; padding: var(--pm-space-2) 0 0 !important; margin: 0 0 var(--pm-space-3) !important; }
body.page:not(.woocommerce-page) .entry-header .entry-title { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(22px, 2.8vw, 30px); margin: 0; line-height: 1.15; }
/* Корзина / оформление / кабинет: компактный page-title (без гигантского clamp). */
body.woocommerce-cart .entry-header,
body.woocommerce-checkout .entry-header,
body.woocommerce-account .entry-header {
	min-height: 0 !important; padding: 6px 0 0 !important; margin: 0 0 10px !important; text-align: left !important;
}
body.woocommerce-cart .entry-header .entry-title,
body.woocommerce-checkout .entry-header .entry-title,
body.woocommerce-account .entry-header .entry-title {
	font-family: var(--pm-font-display); font-weight: 600;
	font-size: clamp(22px, 2.6vw, 28px); margin: 0; line-height: 1.15; text-align: left !important;
}
@media (max-width: 640px) {
	body.woocommerce-cart .entry-header .entry-title,
	body.woocommerce-checkout .entry-header .entry-title,
	body.woocommerce-account .entry-header .entry-title { font-size: 22px; }
}
/* Kadence: убрать тонированную плашку-герой за заголовком архива (var(--pm-bg-2)) - чистый заголовок. */
.entry-hero-container-inner, .archive .entry-hero-container { background: transparent !important; }
/* Kadence держит шапку архива min-height:200px (пустой провал) - делаем компактный заголовок. */
.woocommerce .entry-header.product-archive-title,
.product-archive-title.entry-header { min-height: 0 !important; padding: var(--pm-space-2) 0 0 !important; margin: 0 !important; text-align: left !important; }
.woocommerce .entry-header.product-archive-title .page-title,
.product-archive-title .archive-title { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(22px, 2.8vw, 30px); margin: 0; line-height: 1.1; }
/* Тулбар архива: счётчик + сортировка + вид в одну строку.
   Раньше это давал kadence-woocommerce.css - после A7 dequeue рисуем сами. */
.kadence-shop-top-row {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: var(--pm-space-2) 14px; margin: 0 0 var(--pm-space-3);
}
.kadence-shop-top-row .kadence-shop-top-item { margin: 0; }
.kadence-shop-top-row .kadence-woo-results-count { flex: 1 1 auto; min-width: 0; }
.kadence-shop-top-row .kadence-woo-ordering { flex: 0 0 auto; }
.kadence-shop-top-row .kadence-woo-toggle { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; }
.woocommerce .woocommerce-result-count { color: var(--pm-text-faint); font-size: var(--pm-fs-body); margin: 0; }
.woocommerce .woocommerce-ordering { margin: 0; }
.woocommerce .woocommerce-ordering select {
	padding: 10px 14px; border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	background: var(--pm-surface); font-family: var(--pm-font-body); font-size: var(--pm-fs-md); color: var(--pm-text);
}
@media (max-width: 480px) {
	.kadence-shop-top-row .kadence-woo-toggle { display: none; }
}
.woocommerce nav.woocommerce-pagination { margin-top: 28px; }
/* С JS - «Загрузить ещё»; без JS - пагинация. Ссылки пагинации остаются в DOM. */
html.pm-has-js .woocommerce nav.woocommerce-pagination { display: none; }
html:not(.pm-has-js) .pm-loadmore { display: none; }
.woocommerce nav.woocommerce-pagination ul { border: none; display: flex; justify-content: center; gap: var(--pm-space-2); }
.woocommerce nav.woocommerce-pagination ul li { border: none; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 44px; height: 44px; line-height: 44px; padding: 0 10px;
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius); color: var(--pm-text); font-weight: 600;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--pm-pink); color: var(--pm-on-pink); border-color: var(--pm-pink); }
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: var(--pm-pink); color: var(--pm-pink); background: transparent; }

/* ---------- Квиз подбора аромата ---------- */
.pm-quiz { background: var(--pm-grad-section-alt); display: flex; justify-content: center; padding: var(--pm-space-6) var(--pm-space-4) 36px; }
.pm-quiz__card-wrap { max-width: 760px; width: 100%; background: var(--pm-surface); border: 1px solid var(--pm-border); border-radius: var(--pm-radius-lg); box-shadow: var(--pm-shadow-soft); padding: 22px var(--pm-space-6) var(--pm-space-5); transition: max-width .4s ease; }
.pm-quiz--wide .pm-quiz__card-wrap { max-width: 1120px; }
.pm-quiz__title {
	font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(22px, 3vw, 28px);
	margin: 0 0 14px; line-height: 1.15; text-align: center; color: var(--pm-text);
}
.pm-quiz__top { display: flex; align-items: center; gap: var(--pm-space-3); margin-bottom: 18px; }
.pm-quiz__count { font-size: var(--pm-fs-sm); font-weight: 700; color: var(--pm-pink-deep); white-space: nowrap; letter-spacing: .02em; }
.pm-quiz__bar { flex: 1; height: 4px; background: var(--pm-color-soft-rose); border-radius: var(--pm-radius-pill); overflow: hidden; }
.pm-quiz__bar-fill { display: block; height: 100%; background: var(--pm-pink); border-radius: var(--pm-radius-pill); transition: width .45s cubic-bezier(.4,0,.2,1); }
.pm-quiz,
.pm-quiz__card-wrap,
.pm-quiz__stage { overflow-anchor: none; }
.pm-quiz__stage { text-align: center; }
.pm-quiz__step { display: none; }
.pm-quiz__step.is-active { display: block; animation: pm-quiz-in .28s ease; }
@keyframes pm-quiz-in { from { opacity: 0; } to { opacity: 1; } }
.pm-quiz .pm-eyebrow { padding-left: 0; margin-bottom: 6px; }
.pm-quiz .pm-eyebrow::before { display: none; }
.pm-quiz__q { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(22px, 3vw, 30px); margin: 2px 0 var(--pm-space-1); }
.pm-quiz__sub { color: var(--pm-text-faint); font-size: var(--pm-fs-md); margin: 0 0 14px; }
.pm-quiz__q + .pm-quiz__opts, .pm-quiz__q + .pm-quiz__cards, .pm-quiz__q + .pm-quiz__chips { margin-top: var(--pm-space-4); }

/* одиночный выбор - вертикальные опции */
.pm-quiz__opts { display: flex; flex-direction: column; gap: var(--pm-space-3); max-width: 470px; margin: 0 auto; }
.pm-quiz__opt {
	background: var(--pm-surface); border: 1.5px solid var(--pm-border); border-radius: 14px;
	padding: var(--pm-space-4) 22px; font-family: var(--pm-font-body); font-size: var(--pm-fs-lg); font-weight: 600; color: var(--pm-text);
	cursor: pointer; transition: border-color .18s, box-shadow .18s, transform .18s; text-align: left;
	display: flex; flex-direction: column; gap: 3px;
}
.pm-quiz__opt:hover { border-color: var(--pm-pink); box-shadow: var(--pm-shadow-soft); transform: translateY(-2px); }
.pm-quiz__opt--skip { text-align: center; color: var(--pm-text-faint); font-weight: 500; border-style: dashed; }
.pm-quiz__opt-t { font-size: var(--pm-fs-lg); }
.pm-quiz__opt-d { font-size: var(--pm-fs-md); font-weight: 400; color: var(--pm-text-faint); }

/* семейства - карточки-плитки с цветом */
.pm-quiz__cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--pm-space-3); }
.pm-quiz__card {
	position: relative; background: var(--pm-surface); border: 1.5px solid var(--pm-border); border-radius: 14px;
	padding: var(--pm-space-4) 18px var(--pm-space-4) var(--pm-space-10); text-align: left; cursor: pointer; font-family: var(--pm-font-body);
	transition: border-color .18s, box-shadow .18s, transform .18s; display: flex; flex-direction: column; gap: 3px;
}
.pm-quiz__card:hover { border-color: var(--pm-pink); box-shadow: var(--pm-shadow-soft); transform: translateY(-2px); }
.pm-quiz__card.is-on { border-color: var(--pm-pink); background: var(--pm-pink-wash); }
.pm-quiz__card-dot { position: absolute; left: var(--pm-space-4); top: var(--pm-space-5); width: 14px; height: 14px; border-radius: 50%; }
.pm-quiz__card-t { font-weight: 700; font-size: var(--pm-fs-body-plus); color: var(--pm-text); }
.pm-quiz__card-d { font-size: var(--pm-fs-sm-plus); color: var(--pm-text-faint); }
.pm-quiz__card.is-on::after { content: '✓'; position: absolute; right: 14px; top: var(--pm-space-3); color: var(--pm-pink-deep); font-weight: 700; }

/* ноты - чипы */
.pm-quiz__chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.pm-quiz__chip {
	background: var(--pm-surface); border: 1.5px solid var(--pm-border); border-radius: var(--pm-radius-pill); padding: 9px 18px;
	font-family: var(--pm-font-body); font-size: var(--pm-fs-body); font-weight: 600; color: var(--pm-text); cursor: pointer;
	transition: border-color .15s, background .15s, color .15s;
}
.pm-quiz__chip:hover { border-color: var(--pm-pink); }
.pm-quiz__chip.is-on { border-color: var(--pm-pink); background: var(--pm-pink); color: var(--pm-on-pink); }

/* навигация */
.pm-quiz__nav { display: flex; justify-content: space-between; align-items: center; margin-top: 18px; min-height: 44px; }
.pm-quiz__back { background: none; border: none; color: var(--pm-text-faint); font-size: var(--pm-fs-body); font-weight: 600; cursor: pointer; padding: var(--pm-space-2) var(--pm-space-1); }
.pm-quiz__back:hover { color: var(--pm-pink); }
.pm-quiz__next { margin-left: auto; background: var(--pm-pink); color: var(--pm-on-pink); border: none; border-radius: var(--pm-radius-pill); padding: var(--pm-space-3) 34px; font-family: var(--pm-font-body); font-size: var(--pm-fs-body-plus); font-weight: 700; cursor: pointer; transition: background .15s, transform .15s; }
.pm-quiz__next:hover { background: var(--pm-pink-deep); transform: translateY(-1px); }

/* результат */
.pm-quiz__spinner { width: 46px; height: 46px; margin: 30px auto 22px; border: 3px solid var(--pm-color-soft-ring); border-top-color: var(--pm-pink); border-radius: 50%; animation: pm-spin .8s linear infinite; }
@keyframes pm-spin { to { transform: rotate(360deg); } }
.pm-quiz__headline { margin: var(--pm-space-1) 0 var(--pm-space-2); }
.pm-quiz__relaxnote { color: var(--pm-text-faint); font-size: var(--pm-fs-body); margin: 0 0 var(--pm-space-4); }
.pm-quiz__profile {
	margin: 0 auto 22px; max-width: 640px; padding: 14px var(--pm-space-4) var(--pm-space-3);
	background: linear-gradient(180deg, var(--pm-pink-wash) 0%, var(--pm-color-white) 100%);
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	text-align: center;
}
.pm-quiz__profile-k {
	margin: 0 0 10px; font-size: var(--pm-fs-sm); font-weight: 700; letter-spacing: .04em;
	text-transform: uppercase; color: var(--pm-pink-deep);
}
.pm-quiz__profile-tags { display: flex; flex-wrap: wrap; gap: var(--pm-space-2); justify-content: center; }
.pm-quiz__profile-tag {
	display: inline-flex; align-items: center; padding: 6px var(--pm-space-3);
	border-radius: var(--pm-radius-pill); border: 1px solid var(--pm-border);
	background: var(--pm-surface); color: var(--pm-text); font-size: var(--pm-fs-md); font-weight: 600;
}
.pm-quiz__profile-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; align-items: center; margin-top: var(--pm-space-3); }
.pm-quiz__share { min-height: 40px; padding: var(--pm-space-2) var(--pm-space-4); font-size: var(--pm-fs-md); }
.pm-quiz__share-ok { font-size: var(--pm-fs-sm); font-weight: 600; color: var(--pm-pink-deep); }
/* Сетка результата - настоящий ul.products в .woocommerce-обёртке (build-quiz.php),
   чтобы импортированные li.product получали каталожные стили карточки (иначе бейджи
   position:absolute якорятся к странице, а названия рендерятся дефолтным крупным). */
.pm-quiz__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--pm-space-4); margin: 22px 0 28px; padding: 0; list-style: none; text-align: left; }
.pm-quiz__grid .product { margin: 0 !important; width: auto !important; position: relative; }
/* В гриде результата карточки некликабельны по кнопке - переход на товар по клику; прячем кнопку-состояния Kadence. */
.pm-quiz__grid .product-action-wrap,
.pm-quiz__grid .product .button,
.pm-quiz__grid .pm-card-buybox { display: none !important; }
.pm-quiz__grid .woocommerce-loop-product__title {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	word-break: normal; overflow-wrap: break-word;
}
.pm-quiz__cta { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.pm-quiz__all { min-width: 240px; text-align: center; }
.pm-quiz__restart { background: none; border: none; color: var(--pm-text-faint); font-size: var(--pm-fs-body); cursor: pointer; text-decoration: underline; }
.pm-quiz__restart:hover { color: var(--pm-pink); }

@media (max-width: 640px){
	.pm-quiz__card-wrap { padding: 18px 14px var(--pm-space-4); }
	.pm-quiz__title { margin-bottom: 10px; font-size: 22px; }
	.pm-quiz__cards { grid-template-columns: 1fr; }
	.pm-quiz__grid { grid-template-columns: repeat(2, 1fr); }
}

/* Добор контраста 14.08 по остатку аудита. Проверено поштучно, а не по списку:
   из семи «нарушений» реальными оказались два.

   - «Сбросить»: --pm-pink на белом = 3.39, переводим на глубокий тон;
   - названия фасетов: слабый серый лежит не на белом, а на сером #f8f4f5, и там уже 4.3 -
     берём основной серый текста.

   Три срабатывания оказались ложными: «Подбор аромата» на деле почти чёрный, «Смотреть
   распив» уже белый на глубоком розовом, «Корзина» в доке имеет контраст 7.2.

   19.08, расхождение под решение владельца: слово «мир» в списке платёжных систем
   (.pm-pay-word--mir, --pm-color-stock-ok) 14.08 оставили намеренно - это цвет чужого
   логотипа, и WCAG 1.4.3 логотипы от порога контраста освобождает. Перемер 19.08 счёл его
   провалом (3.19 на белом) и опустил токен до #0c8039 (5.05). Кроме «мир» токеном покрашена
   только точка наличия 6px, ей контраст не нужен, так что вернуть прежний #0fa64a - это
   правка одной строки в tokens.css. */
.pm-filters__reset { color: var(--pm-color-pink-700); }
.pm-facet__name { color: var(--pm-text-muted); }

/* ---------- Контраст кнопок (аудит 14.08) ----------
   Белый текст на заливке --pm-pink даёт контраст 3.39 при норме WCAG 4.5 - то есть
   главные кнопки магазина читались хуже нормы. Дело не в тексте, а в заливке: тот же белый
   на --pm-pink-deep даёт 4.90.

   Меняем фон только там, где по нему идёт БЕЛЫЙ текст. Сам токен --pm-pink не трогаем:
   он же служит цветом акцентных линий, иконок и границ, где расчёт совсем другой. */
.pm-card-cta,
.woocommerce div.product form.cart button.single_add_to_cart_button,
.pm-mega__feat-b,
.pm-btn--solid,
.pm-cta--primary { background: var(--pm-pink-deep); }
/* Кнопку товара Woo рисует как .button.alt, и её красит родительская тема - селектор
   через form.cart по структуре не попадал, поэтому целимся прямо в класс. */
.woocommerce button.single_add_to_cart_button,
.woocommerce button.button.alt,
button.single_add_to_cart_button { background: var(--pm-pink-deep); }
/* CTA в шапке: розовый текст на розовой подложке давал 4.07 - тон текста темнее подложки
   ещё на шаг, заливка остаётся прежней. */
.pm-nav__cta { color: var(--pm-color-pink-700); }

.woocommerce button.single_add_to_cart_button.is-busy,
.woocommerce button.button.alt.is-busy,
button.single_add_to_cart_button.is-busy,
.pm-sticky-atc__btn.is-busy {
	pointer-events: none;
	opacity: 0.72;
}

.pm-card-cta:hover,
.woocommerce button.single_add_to_cart_button:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover,
.pm-mega__feat-b:hover,
.pm-btn--solid:hover,
.pm-cta--primary:hover { background: var(--pm-color-pink-700); }

/* ---------- Видимый фокус для клавиатуры (одно правило на тему) ----------
   :focus-visible, а не :focus - при клике мышью контур не появляется.

   :is() вместо :where(): нужна ненулевая специфичность, иначе правило проигрывает
   компонентным `outline: none` (их в теме больше десятка). Специфичность берётся от
   самого тяжёлого аргумента, тут это атрибутный селектор, итого (0,2,0) плюс сам
   :focus-visible - хватает, чтобы перебить `.pm-search__input:focus`, но не настолько,
   чтобы компонент не мог осознанно переопределить кольцо своим правилом.

   border-radius НЕ задаём: outline и так повторяет скругление элемента. Прежняя версия
   ставила border-radius: 4px, и на фокусе пилюли «Загрузить ещё» и «Показать N ароматов»
   превращались из 999px в 4px - замерено 19.08 на боевой витрине. */
:is(
	a[href], area[href], button, input, select, textarea, summary,
	[contenteditable]:not([contenteditable="false"]),
	[role="button"], [role="link"], [role="option"], [role="tab"], [role="checkbox"], [role="switch"],
	[tabindex]:not([tabindex="-1"])
):focus-visible {
	outline: 3px solid var(--pm-focus-ink);
	outline-offset: 2px;
}

/* Фасеты: инпут визуально скрыт, кольцо рисуем на подписи, иначе фокус негде показать. */
.pm-facet__opt:has(input:focus-visible),
.pm-facet__opt:focus-within {
	outline: 3px solid var(--pm-focus-ink);
	outline-offset: 2px;
}

/* Карточка-ссылка: контур по всей карточке, а не по строчке заголовка. */
.woocommerce ul.products li.product:focus-within {
	outline: 3px solid var(--pm-focus-ink);
	outline-offset: 2px;
}

/* Тёмные полосы: розовый контур на них не читается, там белый. */
:is(.pm-announce, .pm-dock, .pm-footer, .pm-ticker) :is(a[href], button):focus-visible {
	outline-color: var(--pm-color-white);
}

/* Блочный чекаут гасит контур своим !important (см. .wc-block-components-text-input
   input:focus выше и правило в pm-checkout-sheet ниже) - возвращаем ровно тем же весом,
   иначе на странице оплаты фокус снова пропадёт. */
.wc-block-components-text-input input:focus-visible,
.wc-block-components-textarea textarea:focus-visible,
body.pm-checkout-sheet .wc-block-components-text-input input:focus-visible {
	outline: 3px solid var(--pm-focus-ink) !important;
	outline-offset: 2px;
}

/* Ссылка «Перейти к содержимому» обязана становиться видимой: она первая в табе. */
.pm-skip:focus-visible,
.skip-link:focus-visible { outline: 3px solid var(--pm-focus-ink); outline-offset: 2px; }

/* ---------- Переключатель вида каталога (кнопки родительской темы) ----------
   Kadence красит обе кнопки акцентным цветом, поэтому сетка и список сливались в одну
   розовую плашку и было не понять, какой режим включён. Активную оставляем цветной,
   неактивную делаем светлой и разводим зазором. */
.kadence-product-toggle-container { display: inline-flex; gap: 4px; }
.kadence-toggle-shop-layout { border-radius: var(--pm-radius-sm); }
.kadence-toggle-shop-layout:not(.toggle-active) {
	background: var(--pm-surface);
	color: var(--pm-text-faint);
	box-shadow: inset 0 0 0 1px var(--pm-border);
}
.kadence-toggle-shop-layout:not(.toggle-active):hover {
	color: var(--pm-pink);
	box-shadow: inset 0 0 0 1px var(--pm-pink);
}

/* ---------- Избранное (вишлист) ---------- */
.pm-wish { font: inherit; cursor: pointer; }
.pm-wish--card {
	position: absolute; top: var(--pm-space-3); right: var(--pm-space-3); z-index: 5; padding: 0;
	width: 34px; height: 34px; border-radius: 50%;
	background: rgba(255,255,255,.96); border: 1px solid color-mix(in srgb, var(--pm-text) 22%, var(--pm-border));
	display: inline-flex; align-items: center; justify-content: center; color: var(--pm-text-muted);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	box-shadow: var(--pm-shadow-sm);
	transition: transform .15s, box-shadow .15s, color .15s, border-color .15s;
}
.pm-wish--card svg { width: 17px; height: 17px; stroke: currentColor; fill: none; }
.pm-wish--card:hover { color: var(--pm-pink); border-color: var(--pm-pink); box-shadow: var(--pm-shadow-soft); }
.pm-wish.is-saved { color: var(--pm-pink); border-color: var(--pm-pink); }
.pm-wish.is-saved svg { fill: var(--pm-pink); stroke: var(--pm-pink); }
.pm-wish--pulse { animation: pm-wish-pop .32s ease; }
@keyframes pm-wish-pop { 0% { transform: scale(1); } 40% { transform: scale(1.28); } 100% { transform: scale(1); } }

.pm-wish--single {
	display: inline-flex; align-items: center; gap: var(--pm-space-2); margin: 0 0 14px; padding: 6px 0;
	background: none; border: none; color: var(--pm-text-muted); font-size: var(--pm-fs-md); font-weight: 600;
}
.pm-wish--single svg { width: 18px; height: 18px; stroke: currentColor; fill: none; }
.pm-wish--single:hover { color: var(--pm-pink); }
.pm-wish--single.is-saved { color: var(--pm-pink); }
.pm-wish--single.is-saved svg { fill: var(--pm-pink); stroke: var(--pm-pink); }

/* Счётчик на иконке Избранное в шапке */
.pm-act__ic { position: relative; display: inline-flex; }
.pm-act__count {
	position: absolute; top: -6px; right: -var(--pm-space-2); min-width: 16px; height: 16px; padding: 0 var(--pm-space-1);
	border-radius: var(--pm-radius-pill); background: var(--pm-pink); color: var(--pm-on-pink); font-size: var(--pm-fs-2xs); font-weight: 700;
	line-height: 16px; text-align: center;
}
/* Иконка поиска в шапке: на ≤1329 показываем иконку, на десктопе — пилюля-триггер. */
.pm-act--search { display: none; background: none; border: none; padding: 0; font: inherit; color: inherit; }
/* Класс вешает store.js, когда строка шапки перестаёт помещаться (крупный шрифт в браузере,
   длинные пункты меню): поиск сворачивается в иконку вместо выезда за край экрана. */
.pm-bar.is-tight .pm-search-trigger { display: none; }
.pm-bar.is-tight .pm-act--search { display: flex; }

/* ---------- Триггер поиска: золотая кайма крутится на hover/фокусе ---------- */
@property --pm-ang { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
.pm-search-trigger { transition: filter .3s, transform .15s; }
.pm-search-trigger__in { transition: background .2s; }
.pm-search-trigger:hover, .pm-search-trigger:focus-visible {
	background: conic-gradient(from var(--pm-ang), var(--pm-rosegold), var(--pm-gold), var(--pm-pink-soft), var(--pm-pink), var(--pm-gold), var(--pm-rosegold));
	animation: pm-gold-spin 7s linear infinite;
	filter: drop-shadow(0 5px 16px color-mix(in srgb, var(--pm-pink) 22%, transparent));
	outline: none;
}
.pm-search-trigger:hover .pm-search-trigger__in,
.pm-search-trigger:focus-visible .pm-search-trigger__in { background: var(--pm-surface); }
.pm-search-trigger:active { transform: scale(.99); }
@keyframes pm-gold-spin { to { --pm-ang: 360deg; } }
@media (prefers-reduced-motion: reduce) {
	.pm-search-trigger:hover, .pm-search-trigger:focus-visible { animation: none; }
}

/* ---------- Палитра «Найти свой аромат» (центрированный оверлей) ---------- */
.pm-search-sheet {
	position: fixed; inset: 0; z-index: 100000;
	display: flex; align-items: flex-start; justify-content: center;
	padding: 11vh var(--pm-space-4) var(--pm-space-6);
	background: rgba(30,20,28,.44); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
	animation: pm-pal-fade .2s ease;
}
.pm-search-sheet[hidden] { display: none; }
@keyframes pm-pal-fade { from { opacity: 0; } }
.pm-search-sheet__in {
	position: relative; width: min(580px, 94vw);
	background: var(--pm-surface); border-radius: 20px; box-shadow: 0 30px 80px rgba(30,20,28,.4);
	padding: var(--pm-space-6) 26px var(--pm-space-5); animation: pm-pal-pop .28s cubic-bezier(.22,1,.36,1);
}
@keyframes pm-pal-pop { from { opacity: 0; transform: translateY(14px) scale(.975); } }
.pm-search-sheet__head { text-align: center; margin: 0 0 var(--pm-space-4); }
.pm-search-sheet__eyebrow {
	font-size: var(--pm-fs-xs); font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--pm-pink);
}
.pm-search-sheet__k {
	margin: var(--pm-space-1) 0 0; font-family: var(--pm-font-display); font-weight: 500;
	font-size: 28px; line-height: 1.1; color: var(--pm-text); text-transform: none; letter-spacing: 0;
}
.pm-search-sheet__close {
	position: absolute; top: var(--pm-space-3); right: 14px; width: 34px; height: 34px; z-index: 2;
	border: none; background: none; font-size: 26px; line-height: 1; color: var(--pm-text-faint); cursor: pointer;
}
.pm-search-sheet__close:hover { color: var(--pm-pink); }
.pm-search-sheet__pop { margin: var(--pm-space-4) 2px 2px; }
.pm-search-sheet__lbl {
	display: block; font-size: var(--pm-fs-xs); letter-spacing: .16em; text-transform: uppercase;
	color: var(--pm-text-faint); font-weight: 600; margin: 0 0 10px;
}
.pm-search-sheet__chips { display: flex; flex-wrap: wrap; gap: var(--pm-space-2); }
.pm-schip {
	font: 500 12.5px var(--pm-font-body); color: var(--pm-text-muted);
	background: var(--pm-bg-2); border: 1px solid var(--pm-border); border-radius: var(--pm-radius-pill);
	padding: 6px 13px; cursor: pointer; text-decoration: none; transition: .15s;
}
.pm-schip:hover { color: var(--pm-on-pink); background: var(--pm-pink); border-color: var(--pm-pink); }
/* Золото как текст на светлом (gold-wash-2) давало 2.15 - берём --pm-gold-ink, 5.52.
   На тёмных обложках (bestcover, moat-mini) остаётся светлый --pm-gold, там он и нужен. */
.pm-schip--gold { color: var(--pm-gold-ink); border-color: var(--pm-color-gold-wash); background: var(--pm-color-gold-wash-2); }
.pm-schip--gold:hover { background: var(--pm-gold); color: var(--pm-on-pink); border-color: var(--pm-gold); }

/* Припаркованный FiboSearch внутри палитры — на всю ширину.
   margin/order сбрасываем: на ≤860 у .pm-search--fibo висит order:99 + margin (для инлайна),
   внутри палитры он не нужен и давал бы лишний отступ. */
.pm-search--sheet { width: 100%; display: flex !important; }
.pm-search--sheet .pm-search__input { width: 100%; }
.pm-search-sheet__field .pm-search--fibo,
.pm-search-sheet__field .pm-search--fibo .dgwt-wcas-search-wrapp { width: 100% !important; max-width: none !important; min-width: 0 !important; }
.pm-search-sheet__field .pm-search--fibo { margin: 0 !important; order: 0 !important; }
.pm-search-sheet__field .pm-search--fibo .dgwt-wcas-sf-wrapp { height: 52px; border-radius: 14px !important; }
.pm-search-sheet__field .pm-search--fibo .dgwt-wcas-search-input { height: 50px !important; font-size: var(--pm-fs-lg) !important; }
/* FiboSearch выносит .dgwt-wcas-suggestions-wrapp в body (не в sheet) и пишет top inline. */
body.pm-search-open .dgwt-wcas-suggestions-wrapp {
	z-index: 100002 !important;
	margin-top: 10px !important;
}
body.pm-search-open { overflow: hidden; }

/* Мобайл/планшет: палитра ближе к верху, компактнее, поле 16px (без зума iOS) */
@media (max-width: 640px) {
	.pm-search-sheet { padding: 7vh var(--pm-space-3) var(--pm-space-4); align-items: flex-start; }
	.pm-search-sheet__in { padding: var(--pm-space-5) 18px var(--pm-space-4); border-radius: 18px; }
	.pm-search-sheet__k { font-size: 25px; }
	.pm-search-sheet__field { height: 50px; padding: 0 14px 0 44px; }
	.pm-search-sheet__field .ico-mag, .pm-search-sheet__field .dgwt-wcas-ico-magnifier { left: 15px; }
}

/* Подсказки адреса на чекауте */
.pm-addr-wrap { position: relative; }
.pm-addr-suggest {
	position: absolute; left: 0; right: 0; top: calc(100% + var(--pm-space-1)); z-index: 40;
	margin: 0; padding: 6px; list-style: none;
	background: var(--pm-surface); border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	box-shadow: var(--pm-shadow); max-height: 240px; overflow-y: auto;
}
.pm-addr-suggest[hidden] { display: none !important; }
.pm-addr-suggest__i {
	display: block; width: 100%; text-align: left; padding: 10px var(--pm-space-3);
	border: none; border-radius: 8px; background: transparent; cursor: pointer;
	font: inherit; font-size: var(--pm-fs-md); line-height: 1.35; color: var(--pm-text);
}
.pm-addr-suggest__i:hover,
.pm-addr-suggest__i.is-on { background: var(--pm-pink-wash); color: var(--pm-pink-deep); }
.pm-addr-suggest__title { display: block; font-weight: 600; }
.pm-addr-suggest__hint {
	display: block; margin-top: 2px; font-size: var(--pm-fs-xs); color: var(--pm-text-faint); font-weight: 500;
}
.pm-addr-suggest__free {
	display: inline-flex; margin-top: 6px; padding: 2px var(--pm-space-2); border-radius: var(--pm-radius-pill);
	font-size: var(--pm-fs-2xs); font-weight: 700; color: var(--pm-success); background: var(--pm-color-success-bright);
}
.pm-addr-loading::after {
	content: ''; position: absolute; right: var(--pm-space-3); top: 50%; width: 14px; height: 14px;
	margin-top: -7px; border: 2px solid var(--pm-color-soft-ring); border-top-color: var(--pm-pink);
	border-radius: 50%; animation: pm-spin .7s linear infinite; pointer-events: none;
}
	position: absolute; top: -7px; right: -11px; min-width: 16px; height: 16px; padding: 0 var(--pm-space-1);
	background: var(--pm-pink); color: var(--pm-on-pink); border-radius: var(--pm-radius-pill);
	font-size: var(--pm-fs-2xs); font-weight: 700; line-height: 16px; text-align: center; font-family: var(--pm-font-body);
}

/* Страница избранного */
.entry-content .pm-wishlist-page,
.pm-wishlist-page {
	max-width: var(--pm-maxw) !important;
	margin: 0 auto var(--pm-space-6) !important;
	padding: 0 var(--pm-container-pad) !important;
	box-sizing: border-box;
}
@media (max-width: 640px) {
	.entry-content .pm-wishlist-page,
	.pm-wishlist-page { padding-inline: var(--pm-container-pad-sm) !important; }
}
.pm-wishlist-page__title {
	font-family: var(--pm-font-display); font-weight: 600;
	font-size: clamp(22px, 2.8vw, 30px); line-height: 1.15; margin: 0 0 var(--pm-space-3); color: var(--pm-text);
}
.pm-wishlist { min-height: 0; margin: 0; }
.pm-wishlist__loading { color: var(--pm-text-faint); padding: var(--pm-space-3) 0; margin: 0; }
.pm-wishlist__empty { text-align: left; padding: var(--pm-space-1) 0 28px; }
.pm-wishlist__empty p { color: var(--pm-text-muted); font-size: var(--pm-fs-body-plus); margin: 0 0 var(--pm-space-3); }
.pm-wishlist ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--pm-space-4); list-style: none; margin: 0 !important; padding: 0 !important; }
/* Пустая корзина: блок «Новинки» рисует wc-block-grid, не наш ul.products.
   Без 1:1 фото карточка 740px и первый флакон уезжает за край. */
.wc-block-grid ul.wc-block-grid__products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (max-width: 860px) {
	.wc-block-grid ul.wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px){ .pm-wishlist ul.products { grid-template-columns: 1fr 1fr; gap: 12px; } }

/* ---------- FiboSearch (живой поиск в шапке, скин solaris) ---------- */
.pm-search--fibo { display: flex; align-items: center; flex: none; min-width: 0; }
/* Горизонтальный локап шире вертикального (114 против 53) - место отдаём из поиска.
   FiboSearch ставит контейнеру min-width: 230px, а min-width по спецификации бьёт и width,
   и max-width - без сброса min-width поиск игнорирует любую заданную ширину. */
.pm-search--fibo .dgwt-wcas-search-wrapp { width: 165px; min-width: 0; max-width: min(165px, 20vw); }
.pm-search--fibo .dgwt-wcas-search-form { margin: 0; }
.pm-search--fibo .dgwt-wcas-sf-wrapp {
	border-radius: var(--pm-radius-pill) !important; border: 1px solid var(--pm-border) !important;
	background: var(--pm-bg-2) !important; overflow: hidden; height: 40px; box-shadow: none !important;
	transition: border-color .15s, background .15s;
}
.pm-search--fibo .dgwt-wcas-sf-wrapp:focus-within { border-color: var(--pm-pink) !important; background: var(--pm-surface) !important; }
.pm-search--fibo .dgwt-wcas-search-input {
	border: none !important; background: transparent !important; height: 38px !important; font-size: var(--pm-fs-md) !important;
	color: var(--pm-text) !important; padding-left: 38px !important; font-family: var(--pm-font-body) !important; box-shadow: none !important;
}
.pm-search--fibo .dgwt-wcas-ico-magnifier path, .pm-search--fibo .dgwt-wcas-search-submit svg path { fill: var(--pm-text-faint) !important; }
.pm-search--fibo .dgwt-wcas-search-submit { background: transparent !important; box-shadow: none !important; }
.dgwt-wcas-suggestion:hover, .dgwt-wcas-suggestion-selected { background: var(--pm-pink-wash) !important; }
.dgwt-wcas-st-title strong, .dgwt-wcas-sugg-price, .dgwt-wcas-price { color: var(--pm-pink) !important; }
.dgwt-wcas-suggestions-wrapp { border-radius: var(--pm-radius-lg) !important; box-shadow: var(--pm-shadow) !important; }
/* Выпадашка поиска: фото + дом · аромат. Иначе строка 31px без картинки и без бренда. */
.dgwt-wcas-suggestion-product {
	min-height: 56px;
	align-items: center;
}
.dgwt-wcas-si img {
	border-radius: 8px;
	border-color: var(--pm-border);
	background: var(--pm-surface);
}
.dgwt-wcas-st {
	color: var(--pm-text) !important;
	font-family: var(--pm-font-body);
	font-size: 13px !important;
	line-height: 1.3;
}
.dgwt-wcas-sp { color: var(--pm-text) !important; font-weight: 600; font-size: 13px !important; white-space: nowrap; }
.dgwt-wcas-suggestion-more { padding: 10px 12px !important; }
@media (max-width: 860px){ .pm-search--fibo { width: 100%; order: 99; margin: 8px 0 0; } .pm-search--fibo .dgwt-wcas-search-wrapp { width: 100%; } }

/* ---------- Лайтбокс PhotoSwipe (WooCommerce-галерея + фото отзывов CusRev) ---------- */
/* CusRev/WooCommerce выводят контейнер лайтбокса (.pswp / .cr-pswp.pswp) в футер и на не-товарных
   страницах, а его скрытие (display:none) живёт в CSS PhotoSwipe, который perf.php снимает ради
   скорости. Без него кнопки лайтбокса вылезают розовыми прямоугольниками над футером. Глушим
   ЗАКРЫТЫЙ контейнер; открытый (класс pswp--open ставит JS при просмотре фото) не трогаем. */
.pswp:not(.pswp--open) { display: none !important; }

/* ---------- Быстрый просмотр (YITH Quick View) ---------- */
/* Плагин YITH деактивирован (у нас свой quickview - .pm-qvm). Страховка: если YITH снова
   активируют, его модалка выводится в футер на КАЖДОЙ странице, а без своих стилей иконка-крест
   раздувается на весь экран (~1280px мёртвого места). Глушим осиротевший контейнер. */
.yith-quick-view, #yith-quick-view-modal, .yith-quick-view-overlay { display: none !important; }
/* Дефолтную кнопку YITH (внутри .product-details, уезжает вниз) прячем - рисуем свою .pm-qv на уровне карточки. */
.woocommerce ul.products li.product .product-details .yith-wcqv-button { display: none !important; }
.woocommerce ul.products li.product .pm-qv {
	/* Справа столбиком ПОД сердечком: правый верх занят .pm-wish--card (top/right 12px, 34px).
	   Раньше обе кнопки стояли в одной точке и перекрывались на 30px из 34 - на мобильных,
	   где глаз показан всегда, сердечко было полностью закрыто и в избранное не нажать. */
	position: absolute; top: 54px; right: 12px; z-index: 5; margin: 0; padding: 0;
	width: 32px; height: 32px; border-radius: 50%; font-size: 0;
	background: rgba(255,255,255,.96); border: 1px solid color-mix(in srgb, var(--pm-text) 22%, var(--pm-border)); color: var(--pm-text-muted);
	display: inline-flex; align-items: center; justify-content: center; box-shadow: var(--pm-shadow-sm);
	opacity: 0; transform: translateY(-6px); transition: opacity .2s, transform .2s, color .15s, border-color .15s;
}
@media (min-width: 861px){ .woocommerce ul.products li.product:hover .pm-qv { opacity: 1; transform: none; } }
@media (max-width: 860px){ .woocommerce ul.products li.product .pm-qv { opacity: 1; transform: none; } }
.woocommerce ul.products li.product .pm-qv:hover { color: var(--pm-pink); border-color: var(--pm-pink); }
.woocommerce ul.products li.product .pm-qv::before {
	content: ""; width: 17px; height: 17px; background: currentColor;
	-webkit-mask: var(--pm-eye) center / contain no-repeat; mask: var(--pm-eye) center / contain no-repeat;
	--pm-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}
.yith-wcqv-main { border-radius: var(--pm-radius-lg) !important; }
/* Внутри модалки сбрасываем единую сетку товара (она схлопывает галерею/summary). */
.yith-wcqv-main div.product {
	display: flex !important; gap: 30px; column-gap: 30px !important; align-items: flex-start; padding: var(--pm-space-2) var(--pm-space-1);
}
.yith-wcqv-main div.product > .images,
.yith-wcqv-main div.product > .woocommerce-product-gallery {
	flex: 0 0 42%; max-width: 42%; width: 42% !important; margin: 0 !important; float: none !important;
}
.yith-wcqv-main div.product > .summary,
.yith-wcqv-main div.product > .entry-summary {
	flex: 1 1 auto; width: auto !important; max-width: none !important; margin: 0 !important; float: none !important;
}
.yith-wcqv-main div.product .product_title { font-size: 24px; line-height: 1.2; }
.yith-wcqv-main div.product .price { white-space: nowrap; }

/* ---------- CusRev: загрузка фото/видео в форме отзыва ---------- */
.comment-form .cr-upload-local-images { margin: 0 0 6px; }
.cr-upload-local-images .cr-upload-images-status {
	display: block; font-size: var(--pm-fs-md); color: var(--pm-text-faint); margin: 0 0 var(--pm-space-2);
}
.cr-upload-local-images input[type="file"] {
	display: block; font-size: var(--pm-fs-md); color: var(--pm-text-faint); max-width: 100%;
}
.cr-upload-local-images input[type="file"]::file-selector-button {
	margin-right: var(--pm-space-3); padding: 9px var(--pm-space-4); border-radius: var(--pm-radius);
	border: 1px solid var(--pm-pink); background: var(--pm-surface); color: var(--pm-pink);
	font: inherit; font-weight: 600; font-size: var(--pm-fs-md); cursor: pointer;
	transition: background .15s, color .15s;
}
.cr-upload-local-images input[type="file"]::file-selector-button:hover {
	background: var(--pm-pink); color: var(--pm-on-pink);
}
.cr-upload-images-preview { display: flex; flex-wrap: wrap; gap: var(--pm-space-2); }
.cr-upload-images-preview:not(:empty) { margin-bottom: 10px; }
.cr-upload-images-preview img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--pm-radius); border: 1px solid var(--pm-border); }

/* ---------- Подбор по ольфакторным группам (главная) ---------- */
.pm-families {
	display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 14px;
}
.pm-family-tile {
	position: relative; overflow: hidden; display: flex; flex-direction: column; gap: var(--pm-space-1);
	padding: 14px 14px; background: var(--pm-surface); border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	text-align: left; transition: transform .18s, box-shadow .18s, border-color .18s;
}
.pm-family-tile::after {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
	background: var(--pm-pink-soft); opacity: 0; transition: opacity .18s;
}
.pm-family-tile:hover { transform: translateY(-3px); box-shadow: var(--pm-shadow-md); border-color: var(--pm-pink-soft); }
.pm-family-tile:hover::after { opacity: 1; }
.pm-family-tile__name { font-family: var(--pm-font-display), serif; font-size: var(--pm-fs-xl); line-height: 1.15; color: var(--pm-text); transition: color .15s; }
.pm-family-tile:hover .pm-family-tile__name { color: var(--pm-pink-deep); }
.pm-family-tile__count { font-size: var(--pm-fs-sm); color: var(--pm-text-faint); letter-spacing: .02em; }
@media (max-width: 1100px) { .pm-families { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .pm-families { grid-template-columns: repeat(2, 1fr); gap: 8px; } .pm-family-tile { padding: 12px 12px; } .pm-family-tile__name { font-size: var(--pm-fs-lg); } }

/* ---------- Sticky «В корзину» на мобайле (страница товара) ---------- */
.pm-sticky-atc { display: none; }
@media (max-width: 860px) {
	.pm-sticky-atc {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		align-items: center; gap: 10px; padding: var(--pm-space-2) var(--pm-space-3) calc(var(--pm-space-2) + env(safe-area-inset-bottom, 0px));
		background: rgba(255,255,255,.97); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
		border-top: 1px solid var(--pm-border); box-shadow: var(--pm-shadow-sm);
	}
	.pm-sticky-atc[hidden] { display: none; }
	.pm-sticky-atc:not([hidden]) { display: flex; }
	.pm-sticky-atc__info { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
	.pm-sticky-atc__name { font-size: var(--pm-fs-xs); color: var(--pm-text-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.pm-sticky-atc__price { font-weight: 700; font-size: var(--pm-fs-body); color: var(--pm-text); }
	.pm-sticky-atc__price .amount, .pm-sticky-atc__price bdi { color: var(--pm-text); }
	.pm-sticky-atc__btn {
		flex: 0 0 auto; background: var(--pm-pink); color: var(--pm-on-pink); border: none;
		border-radius: var(--pm-radius-pill); padding: 10px var(--pm-space-5); font-weight: 600; font-size: var(--pm-fs-md); cursor: pointer;
		transition: background .15s;
	}
	.pm-sticky-atc__btn:hover { background: var(--pm-pink-deep); }
}

/* ---------- Гид по нотам / бренды ---------- */
.pm-section.pm-guide-hero { padding: 6px 0 var(--pm-space-1); }
.pm-section.pm-guide-hero + .pm-section { padding-top: var(--pm-space-2); }
.pm-section.pm-guide-hero + .pm-usp { margin-top: var(--pm-space-1); }
/* Лендинги (не главная): секции после hero без лишнего воздуха */
body.page:not(.home) .pm-section:not(.pm-guide-hero) { padding-top: 14px; padding-bottom: var(--pm-space-4); }
body.page:not(.home) .pm-section--alt { padding-top: var(--pm-space-4); padding-bottom: var(--pm-space-4); }
.pm-guide-hero { margin: 0; }
.pm-guide-hero__inner { max-width: 760px; }
.pm-guide-hero__title { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(24px, 3vw, 34px); line-height: 1.1; margin: 2px 0 6px; color: var(--pm-text); }
.pm-guide-hero__lead { font-size: var(--pm-fs-body-plus); line-height: 1.45; color: var(--pm-text-muted); max-width: 66ch; margin: 0; }
.pm-guide-hero .pm-eyebrow { margin-bottom: var(--pm-space-1); }
.pm-guide-intro { max-width: 62ch; margin: var(--pm-space-2) auto var(--pm-space-3); text-align: center; color: var(--pm-text-muted); line-height: 1.5; font-size: var(--pm-fs-body); }

.pm-guide-pyramid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pm-space-3); margin-top: var(--pm-space-3); }
.pm-guide-tier { position: relative; padding: var(--pm-space-4) var(--pm-space-4) 14px; background: var(--pm-surface); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); }
.pm-guide-tier__k { font-family: var(--pm-font-display); font-size: 28px; line-height: 1; color: var(--pm-pink-soft); display: block; margin-bottom: var(--pm-space-1); }
.pm-guide-tier h3 { font-family: var(--pm-font-display); font-weight: 600; font-size: 20px; margin: 0 0 6px; color: var(--pm-text); }
.pm-guide-tier p { margin: 0; color: var(--pm-text-muted); line-height: 1.5; font-size: var(--pm-fs-body); }

.pm-guide-fams { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--pm-space-3); margin-top: var(--pm-space-3); }
.pm-guide-fam { padding: 14px var(--pm-space-4) var(--pm-space-3); background: var(--pm-surface); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); transition: box-shadow .18s, border-color .18s; }
.pm-guide-fam:hover { box-shadow: var(--pm-shadow-md); border-color: var(--pm-pink-soft); }
.pm-guide-fam__name { font-family: var(--pm-font-display); font-weight: 600; font-size: 22px; margin: 0 0 var(--pm-space-1); color: var(--pm-text); }
.pm-guide-fam__desc { margin: 0 0 var(--pm-space-2); color: var(--pm-text-muted); line-height: 1.45; font-size: var(--pm-fs-body); }
.pm-guide-fam__meta { margin: 2px 0; font-size: var(--pm-fs-md); color: var(--pm-text-muted); line-height: 1.4; }
.pm-guide-fam__meta span { color: var(--pm-text-faint); }
.pm-guide-fam__link { display: inline-block; margin-top: var(--pm-space-2); font-weight: 600; font-size: var(--pm-fs-md); color: var(--pm-pink-deep); letter-spacing: .02em; }
.pm-guide-fam__link:hover { color: var(--pm-pink); }

.pm-guide-notes { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-top: var(--pm-space-3); }
.pm-guide-note { padding: var(--pm-space-3) 14px; background: var(--pm-surface); border: 1px solid var(--pm-border); border-radius: var(--pm-radius); }
.pm-guide-note__name { font-family: var(--pm-font-display); font-weight: 600; font-size: var(--pm-fs-xl); margin: 0 0 var(--pm-space-1); color: var(--pm-pink-deep); }
.pm-guide-note__desc { margin: 0; font-size: var(--pm-fs-md); line-height: 1.45; color: var(--pm-text-muted); }

.pm-guide-cta { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: var(--pm-space-1); }

/* ---------- Строка доверия в buy box (под кнопкой) ---------- */
/* Строка доверия под кнопкой: три стеклянные плитки (вариант «стекло», выбран владельцем
   01.08). Раньше здесь были три серые ссылки через точку - в точке решения их не замечали.
   Матовое стекло + блик по наведению; фактура сделана градиентами, картинок нет. */
.pm-buybox-trust {
	display: flex;
	gap: 6px;
	margin: var(--pm-subsection-gap) 0 var(--pm-stack-gap);
	padding: 0;
}
.pm-buybox-trust__i {
	position: relative; overflow: hidden; flex: 1; min-width: 0;
	display: flex; align-items: center; gap: var(--pm-space-2);
	padding: 6px 10px; border-radius: 10px; text-decoration: none;
	border: 1px solid var(--pm-color-soft-lilac);
	background: linear-gradient(135deg, var(--pm-color-quiz-lilac), var(--pm-color-quiz-lilac-2) 45%, var(--pm-color-quiz-lilac-3));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}
.pm-buybox-trust__i::after {
	content: ""; position: absolute; top: -70%; left: -30%; width: 32%; height: 240%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .8), transparent);
	transform: skewX(-18deg) translateX(-140%);
}
.pm-buybox-trust__i:hover::after { animation: pm-trust-sheen 1s cubic-bezier(.4, 0, .2, 1); }
@keyframes pm-trust-sheen { to { transform: skewX(-18deg) translateX(430%); } }
.pm-buybox-trust__ic { flex: none; width: 17px; height: 17px; color: var(--pm-pink); position: relative; z-index: 1; }
.pm-buybox-trust__ic svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.pm-buybox-trust__tx { position: relative; z-index: 1; min-width: 0; }
.pm-buybox-trust__tx b {
	display: block; line-height: 1.15; font-family: var(--pm-font-head);
	font-size: var(--pm-fs-2xs); font-weight: 700; letter-spacing: .02em; color: var(--pm-color-panel-ink-3);
}
.pm-buybox-trust__tx em {
	display: block; line-height: 1.15; font-style: normal; font-size: 9.5px; color: var(--pm-color-gray-chip);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (prefers-reduced-motion: reduce) { .pm-buybox-trust__i::after { display: none; } }
/* На телефоне три плитки в ряд слишком узкие: условие («по Москве 0 ₽») обрезалось
   многоточием во всех трёх. Оставляем только слово - оно и несёт обещание. */
@media (max-width: 560px) {
	.pm-buybox-trust { gap: 5px; }
	.pm-buybox-trust__i { justify-content: center; padding: 7px 6px; gap: 6px; }
	.pm-buybox-trust__tx em { display: none; }
	.pm-buybox-trust__tx b { font-size: var(--pm-fs-xs); }
}
.pm-buybox-trust__a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; }
.pm-buybox-trust__a:hover,
.pm-buybox-trust__a:focus-visible { color: var(--pm-pink-deep); border-bottom-color: var(--pm-pink); }

/* Пустая корзина: CTA после «пока пуста» */
.pm-cart-empty-cta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 18px 0 var(--pm-space-2);
}
.pm-cart-empty-cta .pm-btn { min-width: 148px; }
.pm-cart-empty-mark {
	position: relative;
	width: 88px;
	height: 88px;
	margin: var(--pm-space-2) auto 14px;
}
.pm-cart-empty-mark__ring {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, var(--pm-pink-wash), var(--pm-color-powder-3) 70%);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pm-gold) 25%, transparent);
}
.pm-cart-empty-mark__ic {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: var(--pm-pink-deep);
}
.pm-cart-empty-mark__ic svg {
	width: 34px;
	height: 34px;
	stroke: currentColor;
	fill: none;
}
/* Скрываем дефолтный «плачущий» псевдо-икон Woo Blocks */
.wc-block-cart__empty-cart__title::before,
.with-empty-cart-icon::before {
	display: none !important;
	content: none !important;
}
.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block .wp-block-heading {
	font-family: var(--pm-font-display) !important;
	font-weight: 600 !important;
	font-size: clamp(22px, 4vw, 28px) !important;
	color: var(--pm-text) !important;
}
.wp-block-woocommerce-empty-cart-block > .wp-block-heading:not(.wc-block-cart__empty-cart__title) {
	font-size: clamp(18px, 3vw, 22px) !important;
	margin-top: 28px !important;
}

/* Шип-бар в заполненной корзине */
.pm-ship-bar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 0 0 18px;
	padding: var(--pm-space-3) var(--pm-space-4);
	border-radius: var(--pm-radius);
	background: linear-gradient(120deg, var(--pm-pink-wash), var(--pm-color-powder-2) 55%, var(--pm-color-gold-wash-2));
	border: 1px solid color-mix(in srgb, var(--pm-gold) 28%, transparent);
	color: var(--pm-text);
	font-size: var(--pm-fs-md);
	line-height: 1.35;
	text-align: center;
}
.pm-ship-bar__ic {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	color: var(--pm-pink-deep);
}
.pm-ship-bar__ic svg { width: 22px; height: 22px; stroke: currentColor; fill: none; display: block; }
.pm-ship-bar__txt b { font-weight: 700; }
.pm-ship-bar__sep { margin: 0 6px; color: var(--pm-text-faint); }
@media (max-width: 640px) {
	.pm-ship-bar { flex-direction: column; gap: 6px; padding: var(--pm-space-3) 14px; }
	.pm-ship-bar__sep { display: none; }
	.pm-ship-bar__txt { display: flex; flex-direction: column; gap: 2px; }
}

/* Cart Block skeleton — короче и в палитре темы (меньше «серый шаблон») */
.woocommerce-cart .wc-block-components-skeleton__element,
.wp-block-woocommerce-cart .wc-block-components-skeleton__element {
	background: linear-gradient(
		90deg,
		var(--pm-color-powder-3) 0%,
		var(--pm-color-powder-2) 45%,
		var(--pm-color-powder-3) 100%
	) !important;
	background-size: 200% 100% !important;
	animation-duration: .9s !important;
	border-radius: 8px;
}
.woocommerce-cart .wp-block-woocommerce-cart.is-loading {
	min-height: 220px;
}
.woocommerce-cart .wc-block-cart.is-loading .wc-block-components-sidebar-layout {
	opacity: .92;
}

@media (max-width: 860px) {
	.pm-guide-pyramid, .pm-guide-fams { grid-template-columns: 1fr; }
	.pm-guide-hero__lead { font-size: var(--pm-fs-body); }
}

/* ---------- 404 ---------- */
.pm-404 { text-align: center; padding: 70px 0 90px; }
.pm-404 .pm-container { max-width: 620px; }
.pm-404__big { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(90px, 16vw, 160px); line-height: 1; background: linear-gradient(120deg, var(--pm-pink), var(--pm-gold)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.pm-404__title { font-family: var(--pm-font-display); font-weight: 600; font-size: clamp(26px, 4vw, 36px); margin: 6px 0 var(--pm-space-3); }
.pm-404__sub { color: var(--pm-text-muted); font-size: var(--pm-fs-lg); margin-bottom: 26px; }
.pm-404__cta { display: flex; gap: var(--pm-space-3); justify-content: center; flex-wrap: wrap; }

/* ---------- Контентные страницы (Контакты/Доставка/...) ---------- */
.pm-page { max-width: 760px; margin: 0 auto; font-size: var(--pm-fs-body); line-height: 1.55; color: var(--pm-text-muted); }
.pm-page h2 { font-family: var(--pm-font-display); font-weight: 600; font-size: 20px; color: var(--pm-text); margin: var(--pm-space-4) 0 6px; }
.pm-page p { margin-bottom: var(--pm-space-2); }
.pm-page ul { margin: 6px 0 var(--pm-space-3); padding: 0; list-style: none; }
.pm-page li { position: relative; padding-left: 22px; margin-bottom: 5px; }
.pm-page li::before { content: ""; position: absolute; left: 5px; top: 11px; width: 6px; height: 6px; border-radius: 50%; background: var(--pm-pink); }
.pm-page a { color: var(--pm-pink); font-weight: 600; }
.pm-page a:hover { color: var(--pm-pink-deep); }
.pm-contacts li { font-size: var(--pm-fs-lg); }
.pm-cb-cta { margin: 4px 0 var(--pm-space-4); }
.pm-callback { display: grid; gap: 12px; margin: 0; }
.pm-callback label { display: grid; gap: 4px; font-size: var(--pm-fs-md); color: var(--pm-text); font-weight: 600; }
.pm-callback label span { font-weight: 400; color: var(--pm-text-faint); }
.pm-callback input, .pm-callback textarea {
	font: inherit; font-weight: 400; font-size: 16px; padding: 10px 12px; border: 1px solid var(--pm-border);
	border-radius: 8px; background: #fff; color: var(--pm-text);
}
.pm-callback button[type="submit"] {
	border: 0; border-radius: 999px; padding: 12px 18px;
	background: var(--pm-pink); color: #fff; font-weight: 700; cursor: pointer;
}
.pm-callback button[type="submit"]:disabled { opacity: .6; cursor: wait; }
.pm-callback__msg { margin: 0; color: var(--pm-text); font-weight: 600; }

.pm-cbm { position: fixed; inset: 0; z-index: 100020; display: flex; align-items: flex-end; justify-content: center; padding: 0 0 78px; }
.pm-cbm[hidden] { display: none; }
.pm-cbm__ov { position: absolute; inset: 0; background: rgba(30,20,28,.5); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.pm-cbm__box {
	position: relative; z-index: 1; width: min(420px, 100%);
	max-height: calc(100vh - 96px); overflow-y: auto;
	background: var(--pm-surface);
	border-radius: 20px 20px 0 0;
	padding: 22px 20px 18px;
	box-shadow: var(--pm-shadow-lg);
	animation: pm-cbm-up var(--pm-dur-mid) var(--pm-ease-out);
}
@keyframes pm-cbm-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.pm-cbm__close {
	position: absolute; right: 12px; top: 10px; width: 38px; height: 38px;
	border: none; background: none; font-size: 26px; line-height: 1;
	color: var(--pm-text-faint); cursor: pointer;
}
.pm-cbm__close:hover { color: var(--pm-pink); }
.pm-cbm__eyebrow {
	margin: 0 0 4px; font-size: var(--pm-fs-xs); font-weight: 600;
	letter-spacing: .24em; text-transform: uppercase; color: var(--pm-pink);
}
.pm-cbm__title {
	margin: 0 0 4px; font-family: var(--pm-font-display); font-weight: 600;
	font-size: 24px; line-height: 1.15; color: var(--pm-text);
}
.pm-cbm__lead { margin: 0 0 12px; color: var(--pm-text-muted); font-size: var(--pm-fs-body); }
.pm-cbm .pm-callback { gap: 10px; }
.pm-cbm .pm-callback button[type="submit"] { width: 100%; }
body.pm-cbm-open { overflow: hidden; }
@media (min-width: 861px) {
	.pm-cbm { align-items: center; padding: 0; }
	.pm-cbm__box {
		border-radius: 20px;
		padding: 32px 28px 26px;
		max-height: 90vh;
		animation: pm-cbm-in var(--pm-dur-mid) var(--pm-ease-out);
	}
	@keyframes pm-cbm-in { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
	.pm-cbm__box { animation: none; }
}

/* ---------- Поля форм (корзина/оформление/кабинет) - --pm-field-* ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-account input.input-text,
.select2-container--default .select2-selection--single {
	border: 1px solid var(--pm-field-border) !important;
	border-radius: var(--pm-field-radius) !important;
	padding: var(--pm-field-pad-y) var(--pm-field-pad-x) !important;
	min-height: var(--pm-touch-min);
	font-family: var(--pm-font-body);
	font-size: var(--pm-field-fs);
	background: var(--pm-field-bg) !important;
	color: var(--pm-text);
	transition: border-color var(--pm-dur-fast) var(--pm-ease-std), box-shadow var(--pm-dur-fast) var(--pm-ease-std);
}
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce form .form-row textarea::placeholder,
.woocommerce-account input.input-text::placeholder {
	color: var(--pm-field-placeholder);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce-account input.input-text:focus {
	border-color: var(--pm-field-border-focus) !important;
	outline: none;
	box-shadow: var(--pm-focus-ring);
}
.woocommerce form .form-row label { font-weight: 600; font-size: var(--pm-fs-md); margin-bottom: 6px; }

/* ---------- Таблицы корзины ---------- */
.woocommerce table.shop_table { border: 1px solid var(--pm-border); border-radius: var(--pm-radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; background: var(--pm-surface); margin-bottom: 26px; }
.woocommerce table.shop_table th { background: var(--pm-bg-2); font-weight: 700; font-size: var(--pm-fs-sm); text-transform: uppercase; letter-spacing: .05em; color: var(--pm-text-faint); padding: 14px var(--pm-space-4); border: none; }
.woocommerce table.shop_table td { padding: var(--pm-space-4); border-top: 1px solid var(--pm-border); }
.woocommerce table.cart img { width: 60px; border-radius: var(--pm-radius); }
.woocommerce a.remove { color: var(--pm-pink) !important; border-color: var(--pm-pink); }
.woocommerce a.remove:hover { background: var(--pm-pink) !important; color: var(--pm-on-pink) !important; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review { border: 1px solid var(--pm-border); border-radius: var(--pm-radius-lg); background: linear-gradient(180deg, var(--pm-color-white), var(--pm-bg-2)); padding: 22px var(--pm-space-6); }
.woocommerce .cart_totals h2, .woocommerce-checkout #order_review_heading { font-family: var(--pm-font-display); font-weight: 600; font-size: 24px; margin-bottom: 14px; }
.woocommerce-checkout #payment { background: transparent; border-radius: var(--pm-radius-lg); }
.woocommerce #payment .place-order, .wc-proceed-to-checkout { padding-top: var(--pm-space-2); }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-top-color: var(--pm-pink) !important; border-radius: var(--pm-radius); background: var(--pm-bg-2); }
.woocommerce-info::before, .woocommerce-message::before { color: var(--pm-pink); }

/* ---------- Woo Blocks: корзина / оформление (плотность + бренд) ---------- */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	margin-top: var(--pm-space-1) !important;
}
/* Колонки чекаута/корзины: column-gap ОБЯЗАН быть нулевым.
   WooCommerce делит строку ровно на 100% (main 65% + sidebar 35%), а промежуток между
   колонками рисует паддингом ВНУТРИ main (53px), не зазором. Любой column-gap прибавляется
   сверх 100% - колонки перестают влезать в строку, а так как у контейнера flex-wrap:wrap,
   сайдбар «Детали заказа» уезжает вниз под кнопку «Оформить заказ»: покупатель не видит состав
   заказа в момент оплаты. Именно это у нас и было (gap: var(--pm-space-5) -> нехватка ровно var(--pm-space-5) -> перенос).   row-gap нужен и полезен: он разделяет колонки, когда те складываются в одну на узком экране. */
.wc-block-components-sidebar-layout {
	column-gap: 0 !important;
	row-gap: var(--pm-space-6) !important;
	margin: 0 0 var(--pm-space-6) !important;
}
.wc-block-components-checkout-step {
	margin: 0 0 var(--pm-space-4) !important;
	padding: 0 0 14px !important;
}
.wc-block-components-checkout-step__heading {
	margin: 0 0 var(--pm-space-2) !important;
}
.wc-block-components-checkout-step__title {
	font-family: var(--pm-font-display) !important;
	font-weight: 600 !important;
	font-size: var(--pm-fs-xl) !important;
}
.wc-block-components-text-input,
.wc-block-components-textarea {
	margin-top: 10px !important;
}
.wc-block-components-text-input input,
.wc-block-components-textarea textarea,
.wc-block-components-text-input .wc-block-components-text-input__input {
	border: 1px solid var(--pm-field-border) !important;
	border-radius: var(--pm-field-radius) !important;
	background: var(--pm-field-bg) !important;
	color: var(--pm-text) !important;
	font-size: var(--pm-field-fs) !important;
	min-height: var(--pm-touch-min);
	padding: var(--pm-field-pad-y) var(--pm-field-pad-x) !important;
	transition: border-color var(--pm-dur-fast) var(--pm-ease-std), box-shadow var(--pm-dur-fast) var(--pm-ease-std);
}
.wc-block-components-text-input input::placeholder,
.wc-block-components-textarea textarea::placeholder {
	color: var(--pm-field-placeholder) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-textarea textarea:focus {
	border-color: var(--pm-field-border-focus) !important;
	outline: none !important;
	box-shadow: var(--pm-focus-ring) !important;
}
.wc-block-cart-items,
.wc-block-cart-items__row {
	border-color: var(--pm-border) !important;
}
.wc-block-cart-items__header {
	font-size: var(--pm-fs-xs) !important;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--pm-text-faint) !important;
}
.wc-block-components-product-name {
	font-family: var(--pm-font-display) !important;
	font-weight: 600 !important;
	font-size: 17px !important;
	line-height: 1.25 !important;
	color: var(--pm-text) !important;
}
.wc-block-components-product-price,
.wc-block-components-totals-item__value {
	font-weight: 700 !important;
	color: var(--pm-text) !important;
}
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button:not(.is-link) {
	border-radius: var(--pm-radius-pill) !important;
	font-weight: 700 !important;
	letter-spacing: .03em !important;
	text-transform: uppercase !important;
	font-size: var(--pm-fs-md) !important;
}
.wc-block-components-sidebar {
	border: 1px solid var(--pm-border) !important;
	border-radius: var(--pm-radius) !important;
	padding: var(--pm-space-4) 18px !important;
	background: linear-gradient(180deg, var(--pm-color-white), var(--pm-bg-2)) !important;
}
/* WC прячет sticky CTA при max-height≤500 — на низких/landscape экранах кнопки не остаётся. */
@media (max-height: 500px) {
	.wc-block-cart .wc-block-cart__submit-container--sticky {
		display: block !important;
	}
}
@media (max-width: 860px) {
	/* Только row-gap: колонки тут уже сложены в одну. column-gap вернул бы перенос, см. выше. */	.wc-block-components-sidebar-layout { row-gap: 14px !important; }
	.wc-block-components-sidebar { padding: 14px !important; }
	.wc-block-cart-items__header { display: none !important; }
	/* Sticky «к оформлению» выше плавающего дока, иначе перекрывает вкладки. */
	.woocommerce-cart .wc-block-cart__submit-container--sticky {
		bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
		left: 0;
		right: 0;
		padding: 10px var(--pm-space-3);
		background: rgba(255, 255, 255, .96) !important;
		box-shadow: 0 -10px 28px rgba(30, 10, 20, .1);
	}
	body.woocommerce-cart {
		padding-bottom: calc(148px + env(safe-area-inset-bottom, 0px));
	}
}

/* ---------- Личный кабинет ---------- */
/* Grid только когда есть навигация кабинета (не ломать login/FiboSearch .woocommerce). */
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
	gap: var(--pm-space-5) 28px;
	align-items: start;
}
.woocommerce-account .woocommerce-MyAccount-navigation { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce-account .woocommerce-MyAccount-content { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--pm-space-1); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 14px; border-radius: var(--pm-radius); font-weight: 600; font-size: var(--pm-fs-body); color: var(--pm-text-muted); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--pm-pink-wash); color: var(--pm-pink-deep); }
.woocommerce-account .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pm-space-4); }
.woocommerce-account .col2-set::before, .woocommerce-account .col2-set::after { display: none !important; }
.woocommerce-account .col2-set .col-1, .woocommerce-account .col2-set .col-2 { width: auto !important; float: none !important; }
.woocommerce-account .col2-set .col-1,
.woocommerce-account .col2-set .col-2,
.woocommerce-account form.login,
.woocommerce-account form.register { border: 1px solid var(--pm-border); border-radius: var(--pm-radius-lg); padding: var(--pm-space-5) 22px; background: var(--pm-surface); }
.woocommerce-account form.login h2, .woocommerce-account form.register h2 { font-family: var(--pm-font-display); font-weight: 600; font-size: 22px; margin: 0 0 var(--pm-space-3); }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 { font-family: var(--pm-font-display); font-weight: 600; font-size: 20px; margin: 0 0 var(--pm-space-3); }
.woocommerce-account table.shop_table { font-size: var(--pm-fs-md); }
.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td { padding: 10px var(--pm-space-3); }
@media (max-width: 860px) {
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: 1fr; gap: 14px; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		flex-direction: row; flex-wrap: nowrap; gap: 6px; overflow-x: auto; -webkit-overflow-scrolling: touch;
		padding-bottom: var(--pm-space-1); margin: 0 -var(--pm-space-1); padding-left: var(--pm-space-1); padding-right: var(--pm-space-1);
	}
	.woocommerce-account .woocommerce-MyAccount-navigation li { flex: 0 0 auto; }
	.woocommerce-account .woocommerce-MyAccount-navigation li a { padding: var(--pm-space-2) var(--pm-space-3); font-size: var(--pm-fs-md); white-space: nowrap; }
	.woocommerce-account .col2-set { grid-template-columns: 1fr; gap: var(--pm-space-3); }
	.woocommerce-account .col2-set .col-1,
	.woocommerce-account .col2-set .col-2,
	.woocommerce-account form.login,
	.woocommerce-account form.register { padding: var(--pm-space-4); }
	.woocommerce-account table.shop_table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* ---------- Адаптив: слим-строка -> бургер + дровер ----------
   Порог 1329 (~1330): на узком десктопе (Win DPI / ~1280 CSS px) 6 пунктов + «Ещё»
   + поиск + «Подбор» не влезают в контейнер 1200px — раньше был горизонтальный скролл.
   Выбор из ПРОТОТИПЫ-шапка.html: бургер, не перенос в 2 строки. */
/* Поиск-строка и «Подбор» уезжают раньше самого меню: они широкие, а пункты навигации
   помещаются в строку до ~1100. Владелец смотрит сайт при системном масштабе 125%
   (CSS-ширина ~1150) и хочет там полное меню, а не бургер. */
@media (max-width: 1329px){
	.pm-search--bar, .pm-nav__cta.pm-bar__cta { display: none; }
	/* Пилюля-триггер только ≥1330 (critical.css); здесь только иконка, иначе 0×0 «поиск». */
	.pm-search-trigger { display: none !important; }
	.pm-act--search { display: flex; }
	.pm-bar__right { gap: var(--pm-space-3); }
}
@media (max-width: 1099px){
	.pm-burger { display: flex; margin-left: -var(--pm-space-2); }
	.pm-bar { gap: var(--pm-space-3); }
	.pm-bar .pm-logo { margin: 0 auto; min-width: 0; max-width: min(200px, 46vw); }
	/* Липкая шапка: без backdrop-filter, иначе она создаёт containing block
	   и position:fixed дровер начинает позиционироваться от шапки, а не от вьюпорта. */
	.pm-header.is-stuck { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--pm-surface); }

	/* Навигация -> off-canvas дровер слева */
	.pm-nav { position: fixed; top: 0; left: 0; bottom: 0; width: 84vw; max-width: 340px; z-index: 100001; margin: 0;
		background: var(--pm-surface); box-shadow: 0 0 44px rgba(0,0,0,.18); overflow-y: auto; -webkit-overflow-scrolling: touch;
		transform: translateX(-100%); transition: transform .3s cubic-bezier(.4,0,.2,1); border: none; }
	.pm-nav.is-open { transform: none; }
	.pm-nav__inner { flex-wrap: nowrap; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; padding: 0; max-width: none; }
	.pm-nav__head { display: flex; align-items: center; justify-content: space-between; padding: var(--pm-space-4) var(--pm-space-5); border-bottom: 1px solid var(--pm-border); position: sticky; top: 0; background: var(--pm-surface); z-index: 1; }
	.pm-nav__title { font-family: var(--pm-font-head); font-weight: 700; font-size: var(--pm-fs-body-plus); text-transform: uppercase; letter-spacing: .05em; color: var(--pm-text); }
	.pm-nav .pm-nav__close {
		background: none; border: none; font-size: 30px; line-height: 1;
		color: var(--pm-text) !important; cursor: pointer; padding: 0;
		min-width: 44px; min-height: 44px;
	}
	.pm-nav__close:hover { color: var(--pm-pink); }
	.pm-nav__item { display: block; width: 100%; }
	.pm-nav__inner > a, .pm-nav__item > a {
		display: block; width: 100%; padding: 15px var(--pm-space-5); font-size: var(--pm-fs-body-plus); font-weight: 500;
		text-transform: none; letter-spacing: 0; text-align: left; border-bottom: 1px solid var(--pm-border);
	}
	.pm-nav__inner > a:hover, .pm-nav__item > a:hover { background: var(--pm-bg-2); }
	.pm-nav__item.has-mega > a::after { display: none; }
	.pm-mega { display: none !important; } /* hover-дропдаун в дровере не нужен, раздел ведёт на свою страницу */

	/* «Ещё» -> плоский список пунктов внутри дровера */
	.pm-more__btn { display: none; }
	.pm-more__pop {
		position: static; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; border: none; border-radius: 0; padding: 0; min-width: 0;
	}
	.pm-more__pop a { padding: 15px var(--pm-space-5); font-size: var(--pm-fs-body-plus); border-radius: 0; border-bottom: 1px solid var(--pm-border); }

	/* Только в дровере: «Подбор аромата» и поиск.
	   Специфичность (0,2,0) - парная к правилу-скрытию на десктопе. */
	.pm-nav__inner > .pm-nav__drawer-only { display: block; }
	.pm-nav__cta.pm-nav__drawer-only {
		padding: 15px var(--pm-space-5); font-size: var(--pm-fs-body-plus); font-weight: 600; text-decoration: none;
		background: var(--pm-pink-wash); color: var(--pm-pink-deep); border-bottom: 1px solid var(--pm-border);
	}
	/* Идёт после правила выше, чтобы форма получила flex, а не block. */
	.pm-nav__inner > .pm-search--drawer { display: flex; margin: 14px var(--pm-space-5); width: auto; }
	.pm-search--drawer .pm-search__input, .pm-search--drawer .pm-search__input:focus { width: 100%; }

	/* Оверлей */
	.pm-nav__ov { display: block; position: fixed; inset: 0; z-index: 100000; background: rgba(30,20,28,.42);
		opacity: 0; visibility: hidden; transition: opacity .3s; }
	.pm-nav__ov.is-open { opacity: 1; visibility: visible; }
}

/* ---------- Адаптив ---------- */
@media (max-width: 860px){
	.pm-hero__inner { grid-template-columns: 1fr; text-align: center; padding: 18px var(--pm-space-4) var(--pm-space-4); gap: var(--pm-space-3); }
	/* Флакон первым ради LCP, но компактнее: иначе H1 уезжает под первый экран. */
	.pm-hero__media { order: -1; }
	.pm-hero__stage { min-height: 148px; max-width: min(200px, 58vw); margin: 0 auto; }
	.pm-hero__bottle--main { max-height: 148px; }
	.pm-hero__trust { display: none; }
	.pm-hero__sub { margin-left: auto; margin-right: auto; }
	.pm-hero__brand { display: inline-block; }
	.pm-hero__brand::after { left: 50%; transform: translateX(-50%); }
	.pm-hero__eyebrow { padding-left: 0; display: inline-block; }
	.pm-hero__eyebrow::before { display: none; }
	.pm-hero__cta { justify-content: center; }
	.pm-bar { padding: 10px 14px; }
	.pm-bar .pm-logo__img { height: 34px; }
	.pm-bar__actions { gap: var(--pm-space-3); }
	.pm-section { padding: 22px 0; }
	.pm-section-title { font-size: 22px; }
	.pm-section-head { margin-bottom: var(--pm-space-3); }
}

/* Сетка каталога/карточек: Kadence woo-archive CSS снят в A7 - рисуем сами на всех ширинах.
   stretch: иначе 1/2 строки title и плашка форматов ломают ряд. */
.woocommerce ul.products,
.pm-container ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	align-items: stretch;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	clear: both;
}
.woocommerce ul.products li.product,
.pm-container ul.products li.product {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	float: none !important;
	height: 100%;
}
/* Плотность сетки, вариант B (14.08). На каждой ширине на колонку больше, чем было:
   с боковыми фасетами 4 вместо 3, на планшете 3 вместо 2. Две колонки остаются только на
   узком телефоне - там третья давала бы карточку уже 120px. */
@media (min-width: 861px) {
	/* body.woocommerce - класс на body, не обёртка внутри main; селектор без .woocommerce */
	.site-main:has(> .pm-facets) ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 12px;
	}
}
@media (max-width: 1100px) {
	.woocommerce ul.products,
	.pm-container ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 12px; }
}
@media (max-width: 860px) {
	.woocommerce ul.products,
	.pm-container ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px; }
}
@media (max-width: 640px) {
	.woocommerce ul.products,
	.pm-container ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px; }
}

/* Вид списком. Наша сетка с !important глушила родной list view Kadence:
   кнопка «список» горела, а карточки оставались квадратами в 4 колонки. */
.woocommerce ul.products.products-list-view,
.pm-container ul.products.products-list-view,
.site-main:has(> .pm-facets) ul.products.products-list-view {
	grid-template-columns: 1fr !important;
	gap: 10px;
}
.woocommerce ul.products.products-list-view li.product,
.pm-container ul.products.products-list-view li.product {
	display: grid;
	grid-template-columns: 168px minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	align-items: start;
	height: auto;
	min-height: 168px;
}
.woocommerce ul.products.products-list-view li.product > a.woocommerce-LoopProduct-link,
.woocommerce ul.products.products-list-view li.product > a.woocommerce-loop-image-link {
	grid-column: 1;
	grid-row: 1 / -1;
	width: 168px;
	height: 168px;
	max-height: 168px;
	overflow: hidden;
}
.woocommerce ul.products.products-list-view li.product .pm-card-ph {
	width: 168px;
	height: 168px;
	min-height: 0;
	aspect-ratio: 1;
}
.woocommerce ul.products.products-list-view li.product .pm-card-ph img,
.woocommerce ul.products.products-list-view li.product a img {
	width: 168px;
	height: 168px;
	max-height: 168px;
	aspect-ratio: 1;
	object-fit: contain;
}
.woocommerce ul.products.products-list-view li.product .pm-card-brand {
	grid-column: 2;
	padding: 10px 12px 0;
}
.woocommerce ul.products.products-list-view li.product .product-details {
	grid-column: 2;
	padding: 2px 12px 0 !important;
}
.woocommerce ul.products.products-list-view li.product .woocommerce-loop-product__title {
	min-height: 0;
}
.woocommerce ul.products.products-list-view .pm-card-formats--gap {
	display: none;
}
.woocommerce ul.products.products-list-view li.product .pm-wish--card {
	right: auto;
	left: 126px;
}
.woocommerce ul.products.products-list-view li.product .pm-qv {
	right: auto;
	left: 126px;
}
/* В сетке семейство тянется к цене. В списке строка широкая, и плашка
   становилась полосой на всю ширину. */
.woocommerce ul.products.products-list-view .pm-card-chips .pm-chip--family {
	flex: 0 1 auto;
	max-width: 14em;
}

/* Каталог на узком мобиле - уплотнённые карточки */
@media (max-width: 640px){
	.woocommerce ul.products li.product { padding: 0 !important; }
	.woocommerce ul.products li.product .product-details { padding: 6px 8px 8px !important; }
	ul.products li.product .product-action-wrap { margin: 6px -8px -8px !important; }
	.woocommerce ul.products li.product .pm-badges { top: 8px; left: 8px; }
	.woocommerce ul.products li.product .pm-wish--card { top: 8px; right: 8px; }
	.woocommerce ul.products li.product .pm-qv { top: 48px; right: 8px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 13px !important; }
	.woocommerce ul.products li.product .price { font-size: 14px !important; }
	.pm-card-chips .pm-chip { font-size: 9px; padding: 2px 6px; }
	/* На узком: если два чипа не влезают - оставляем объём, fam уезжает в ellipsis */
	.pm-card-chips .pm-chip--family { max-width: 6.5em; }
	.pm-badge,
	.woocommerce span.onsale { font-size: 8px; padding: 3px 6px !important; }
	.pm-card-brand { font-size: var(--pm-fs-2xs); }
	.pm-card-formats,
	.pm-card-price-hint,
	.woocommerce ul.products li.product .star-rating,
	.woocommerce ul.products li.product .pm-card-rating { display: none !important; }
	/* кнопку добавления на мобиле показываем всегда (нет hover) */
	.woocommerce ul.products li.product .button { opacity: 1 !important; transform: none !important; }
}

/* ---------- Rail: горизонтальная лента товаров (главная) ---------- */
.pm-wait {
	margin: 14px 0 6px; padding: 14px var(--pm-space-4);
	background: linear-gradient(180deg, var(--pm-pink-wash) 0%, var(--pm-color-white) 85%);
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius-lg);
}
.pm-wait[hidden] { display: none !important; }
.pm-wait__k {
	margin: 0 0 var(--pm-space-1); font-size: var(--pm-fs-xs); font-weight: 800; letter-spacing: .05em;
	text-transform: uppercase; color: var(--pm-pink-deep);
}
.pm-wait__t { margin: 0 0 10px; font-size: var(--pm-fs-md); color: var(--pm-text-muted); }
.pm-wait__form { display: flex; flex-wrap: wrap; gap: var(--pm-space-2); align-items: stretch; }
.pm-wait__input {
	flex: 1 1 180px; min-height: 42px; padding: var(--pm-space-2) var(--pm-space-3);
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius-pill); font: inherit; background: var(--pm-surface);
}
.pm-wait__input:focus { outline: none; border-color: var(--pm-pink); }
.pm-wait__btn { min-height: 42px; padding: var(--pm-space-2) var(--pm-space-4); font-size: var(--pm-fs-md); }
.pm-wait__hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; }
.pm-wait__ok { margin: 10px 0 0; font-size: var(--pm-fs-md); font-weight: 600; color: var(--pm-success); }
.pm-wait__err { margin: var(--pm-space-2) 0 0; font-size: var(--pm-fs-sm); color: var(--pm-sale); }

.pm-bump {
	/* minmax(0,1fr): иначе nowrap-кнопка в auto сжимает текст в столбец (как sheet-hero). */
	display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: var(--pm-space-3); align-items: center;
	margin: var(--pm-space-3) 0 var(--pm-space-4); padding: var(--pm-space-3) 14px;
	background: linear-gradient(180deg, var(--pm-pink-wash) 0%, var(--pm-color-white) 70%);
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius-lg);
}
.pm-bump__img, .pm-bump__ph {
	width: 56px; height: 56px; border-radius: 10px; object-fit: contain; background: var(--pm-surface);
	border: 1px solid var(--pm-border);
}
.pm-bump__ph { display: block; background: linear-gradient(160deg, var(--pm-color-soft-rose), var(--pm-color-soft-border)); }
.pm-bump__body { min-width: 0; }
.pm-bump__k {
	margin: 0 0 2px; font-size: var(--pm-fs-2xs); font-weight: 800; letter-spacing: .05em;
	text-transform: uppercase; color: var(--pm-pink-deep);
}
.pm-bump__t { margin: 0; font-size: var(--pm-fs-md); font-weight: 700; line-height: 1.25; color: var(--pm-text); }
.pm-bump__d { margin: 2px 0 0; font-size: var(--pm-fs-xs); color: var(--pm-text-faint); }
.pm-bump__price { margin: var(--pm-space-1) 0 0; font-size: var(--pm-fs-body); font-weight: 700; color: var(--pm-pink); }
.pm-bump__btn { white-space: nowrap; min-height: 40px; padding: var(--pm-space-2) 14px; font-size: var(--pm-fs-md); }
.pm-bump__btn.is-busy { opacity: .65; pointer-events: none; }
/* Sheet ~440px: viewport media (520) не срабатывает на десктопе — кнопка всегда под текстом. */
body.pm-checkout-sheet .pm-bump {
	grid-template-columns: 48px minmax(0, 1fr);
}
body.pm-checkout-sheet .pm-bump__btn {
	grid-column: 1 / -1;
	width: 100%;
}
@media (max-width: 480px) {
	.pm-bump { grid-template-columns: 48px minmax(0, 1fr); }
	.pm-bump__btn { grid-column: 1 / -1; width: 100%; }
}

.pm-recent-mount { width: 100%; }
.pm-recent[hidden] { display: none !important; }
.pm-recent .pm-rail__scroller ul.products { margin: 0; }
.pm-rail__scroller {
	/* Только горизонталь. Не ставить touch-action:pan-x — на мобиле жест вниз
	   тогда ищет вертикальный scroll-container в предках и залипает на самой ленте,
	   страница не едет. Вертикальный скролл ленты убиваем padding’ом под box-shadow. */
	overflow-x: auto;
	overflow-y: hidden;
	overflow-y: clip;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 4px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: var(--pm-space-2) var(--pm-space-1) 28px;
}
.pm-rail__scroller::-webkit-scrollbar { display: none; }
.pm-rail__scroller ul.products,
.pm-rail .woocommerce ul.products {
	display: flex !important;
	grid-template-columns: none !important;
	gap: 14px !important;
	width: max-content;
	max-width: none;
	margin: 0 !important;
	padding: 0 !important;
	/* не даём потомкам с overflow:visible раздувать scrollHeight ленты */
	align-items: stretch;
}
.pm-rail__scroller ul.products li.product {
	flex: 0 0 240px;
	width: 240px !important;
	max-width: 240px !important;
	scroll-snap-align: start;
	/* Сбрасываем height:100% из сеточного правила (строка ~4464). В гриде каталога процент
	   считается от высоты ряда и выравнивает карточки; здесь родитель - флекс-лента с высотой
	   auto, процент от неопределённой высоты не резолвится, но и `auto` кросс-размером быть
	   перестаёт - значит align-items:stretch к элементу больше не применяется. Карточка падает
	   на высоту содержимого, и товар без строки «2 формата» оказывается на 30px ниже соседа.
	   Именно так лента разъезжалась, пока каталог стоял ровно. */
	height: auto;
}
/* 240px: семейство + conc + объём + цена сжимает «Ирисовый зелёный» в 21px.
   Не растягиваем плашку в полосу и не оставляем точку. Лишние чипы прячем. */
.pm-rail .pm-card-chips .pm-chip--family {
	flex: 0 1 auto;
	max-width: 9em;
}
/* Раньше в ленте чип концентрации прятался, если есть семейство: в старой раскладке они
   стояли в одну полосу с ценой и не помещались в 240px. С карточкой A+B семейство на карточке
   не печатается вовсе, но в DOM остаётся - и :has() продолжал срабатывать, снимая EDP/EDT с
   каждого товара, у которого семейство заполнено. Строка при этом схлопывалась, и карточки в
   ленте разъезжались по высоте (разбор 15.08 по скриншоту владельца). Оставляем только объём. */
.pm-rail .pm-card-chips:has(.pm-chip--family) .pm-chip--vol {
	display: none;
}
.pm-rail__nav {
	position: absolute; top: 42%; z-index: 3;
	width: 40px; height: 40px; margin-top: -var(--pm-space-5);
	border: 1px solid var(--pm-border); border-radius: 50%;
	background: rgba(255,255,255,.94); color: var(--pm-text);
	box-shadow: 0 6px 18px rgba(40,25,40,.12);
	cursor: pointer; display: grid; place-items: center;
	transition: color .15s, border-color .15s, background .15s;
}
.pm-rail__nav:hover { color: var(--pm-pink); border-color: var(--pm-pink); }
.pm-rail__nav::before {
	content: ''; width: 8px; height: 8px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
}
.pm-rail__nav--prev { left: -6px; }
.pm-rail__nav--prev::before { transform: rotate(135deg); margin-left: 3px; }
.pm-rail__nav--next { right: -6px; }
.pm-rail__nav--next::before { transform: rotate(-45deg); margin-right: 3px; }
.pm-rail__nav[hidden] { display: none !important; }
@media (max-width: 860px) {
	.pm-rail { margin: 0 -10px; }
	.pm-rail__scroller { padding-inline: 14px; scroll-padding-inline: 14px; }
	.pm-rail__scroller ul.products li.product {
		flex-basis: min(68vw, 220px);
		width: min(68vw, 220px) !important;
		max-width: min(68vw, 220px) !important;
	}
	.pm-rail__nav { display: none !important; } /* свайп на мобайле */
}
@media (prefers-reduced-motion: reduce) {
	.pm-rail__scroller { scroll-behavior: auto; }
}

/* ---------- Новинки: V2 «Титульная карточка» (выбор владельца 23.07) ----------
   Секция без шапки: вход в раздел - обложка первым слотом рейла, h2 живёт внутри неё,
   поэтому ссылке «Все новинки» негде висеть. Счётчик в обложке - живой (build-home). */
.pm-news .pm-rail__scroller { display: flex; gap: 14px; }
.pm-news .pm-rail__scroller ul.products { flex: 0 0 auto; }
.pm-newscover {
	flex: 0 0 250px; width: 250px;
	display: flex; flex-direction: column; justify-content: space-between; gap: var(--pm-space-3);
	padding: 18px 18px var(--pm-space-4); border-radius: var(--pm-radius);
	scroll-snap-align: start; text-decoration: none;
	background:
		radial-gradient(120% 90% at 90% -10%, color-mix(in srgb, var(--pm-gold) 18%, transparent), transparent 60%),
		linear-gradient(160deg, var(--pm-pink-wash) 0%, var(--pm-color-promo-pink) 55%, var(--pm-color-white) 130%);
}
.pm-newscover__k {
	font-size: var(--pm-fs-2xs); font-weight: 700; letter-spacing: .16em;
	text-transform: uppercase; color: var(--pm-pink-deep);
}
.pm-newscover__t {
	font-family: var(--pm-font-display); font-weight: 600; font-size: 38px;
	line-height: .95; margin: 6px 0 0; color: var(--pm-text);
}
.pm-newscover__t small {
	display: block; font-family: var(--pm-font-body); font-weight: 400;
	font-size: var(--pm-fs-md); letter-spacing: 0; color: var(--pm-text-muted); margin-top: var(--pm-space-2);
}
.pm-newscover__mid {
	display: block; font-family: var(--pm-font-display); font-weight: 500;
	font-size: 19px; line-height: 1.4; color: var(--pm-text);
}
.pm-newscover__mid small {
	display: block; font-family: var(--pm-font-body); font-weight: 700;
	font-size: var(--pm-fs-2xs); letter-spacing: .16em; text-transform: uppercase;
	/* Обложка новинок светлая (pink-wash -> promo-pink), светлое золото давало 1.81. */
	color: var(--pm-gold-ink); margin-bottom: 6px;
}
.pm-newscover__btn {
	display: flex; align-items: center; justify-content: space-between;
	background: var(--pm-surface); border: 1px solid var(--pm-gold-line); border-radius: var(--pm-radius-pill);
	padding: var(--pm-space-2) var(--pm-space-2) var(--pm-space-2) 15px; font-size: var(--pm-fs-sm); font-weight: 700;
	letter-spacing: .05em; text-transform: uppercase; color: var(--pm-pink-deep);
	transition: box-shadow .15s;
}
.pm-newscover__btn em {
	width: 28px; height: 28px; border-radius: 50%; background: var(--pm-pink);
	display: grid; place-items: center; transition: transform .18s;
}
.pm-newscover__btn em::before {
	content: ''; width: 7px; height: 7px; margin-left: -2px;
	border-right: 2px solid var(--pm-color-white); border-bottom: 2px solid var(--pm-color-white);
	transform: rotate(-45deg);
}
.pm-newscover:hover .pm-newscover__btn { box-shadow: 0 10px 24px rgba(180, 90, 130, .18); }
.pm-newscover:hover .pm-newscover__btn em { transform: translateX(4px); }
@media (max-width: 860px) {
	.pm-newscover {
		flex-basis: min(68vw, 220px); width: min(68vw, 220px);
		padding: 14px 14px var(--pm-space-3);
	}
	.pm-newscover__t { font-size: 30px; }
}

/* ---------- Бестселлеры: Б1 тёмная люкс-обложка (выбор владельца 23.07) ----------
   Единственная тёмная карточка на светлой главной + золотые номера 1-2-3 на первых
   карточках рейла (чистый CSS, разметку карточек не трогаем). */
.pm-best .pm-rail__scroller { display: flex; gap: 14px; }
.pm-best .pm-rail__scroller ul.products { flex: 0 0 auto; }
.pm-bestcover {
	flex: 0 0 250px; width: 250px;
	display: flex; flex-direction: column; justify-content: space-between; gap: var(--pm-space-3);
	padding: 18px 18px var(--pm-space-4); border-radius: var(--pm-radius);
	scroll-snap-align: start; text-decoration: none;
	background:
		radial-gradient(130% 90% at 90% -10%, color-mix(in srgb, var(--pm-gold) 35%, transparent), transparent 55%),
		linear-gradient(160deg, var(--pm-color-panel-ink-4) 0%, var(--pm-color-panel-ink-5) 70%);
}
.pm-bestcover__k {
	display: block; font-size: var(--pm-fs-2xs); font-weight: 700; letter-spacing: .16em;
	text-transform: uppercase; color: var(--pm-gold);
}
.pm-bestcover__t {
	display: block; font-family: var(--pm-font-display); font-weight: 600;
	/* 36px не влезали: «Бестселлеры» требуют 227px, в плитке доступно 214, а Kadence держит
	   глобальный word-break:break-word - слово рвалось как «Бестселлер / ы». Запрещаем разрыв
	   внутри слова и уменьшаем кегль до влезающего с запасом (при 32px слово ~202px). */
	font-size: 32px; line-height: .98; margin: 6px 0 0; color: var(--pm-on-pink);
	word-break: normal; overflow-wrap: normal;
}
.pm-bestcover__t small {
	display: block; font-family: var(--pm-font-body); font-weight: 400;
	font-size: var(--pm-fs-md); letter-spacing: 0; color: var(--pm-color-gray-border); margin-top: var(--pm-space-2);
}
.pm-bestcover__mid {
	display: block; font-family: var(--pm-font-display); font-weight: 500;
	font-size: 19px; line-height: 1.4; color: var(--pm-color-quiz-lilac-3);
}
.pm-bestcover__mid small {
	display: block; font-family: var(--pm-font-body); font-weight: 700;
	font-size: var(--pm-fs-2xs); letter-spacing: .16em; text-transform: uppercase;
	color: var(--pm-gold); margin-bottom: 6px;
}
.pm-bestcover__btn {
	display: flex; align-items: center; justify-content: space-between;
	background: var(--pm-surface); border-radius: var(--pm-radius-pill); padding: var(--pm-space-2) var(--pm-space-2) var(--pm-space-2) 15px;
	font-size: var(--pm-fs-sm); font-weight: 700; letter-spacing: .05em;
	text-transform: uppercase; color: var(--pm-color-panel-ink-3); transition: box-shadow .15s;
}
.pm-bestcover__btn em {
	width: 28px; height: 28px; border-radius: 50%; background: var(--pm-gold);
	display: grid; place-items: center; transition: transform .18s;
}
.pm-bestcover__btn em::before {
	content: ''; width: 7px; height: 7px; margin-left: -2px;
	border-right: 2px solid var(--pm-color-white); border-bottom: 2px solid var(--pm-color-white);
	transform: rotate(-45deg);
}
.pm-bestcover:hover .pm-bestcover__btn { box-shadow: 0 10px 24px rgba(40, 25, 40, .3); }
.pm-bestcover:hover .pm-bestcover__btn em { transform: translateX(4px); }
/* Ранговые кружки 1/2/3 убраны: смысл «бестселлер» уже на обложке секции,
   а номера наезжали на «Скидка»/«Распив» в одном углу карточки. */
@media (max-width: 860px) {
	.pm-bestcover {
		flex-basis: min(68vw, 220px); width: min(68vw, 220px);
		padding: 14px 14px var(--pm-space-3);
	}
	.pm-bestcover__t { font-size: 29px; }
}

/* ---------- Решения до покупки: Р2 плотная строка (выбор владельца 23.07) ----------
   Шапки нет: тёмная мини-плитка-титул в общем ритме сетки, h2 внутри неё. */
.pm-moat-links--v2 { grid-template-columns: repeat(4, 1fr); }
.pm-moat-mini {
	display: flex; flex-direction: column; justify-content: center; gap: var(--pm-space-1);
	padding: var(--pm-space-3) 14px; border-radius: var(--pm-radius); text-decoration: none;
	background: linear-gradient(160deg, var(--pm-color-panel-ink-4) 0%, var(--pm-color-panel-ink-5) 80%);
}
.pm-moat-mini__k {
	font-size: 9.5px; font-weight: 700; letter-spacing: .16em;
	text-transform: uppercase; color: var(--pm-gold);
}
.pm-moat-mini__t {
	font-family: var(--pm-font-display); font-weight: 600; font-size: 20px;
	line-height: 1.05; color: var(--pm-on-pink); margin: 0;
}
.pm-moat-mini__b {
	margin-top: 5px; font-size: var(--pm-fs-2xs); font-weight: 700; letter-spacing: .06em;
	text-transform: uppercase; color: var(--pm-color-soft-pink-mid);
}
.pm-moat-mini__b i { font-style: normal; display: inline-block; transition: transform .18s; }
.pm-moat-mini:hover .pm-moat-mini__b i { transform: translateX(3px); }
@media (max-width: 760px) {
	.pm-moat-links--v2 { grid-template-columns: 1fr 1fr; }
}

/* Главная: атмосферы вместо сетки из восьми плиток. Другие moat-страницы
   остаются на .pm-moat-links без этого блока. */
.pm-atmo { display: flex; flex-direction: column; gap: 6px; }
/* Глобальный a:hover красит ссылки в розовый; inherit тянул ink страницы —
   на тёмных полях текст пропадал. Держим цвет самой плитки. */
a.pm-atmo__mood:hover,
a.pm-atmo__mood:focus { color: #fff; }
a.pm-atmo__mood--heat:hover,
a.pm-atmo__mood--heat:focus { color: #3a2a18; }
a.pm-atmo__dock-i:hover,
a.pm-atmo__dock-i:focus { color: var(--pm-text); }
a.pm-atmo__stamp:hover,
a.pm-atmo__stamp:focus { color: #fff; }
a.pm-atmo__stamp:hover .pm-atmo__stamp-t,
a.pm-atmo__stamp:focus .pm-atmo__stamp-t { color: #fff; }
a.pm-atmo__stamp:hover .pm-atmo__stamp-k,
a.pm-atmo__stamp:focus .pm-atmo__stamp-k { color: var(--pm-gold); }
.pm-atmo__moods {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
}
.pm-atmo__mood {
	position: relative;
	min-height: 132px;
	padding: 16px 16px 14px;
	overflow: hidden;
	border-radius: var(--pm-radius-lg);
	color: #fff;
	text-decoration: none;
}
.pm-atmo__mood b {
	position: relative;
	display: block;
	font-family: var(--pm-font-display);
	font-size: 28px;
	font-weight: 650;
	letter-spacing: -.03em;
	line-height: 1;
}
.pm-atmo__mood span {
	position: relative;
	display: block;
	margin-top: 6px;
	font-size: var(--pm-fs-sm);
	opacity: .78;
	max-width: 22ch;
}
.pm-atmo__mood--date {
	background:
		radial-gradient(ellipse 90% 80% at 12% 110%, #d47aa866, transparent 46%),
		radial-gradient(circle at 88% 8%, #f6d7a028, transparent 26%),
		linear-gradient(165deg, #2a1420, #4a2234 58%, #1a1016);
}
.pm-atmo__mood--date::after {
	content: "";
	position: absolute;
	right: 18px;
	bottom: 16px;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: radial-gradient(circle at 40% 40%, #fff1c8, #e8b86a 40%, transparent 68%);
	opacity: .55;
	pointer-events: none;
}
.pm-atmo__mood--heat {
	color: #3a2a18;
	background:
		radial-gradient(circle at 86% 16%, #fff6c8 0 18%, transparent 42%),
		linear-gradient(180deg, #f7edd4, #e4c98a 70%, #d4b56a);
}
.pm-atmo__mood--heat::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 14px;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: radial-gradient(circle at 40% 40%, #fffef4, #f0d36a 46%, #e0b04000 70%);
	pointer-events: none;
}
.pm-atmo__mood--gift {
	color: #fff;
	background:
		radial-gradient(ellipse at 80% 120%, #e89bb866, transparent 42%),
		linear-gradient(165deg, #8a2048, var(--pm-pink) 55%, #6e1838);
}
.pm-atmo__mood--gift::after {
	content: "";
	position: absolute;
	right: 16px;
	bottom: 12px;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: radial-gradient(circle at 40% 35%, #ffd0e0, var(--pm-pink) 46%, transparent 70%);
	opacity: .7;
	pointer-events: none;
}
.pm-atmo__mood--oud {
	background:
		radial-gradient(ellipse at 20% 120%, #6a422888, transparent 42%),
		linear-gradient(180deg, #2c241c, #161310);
}
.pm-atmo__mood--oud::after {
	content: "";
	position: absolute;
	right: 10px;
	bottom: -10px;
	width: 70px;
	height: 50px;
	border-radius: 50%;
	background: radial-gradient(circle, #5a3a2088, transparent 70%);
	pointer-events: none;
}
.pm-atmo__dock {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
}
.pm-atmo__dock-i {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	padding: 8px 10px;
	border-radius: 10px;
	background: var(--pm-pink-wash);
	text-decoration: none;
}
.pm-atmo__dock-i .pm-usp__vial {
	width: 14px;
	height: 26px;
	border-width: 1.4px;
	border-radius: 0 0 7px 7px;
}
.pm-atmo__dock-i .pm-usp__vial::before {
	top: -6px;
	width: 8px;
	height: 6px;
	margin-left: -4px;
}
.pm-atmo__dock-i .pm-usp__vial::after {
	top: -8px;
	width: 4px;
	height: 3px;
	margin-left: -2px;
}
.pm-atmo__dock-t {
	display: block;
	font-family: var(--pm-font-display);
	font-size: 13px;
	font-weight: 650;
	line-height: 1.1;
}
.pm-atmo__dock-d {
	display: block;
	font-size: 10px;
	color: var(--pm-text-muted);
}
.pm-atmo__stamp {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 8px 12px;
	border-radius: 10px;
	background: var(--pm-color-panel-ink);
	color: #fff;
	text-decoration: none;
}
.pm-atmo__stamp-k {
	color: var(--pm-gold);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.pm-atmo__stamp-t {
	margin: 0;
	font-family: var(--pm-font-display);
	font-size: 14.5px;
	font-weight: 650;
	line-height: 1.15;
	color: #fff;
}
.pm-atmo__mood:focus-visible,
.pm-atmo__dock-i:focus-visible,
.pm-atmo__stamp:focus-visible {
	outline: 2px solid var(--pm-pink);
	outline-offset: 2px;
}
/* F: дыхание сферы + «к подборке» + живой клин/док. Только где есть мышь. */
@media (hover: hover) {
	.pm-atmo__mood {
		transition: transform .35s ease, box-shadow .35s ease;
	}
	.pm-atmo__mood span { transition: opacity .25s; }
	.pm-atmo__mood::after {
		transition: transform .55s cubic-bezier(.2, .8, .2, 1);
	}
	.pm-atmo__mood::before {
		content: "к подборке →";
		position: absolute;
		left: 16px;
		bottom: 12px;
		z-index: 1;
		font-size: 10px;
		font-weight: 700;
		letter-spacing: .08em;
		text-transform: uppercase;
		opacity: 0;
		transform: translateY(6px);
		transition: opacity .25s, transform .3s;
		pointer-events: none;
	}
	.pm-atmo__mood--heat::before { color: #3a2a18; }
	.pm-atmo__mood:hover,
	.pm-atmo__mood:focus-visible {
		transform: translateY(-3px);
		box-shadow: 0 14px 28px rgba(40, 16, 28, .18);
	}
	.pm-atmo__mood:hover::after,
	.pm-atmo__mood:focus-visible::after {
		transform: scale(1.55) translate(-6px, -4px);
	}
	.pm-atmo__mood:hover::before,
	.pm-atmo__mood:focus-visible::before {
		opacity: .88;
		transform: none;
	}
	.pm-atmo__mood:hover span,
	.pm-atmo__mood:focus-visible span { opacity: 1; }
	.pm-atmo__dock-i,
	.pm-atmo__stamp {
		transition: transform .25s ease, background .25s, filter .25s;
	}
	.pm-atmo__dock-i:hover,
	.pm-atmo__dock-i:focus-visible {
		transform: translateY(-2px);
		background: color-mix(in srgb, var(--pm-pink) 16%, #fff);
	}
	.pm-atmo__stamp:hover,
	.pm-atmo__stamp:focus-visible {
		transform: translateY(-2px);
		filter: brightness(1.12);
	}
	.pm-usp--klin .pm-usp__item {
		transition: background .25s, border-color .25s;
	}
	.pm-usp--klin .pm-usp__vial,
	.pm-usp--klin .pm-usp__tag,
	.pm-usp--klin .pm-usp__blot {
		transition: transform .25s, background .25s;
	}
	.pm-usp--klin .pm-usp__item:hover .pm-usp__vial {
		background: linear-gradient(180deg, transparent 14%, #f3b4c8 14%);
	}
	.pm-usp--klin .pm-usp__item:hover .pm-usp__tag {
		transform: rotate(-8deg) translateY(-1px);
	}
	.pm-usp--klin .pm-usp__item:hover .pm-usp__blot {
		background: linear-gradient(180deg, #fff, #e8b4c4);
	}
}
@media (max-width: 760px) {
	.pm-atmo__moods { grid-template-columns: 1fr; }
	.pm-atmo__mood { min-height: 86px; padding: 12px 14px; }
	.pm-atmo__mood b { font-size: 22px; }
	.pm-atmo__mood::before { content: none; }
	.pm-atmo__dock { grid-template-columns: 1fr 1fr; }
	.pm-atmo__dock-t { font-size: 12.5px; }
}
@media (prefers-reduced-motion: reduce) {
	.pm-atmo__mood,
	.pm-atmo__mood::before,
	.pm-atmo__mood::after,
	.pm-atmo__mood span,
	.pm-atmo__dock-i,
	.pm-atmo__stamp,
	.pm-usp--klin .pm-usp__item,
	.pm-usp--klin .pm-usp__vial,
	.pm-usp--klin .pm-usp__tag,
	.pm-usp--klin .pm-usp__blot {
		transition: none;
	}
}

/* Чекаут: селект «Страна/регион» при единственной разрешённой стране.
   Убрать его через локаль нельзя - WooCommerce принудительно возвращает страну после всех
   фильтров (class-wc-countries.php:1725, «country is the lookup key for locale resolution»).
   Класс pm-one-country вешается из inc/checkout.php только когда страна ровно одна. */
.pm-one-country .wc-block-components-address-form__country,
.pm-one-country .wc-block-components-country-input {
	display: none !important;
}

/* ============================================================
   Sheet-чекаут (компактный WOW): body.pm-checkout-sheet
   ============================================================ */
body.pm-checkout-sheet {
	--pm-sheet-max: 440px;
	background: var(--pm-color-powder-3);
}
body.pm-checkout-sheet .entry-header { display: none !important; }
body.pm-checkout-sheet .content-area {
	max-width: var(--pm-sheet-max) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--pm-space-3) !important;
	padding-right: var(--pm-space-3) !important;
}
body.pm-checkout-sheet .wp-block-woocommerce-checkout,
body.pm-checkout-sheet .wc-block-checkout {
	margin-top: 0 !important;
}

/* Hero */
.pm-sheet-hero {
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 var(--pm-space-3);
	padding: var(--pm-space-4) 14px 14px;
	border-radius: 18px 18px 14px 14px;
	color: var(--pm-on-pink);
	background:
		radial-gradient(120% 100% at 100% 0%, color-mix(in srgb, var(--pm-pink) 28%, transparent), transparent 55%),
		linear-gradient(160deg, var(--pm-color-panel-ink), var(--pm-color-panel-ink-5) 70%, var(--pm-color-panel-ink));
	box-shadow: 0 16px 40px rgba(30, 10, 20, .18);
}
.pm-sheet-hero__brand {
	font-family: var(--pm-font-display);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: .01em;
	margin: 0 0 6px;
	color: var(--pm-on-pink);
}
.pm-sheet-hero__brand span { color: var(--pm-pink-soft); }
.pm-sheet-hero__title {
	font-family: var(--pm-font-display);
	font-size: clamp(26px, 7vw, 32px);
	font-weight: 600;
	line-height: 1.05;
	margin: 0 0 var(--pm-space-1);
	/* Явно: иначе Kadence/h1 даёт тёмный цвет на тёмном hero. */
	color: var(--pm-on-pink) !important;
}
.pm-sheet-hero__lead {
	margin: 0 0 var(--pm-space-3);
	font-size: var(--pm-fs-sm);
	font-weight: 500;
	color: rgba(255, 255, 255, .72);
}
.pm-sheet-hero__items { display: grid; gap: var(--pm-space-2); width: 100%; }
.pm-sheet-hero__item {
	display: grid;
	/* minmax(0,1fr) + отдельный body: иначе nowrap-цена сжимает название в 1 символ/строку */
	grid-template-columns: 48px minmax(0, 1fr) max-content;
	gap: 10px;
	align-items: center;
	padding: var(--pm-space-2);
	border-radius: 12px;
	background: rgba(255, 255, 255, .08);
	min-width: 0;
}
.pm-sheet-hero__item img {
	width: 48px; height: 48px; object-fit: contain;
	border-radius: 10px; background: rgba(255, 255, 255, .06);
}
.pm-sheet-hero__ph {
	display: block; width: 48px; height: 48px; border-radius: 10px;
	background:
		linear-gradient(160deg, rgba(255,255,255,.12), transparent),
		radial-gradient(circle at 40% 30%, var(--pm-color-panel-ink-3), var(--pm-color-panel-ink) 70%);
}
.pm-sheet-hero__body {
	min-width: 0;
	overflow: hidden;
}
.pm-sheet-hero__item strong {
	display: block;
	font-size: var(--pm-fs-md);
	font-weight: 700;
	line-height: 1.25;
	overflow-wrap: break-word;
	word-break: normal;
}
.pm-sheet-hero__item .pm-sheet-hero__body > span {
	display: block; font-size: var(--pm-fs-xs); color: rgba(255, 255, 255, .55); margin-top: 2px;
}
.pm-sheet-hero__price {
	font-size: var(--pm-fs-md);
	font-weight: 700;
	white-space: nowrap;
	color: var(--pm-on-pink);
	justify-self: end;
}

.pm-sheet-pay {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pm-space-2);
	padding: var(--pm-space-2) 10px;
	margin: 0 0 var(--pm-space-3);
	border-radius: 10px;
	background: var(--pm-pink-wash);
	font-size: var(--pm-fs-sm);
	font-weight: 700;
	color: var(--pm-pink-deep);
}

/* Карточка формы */
body.pm-checkout-sheet .wc-block-components-sidebar-layout {
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	background: var(--pm-surface);
	border: 1px solid var(--pm-border);
	border-radius: 14px;
	padding: var(--pm-space-3) var(--pm-space-3) var(--pm-space-4) !important;
	box-shadow: 0 10px 30px rgba(40, 20, 30, .06);
}
body.pm-checkout-sheet .wc-block-components-main,
body.pm-checkout-sheet .wc-block-components-sidebar {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
body.pm-checkout-sheet .wc-block-checkout__form {
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	width: 100% !important;
}

/* Сайдбар: товары уже в hero — оставляем только итоги */
body.pm-checkout-sheet .wc-block-components-order-summary,
body.pm-checkout-sheet .wc-block-components-panel {
	border: 0 !important;
}
body.pm-checkout-sheet .wc-block-components-order-summary-item,
body.pm-checkout-sheet .wc-block-components-totals-coupon,
body.pm-checkout-sheet .wp-block-woocommerce-checkout-order-summary-cart-items-block,
body.pm-checkout-sheet .wp-block-woocommerce-checkout-order-summary-coupon-form-block,
body.pm-checkout-sheet .wc-block-components-order-summary__content {
	display: none !important;
}
body.pm-checkout-sheet .wc-block-components-sidebar {
	order: 3;
	margin-top: var(--pm-space-2) !important;
	padding-top: 10px !important;
	border-top: 1px solid var(--pm-border) !important;
}
body.pm-checkout-sheet .wc-block-components-main { order: 1; }

/* Порядок шагов: адрес (телефон…) → доставка → оплата → email → кнопка */
body.pm-checkout-sheet .wc-block-checkout__shipping-fields { order: 1; }
body.pm-checkout-sheet .wc-block-checkout__shipping-option { order: 2; }
body.pm-checkout-sheet .wc-block-checkout__payment-method { order: 3; }
body.pm-checkout-sheet .wc-block-checkout__contact-fields { order: 4; }
body.pm-checkout-sheet .wc-block-checkout__order-notes,
body.pm-checkout-sheet .pm-sheet-note-link { order: 5; }
body.pm-checkout-sheet .wc-block-checkout__terms { order: 6; }
body.pm-checkout-sheet .pm-sheet-totals {
	order: 7;
	margin: var(--pm-space-2) 0 var(--pm-space-1) !important;
	padding-top: 10px !important;
	border-top: 1px solid var(--pm-border) !important;
}
body.pm-checkout-sheet .wc-block-checkout__actions { order: 8; }
body.pm-checkout-sheet .pm-sheet-totals .wc-block-components-checkout-order-summary__title,
body.pm-checkout-sheet .pm-sheet-totals .wc-block-order-summary-title,
body.pm-checkout-sheet .pm-sheet-totals .wc-block-components-panel__button {
	display: none !important;
}
/* Сайдбар пустеет после переноса итогов — без рамки */
body.pm-checkout-sheet .wc-block-components-sidebar:empty,
body.pm-checkout-sheet .wc-block-components-sidebar:not(:has(.wp-block-woocommerce-checkout-order-summary-block)) {
	display: none !important;
}
body.pm-checkout-sheet .wp-block-woocommerce-checkout-express-payment-block,
body.pm-checkout-sheet .wc-block-checkout__express-payment {
	display: none !important;
}
/* Тумблер «Доставка / Самовывоз» + выбор пункта самовывоза — в стиле Sheet.
   (Раньше были скрыты, т.к. самовывоза не было; включён 26.07.) */
body.pm-checkout-sheet .wp-block-woocommerce-checkout-shipping-method-block {
	margin: 0 0 var(--pm-space-1);
}
body.pm-checkout-sheet .wc-block-checkout__shipping-method-container {
	gap: var(--pm-space-2);
}
body.pm-checkout-sheet .wc-block-checkout__shipping-method-option {
	border: 1px solid var(--pm-border); border-radius: var(--pm-radius);
	padding: var(--pm-space-3) 10px; background: var(--pm-surface); cursor: pointer;
}
body.pm-checkout-sheet .wc-block-checkout__shipping-method-option--selected {
	border-color: var(--pm-pink); box-shadow: inset 0 0 0 1px var(--pm-pink);
}
/* «Самовывоз» не должен переноситься по слогам в узкой карточке */
body.pm-checkout-sheet .wc-block-checkout__shipping-method-option-title {
	white-space: nowrap; font-size: var(--pm-fs-md); letter-spacing: -.01em;
}
body.pm-checkout-sheet .wp-block-woocommerce-checkout-pickup-options-block {
	margin: 0 0 6px;
}
/* Микрокопирайт доверия над кнопкой «Оформить заказ» (снимает страх COD) */
body.pm-checkout-sheet .wc-block-checkout__actions::before {
	content: 'Перезвоним для подтверждения · оплата при получении · сейчас ничего не спишем';
	display: block; text-align: center; font-size: var(--pm-fs-sm); line-height: 1.4;
	color: var(--pm-text-muted); margin: 0 0 var(--pm-space-3); padding: 0 var(--pm-space-2);
}

/* Скрыть шум Sheet */
body.pm-checkout-sheet .wc-block-components-checkout-step__heading,
body.pm-checkout-sheet .wc-block-components-checkout-step__description,
body.pm-checkout-sheet .wc-block-checkout__guest-checkout-notice,
body.pm-checkout-sheet .wc-block-components-address-form__last_name,
body.pm-checkout-sheet .wc-block-components-address-form__address_2,
body.pm-checkout-sheet .wc-block-components-address-form__address_2-toggle,
body.pm-checkout-sheet .wc-block-components-address-form__address_2-hidden-input,
body.pm-checkout-sheet .wc-block-checkout__use-address-for-billing,
body.pm-checkout-sheet .wc-block-checkout__add-note,
body.pm-checkout-sheet .wc-block-checkout__order-notes {
	display: none !important;
}
body.pm-checkout-sheet .wc-block-checkout__order-notes.pm-sheet-note-open {
	display: block !important;
}
.pm-sheet-note-link {
	display: inline-block;
	margin: var(--pm-space-1) 0 10px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pm-pink-deep);
	font: 700 12px/1.2 var(--pm-font-body);
	cursor: pointer;
}

/* Плотные поля + порядок: телефон → имя → город → адрес */
body.pm-checkout-sheet .wc-block-components-checkout-step {
	margin: 0 0 var(--pm-space-2) !important;
	padding: 0 !important;
	border: 0 !important;
}
body.pm-checkout-sheet .wc-block-components-address-form {
	display: flex;
	flex-direction: column;
	gap: 0;
}
body.pm-checkout-sheet .wc-block-components-address-form__phone { order: 1; }
body.pm-checkout-sheet .wc-block-components-address-form__first_name { order: 2; }
body.pm-checkout-sheet .wc-block-components-address-form__city { order: 3; }
body.pm-checkout-sheet .wc-block-components-address-form__address_1 { order: 4; }
body.pm-checkout-sheet .wc-block-components-address-form__email { order: 5; }
body.pm-checkout-sheet .wc-block-components-text-input,
body.pm-checkout-sheet .wc-block-components-textarea {
	margin-top: 0 !important;
	margin-bottom: var(--pm-space-2) !important;
}
body.pm-checkout-sheet .wc-block-components-text-input input,
body.pm-checkout-sheet .wc-block-components-textarea textarea {
	border-radius: var(--pm-radius-md) !important;
	padding-top: 14px !important;
	padding-bottom: 10px !important;
	min-height: var(--pm-touch-min);
	font-weight: 600 !important;
	font-size: var(--pm-field-fs) !important;
	border-color: var(--pm-field-border) !important;
	background: var(--pm-field-bg) !important;
}
body.pm-checkout-sheet .wc-block-components-text-input input:focus,
body.pm-checkout-sheet .wc-block-components-textarea textarea:focus {
	border-color: var(--pm-field-border-focus) !important;
	box-shadow: var(--pm-focus-ring) !important;
}
body.pm-checkout-sheet .wc-block-components-text-input label {
	font-size: var(--pm-fs-2xs) !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	font-weight: 700 !important;
}

/* Доставка / оплата компактно */
body.pm-checkout-sheet .wc-block-components-radio-control-accordion-option,
body.pm-checkout-sheet .wc-block-components-radio-control__option {
	border-radius: 10px !important;
	margin-bottom: 6px !important;
}
body.pm-checkout-sheet .wc-block-components-checkout-place-order-button {
	width: 100% !important;
	margin-top: var(--pm-space-2) !important;
	padding: 15px 18px !important;
	border-radius: var(--pm-radius-pill) !important;
	background: var(--pm-cta-ink) !important;
	color: var(--pm-on-pink) !important;
	font-size: var(--pm-fs-sm) !important;
	letter-spacing: .08em !important;
}
body.pm-checkout-sheet .wc-block-components-checkout-place-order-button:hover {
	background: var(--pm-cta-ink-hov) !important;
}
body.pm-checkout-sheet .wc-block-components-totals-item {
	font-size: var(--pm-fs-md) !important;
}
body.pm-checkout-sheet .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.pm-checkout-sheet .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: var(--pm-fs-xl) !important;
	font-weight: 700 !important;
}

/* Контактный email: без тяжёлого заголовка шага */
body.pm-checkout-sheet .wc-block-checkout__contact-fields .wc-block-components-checkout-step__container {
	padding: 0 !important;
}

@media (min-width: 860px) {
	body.pm-checkout-sheet {
		--pm-sheet-max: 480px;
	}
	body.pm-checkout-sheet .content-area {
		margin-top: var(--pm-space-4) !important;
		margin-bottom: 48px !important;
	}
}

/* СДЭК: переключатель ПВЗ / до двери (виджет подключится модулем CDEKDelivery) */
.pm-sheet-ship-mode {
	display: none;
	grid-template-columns: 1fr 1fr;
	gap: var(--pm-space-2);
	margin: 0 0 var(--pm-space-3);
}
body.pm-checkout-sheet.pm-sheet-has-cdek .pm-sheet-ship-mode { display: grid; }
.pm-sheet-ship-mode__btn {
	border: 1px solid var(--pm-border);
	background: var(--pm-surface);
	border-radius: 12px;
	padding: var(--pm-space-3) 10px;
	text-align: left;
	cursor: pointer;
	font: inherit;
	color: var(--pm-text);
}
.pm-sheet-ship-mode__btn strong {
	display: block;
	font-size: var(--pm-fs-md);
	font-weight: 700;
	margin-bottom: 2px;
}
.pm-sheet-ship-mode__btn span {
	display: block;
	font-size: var(--pm-fs-xs);
	color: var(--pm-text-muted);
	font-weight: 600;
}
.pm-sheet-ship-mode__btn.is-on {
	border-color: var(--pm-pink);
	background: var(--pm-pink-wash);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pm-pink) 28%, transparent);
}
.pm-sheet-pvz {
	display: none;
	margin: 0 0 var(--pm-space-3);
	padding: 22px 14px;
	border: 1px dashed var(--pm-border);
	border-radius: 12px;
	background: var(--pm-color-powder-6);
	text-align: center;
}
body.pm-checkout-sheet.pm-sheet-mode-pvz .pm-sheet-pvz { display: block; }
body.pm-checkout-sheet.pm-sheet-mode-pvz .wc-block-components-address-form__address_1 {
	display: none !important;
}
.pm-sheet-pvz__title {
	font-family: var(--pm-font-display);
	font-size: 22px;
	font-weight: 600;
	margin: 0 0 var(--pm-space-1);
}
.pm-sheet-pvz__hint {
	margin: 0;
	font-size: var(--pm-fs-sm);
	color: var(--pm-text-muted);
	line-height: 1.4;
}
