/* ============================================================
   Мой Росточек — site components
   Loads after style.css (normalize) and tokens.css (design tokens).
   Mobile breakpoints: 1024 / 768 / 480.
   ============================================================ */

/* ------------------------------------------------------------
   1. Base & layout
   ------------------------------------------------------------ */

body {
	background: var(--cream);
}

.container {
	max-width: var(--container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--sp-6);
	padding-right: var(--sp-6);
}

.container--narrow {
	max-width: 760px;
}

.site-main {
	padding: var(--sp-7) 0 var(--sp-10);
}

a:visited {
	color: var(--leaf-700);
}

img {
	max-width: 100%;
	height: auto;
}

::selection {
	background: var(--leaf-200);
	color: var(--ink-900);
}

/* Lists used as UI, not as content. */
.menu,
ul.products,
.filters__cats,
.product-specs,
.product-delivery__list,
.site-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ------------------------------------------------------------
   2. Header (sticky, 72px)
   ------------------------------------------------------------ */

.site-header {
	position: sticky;
	top: 0;
	z-index: 90;
	background: rgba(250, 246, 238, 0.85);
	-webkit-backdrop-filter: saturate(180%) blur(12px);
	backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--line-soft);
}

.site-header__inner {
	height: var(--header-h);
	display: flex;
	align-items: center;
	gap: var(--sp-5);
}

.brand {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
	text-decoration: none;
}

.brand__mark {
	width: 48px;
	height: 48px;
	display: block;
	border-radius: 50%;
}

.brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1;
}

.brand__name {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 500;
	color: var(--ink-900);
}

.brand__tag {
	font-size: 11px;
	letter-spacing: 0.02em;
	color: var(--ink-400);
	font-weight: 600;
	margin-top: 4px;
}

.site-nav .menu {
	display: flex;
	gap: var(--sp-5);
}

.site-nav a {
	text-decoration: none;
	color: var(--ink-700);
	font-weight: 500;
	font-size: 15px;
	padding: var(--sp-2) 0;
	position: relative;
	white-space: nowrap;
	transition: color var(--dur-fast) var(--ease-std);
}

.site-nav a:hover,
.site-nav a:visited:hover {
	color: var(--leaf-700);
}

.site-nav a:visited {
	color: var(--ink-700);
}

.site-nav .current-menu-item > a,
.site-nav .current_page_item > a {
	color: var(--leaf-700);
}

.site-nav .current-menu-item > a::after,
.site-nav .current_page_item > a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--leaf-700);
	border-radius: 2px;
}

.header-search {
	flex: 1;
	position: relative;
	max-width: 340px;
	min-width: 160px;
}

.header-search__input {
	width: 100%;
	height: 46px;
	padding-left: 46px;
	padding-right: var(--sp-5);
	border-radius: var(--r-pill);
	border-color: var(--line-soft);
	background: var(--leaf-50);
	transition: border-color var(--dur-fast) var(--ease-std),
	            box-shadow var(--dur-fast) var(--ease-std),
	            background var(--dur-fast) var(--ease-std);
}

.header-search__input:hover {
	border-color: var(--leaf-300);
}

.header-search__input:focus {
	background: var(--paper);
}

.header-search__icon {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	color: var(--ink-400);
	pointer-events: none;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin-left: auto;
	flex-shrink: 0;
}

.header-phone {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	text-decoration: none;
	color: var(--ink-700);
	font-weight: 600;
	font-size: 14px;
	white-space: nowrap;
	padding: var(--sp-2) var(--sp-3);
	border-radius: var(--r-md);
	transition: background var(--dur-fast) var(--ease-std), color var(--dur-fast) var(--ease-std);
}

.header-phone:visited {
	color: var(--ink-700);
}

.header-phone:hover {
	background: var(--leaf-50);
	color: var(--leaf-700);
}

.header-cart {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--r-md);
	color: var(--ink-700);
	text-decoration: none;
	transition: background var(--dur-fast) var(--ease-std), color var(--dur-fast) var(--ease-std);
}

.header-cart:visited {
	color: var(--ink-700);
}

.header-cart:hover {
	background: var(--leaf-50);
	color: var(--leaf-700);
}

.cart-count {
	position: absolute;
	top: 3px;
	right: 3px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--earth-700);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	border-radius: var(--r-pill);
}

.cart-count.is-empty {
	display: none;
}

/* Burger — mobile only. */
.burger {
	display: none;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	border-radius: var(--r-md);
	color: var(--ink-700);
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
}

.burger:hover {
	background: var(--leaf-50);
	color: var(--leaf-700);
}

.burger__close,
.burger[aria-expanded='true'] .burger__open {
	display: none;
}

.burger[aria-expanded='true'] .burger__close {
	display: block;
}

.mobile-menu {
	border-top: 1px solid var(--line-soft);
	background: var(--cream);
	padding: var(--sp-5) var(--sp-4) var(--sp-6);
	box-shadow: var(--shadow-3);
}

.mobile-menu__search {
	display: flex;
	gap: var(--sp-2);
	margin-bottom: var(--sp-4);
}

.mobile-menu__search .input {
	flex: 1;
	min-width: 0;
}

.mobile-menu__nav .menu {
	display: flex;
	flex-direction: column;
}

.mobile-menu__nav a {
	display: block;
	padding: var(--sp-3) var(--sp-2);
	font-size: 17px;
	font-weight: 600;
	color: var(--ink-900);
	text-decoration: none;
	border-bottom: 1px solid var(--line-soft);
}

.mobile-menu__nav a:visited {
	color: var(--ink-900);
}

.mobile-menu__phone {
	display: inline-block;
	margin-top: var(--sp-4);
	font-family: var(--font-display);
	font-size: 20px;
	color: var(--leaf-700);
	text-decoration: none;
}

body.menu-open {
	overflow: hidden;
}

/* ------------------------------------------------------------
   3. Front page: hero, USP, categories, about, CTA
   ------------------------------------------------------------ */

.hero {
	position: relative;
	background: var(--leaf-50);
	border: 1px solid var(--line-soft);
	border-radius: var(--r-2xl);
	padding: var(--sp-9) 64px;
	min-height: 360px;
	display: flex;
	align-items: center;
	overflow: hidden;
}

.hero__deco {
	position: absolute;
	right: -40px;
	top: -40px;
	width: 360px;
	height: 360px;
	background-image: url('../img/pattern-bloom.svg');
	background-size: 130px;
	opacity: 0.5;
	pointer-events: none;
}

.hero__deco--leaf {
	position: absolute;
	left: -40px;
	bottom: -40px;
	width: 240px;
	height: 240px;
	background-image: url('../img/pattern-leaf.svg');
	background-size: 110px;
	opacity: 0.4;
	pointer-events: none;
}

.hero__content {
	position: relative;
	z-index: 2;
	max-width: 560px;
}

.hero__eyebrow {
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--leaf-700);
	margin: 0 0 var(--sp-3);
}

.hero__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(34px, 5vw, 56px);
	line-height: 1.08;
	letter-spacing: -0.01em;
	margin: 0 0 var(--sp-4);
}

.hero__sub {
	font-size: var(--fs-body-l);
	line-height: var(--lh-body-l);
	color: var(--ink-600);
	margin: 0 0 var(--sp-7);
	max-width: 470px;
}

.hero__cta-row {
	display: flex;
	gap: var(--sp-3);
	align-items: center;
	flex-wrap: wrap;
}

/* USP bar */
.usp {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--sp-3);
	margin-top: var(--sp-7);
}

.usp__item {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	padding: var(--sp-4) var(--sp-5);
}

.usp__item img {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	object-fit: contain;
}

.usp__title {
	font-weight: 600;
	font-size: 15px;
	line-height: 1.2;
	color: var(--ink-900);
}

.usp__desc {
	font-size: 12px;
	line-height: 16px;
	color: var(--ink-600);
	margin-top: 2px;
}

/* Sections */
.section {
	margin-top: var(--sp-10);
}

.section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--sp-4);
	margin-bottom: var(--sp-6);
}

.section__head h2 {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: var(--fs-h1);
	line-height: 1.2;
}

.section__head a {
	font-size: 14px;
	white-space: nowrap;
}

/* Category grid */
.cat-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: var(--sp-3);
}

.cat {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--leaf-50);
	border: 1px solid var(--line-soft);
	border-radius: var(--r-xl);
	padding: var(--sp-5) var(--sp-4);
	text-decoration: none;
	overflow: hidden;
	transition: transform var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out);
}

.cat:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-2);
}

.cat--bloom {
	background: var(--bloom-200);
}

.cat--earth {
	background: var(--earth-100);
}

.cat__icon {
	width: 56px;
	height: 56px;
	object-fit: contain;
	margin-bottom: var(--sp-3);
}

.cat__photo {
	display: block;
	margin: calc(-1 * var(--sp-5)) calc(-1 * var(--sp-4)) var(--sp-3);
}

.cat__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.cat__name {
	font-family: var(--font-display);
	font-size: 18px;
	font-weight: 500;
	color: var(--ink-900);
	line-height: 1.2;
}

.cat__count {
	font-size: 12px;
	color: var(--ink-600);
	margin-top: 4px;
}

/* About the nursery */
.about-nursery {
	margin-top: var(--sp-10);
	display: flex;
	align-items: center;
	min-height: 340px;
	border-radius: var(--r-xl);
	padding: var(--sp-9);
	box-shadow: var(--shadow-2);
	/* Фото-фон + зелёный градиент слева, чтобы текст читался поверх. */
	background-image:
		linear-gradient(100deg, rgba(22, 40, 20, 0.92) 0%, rgba(22, 40, 20, 0.7) 44%, rgba(22, 40, 20, 0.28) 100%),
		url("../img/about-nursery.jpg");
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
}

.about-nursery__body {
	max-width: 560px;
}

.about-nursery__body h2 {
	margin-bottom: var(--sp-4);
	color: #fff;
}

.about-nursery__body p {
	color: rgba(255, 255, 255, 0.88);
	margin: 0 0 var(--sp-3);
}

/* CTA banner */
.cta-banner {
	position: relative;
	margin-top: var(--sp-10);
	background: var(--grad-soft-leaf);
	border: 1px solid var(--line-soft);
	border-radius: var(--r-2xl);
	padding: var(--sp-9) 64px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-7);
	overflow: hidden;
}

.cta-banner__deco {
	position: absolute;
	right: -30px;
	top: -30px;
	width: 280px;
	height: 280px;
	background-image: url('../img/pattern-leaf.svg');
	background-size: 120px;
	opacity: 0.45;
	pointer-events: none;
}

.cta-banner__body {
	position: relative;
	z-index: 1;
	max-width: 460px;
}

.cta-banner__body h2 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(26px, 3.5vw, 36px);
	line-height: 1.15;
	margin-bottom: var(--sp-3);
}

.cta-banner__body p {
	color: var(--ink-700);
	margin: 0;
}

.cta-banner__actions {
	position: relative;
	z-index: 1;
	display: flex;
	gap: var(--sp-3);
	flex-wrap: wrap;
}

/* ------------------------------------------------------------
   4. Product grid & card
   ------------------------------------------------------------ */

ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--sp-5);
}

ul.products::before,
ul.products::after {
	content: none;
}

.catalog-main ul.products {
	grid-template-columns: repeat(3, 1fr);
}

/* Neutralize WooCommerce float grid. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	min-width: 0;
}

.product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-2);
	overflow: hidden;
	transition: transform var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out);
}

.product-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-3);
}

.product-card__link {
	display: flex;
	flex-direction: column;
	flex: 1;
	text-decoration: none;
	color: inherit;
}

.product-card__link:visited {
	color: inherit;
}

.product-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: linear-gradient(135deg, #dce9d2 0%, #eef4e8 100%);
	overflow: hidden;
}

.product-card__media img,
.product-card__media .product-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dur-mid) var(--ease-out);
}

.product-card:hover .product-card__media img {
	transform: scale(1.03);
}

.product-card__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 1;
}

.chip--out {
	background: var(--ink-400);
	color: #fff;
}

.product-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: var(--sp-4) var(--sp-5) 0;
}

.product-card__cat {
	display: block;
	font-size: 11px;
	line-height: 1.25;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--ink-400);
	margin-bottom: 4px;
}

.product-card__name {
	display: block;
	font-family: var(--font-display);
	font-size: 19px;
	line-height: 1.25;
	font-weight: 500;
	color: var(--ink-900);
	margin-bottom: var(--sp-2);
}

.product-card__excerpt {
	display: block;
	font-size: 13px;
	line-height: 18px;
	color: var(--ink-600);
	margin-bottom: var(--sp-3);
}

.product-card__price {
	display: block;
	margin-top: auto;
	padding-bottom: var(--sp-3);
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	font-weight: 500;
	color: var(--ink-900);
}

.product-card__price del {
	font-family: var(--font-body);
	font-size: var(--fs-body-s);
	color: var(--ink-400);
	font-weight: 400;
	margin-right: var(--sp-2);
}

.product-card__price ins {
	text-decoration: none;
}

.product-card__actions {
	padding: 0 var(--sp-5) var(--sp-5);
}

.product-card__actions .btn,
.product-card__actions .button {
	width: 100%;
	height: 42px;
	font-size: 14px;
}

/* Ссылку «Просмотр корзины» после AJAX-добавления скрываем:
   она распирает строку с кнопкой, а счётчик в шапке и так обновился.
   Подтверждение — галочка на самой кнопке (класс .added от WC). */
.product-card__actions .added_to_cart,
.product-card__add-row .added_to_cart {
	display: none;
}

.product-card__add-row .btn.added::after {
	content: '✓';
}

/* Out of stock card: muted button area. */
.product-card.outofstock .product-card__media img {
	filter: grayscale(0.4);
	opacity: 0.85;
}

/* ------------------------------------------------------------
   5. Catalog: header, layout, filters, toolbar, pagination
   ------------------------------------------------------------ */

.wc-main {
	padding: var(--sp-6) 0 var(--sp-10);
}

.crumbs {
	font-size: 13px;
	color: var(--ink-600);
	margin-bottom: var(--sp-5);
}

.crumbs a {
	color: var(--ink-600);
	text-decoration: none;
}

.crumbs a:visited {
	color: var(--ink-600);
}

.crumbs a:hover {
	color: var(--leaf-700);
}

.crumbs__sep {
	color: var(--ink-200);
	margin: 0 var(--sp-2);
}

.catalog-header {
	margin-bottom: var(--sp-6);
}

.catalog-header__title {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: clamp(28px, 4vw, 36px);
}

.catalog-header .term-description,
.woocommerce-products-header__title + p {
	color: var(--ink-600);
	max-width: 720px;
	margin-top: var(--sp-3);
}

.catalog-layout {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: var(--sp-7);
	align-items: start;
}

/* Filters */
.filters-collapse {
	display: block;
}

.filters-collapse__summary {
	display: none; /* visible on mobile only */
	align-items: center;
	gap: var(--sp-2);
	height: 48px;
	padding: 0 var(--sp-5);
	background: var(--paper);
	border: 1.5px solid var(--leaf-300);
	border-radius: var(--r-lg);
	color: var(--leaf-700);
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.filters-collapse__summary::-webkit-details-marker {
	display: none;
}

.filters__group {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	padding: var(--sp-5);
	margin-bottom: var(--sp-3);
}

.filters__title {
	font-family: var(--font-display);
	font-size: 18px;
	font-weight: 500;
	margin: 0 0 var(--sp-3);
}

.filters__form .filters__title + .filters__title,
.filters__form .filter-check + .filters__title {
	margin-top: var(--sp-5);
}

.filters__price-row + .filters__title {
	margin-top: var(--sp-5);
}

.filter-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-2);
	padding: var(--sp-2) 0;
	font-size: 14px;
}

.filter-row a {
	color: var(--ink-700);
	text-decoration: none;
}

.filter-row a:visited {
	color: var(--ink-700);
}

.filter-row a:hover {
	color: var(--leaf-700);
}

.filter-row.is-active a {
	color: var(--leaf-700);
	font-weight: 600;
}

.filter-row__count {
	font-size: 12px;
	color: var(--ink-400);
}

.filters__price-row {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
}

.filters__price-row .input {
	width: 100%;
	min-width: 0;
	height: 42px;
	padding: 0 var(--sp-3);
	-moz-appearance: textfield;
}

.filters__price-row .input::-webkit-outer-spin-button,
.filters__price-row .input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.filters__price-dash {
	color: var(--ink-400);
}

.filter-check {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	font-size: 14px;
	color: var(--ink-700);
	cursor: pointer;
	padding: var(--sp-1) 0;
}

.filter-check input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.filter-check__box {
	width: 18px;
	height: 18px;
	border: 1.5px solid var(--line);
	border-radius: 5px;
	background: var(--paper);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: background var(--dur-fast) var(--ease-std), border-color var(--dur-fast) var(--ease-std);
}

.filter-check input:checked + .filter-check__box {
	background: var(--leaf-700);
	border-color: var(--leaf-700);
}

.filter-check input:checked + .filter-check__box::after {
	content: '';
	width: 10px;
	height: 6px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg) translate(1px, -1px);
}

.filter-check input:focus-visible + .filter-check__box {
	outline: 2px solid var(--leaf-700);
	outline-offset: 2px;
}

.filters__actions {
	display: flex;
	gap: var(--sp-2);
	margin-top: var(--sp-5);
}

.filters__actions .btn {
	flex: 1;
	height: 42px;
	font-size: 14px;
}

/* Toolbar: result count + sorting */
.shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-4);
	flex-wrap: wrap;
	margin-bottom: var(--sp-5);
}

.woocommerce-result-count {
	margin: 0;
	font-size: 14px;
	color: var(--ink-600);
}

.woocommerce-ordering {
	margin: 0;
	margin-left: auto;
}

.woocommerce-ordering select,
select {
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--ink-900);
	background: var(--paper);
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	height: 42px;
	padding: 0 var(--sp-3);
	cursor: pointer;
}

.woocommerce-ordering select:focus {
	outline: none;
	border-color: var(--leaf-700);
	box-shadow: 0 0 0 4px var(--leaf-50);
}

/* Pagination */
.woocommerce nav.woocommerce-pagination {
	margin-top: var(--sp-7);
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: var(--sp-2);
	border: none;
	margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: none;
	float: none;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 var(--sp-3);
	border-radius: var(--r-md);
	border: 1px solid var(--line);
	background: var(--paper);
	color: var(--ink-700);
	font-weight: 600;
	text-decoration: none;
	line-height: 1;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--leaf-50);
	border-color: var(--leaf-300);
	color: var(--leaf-700);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--grad-primary);
	border-color: transparent;
	color: #fff;
}

/* ------------------------------------------------------------
   6. WooCommerce buttons (without explicit .btn classes)
   ------------------------------------------------------------ */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-2);
	height: 48px;
	padding: 0 var(--sp-6);
	border: none;
	border-radius: var(--r-lg);
	background: var(--grad-primary);
	color: var(--ink-on-leaf);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: var(--fs-body);
	line-height: 1;
	cursor: pointer;
	box-shadow: var(--shadow-1), var(--inset-hilite);
	transition: transform var(--dur-fast) var(--ease-std), box-shadow var(--dur-fast) var(--ease-std), background var(--dur-fast) var(--ease-std);
	text-decoration: none;
	white-space: nowrap;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: var(--grad-primary-hv);
	box-shadow: var(--shadow-glow), var(--inset-hilite);
	color: var(--ink-on-leaf);
}

.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce input.button:active {
	transform: translateY(1px);
	box-shadow: var(--inset-press);
}

.woocommerce a.button.disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
	background: var(--ink-200);
	color: #fff;
	box-shadow: none;
	cursor: not-allowed;
}

/* Secondary variants keep their .btn--secondary look. */
.woocommerce button.button.btn--secondary,
.woocommerce a.button.btn--secondary {
	background: var(--paper);
	color: var(--leaf-700);
	border: 1.5px solid var(--leaf-300);
	box-shadow: none;
}

.woocommerce button.button.btn--secondary:hover,
.woocommerce a.button.btn--secondary:hover {
	background: var(--leaf-50);
	border-color: var(--leaf-700);
	box-shadow: none;
}

/* ------------------------------------------------------------
   7. Single product
   ------------------------------------------------------------ */

.single-product div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--sp-8);
	align-items: start;
}

.woocommerce div.product div.images,
.woocommerce-page div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page div.product div.summary {
	float: none;
	width: 100%;
	margin-bottom: 0;
}

.single-product div.product .woocommerce-tabs,
.single-product div.product .related.products,
.single-product div.product .up-sells,
.single-product div.product .product-about,
.single-product div.product > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.woocommerce div.product div.images img {
	border-radius: var(--r-xl);
	border: 1px solid var(--line);
}

.woocommerce div.product div.images .flex-control-thumbs {
	margin-top: var(--sp-3);
	display: flex;
	gap: var(--sp-2);
}

.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: 72px;
}

.woocommerce div.product div.images .flex-control-thumbs img {
	border-radius: var(--r-md);
	border: 1px solid var(--line);
	opacity: 0.7;
}

.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover {
	opacity: 1;
	border-color: var(--leaf-500);
}

.woocommerce div.product .product_title {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: clamp(26px, 3.5vw, 34px);
	line-height: 1.2;
	margin-bottom: var(--sp-3);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	font-weight: 500;
	color: var(--ink-900);
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	font-family: var(--font-body);
	font-size: var(--fs-body-s);
	color: var(--ink-400);
	opacity: 1;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	text-decoration: none;
	font-weight: 500;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--ink-600);
	margin: var(--sp-3) 0;
}

/* Sale / stock badges */
.woocommerce span.onsale {
	position: absolute;
	top: 14px;
	left: 14px;
	min-width: 0;
	min-height: 0;
	height: 28px;
	padding: 0 var(--sp-3);
	display: inline-flex;
	align-items: center;
	background: var(--sun-400);
	color: var(--ink-900);
	border-radius: var(--r-sm);
	font-size: var(--fs-caption);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1;
	margin: 0;
}

.woocommerce div.product .stock.in-stock {
	color: var(--leaf-700);
	font-weight: 600;
}

.woocommerce div.product .stock.out-of-stock {
	color: var(--danger);
	font-weight: 600;
}

/* Quantity + add to cart */
.woocommerce .quantity .qty {
	width: 80px;
	height: 48px;
	padding: 0 var(--sp-2);
	background: var(--paper);
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	color: var(--ink-900);
}

.woocommerce .quantity .qty:focus {
	outline: none;
	border-color: var(--leaf-700);
	box-shadow: 0 0 0 4px var(--leaf-50);
}

.woocommerce div.product form.cart {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin: var(--sp-5) 0;
}

.woocommerce div.product form.cart div.quantity {
	float: none;
	margin: 0;
}

/* Variable products: variations table needs block flow. */
.woocommerce div.product form.cart.variations_form {
	display: block;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
}

.woocommerce div.product form.cart .button {
	float: none;
}

/* Specs from ACF */
.product-specs {
	margin: var(--sp-4) 0;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--paper);
	padding: var(--sp-2) var(--sp-4);
}

.product-specs__row {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-3) 0;
	font-size: var(--fs-body-s);
}

.product-specs__row + .product-specs__row {
	border-top: 1px solid var(--line-soft);
}

.product-specs__icon {
	color: var(--leaf-700);
	display: inline-flex;
	flex-shrink: 0;
}

.product-specs__label {
	color: var(--ink-600);
}

.product-specs__value {
	margin-left: auto;
	font-weight: 600;
	color: var(--ink-900);
	text-align: right;
}

/* Способы получения */
.product-delivery {
	margin: var(--sp-5) 0;
	background: var(--leaf-50);
	border: 1px solid var(--line-soft);
	border-radius: var(--r-lg);
	padding: var(--sp-4) var(--sp-5);
}

.product-delivery__title {
	font-family: var(--font-display);
	font-size: 18px;
	font-weight: 500;
	margin-bottom: var(--sp-3);
}

.product-delivery__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}

.product-delivery__row {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-3);
	font-size: var(--fs-body-s);
	line-height: var(--lh-body-s);
	color: var(--ink-700);
}

.product-delivery__icon {
	color: var(--leaf-700);
	display: inline-flex;
	flex-shrink: 0;
	margin-top: 1px;
}

/* Памятка по уходу */
.care-memo {
	position: relative;
	margin-top: var(--sp-8);
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-2);
	overflow: hidden;
}

.care-memo::after {
	content: '';
	position: absolute;
	right: -20px;
	top: -20px;
	width: 220px;
	height: 220px;
	background-image: url('../img/pattern-leaf.svg');
	background-size: 100px;
	opacity: 0.18;
	pointer-events: none;
}

.care-memo__inner {
	position: relative;
	z-index: 1;
	padding: var(--sp-7) var(--sp-8);
}

.care-memo__title {
	margin-bottom: var(--sp-4);
}

.care-memo__content p {
	color: var(--ink-700);
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs {
	margin-top: var(--sp-8);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 var(--sp-5);
	display: flex;
	gap: var(--sp-2);
	border-bottom: 1px solid var(--line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: none;
	border-radius: 0;
	margin: 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
	box-shadow: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: var(--sp-3) var(--sp-4);
	font-weight: 600;
	font-size: 15px;
	color: var(--ink-600);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	text-decoration: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--leaf-700);
	border-bottom-color: var(--leaf-700);
}

.woocommerce div.product .woocommerce-tabs .panel {
	margin: 0;
	color: var(--ink-700);
}

.woocommerce div.product .woocommerce-tabs .panel h2:first-of-type {
	font-size: var(--fs-h3);
	margin-bottom: var(--sp-3);
}

/* Related products */
.related.products > h2,
.up-sells.products > h2 {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: var(--fs-h1);
	margin-bottom: var(--sp-6);
}

.single-product .related ul.products,
.single-product .up-sells ul.products {
	grid-template-columns: repeat(4, 1fr);
}

/* ------------------------------------------------------------
   8. Notices
   ------------------------------------------------------------ */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	position: relative;
	background: var(--paper);
	border: 1px solid var(--line);
	border-top: none;
	border-left: 4px solid var(--leaf-700);
	border-radius: var(--r-md);
	box-shadow: var(--shadow-1);
	color: var(--ink-900);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-5);
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	flex-wrap: wrap;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	content: none;
}

.woocommerce-info {
	border-left-color: var(--info);
}

.woocommerce-error {
	border-left-color: var(--danger);
	display: block;
}

.woocommerce-error li {
	margin: var(--sp-1) 0;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
	order: 2;
	margin-left: auto;
	height: 38px;
	padding: 0 var(--sp-4);
	font-size: 14px;
	background: var(--paper);
	color: var(--leaf-700);
	border: 1.5px solid var(--leaf-300);
	box-shadow: none;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover {
	background: var(--leaf-50);
	border-color: var(--leaf-700);
	color: var(--leaf-700);
	box-shadow: none;
}

/* ------------------------------------------------------------
   9. Cart
   ------------------------------------------------------------ */

.cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: var(--sp-6);
	align-items: start;
	margin-top: var(--sp-5);
}

.cart-layout__items {
	padding: var(--sp-5);
}

.woocommerce table.shop_table {
	border: none;
	border-radius: 0;
	margin: 0;
}

.woocommerce table.shop_table th {
	font-size: var(--fs-caption);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ink-400);
	border: none;
	border-bottom: 1px solid var(--line);
	padding: var(--sp-3);
}

.woocommerce table.shop_table td {
	border: none;
	border-bottom: 1px solid var(--line-soft);
	padding: var(--sp-4) var(--sp-3);
	background: transparent;
}

.woocommerce table.shop_table td.product-thumbnail img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: var(--r-md);
	border: 1px solid var(--line);
}

.woocommerce table.shop_table td.product-name a {
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 500;
	color: var(--ink-900);
	text-decoration: none;
}

.woocommerce table.shop_table td.product-name a:hover {
	color: var(--leaf-700);
}

.woocommerce table.shop_table td.product-price,
.woocommerce table.shop_table td.product-subtotal {
	font-family: var(--font-display);
	font-weight: 500;
	color: var(--ink-900);
	white-space: nowrap;
}

.woocommerce a.remove {
	width: 28px;
	height: 28px;
	line-height: 26px;
	font-size: 20px;
	color: var(--ink-400) !important;
	border-radius: 50%;
	font-weight: 400;
}

.woocommerce a.remove:hover {
	background: var(--danger);
	color: #fff !important;
}

.woocommerce table.shop_table td.actions {
	border-bottom: none;
	padding-top: var(--sp-5);
}

.woocommerce table.shop_table td.actions .coupon .input-text {
	width: 160px;
	height: 42px;
	padding: 0 var(--sp-3);
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	margin-right: var(--sp-2);
}

.woocommerce table.shop_table td.actions .button {
	height: 42px;
	font-size: 14px;
}

/* Totals card */
.cart-layout__totals .cart_totals {
	width: 100%;
	float: none;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-2);
	padding: var(--sp-5) var(--sp-5) var(--sp-6);
}

.cart-layout__totals .cart_totals h2 {
	font-size: var(--fs-h2);
	margin-bottom: var(--sp-4);
}

.cart-layout__totals .cart_totals table.shop_table {
	margin-bottom: var(--sp-4);
}

.cart-layout__totals .cart_totals th {
	text-transform: none;
	letter-spacing: 0;
	font-size: var(--fs-body-s);
	color: var(--ink-600);
}

.cart-layout__totals .cart_totals .order-total td,
.cart-layout__totals .cart_totals .order-total th {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	color: var(--ink-900);
}

.wc-proceed-to-checkout {
	padding: 0;
}

.wc-proceed-to-checkout .checkout-button {
	display: flex;
	width: 100%;
	margin: 0;
}

/* The custom empty state replaces the default notice.
   Прячем штатное «Ваша корзина пуста» (оно выровнено влево) надёжно —
   не завязываясь на класс body, иначе оно иногда показывается слева. */
.cart-empty.woocommerce-info,
.wc-empty-cart-message,
.woocommerce .cart-empty {
	display: none !important;
}

/* ------------------------------------------------------------
   10. Forms (checkout, account, comments)
   ------------------------------------------------------------ */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.comment-form input[type='text'],
.comment-form input[type='email'],
.comment-form input[type='url'],
.comment-form textarea {
	background: var(--paper);
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	color: var(--ink-900);
	padding: var(--sp-3) var(--sp-4);
	transition: border-color var(--dur-fast) var(--ease-std), box-shadow var(--dur-fast) var(--ease-std);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.comment-form input:focus,
.comment-form textarea:focus {
	outline: none;
	border-color: var(--leaf-700);
	box-shadow: 0 0 0 4px var(--leaf-50);
}

.woocommerce form .form-row label {
	font-size: var(--fs-body-s);
	font-weight: 600;
	color: var(--ink-700);
}

/* ------------------------------------------------------------
   11. Empty states & 404
   ------------------------------------------------------------ */

.empty-state {
	position: relative;
	text-align: center;
	max-width: 560px;
	margin: var(--sp-8) auto;
	padding: var(--sp-7) var(--sp-5);
}

.empty-state--catalog {
	background: var(--leaf-50);
	border: 1px solid var(--line-soft);
	border-radius: var(--r-xl);
	overflow: hidden;
	max-width: none;
	margin: 0;
}

.empty-state__deco {
	position: absolute;
	right: -30px;
	bottom: -30px;
	width: 220px;
	height: 220px;
	background-image: url('../img/pattern-bloom.svg');
	background-size: 100px;
	opacity: 0.3;
	pointer-events: none;
}

.empty-state__illustration {
	width: 260px;
	height: auto;
	max-width: 70%;
	margin: 0 auto var(--sp-5);
	display: block;
}

.empty-state__title {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: var(--fs-h1);
	margin-bottom: var(--sp-3);
}

.empty-state__text {
	color: var(--ink-600);
	margin: 0 auto var(--sp-6);
	max-width: 420px;
	text-align: center;
}

/* Форсируем центрирование пустого состояния (на странице корзины
   WooCommerce-стили иногда сбивают текст влево). !important — чтобы
   никакой каскад это не перебил. */
.empty-state,
.empty-state__title,
.empty-state__text,
.empty-state__actions {
	text-align: center !important;
}
.empty-state__text {
	margin-left: auto !important;
	margin-right: auto !important;
}

.empty-state__actions {
	display: flex;
	justify-content: center;
	gap: var(--sp-3);
	flex-wrap: wrap;
	position: relative;
	z-index: 1;
}

/* ------------------------------------------------------------
   12. Content pages (entry-content typography)
   ------------------------------------------------------------ */

.entry-header {
	margin-bottom: var(--sp-6);
}

.entry-title {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: clamp(28px, 4vw, 36px);
}

.entry-content {
	color: var(--ink-700);
}

.entry-content h2 {
	margin: var(--sp-7) 0 var(--sp-3);
}

.entry-content h3 {
	margin: var(--sp-6) 0 var(--sp-3);
}

.entry-content p {
	margin: 0 0 var(--sp-4);
}

.entry-content ul,
.entry-content ol {
	margin: 0 0 var(--sp-4) var(--sp-5);
	padding: 0;
}

.entry-content li {
	margin-bottom: var(--sp-2);
}

.entry-content blockquote {
	border-left: 3px solid var(--leaf-300);
	background: var(--leaf-50);
	border-radius: 0 var(--r-md) var(--r-md) 0;
	margin: var(--sp-5) 0;
	padding: var(--sp-4) var(--sp-5);
	font-style: italic;
}

.entry-content img {
	border-radius: var(--r-lg);
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: var(--sp-5) 0;
}

.entry-content th,
.entry-content td {
	border: 1px solid var(--line);
	padding: var(--sp-3);
	text-align: left;
}

.entry-content th {
	background: var(--leaf-50);
	font-weight: 600;
}

/* ------------------------------------------------------------
   13. Footer
   ------------------------------------------------------------ */

.site-footer {
	background: var(--forest);
	color: rgba(255, 255, 255, 0.7);
	margin-top: var(--sp-11);
	padding: var(--sp-10) 0 var(--sp-7);
}

.site-footer__cols {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: var(--sp-8);
	margin-bottom: var(--sp-8);
}

.site-footer__logo {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	margin-bottom: var(--sp-4);
}

.site-footer__logo img {
	width: 56px;
	height: 56px;
	display: block;
	border-radius: 50%;
}

.site-footer__logo-name {
	display: block;
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 500;
	color: #fff;
	line-height: 1;
}

.site-footer__logo-tag {
	display: block;
	font-size: 11px;
	letter-spacing: 0.02em;
	color: rgba(255, 255, 255, 0.5);
	font-weight: 600;
	margin-top: 6px;
}

.site-footer__about {
	color: rgba(255, 255, 255, 0.7);
	font-size: 13px;
	line-height: 20px;
	margin: 0;
	max-width: 300px;
}

.site-footer__heading {
	font-family: var(--font-body);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.55);
	margin: 0 0 var(--sp-3);
	font-weight: 600;
}

.site-footer ul {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}

.site-footer a {
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
	font-size: 14px;
}

.site-footer a:visited {
	color: rgba(255, 255, 255, 0.85);
}

.site-footer a:hover {
	color: #fff;
}

.site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: var(--sp-5);
	display: flex;
	justify-content: space-between;
	gap: var(--sp-3);
	flex-wrap: wrap;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.5);
}

/* Cookie banner */
.cookie-banner {
	position: fixed;
	left: var(--sp-4);
	right: var(--sp-4);
	bottom: var(--sp-4);
	z-index: 100;
	margin: 0 auto;
	max-width: 720px;
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	box-shadow: var(--shadow-3);
	padding: var(--sp-4) var(--sp-5);
}

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

.cookie-banner__text {
	margin: 0;
	font-size: var(--fs-body-s);
	line-height: var(--lh-body-s);
	color: var(--ink-700);
}

.cookie-banner__accept {
	flex-shrink: 0;
}

/* ------------------------------------------------------------
   14. Responsive
   ------------------------------------------------------------ */

@media (max-width: 1024px) {
	/* Header: burger mode */
	.burger {
		display: inline-flex;
	}

	.site-nav,
	.header-search,
	.header-phone__num {
		display: none;
	}

	.header-phone {
		width: 44px;
		height: 44px;
		justify-content: center;
		padding: 0;
	}

	.brand__tag {
		display: none;
	}

	/* Front page */
	.usp {
		grid-template-columns: repeat(2, 1fr);
	}

	.cat-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	ul.products,
	.single-product .related ul.products,
	.single-product .up-sells ul.products {
		grid-template-columns: repeat(3, 1fr);
	}

	.catalog-main ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Catalog: filters collapse above the grid */
	.catalog-layout {
		grid-template-columns: 1fr;
		gap: var(--sp-5);
	}

	.filters-collapse__summary {
		display: inline-flex;
	}

	.filters {
		margin-top: var(--sp-3);
	}

	/* Single product */
	.single-product div.product {
		grid-template-columns: 1fr;
		gap: var(--sp-6);
	}

	/* Cart */
	.cart-layout {
		grid-template-columns: 1fr;
	}

	/* Footer */
	.site-footer__cols {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-6);
	}
}

@media (max-width: 768px) {
	.container {
		padding-left: var(--sp-4);
		padding-right: var(--sp-4);
	}

	.site-main {
		padding: var(--sp-5) 0 var(--sp-8);
	}

	.hero {
		padding: var(--sp-7) var(--sp-5);
		min-height: 0;
		border-radius: var(--r-xl);
	}

	.hero__deco {
		width: 220px;
		height: 220px;
		background-size: 90px;
		opacity: 0.35;
	}

	.hero__deco--leaf {
		display: none;
	}

	.section {
		margin-top: var(--sp-8);
	}

	.cat-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	ul.products,
	.catalog-main ul.products,
	.single-product .related ul.products,
	.single-product .up-sells ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--sp-3);
	}

	.about-nursery {
		min-height: 300px;
		padding: var(--sp-7) var(--sp-6);
		text-align: left;
		/* Одна колонка во всю ширину — затемняем равномернее для читаемости. */
		background-image:
			linear-gradient(180deg, rgba(22, 40, 20, 0.58) 0%, rgba(22, 40, 20, 0.84) 100%),
			url("../img/about-nursery.jpg");
	}

	.cta-banner {
		flex-direction: column;
		align-items: flex-start;
		padding: var(--sp-7) var(--sp-5);
		gap: var(--sp-5);
		border-radius: var(--r-xl);
	}

	.product-card__body {
		padding: var(--sp-2) var(--sp-3) 0;
	}

	.product-card__actions {
		padding: 0 var(--sp-3) var(--sp-3);
	}

	.product-card__cat {
		margin-bottom: 2px;
	}

	.product-card__name {
		font-size: 16px;
		margin-bottom: var(--sp-1);
	}

	.product-card__excerpt {
		display: none;
	}

	/* Цена: на адаптиве убираем огромный зазор сверху (margin-top:auto)
	   и поджимаем отступ снизу — карточка становится компактнее. */
	.product-card__price {
		margin-top: var(--sp-2);
		padding-bottom: var(--sp-2);
	}

	/* Cart table → stacked rows (WC smallscreen base + polish) */
	.woocommerce table.shop_table_responsive tr td::before {
		font-weight: 600;
		color: var(--ink-600);
	}

	.woocommerce table.shop_table td.actions .coupon .input-text {
		width: 100%;
		margin: 0 0 var(--sp-2);
	}

	.woocommerce table.shop_table td.actions .coupon .button,
	.woocommerce table.shop_table td.actions > .button {
		width: 100%;
	}

	.cookie-banner {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
		/* Над плавающим островком, чтобы не перекрывались. */
		bottom: 104px;
		z-index: 150;
	}

	.site-footer__bottom {
		flex-direction: column;
		text-align: center;
	}
}

@media (max-width: 480px) {
	.usp {
		grid-template-columns: 1fr;
	}

	ul.products,
	.catalog-main ul.products,
	.single-product .related ul.products,
	.single-product .up-sells ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cat-grid {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-2);
	}

	.cat {
		padding: var(--sp-4) var(--sp-3);
	}

	.hero__cta-row .btn {
		width: 100%;
	}

	.empty-state__actions .btn {
		width: 100%;
	}

	.shop-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.woocommerce-ordering {
		margin-left: 0;
	}

	.woocommerce-ordering select {
		width: 100%;
	}

	.woocommerce div.product form.cart {
		flex-wrap: wrap;
	}

	.woocommerce div.product form.cart .button {
		flex: 1 1 100%;
	}

	.site-footer__cols {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   15. Форма заявки (page-templates/zayavka.php)
   ============================================================ */

.zayavka-layout {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--sp-7);
	align-items: start;
	margin-top: var(--sp-6);
}

/* Сводка корзины */
.zayavka-summary {
	/* inherits .card */
}

.zayavka-summary__inner {
	padding: var(--sp-6) var(--sp-7);
}

.zayavka-summary__title {
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	font-weight: 500;
	margin-bottom: var(--sp-5);
}

.zayavka-summary__list {
	list-style: none;
	margin: 0 0 var(--sp-5);
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.zayavka-summary__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--sp-3);
	padding: var(--sp-3) 0;
	font-size: var(--fs-body-s);
	border-bottom: 1px solid var(--line-soft);
}

.zayavka-summary__row:last-child {
	border-bottom: none;
}

.zayavka-summary__name {
	color: var(--ink-900);
	font-weight: 500;
}

.zayavka-summary__qty {
	font-weight: 400;
	color: var(--ink-400);
	margin-left: var(--sp-1);
}

.zayavka-summary__price {
	font-family: var(--font-display);
	font-weight: 500;
	color: var(--ink-900);
	white-space: nowrap;
}

.zayavka-summary__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--sp-4) 0 var(--sp-3);
	border-top: 1px solid var(--line);
	margin-top: var(--sp-2);
	font-size: var(--fs-body-s);
	color: var(--ink-600);
}

.zayavka-summary__total strong {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	font-weight: 500;
	color: var(--ink-900);
}

.zayavka-summary__edit {
	margin-top: var(--sp-3);
	width: 100%;
	justify-content: center;
}

/* Форма */
.zayavka-form-wrap {
	position: sticky;
	top: calc(var(--header-h) + var(--sp-5));
}

.zayavka-form {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-2);
	padding: var(--sp-6) var(--sp-7);
}

.zayavka-form__fields {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
	margin-bottom: var(--sp-6);
}

.zayavka-form .field .input {
	width: 100%;
}

.zayavka-form .input[type='tel'],
.zayavka-form .input[type='text'] {
	height: 48px;
}

.zayavka-form textarea.input {
	height: 100px;
	padding-top: var(--sp-3);
	padding-bottom: var(--sp-3);
	resize: vertical;
}

.zayavka-form select.input {
	height: 48px;
	cursor: pointer;
	appearance: auto;
}

.field__required {
	color: var(--danger);
	margin-left: 2px;
}

.zayavka-form__consent-row {
	flex-direction: row;
	align-items: flex-start;
	gap: 0;
}

.zayavka-form__consent-text {
	font-size: var(--fs-body-s);
	line-height: var(--lh-body-s);
	color: var(--ink-700);
}

.zayavka-form__consent-text a {
	color: var(--leaf-700);
}

.zayavka-form__submit {
	width: 100%;
}

.zayavka-form__submit:disabled {
	background: var(--ink-200);
	color: #fff;
	box-shadow: none;
	cursor: not-allowed;
	transform: none;
}

/* Спасибо */
.spasibo-block {
	max-width: 560px;
	margin: var(--sp-10) auto;
	text-align: center;
	padding: var(--sp-7) var(--sp-5);
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-2xl);
	box-shadow: var(--shadow-3);
}

.spasibo-block__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	margin: 0 auto var(--sp-5);
	background: var(--leaf-50);
	border-radius: 50%;
	color: var(--leaf-700);
}

.spasibo-block__icon svg {
	width: 36px;
	height: 36px;
}

.spasibo-block__title {
	font-family: var(--font-display);
	font-size: var(--fs-h1);
	font-weight: 500;
	margin-bottom: var(--sp-4);
}

.spasibo-block__text {
	color: var(--ink-600);
	max-width: 420px;
	margin: 0 auto var(--sp-4);
}

.spasibo-block__hint {
	font-size: var(--fs-body-s);
	color: var(--ink-400);
	margin-bottom: var(--sp-7);
}

.spasibo-block__actions {
	display: flex;
	justify-content: center;
	gap: var(--sp-3);
	flex-wrap: wrap;
}

/* ============================================================
   15a. Responsive: форма заявки
   ============================================================ */

@media (max-width: 1024px) {
	.zayavka-layout {
		grid-template-columns: 1fr;
	}

	.zayavka-form-wrap {
		position: static;
	}

	/* На планшете: сводка сверху, форма снизу */
	.zayavka-layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.zayavka-summary__inner,
	.zayavka-form {
		padding: var(--sp-5);
	}

	.spasibo-block {
		margin: var(--sp-7) auto;
		padding: var(--sp-6) var(--sp-4);
	}
}

@media (max-width: 480px) {
	.spasibo-block__actions .btn {
		width: 100%;
	}

	.zayavka-form__submit {
		height: 56px;
		font-size: var(--fs-body-l);
	}
}

/* ------------------------------------------------------------
   16. Design fixes (post-review)
   ------------------------------------------------------------ */

/*
 * Кнопки — это часто <a>, поэтому глобальные правила ссылок
 * (a:hover { color: leaf-900 } и подчёркивание) перебивали цвет
 * текста на градиентных кнопках. Здесь фиксируем читаемую подпись
 * во всех состояниях и убираем подчёркивание у любых .btn.
 */
.btn,
.btn:hover,
.btn:focus,
.btn:visited {
	text-decoration: none;
}

.btn--primary,
.btn--primary:link,
.btn--primary:visited,
.btn--primary:hover,
.btn--primary:focus,
.btn--primary:active,
.btn--bloom,
.btn--bloom:link,
.btn--bloom:visited,
.btn--bloom:hover,
.btn--bloom:focus,
.btn--bloom:active {
	color: var(--ink-on-leaf);
}

.btn--secondary,
.btn--secondary:link,
.btn--secondary:visited,
.btn--secondary:hover,
.btn--secondary:focus,
.btn--secondary:active {
	color: var(--leaf-700);
}

.btn--ghost,
.btn--ghost:link,
.btn--ghost:visited {
	color: var(--ink-700);
}
.btn--ghost:hover,
.btn--ghost:focus {
	color: var(--leaf-700);
}

/* ============================================================
   17. Кастомный select (cs-wrap / ui.js)
   ============================================================ */

.cs-wrap {
	position: relative;
	display: inline-block;
	width: 100%;
}

.cs-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 48px;
	padding: 0 var(--sp-4);
	background: var(--paper);
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	color: var(--ink-900);
	cursor: pointer;
	user-select: none;
	gap: var(--sp-2);
	transition: border-color var(--dur-fast) var(--ease-std),
	            box-shadow var(--dur-fast) var(--ease-std);
}

.cs-trigger:hover {
	border-color: var(--leaf-300);
}

.cs-wrap.is-open .cs-trigger {
	border-color: var(--leaf-700);
	box-shadow: 0 0 0 4px var(--leaf-50);
}

.cs-trigger__label {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-align: left;
}

.cs-trigger__chevron {
	flex-shrink: 0;
	color: var(--ink-400);
	transition: transform var(--dur-fast) var(--ease-std);
}

.cs-wrap.is-open .cs-trigger__chevron {
	transform: rotate(180deg);
}

.cs-list {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 200;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	box-shadow: var(--shadow-3);
	padding: var(--sp-1) 0;
	list-style: none;
	margin: 0;
}

.cs-list--up {
	top: auto;
	bottom: calc(100% + 6px);
}

.cs-option {
	padding: var(--sp-3) var(--sp-4);
	font-size: var(--fs-body);
	color: var(--ink-900);
	cursor: pointer;
	transition: background var(--dur-fast) var(--ease-std);
}

.cs-option:hover,
.cs-option.is-focused {
	background: var(--leaf-50);
	color: var(--leaf-700);
}

.cs-option.is-selected {
	color: var(--leaf-700);
	font-weight: 600;
	background: var(--leaf-50);
}

/* ============================================================
   18. Степпер количества (.qty-stepper / ui.js)
   ============================================================ */

.qty-stepper {
	display: inline-flex;
	align-items: stretch;
	background: var(--paper);
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	overflow: hidden;
	height: 42px;
}

.qty-stepper__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 100%;
	flex-shrink: 0;
	background: transparent;
	border: none;
	color: var(--ink-600);
	cursor: pointer;
	padding: 0;
	transition: background var(--dur-fast) var(--ease-std),
	            color var(--dur-fast) var(--ease-std);
}

.qty-stepper__btn:hover {
	background: var(--leaf-50);
	color: var(--leaf-700);
}

.qty-stepper__btn:disabled {
	color: var(--ink-200);
	cursor: not-allowed;
}

.qty-stepper input.qty,
.qty-stepper input.qty-input {
	width: 48px !important;
	height: 100%;
	border: none !important;
	border-left: 1px solid var(--line) !important;
	border-right: 1px solid var(--line) !important;
	border-radius: 0 !important;
	text-align: center;
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: normal;
	color: var(--ink-900);
	background: transparent;
	padding: 0;
	margin: 0;
	-moz-appearance: textfield;
}

.qty-stepper input.qty::-webkit-outer-spin-button,
.qty-stepper input.qty::-webkit-inner-spin-button,
.qty-stepper input.qty-input::-webkit-outer-spin-button,
.qty-stepper input.qty-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.qty-stepper input.qty:focus,
.qty-stepper input.qty-input:focus {
	outline: none;
	box-shadow: none !important;
}

/* ============================================================
   19. Карточка каталога: ряд qty-stepper + кнопка
   ============================================================ */

.product-card__add-row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--sp-2);
}

.product-card__qty {
	display: flex;
	flex-shrink: 0;
}

.product-card__qty .qty-stepper {
	height: 40px;
	flex-wrap: nowrap;
}

.product-card__qty .qty-stepper__btn {
	width: 28px;
}

.product-card__qty .qty-stepper input.qty,
.product-card__qty .qty-stepper input.qty-input {
	width: 36px !important;
}

.product-card__add-row .btn,
.product-card__add-row .button {
	flex: 1;
	height: 40px;
	font-size: 14px;
	min-width: 0;
	padding: 0 var(--sp-3);
}

/* Скрываем WooCommerce-обёртку .quantity в карточке (степпер строим сами) */
.product-card__qty .quantity {
	margin: 0;
}

/* ============================================================
   20. Корзина — карточки товаров
   ============================================================ */

.cart-items {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}

.cart-item.card {
	display: grid;
	grid-template-columns: 80px 1fr auto auto auto;
	align-items: center;
	gap: var(--sp-4);
	padding: var(--sp-4) var(--sp-5);
	border-radius: var(--r-xl);
}

.cart-item__thumb {
	flex-shrink: 0;
}

.cart-item__thumb img,
.cart-item__thumb .cart-item__img {
	display: block;
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: var(--r-md);
	border: 1px solid var(--line);
}

.cart-item__info {
	min-width: 0;
}

.cart-item__name {
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 500;
	color: var(--ink-900);
	line-height: 1.3;
	margin-bottom: var(--sp-1);
}

.cart-item__name a {
	color: var(--ink-900);
	text-decoration: none;
}

.cart-item__name a:hover {
	color: var(--leaf-700);
}

.cart-item__unit-price {
	font-size: var(--fs-body-s);
	color: var(--ink-600);
}

.cart-item__qty {
	flex-shrink: 0;
}

.cart-item__subtotal {
	font-family: var(--font-display);
	font-weight: 500;
	color: var(--ink-900);
	white-space: nowrap;
	min-width: 70px;
	text-align: right;
}

.cart-item__remove {
	flex-shrink: 0;
}

.cart-item__remove-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: transparent;
	color: var(--ink-400);
	transition: background var(--dur-fast) var(--ease-std),
	            color var(--dur-fast) var(--ease-std);
	text-decoration: none;
}

.cart-item__remove-btn:hover {
	background: var(--danger);
	color: #fff;
}

.cart-actions {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	flex-wrap: wrap;
	padding: var(--sp-4) 0 var(--sp-2);
}

.cart-coupon__input {
	width: 160px;
	height: 42px;
}

.cart-update-btn {
	margin-left: auto;
}

@media (max-width: 768px) {
	.cart-item.card {
		grid-template-columns: 96px minmax(0, 1fr) auto;
		grid-template-rows: auto auto;
		gap: var(--sp-2) var(--sp-3);
		padding: var(--sp-3) var(--sp-4);
	}

	/* П.3 — фото 1:1, во всю высоту строки; имени остаётся меньше ширины */
	.cart-item__thumb {
		grid-row: 1 / span 2;
		align-self: stretch;
	}
	.cart-item__thumb img,
	.cart-item__thumb .cart-item__img {
		width: 96px;
		height: 96px;
	}

	.cart-item__qty {
		grid-column: 2;
	}

	.cart-item__subtotal {
		grid-row: 1;
		grid-column: 3;
		align-self: start;
	}

	.cart-item__remove {
		grid-row: 2;
		grid-column: 3;
		align-self: center;
	}

	.cart-coupon__input {
		width: 100%;
	}
}

@media (max-width: 480px) {
	.cart-item.card {
		grid-template-columns: 76px minmax(0, 1fr) auto;
	}

	.cart-item__thumb img,
	.cart-item__thumb .cart-item__img {
		width: 76px;
		height: 76px;
	}
}

/* ============================================================
   21. Модалка поиска (A.3)
   ============================================================ */

.search-modal {
	position: fixed;
	inset: 0;
	z-index: 500;
	background: rgba(43, 48, 36, 0.55);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 80px;
}
/* Скрыта по умолчанию; display:flex выше перебивал атрибут hidden. */
.search-modal[hidden] {
	display: none;
}

.search-modal__inner {
	width: min(560px, calc(100% - var(--sp-6)));
	background: var(--paper);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-4);
	padding: var(--sp-4) var(--sp-5);
	display: flex;
	align-items: center;
	gap: var(--sp-3);
}

.search-modal__form {
	flex: 1;
	position: relative;
	display: flex;
	align-items: center;
}

.search-modal__icon {
	position: absolute;
	left: var(--sp-4);
	top: 50%;
	transform: translateY(-50%);
	color: var(--ink-400);
	pointer-events: none;
}

.search-modal__input {
	width: 100%;
	height: 48px;
	padding-left: 50px;
	padding-right: var(--sp-5);
	border-radius: var(--r-pill);
	border-color: var(--leaf-300);
	background: var(--leaf-50);
}

.search-modal__input:focus {
	background: var(--paper);
}

body.modal-open {
	overflow: hidden;
}

/* ============================================================
   22. Мобильный островок (E.1)
   ============================================================ */

.mob-nav {
	display: none; /* показывается только на мобильном ниже */
}

@media (max-width: 768px) {
	.mob-nav {
		display: flex;
		align-items: stretch;
		justify-content: space-around;
		position: fixed;
		bottom: var(--sp-4);
		left: 50%;
		transform: translateX(-50%);
		width: calc(100% - var(--sp-8));
		max-width: 400px;
		/* Liquid glass: полупрозрачный фон + размытие подложки,
		   светлая окантовка-блик сверху и мягкая тень снизу. */
		background: linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.72) 0%,
			rgba(250, 246, 238, 0.62) 100%
		);
		-webkit-backdrop-filter: saturate(180%) blur(18px);
		backdrop-filter: saturate(180%) blur(18px);
		border: 1px solid rgba(255, 255, 255, 0.6);
		border-radius: var(--r-2xl);
		box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset,
		            0 10px 30px -8px rgba(40, 50, 30, 0.28),
		            0 2px 8px -2px rgba(40, 50, 30, 0.16);
		padding: var(--sp-2) var(--sp-3);
		z-index: 200;
		gap: var(--sp-1);
	}

	/* Место под плавающий островок даём ВНУТРИ подвала (тёмный фон),
	   чтобы под футером не было бежевой полосы. */
	.site-footer {
		padding-bottom: 104px;
	}

	.mob-nav__item {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		padding: var(--sp-2) var(--sp-3);
		border-radius: var(--r-lg);
		text-decoration: none;
		color: var(--ink-600);
		font-family: inherit;
		font-size: 11px;
		line-height: 1.1;
		font-weight: 600;
		letter-spacing: 0.02em;
		background: transparent;
		border: none;
		-webkit-appearance: none;
		appearance: none;
		box-sizing: border-box;
		cursor: pointer;
		transition: background var(--dur-fast) var(--ease-std),
		            color var(--dur-fast) var(--ease-std);
	}

	/* Иконки строго одной высоты: <button> (Меню/Поиск) и <a> (Каталог/Корзина)
	   по-разному считают базовую высоту строки — нормализуем, чтобы лупа и
	   бургер стояли на одной линии с остальными. */
	.mob-nav__item svg {
		display: block;
		flex-shrink: 0;
	}

	.mob-nav__item:hover,
	.mob-nav__item.is-active,
	.mob-nav__item:visited.is-active {
		color: var(--leaf-700);
		background: var(--leaf-50);
	}

	.mob-nav__item:visited {
		color: var(--ink-600);
	}

	.mob-nav__logo {
		padding: var(--sp-2);
	}

	.mob-nav__logo img {
		width: 30px;
		height: 30px;
		border-radius: 50%;
		display: block;
	}

	.mob-nav__cart-wrap {
		position: relative;
		display: inline-flex;
	}

	.mob-nav__cart-wrap .cart-count {
		top: -4px;
		right: -6px;
	}

	/* Скрыть бургер на малом экране — меню открывается кнопкой в островке */
	.site-header .burger {
		display: none;
	}

	/* Мобильное меню — выезжающая панель под шапкой, открывается из островка */
	.mobile-menu {
		position: fixed;
		top: var(--header-h);
		left: 0;
		right: 0;
		bottom: 0;
		overflow-y: auto;
		z-index: 190;
		margin: 0;
		box-shadow: none;
		-webkit-overflow-scrolling: touch;
	}
	.mobile-menu[hidden] {
		display: none;
	}
}

/* ============================================================
   23. Поиск в шапке: надёжное позиционирование иконки
   ============================================================ */

.header-search {
	position: relative;
}

.header-search__icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	z-index: 1;
	color: var(--ink-400);
}

.header-search__input {
	padding-left: 42px !important;
	padding-right: var(--sp-4);
}

/* ============================================================
   24. Форма заявки — доработка (G)
   ============================================================ */

.zayavka-contact-row {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: var(--sp-2);
}

.zayavka-contact-row .cs-wrap {
	width: 100%;
}

.zayavka-contact-row .input[type="text"] {
	width: 100%;
	min-width: 0;
}

.zayavka-payment-info {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-3) var(--sp-4);
	background: var(--leaf-50);
	border: 1px solid var(--line-soft);
	border-radius: var(--r-md);
	font-size: var(--fs-body-s);
}

.zayavka-payment-info__label {
	font-weight: 600;
	color: var(--ink-600);
	white-space: nowrap;
}

.zayavka-payment-info__value {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	color: var(--ink-900);
	font-weight: 500;
}

.zayavka-no-points {
	padding: var(--sp-4);
	background: var(--leaf-50);
	border: 1px solid var(--line-soft);
	border-radius: var(--r-md);
	font-size: var(--fs-body-s);
	color: var(--ink-600);
}

.zayavka-summary__img {
	flex-shrink: 0;
}

.zayavka-summary__img img,
.zayavka-summary__thumb {
	width: 44px;
	height: 44px;
	object-fit: cover;
	border-radius: var(--r-sm);
	border: 1px solid var(--line);
	display: block;
}

.zayavka-summary__row {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) auto auto;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-3) 0;
	border-bottom: 1px solid var(--line-soft);
}

.zayavka-summary__row:last-child {
	border-bottom: none;
}

.zayavka-summary__name {
	text-align: left;
	font-size: var(--fs-body-s);
	color: var(--ink-900);
}

.zayavka-summary__qty {
	font-weight: 600;
	color: var(--ink-700);
	white-space: nowrap;
	font-size: var(--fs-body-s);
	margin-left: 0;
}

.zayavka-summary__price {
	font-weight: 600;
	white-space: nowrap;
	text-align: right;
}

@media (max-width: 768px) {
	.zayavka-contact-row {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   25. Single product: цена крупнее (D.1)
   ============================================================ */

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--font-display);
	font-size: var(--fs-display-l);
	font-weight: 500;
	color: var(--ink-900);
	line-height: 1.1;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	font-family: var(--font-body);
	font-size: var(--fs-body);
	color: var(--ink-400);
	opacity: 1;
}

/* ============================================================
   26. Адаптив каталога на мобильном (E.3): 2 колонки ниже 400px
   ============================================================ */

@media (max-width: 480px) {
	ul.products,
	.catalog-main ul.products,
	.single-product .related ul.products,
	.single-product .up-sells ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--sp-2);
	}

	.product-card__add-row {
		gap: 6px;
	}

	.product-card__qty .qty-stepper__btn {
		width: 24px;
	}

	.product-card__qty .qty-stepper input.qty,
	.product-card__qty .qty-stepper input.qty-input {
		width: 30px !important;
	}

	.product-card__add-row .btn,
	.product-card__add-row .button {
		font-size: 13px;
		padding: 0 var(--sp-2);
	}
}

/* ============================================================
   27. Footer: бренд + меню + контакты
   База идёт ДО медиа-запросов, иначе перебивает их по каскаду.
   ============================================================ */

.site-footer__cols {
	grid-template-columns: 1.5fr 1fr 1fr;
}

@media (max-width: 1024px) {
	.site-footer__cols {
		grid-template-columns: 1fr 1fr;
	}

	.site-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 640px) {
	.site-footer__cols {
		grid-template-columns: 1fr;
		gap: var(--sp-6);
	}

	.site-footer__about {
		max-width: 420px;
	}
}

/* ============================================================
   28. Ценовые пресеты в фильтре
   ============================================================ */

.filters__price-presets {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-top: var(--sp-3);
}

.filters__price-preset {
	cursor: pointer;
	border: 1.5px solid var(--leaf-200);
	background: var(--leaf-50);
	color: var(--leaf-700);
	font-family: var(--font-body);
	transition: background var(--dur-fast) var(--ease-std),
	            border-color var(--dur-fast) var(--ease-std);
}

.filters__price-preset:hover,
.filters__price-preset.is-active {
	background: var(--leaf-200);
	border-color: var(--leaf-700);
}

/* ============================================================
   29. Пост-фиксы: страховка от стилей WC и вертикаль кнопок
   Дефолтные CSS WooCommerce отключены (woocommerce_enqueue_styles),
   эти правила страхуют от кэшированных копий и закрепляют вёрстку.
   ============================================================ */

/* Сетка товаров: ячейка = вся ширина трека, никаких float/48%. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products[class*="columns-"] li.product {
	width: 100% !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
	content: none !important;
	display: none !important;
}

/* Итоги корзины: во всю ширину своей колонки. */
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	width: 100% !important;
	float: none !important;
}

.cart-collaterals {
	width: 100%;
}

.wc-proceed-to-checkout .checkout-button {
	width: 100%;
	white-space: normal;
	text-align: center;
}

/* Кнопки: текст строго по центру по вертикали. */
.btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-page a.button,
.woocommerce-page button.button,
.wc-proceed-to-checkout .checkout-button {
	padding-top: 0;
	padding-bottom: 0;
	line-height: 1;
	align-items: center;
}

.btn svg,
.woocommerce a.button svg {
	flex-shrink: 0;
}

/* Цена на карточке товара: крупная, тёмная, Lora. */
.product-card__price,
.product-card__price .amount,
.product-card__price bdi {
	font-family: var(--font-display);
	font-size: 22px;
	line-height: 1.2;
	font-weight: 600;
	color: var(--ink-900);
}

@media (max-width: 768px) {
	.product-card__price,
	.product-card__price .amount,
	.product-card__price bdi {
		font-size: 18px;
	}
}

/* Категория под изображением товара — плашка-pill. */
.product-cat-pills {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-top: var(--sp-4);
}

.product-cat-pill {
	display: inline-flex;
	align-items: center;
	height: 30px;
	padding: 0 var(--sp-4);
	border-radius: 999px;
	background: var(--leaf-50);
	border: 1px solid var(--leaf-200);
	color: var(--leaf-700);
	font-size: var(--fs-body-s);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background var(--dur-fast) var(--ease-std),
	            border-color var(--dur-fast) var(--ease-std);
}

.product-cat-pill:hover {
	background: var(--leaf-200);
	border-color: var(--leaf-700);
	color: var(--leaf-900);
}

.product-cat-pill:visited {
	color: var(--leaf-700);
}

/* Категория уже показана плашкой под фото — убираем дубль из мета-строки. */
.woocommerce .product_meta .posted_in {
	display: none;
}

/* Галерея товара: базовая раскладка без CSS плагина. */
.woocommerce-product-gallery {
	position: relative;
}

.woocommerce-product-gallery__wrapper {
	margin: 0;
}

.woocommerce-product-gallery__image a,
.woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
}

.woocommerce-product-gallery__trigger {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 9;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--paper);
	box-shadow: var(--shadow-2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

/* «Обновить корзину» — тихая вторичная кнопка (количество
   обновляется автоматически, кнопка остаётся как запасной путь). */
.woocommerce-cart-form button[name="update_cart"] {
	background: var(--paper);
	color: var(--leaf-700);
	border: 1.5px solid var(--leaf-300);
	box-shadow: none;
	height: 40px;
	font-size: var(--fs-body-s);
}

.woocommerce-cart-form button[name="update_cart"]:hover {
	background: var(--leaf-50);
	border-color: var(--leaf-700);
	box-shadow: none;
}

.woocommerce-cart-form button[name="update_cart"]:disabled,
.woocommerce-cart-form button[name="update_cart"].disabled {
	background: var(--paper);
	border-color: var(--line);
	color: var(--ink-400);
	box-shadow: none;
}

/* ============================================================
   30. Точки получения: карточки по городам + модалка с картой
   ============================================================ */

.field__optional {
	font-weight: 400;
	color: var(--ink-400);
	font-size: var(--fs-caption);
}

.field__hint {
	margin: var(--sp-1) 0 0;
	font-size: var(--fs-caption);
	color: var(--ink-400);
	line-height: var(--lh-caption);
}

.zayavka-points {
	border: none;
	padding: 0;
	margin: 0;
}

.zayavka-points legend {
	padding: 0;
	margin-bottom: var(--sp-2);
}

.zayavka-points__group + .zayavka-points__group {
	margin-top: var(--sp-4);
}

.zayavka-points__city {
	display: flex;
	align-items: center;
	gap: var(--sp-1);
	font-size: var(--fs-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--leaf-700);
	margin-bottom: var(--sp-2);
}

.zayavka-points__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}

.point-card {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	background: var(--paper);
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	padding: var(--sp-3) var(--sp-4);
	transition: border-color var(--dur-fast) var(--ease-std),
	            background var(--dur-fast) var(--ease-std),
	            box-shadow var(--dur-fast) var(--ease-std);
}

.point-card:hover {
	border-color: var(--leaf-300);
}

.point-card.is-selected {
	border-color: var(--leaf-700);
	background: var(--leaf-50);
	box-shadow: 0 0 0 3px var(--leaf-200);
}

.point-card__main {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-3);
	flex: 1;
	min-width: 0;
	cursor: pointer;
}

.point-card__radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.point-card__check {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	border: 1.5px solid var(--line);
	border-radius: 50%;
	background: var(--paper);
	position: relative;
	transition: border-color var(--dur-fast) var(--ease-std);
}

.point-card.is-selected .point-card__check,
.point-card__radio:checked ~ .point-card__check {
	border-color: var(--leaf-700);
}

.point-card.is-selected .point-card__check::after,
.point-card__radio:checked ~ .point-card__check::after {
	content: '';
	position: absolute;
	inset: 4px;
	border-radius: 50%;
	background: var(--grad-primary);
}

.point-card__radio:focus-visible ~ .point-card__check {
	outline: 2px solid var(--leaf-700);
	outline-offset: 2px;
}

.point-card__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.point-card__title {
	font-weight: 600;
	color: var(--ink-900);
	font-size: var(--fs-body-s);
	line-height: 1.35;
}

.point-card__address {
	font-size: var(--fs-body-s);
	color: var(--ink-600);
	line-height: 1.35;
}

.point-card__note {
	font-size: var(--fs-caption);
	color: var(--ink-400);
	line-height: var(--lh-caption);
}

.point-card__map {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: var(--sp-1);
	height: 32px;
	padding: 0 var(--sp-3);
	background: var(--leaf-50);
	border: 1px solid var(--leaf-200);
	border-radius: var(--r-sm);
	color: var(--leaf-700);
	font-family: var(--font-body);
	font-size: var(--fs-caption);
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--dur-fast) var(--ease-std),
	            border-color var(--dur-fast) var(--ease-std);
}

.point-card__map:hover {
	background: var(--leaf-200);
	border-color: var(--leaf-700);
}

/* Модалка с картой */
.map-modal {
	position: fixed;
	inset: 0;
	z-index: 600;
	background: rgba(43, 48, 36, 0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--sp-4);
}

.map-modal[hidden] {
	display: none;
}

.map-modal__dialog {
	width: 100%;
	max-width: 720px;
	background: var(--paper);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-4);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.map-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	padding: var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-5);
	border-bottom: 1px solid var(--line-soft);
}

.map-modal__title {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	color: var(--ink-900);
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Кнопка закрытия карты. Стили форсируем !important и конкретными цветами —
   на странице оформления (WooCommerce checkout) сторонние стили перебивали
   обводку SVG, из-за чего крестик пропадал и кнопка выглядела пустой точкой. */
.map-modal .map-modal__close {
	flex-shrink: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	min-width: 40px !important;
	padding: 0 !important;
	border: 1px solid #d9ddd2 !important;
	border-radius: 50% !important;
	background: #ffffff !important;
	color: #2b3024 !important;
	overflow: visible !important;
	cursor: pointer;
	transition: background var(--dur-fast) var(--ease-std),
	            border-color var(--dur-fast) var(--ease-std);
}

/* Крестик: размер и тёмная обводка форсированы, чтобы ничто его не скрыло. */
.map-modal .map-modal__close svg {
	display: block !important;
	width: 22px !important;
	height: 22px !important;
	flex: 0 0 auto !important;
	fill: none !important;
	stroke: #2b3024 !important;
}

.map-modal .map-modal__close svg path {
	stroke: #2b3024 !important;
	fill: none !important;
}

.map-modal .map-modal__close:hover {
	background: var(--leaf-50) !important;
	border-color: var(--leaf-300) !important;
}

.map-modal__frame {
	aspect-ratio: 16 / 10;
	background: var(--leaf-50);
}

.map-modal__frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: none;
}

@media (max-width: 640px) {
	.point-card {
		flex-wrap: wrap;
	}

	.point-card__map {
		margin-left: 32px;
	}

	.map-modal {
		padding: var(--sp-2);
	}

	.map-modal__frame {
		aspect-ratio: 4 / 5;
	}
}


/* ============================================================
   31. Страница сборщика (/sborka/) — mobile-first
   ============================================================ */

.sborka__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	margin-bottom: var(--sp-5);
}

.sborka__title {
	font-family: var(--font-display);
	font-size: var(--fs-h1);
	line-height: var(--lh-h1);
	color: var(--ink-900);
	margin: 0;
}

.sborka__notice {
	background: var(--leaf-50);
	border: 1px solid var(--leaf-200);
	color: var(--leaf-700);
	border-radius: var(--r-md);
	padding: var(--sp-3) var(--sp-4);
	margin-bottom: var(--sp-5);
	font-weight: 600;
	font-size: var(--fs-body-s);
}

.sborka__group + .sborka__group {
	margin-top: var(--sp-7);
}

.sborka__group-title {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	color: var(--ink-900);
	margin: 0 0 var(--sp-4);
}

.sborka__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 26px;
	padding: 0 var(--sp-2);
	border-radius: var(--r-pill);
	background: var(--bloom-500);
	color: #fff;
	font-family: var(--font-body);
	font-size: var(--fs-body-s);
	font-weight: 700;
}

.sborka__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sp-4);
	align-items: start;
}

.sborka-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-2);
	padding: var(--sp-5);
	display: flex;
	flex-direction: column;
	gap: var(--sp-4);
}

.sborka-card__head {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
}

.sborka-card__num {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	font-weight: 600;
	color: var(--ink-900);
}

.sborka-card__date {
	color: var(--ink-400);
	font-size: var(--fs-body-s);
	margin-right: auto;
}

.sborka-card__items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--line-soft);
	border-radius: var(--r-md);
	overflow: hidden;
}

.sborka-item {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-2) var(--sp-3);
	min-height: 56px;
	cursor: pointer;
	user-select: none;
	transition: background var(--dur-fast) var(--ease-std);
}

.sborka-item + .sborka-item {
	border-top: 1px solid var(--line-soft);
}

.sborka-item:hover {
	background: var(--leaf-50);
}

.sborka-item__img {
	width: 40px;
	height: 40px;
	border-radius: var(--r-sm);
	object-fit: cover;
	flex-shrink: 0;
}

.sborka-item__name {
	flex: 1;
	min-width: 0;
	font-size: var(--fs-body-s);
	color: var(--ink-900);
	line-height: 1.35;
}

.sborka-item__qty {
	font-weight: 700;
	color: var(--ink-900);
	white-space: nowrap;
}

.sborka-item__tick {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 1.5px solid var(--line);
	color: transparent;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background var(--dur-fast) var(--ease-std),
	            border-color var(--dur-fast) var(--ease-std),
	            color var(--dur-fast) var(--ease-std);
}

.sborka-item.is-picked {
	background: var(--leaf-50);
}

.sborka-item.is-picked .sborka-item__name {
	text-decoration: line-through;
	color: var(--ink-400);
}

.sborka-item.is-picked .sborka-item__tick {
	background: var(--grad-primary);
	border-color: transparent;
	color: #fff;
}

.sborka-card__meta {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
	font-size: var(--fs-body-s);
}

.sborka-card__meta-row {
	display: flex;
	gap: var(--sp-3);
	align-items: baseline;
}

.sborka-card__meta-label {
	flex-shrink: 0;
	width: 96px;
	color: var(--ink-400);
	font-size: var(--fs-caption);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 600;
}

.sborka-card__meta-row--comment span:last-child {
	color: var(--ink-600);
}

.sborka-card__actions {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	margin-top: auto;
}

.sborka-card__actions form {
	display: flex;
	gap: var(--sp-2);
}

.sborka-card__actions .btn {
	flex: 1;
	height: 44px;
	font-size: var(--fs-body-s);
}

.sborka-card__admin-link {
	text-align: center;
	font-size: var(--fs-caption);
	color: var(--ink-400);
}

@media (max-width: 900px) {
	.sborka__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.sborka-card {
		padding: var(--sp-4);
	}

	.sborka-item {
		min-height: 60px; /* крупнее цель для тапа в полевых условиях */
	}
}

/* ============================================================
   32. Вход для персонала (/vhod/) + пункты меню персонала
   ============================================================ */

.menu-item--staff > a {
	color: var(--leaf-700);
	font-weight: 700;
}

.menu-item--logout > a {
	color: var(--ink-400);
	font-weight: 500;
}

.login-page {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: var(--sp-8);
	padding-bottom: var(--sp-10);
}

.login-card {
	width: 100%;
	max-width: 420px;
	margin: 0 auto;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-3);
	padding: var(--sp-8) var(--sp-7);
}

.login-card__brand {
	text-align: center;
	margin-bottom: var(--sp-6);
}

.login-card__brand img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	margin: 0 auto var(--sp-3);
	display: block;
}

.login-card__title {
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	color: var(--ink-900);
	margin: 0 0 var(--sp-1);
}

.login-card__sub {
	color: var(--ink-400);
	font-size: var(--fs-body-s);
	margin: 0;
}

.login-card__error {
	background: #fdecea;
	border: 1px solid #f3c5c0;
	color: var(--danger);
	border-radius: var(--r-md);
	padding: var(--sp-3) var(--sp-4);
	font-size: var(--fs-body-s);
	margin: 0 0 var(--sp-4);
}

.login-card__note {
	color: var(--ink-600);
	font-size: var(--fs-body-s);
	text-align: center;
	margin: 0 0 var(--sp-5);
}

.login-card__locked {
	text-align: center;
	color: var(--ink-600);
}

.login-card__locked svg {
	color: var(--earth-700);
	margin-bottom: var(--sp-3);
}

.login-card__locked .login-card__error {
	text-align: left;
}

.login-form .field + .field {
	margin-top: var(--sp-4);
}

.login-form__remember {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	margin: var(--sp-4) 0 var(--sp-5);
	font-size: var(--fs-body-s);
	color: var(--ink-600);
	cursor: pointer;
}

.login-form__remember input {
	width: 18px;
	height: 18px;
	accent-color: var(--leaf-700);
}

.login-card__submit {
	width: 100%;
}

@media (max-width: 480px) {
	.login-card {
		padding: var(--sp-6) var(--sp-5);
	}
}

/* ============================================================
   33. Поиск заказа по номеру (страница выдачи)
   ============================================================ */

.sborka__search {
	position: relative;
	max-width: 360px;
	margin-bottom: var(--sp-5);
}

.sborka__search .input {
	width: 100%;
	padding-left: 44px;
	border-radius: var(--r-lg);
	background: var(--leaf-50);
	border-color: var(--line-soft);
}

.sborka__search .input:focus {
	background: var(--paper);
}

.sborka__search-icon {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--ink-400);
	pointer-events: none;
}

.sborka__empty-search {
	color: var(--ink-600);
	font-size: var(--fs-body-s);
	margin: 0 0 var(--sp-4);
}

/* ============================================================
   34. Сборка: шапка-действия, сводный список, экран одного заказа
   ============================================================ */

.sborka__head-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}

/* Сводный список к сборке */
.sborka-summary {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	box-shadow: var(--shadow-1);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-6);
}

.sborka-summary__head {
	display: flex;
	align-items: baseline;
	gap: var(--sp-2);
	cursor: pointer;
	list-style: none;
}

.sborka-summary__head::-webkit-details-marker {
	display: none;
}

.sborka-summary__title {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	color: var(--ink-900);
}

.sborka-summary__hint {
	color: var(--ink-400);
	font-size: var(--fs-body-s);
}

.sborka-summary__list {
	list-style: none;
	margin: var(--sp-4) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sp-1) var(--sp-6);
}

.sborka-summary__row {
	display: flex;
	justify-content: space-between;
	gap: var(--sp-3);
	padding: var(--sp-2) 0;
	border-bottom: 1px solid var(--line-soft);
	font-size: var(--fs-body-s);
}

.sborka-summary__name {
	min-width: 0;
}

.sborka-summary__qty {
	font-weight: 700;
	color: var(--leaf-700);
	white-space: nowrap;
}

/* Экран сборки одного заказа */
.sborka-focus__top {
	margin-bottom: var(--sp-4);
}

.sborka-focus__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	max-width: 720px;
	margin: 0 auto var(--sp-4);
}

.sborka-focus__arrow {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--paper);
	border: 1.5px solid var(--leaf-300);
	color: var(--leaf-700);
	text-decoration: none;
	transition: background var(--dur-fast) var(--ease-std), border-color var(--dur-fast) var(--ease-std);
}

.sborka-focus__arrow:hover {
	background: var(--leaf-50);
	border-color: var(--leaf-700);
}

.sborka-focus__arrow.is-disabled {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

.sborka-focus__counter {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	color: var(--ink-900);
}

.sborka-focus__card {
	max-width: 720px;
	margin: 0 auto;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-3);
	padding: var(--sp-6);
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
}

.sborka-focus__head {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
}

.sborka-focus__num {
	font-family: var(--font-display);
	font-size: var(--fs-h1);
	color: var(--ink-900);
}

.sborka-focus__date {
	margin-left: auto;
	color: var(--ink-400);
	font-size: var(--fs-body-s);
}

.sborka-focus__items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--line-soft);
	border-radius: var(--r-lg);
	overflow: hidden;
}

.sborka-focus__item {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	padding: var(--sp-3) var(--sp-4);
	min-height: 76px;
	cursor: pointer;
	user-select: none;
	transition: background var(--dur-fast) var(--ease-std);
}

.sborka-focus__item + .sborka-focus__item {
	border-top: 1px solid var(--line-soft);
}

.sborka-focus__item:hover {
	background: var(--leaf-50);
}

.sborka-focus__img {
	width: 56px;
	height: 56px;
	border-radius: var(--r-md);
	object-fit: cover;
	flex-shrink: 0;
}

.sborka-focus__item-name {
	flex: 1;
	min-width: 0;
	font-size: var(--fs-body-l);
	color: var(--ink-900);
	line-height: 1.3;
}

.sborka-focus__item-qty {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	font-weight: 600;
	color: var(--ink-900);
	white-space: nowrap;
}

.sborka-focus__tick {
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 2px solid var(--line);
	color: transparent;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background var(--dur-fast) var(--ease-std), border-color var(--dur-fast) var(--ease-std), color var(--dur-fast) var(--ease-std);
}

.sborka-focus__item.is-picked {
	background: var(--leaf-50);
}

.sborka-focus__item.is-picked .sborka-focus__item-name {
	text-decoration: line-through;
	color: var(--ink-400);
}

.sborka-focus__item.is-picked .sborka-focus__tick {
	background: var(--grad-primary);
	border-color: transparent;
	color: #fff;
}

.sborka-focus__meta {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
}

.sborka-focus__actions {
	display: flex;
	gap: var(--sp-3);
}

.sborka-focus__actions form {
	flex: 1;
}

.sborka-focus__actions .btn {
	width: 100%;
}

@media (max-width: 600px) {
	.sborka-summary__list {
		grid-template-columns: 1fr;
	}

	.sborka-focus__card {
		padding: var(--sp-5) var(--sp-4);
	}

	.sborka-focus__num {
		font-size: var(--fs-h2);
	}

	.sborka-focus__actions {
		flex-direction: column;
	}

	.sborka-focus__arrow {
		width: 46px;
		height: 46px;
	}
}

/* ============================================================
   35. Сборка: пара кнопок в карточке + перенос длинных названий
   ============================================================ */

.sborka-card__btns {
	display: flex;
	gap: var(--sp-2);
}

.sborka-card__btns > .btn,
.sborka-card__btns form {
	flex: 1;
}

.sborka-card__btns form .btn {
	width: 100%;
}

/* Длинные наименования не должны вылезать за карточку. */
.sborka-item__name,
.sborka-focus__item-name,
.sborka-summary__name {
	overflow-wrap: anywhere;
	word-break: break-word;
}

@media (max-width: 480px) {
	.sborka-item {
		gap: var(--sp-2);
		padding: var(--sp-2);
		min-height: 52px;
	}

	.sborka-item__name {
		font-size: 13px;
		line-height: 1.3;
	}

	.sborka-item__qty {
		font-size: 13px;
	}

	.sborka-item__img {
		width: 34px;
		height: 34px;
	}

	.sborka-focus__item-name {
		font-size: 15px;
	}

	.sborka-focus__item-qty {
		font-size: var(--fs-body-l);
	}

	.sborka-focus__img {
		width: 44px;
		height: 44px;
	}
}

/* ============================================================
   36. Корзина: «Итого» красивым текстом (не таблицей)
   ============================================================ */

.cart-layout__totals .cart-totals {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	margin-bottom: var(--sp-4);
}

.cart-totals__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--sp-3);
	font-size: var(--fs-body-s);
	color: var(--ink-600);
}

.cart-totals__row--grand {
	align-items: baseline;
}

/* Линия-разделитель только если выше есть строки (купон/сбор). */
.cart-totals__row + .cart-totals__row--grand {
	margin-top: var(--sp-2);
	padding-top: var(--sp-3);
	border-top: 1px solid var(--line);
}

.cart-totals__row--grand > span:first-child {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	color: var(--ink-900);
}

.cart-totals__amount,
.cart-totals__amount .amount {
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	font-weight: 600;
	color: var(--ink-900);
	white-space: nowrap;
}

/* ============================================================
   37. Перебиваем дефолтные input-стили _s (style.css)
   input[type="search|text|..."] имеет специфичность (0,1,1) и
   перебивает классы дизайн-системы (.input — 0,1,0). Возвращаем вид.
   ============================================================ */

input.input,
textarea.input {
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	color: var(--ink-900);
}

input.input {
	padding: 0 var(--sp-4);
}

textarea.input {
	padding: var(--sp-3) var(--sp-4);
}

/* Поиск в шапке — pill, как поле-референс на выдаче. */
.header-search input.header-search__input {
	border: 1.5px solid var(--line-soft);
	border-radius: var(--r-pill);
	background: var(--leaf-50);
	padding: 0 var(--sp-5) 0 46px;
}

.header-search input.header-search__input:focus {
	background: var(--paper);
	border-color: var(--leaf-700);
}

/* Поиск в модалке (мобайл) — pill, отступ под лупу. */
.search-modal input.search-modal__input {
	border: 1.5px solid var(--leaf-300);
	border-radius: var(--r-pill);
	background: var(--leaf-50);
	padding: 0 var(--sp-5) 0 50px;
}

.search-modal input.search-modal__input:focus {
	background: var(--paper);
	border-color: var(--leaf-700);
}

/* ============================================================
   38. Корзина: вертикальная центровка цифры в степпере
   line-height: normal у number-инпута в Chrome прижимает значение
   кверху при height:100%. Задаём line-height = высоте поля.
   ============================================================ */

.cart-item__qty .qty-stepper input.qty,
.cart-item__qty .qty-stepper input.qty-input {
	height: 100%;
	line-height: 42px;
	padding: 0;
	vertical-align: middle;
}

/* ============================================================
   39. Вкладки связи/городов, живой поиск, обновление корзины
   ============================================================ */

.contact-tabs,
.point-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin: var(--sp-2) 0 var(--sp-3);
}

.contact-tab,
.point-tab {
	-webkit-appearance: none;
	appearance: none;
	border: 1.5px solid var(--leaf-200);
	background: var(--leaf-50);
	color: var(--leaf-700);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: var(--fs-body-s);
	padding: 0 var(--sp-4);
	height: 40px;
	border-radius: var(--r-pill);
	cursor: pointer;
	transition: background var(--dur-fast) var(--ease-std),
	            border-color var(--dur-fast) var(--ease-std),
	            color var(--dur-fast) var(--ease-std);
}

.contact-tab:hover,
.point-tab:hover {
	border-color: var(--leaf-700);
}

.contact-tab.is-active,
.point-tab.is-active {
	background: var(--grad-primary);
	border-color: transparent;
	color: #fff;
}

.contact-reveal {
	margin-top: var(--sp-2);
}

.contact-reveal[hidden] {
	display: none;
}

.contact-reveal .input {
	width: 100%;
}

.contact-reveal .field__hint {
	margin-top: var(--sp-2);
}

.point-panel[hidden] {
	display: none;
}

/* --- Живой поиск --- */
.search-preview {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	z-index: 300;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	box-shadow: var(--shadow-3);
	max-height: 64vh;
	overflow-y: auto;
}

.search-preview[hidden] {
	display: none;
}

.search-preview__item {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-2) var(--sp-3);
	text-decoration: none;
	color: var(--ink-900);
	border-bottom: 1px solid var(--line-soft);
}

.search-preview__item:hover {
	background: var(--leaf-50);
}

.search-preview__item img,
.search-preview__noimg {
	width: 44px;
	height: 44px;
	border-radius: var(--r-sm);
	object-fit: cover;
	flex-shrink: 0;
	background: var(--leaf-50);
}

.search-preview__name {
	flex: 1;
	min-width: 0;
	font-size: var(--fs-body-s);
	line-height: 1.3;
}

.search-preview__price,
.search-preview__price .amount {
	font-family: var(--font-display);
	font-weight: 600;
	white-space: nowrap;
	color: var(--ink-900);
}

.search-preview__all {
	display: block;
	text-align: center;
	padding: var(--sp-3);
	font-weight: 600;
	font-size: var(--fs-body-s);
	color: var(--leaf-700);
	text-decoration: none;
	background: var(--leaf-50);
}

.search-preview__all:hover {
	background: var(--leaf-200);
}

.search-preview__empty {
	padding: var(--sp-4);
	text-align: center;
	color: var(--ink-400);
	font-size: var(--fs-body-s);
}

/* --- Корзина: иконка-обновление, скрытая штатная кнопка --- */
.cart-update-btn {
	display: none !important;
}

.cart-toolbar {
	display: flex;
	justify-content: flex-end;
	margin-bottom: var(--sp-3);
}

.cart-toolbar:empty {
	display: none;
}

h1.has-cart-refresh {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	flex-wrap: wrap;
}

.cart-refresh {
	flex-shrink: 0;
	border: none;
	background: none;
	padding: 0;
	color: var(--ink-400);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: color var(--dur-fast) var(--ease-std);
}

.cart-refresh svg {
	width: 26px;
	height: 26px;
}

.cart-refresh:hover {
	color: var(--leaf-700);
}

.cart-refresh.is-spinning svg {
	animation: sazh-spin 0.6s linear;
}

@keyframes sazh-spin {
	to { transform: rotate(360deg); }
}

/* Кнопка каталога в состоянии «Добавлено» */
.product-card .btn.is-added,
.btn.added.is-added {
	background: var(--leaf-500);
}

/* ============================================================
   40. Пагинация, галерея, описание+уход, html-фон, скелетоны,
       стрелка-иконка, крестик поиска
   ============================================================ */

/* Пагинация — без маркеров-точек */
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
	list-style: none !important;
	margin: 0;
	padding: 0;
}
.woocommerce nav.woocommerce-pagination ul li a svg,
.woocommerce nav.woocommerce-pagination ul li span svg {
	display: block;
}

/* Галерея товара — убрать лупу/зум-триггер */
.woocommerce-product-gallery__trigger {
	display: none !important;
}

/* Центровка цифры в степпере на странице товара */
.woocommerce div.product .qty-stepper input.qty,
.single-product .qty-stepper input.qty {
	line-height: 42px;
}

/* Ссылка со стрелкой-иконкой (вместо символа →) */
.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
}
.arrow-ico {
	transition: transform var(--dur-fast) var(--ease-std);
}
.link-arrow:hover .arrow-ico {
	transform: translateX(3px);
}

/* Описание + памятка по уходу — единый блок */
.product-about {
	margin-top: var(--sp-6);
}
.product-about__inner {
	padding: var(--sp-6) var(--sp-7);
}
.product-about__block + .product-about__block {
	margin-top: var(--sp-6);
	padding-top: var(--sp-6);
	border-top: 1px solid var(--line);
}
.product-about__title {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	color: var(--ink-900);
	margin: 0 0 var(--sp-3);
}
.product-about__title svg {
	color: var(--leaf-700);
	flex-shrink: 0;
}
.product-about__block--care .product-about__title svg {
	color: var(--leaf-500);
}
.product-about__content {
	color: var(--ink-700);
}
@media (max-width: 768px) {
	.product-about__inner {
		padding: var(--sp-5);
	}
}

/* html-фон под цвет подвала — снизу не должно быть бежевой полосы */
html {
	background: var(--forest);
}

/* Скелетон загрузки картинок карточек */
.product-card__media::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(100deg, #e3ecdb 30%, #f1f6ea 50%, #e3ecdb 70%);
	background-size: 200% 100%;
	animation: sazh-shimmer 1.3s linear infinite;
}
.product-card__media img {
	position: relative;
	z-index: 1;
}
@keyframes sazh-shimmer {
	to { background-position: -200% 0; }
}

/* Скелетоны в предпросмотре поиска */
.search-preview__item--skel {
	pointer-events: none;
}
.search-preview__item--skel .sk {
	display: block;
	background: linear-gradient(100deg, #ececec 30%, #f6f6f6 50%, #ececec 70%);
	background-size: 200% 100%;
	animation: sazh-shimmer 1.3s linear infinite;
	border-radius: var(--r-sm);
}
.search-preview__item--skel .sk-img {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
}
.search-preview__item--skel .sk-line {
	flex: 1;
	height: 12px;
}
.search-preview__item--skel .sk-price {
	width: 48px;
	height: 12px;
}

/* Кнопка очистки строки поиска под наш стиль (вместо синей системной) */
input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	height: 18px;
	width: 18px;
	margin-left: 6px;
	cursor: pointer;
	background-color: var(--ink-400);
	-webkit-mask: url("../img/icons/ui/close.svg") center / 14px no-repeat;
	mask: url("../img/icons/ui/close.svg") center / 14px no-repeat;
}
input[type="search"]::-webkit-search-cancel-button:hover {
	background-color: var(--leaf-700);
}

/* Липкий подвал: контент тянется, футер всегда внизу — нет полосы под ним. */
#page.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
#page.site > main {
	flex: 1 0 auto;
}

/* ============================================================
   41. Карусель категорий, мобильные доработки каталога/корзины
   ============================================================ */

.cat-carousel {
	position: relative;
}
.cat-carousel__track {
	display: flex;
	gap: var(--sp-4);
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding-bottom: 2px;
}
.cat-carousel__track::-webkit-scrollbar { display: none; }
.cat-carousel__track > .cat {
	flex: 0 0 calc((100% - 5 * var(--sp-4)) / 6); /* 6 видно на десктопе */
	scroll-snap-align: start;
}
.cat-carousel__arrow {
	position: absolute;
	top: 42%;
	transform: translateY(-50%);
	z-index: 5;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--line);
	background: var(--paper);
	box-shadow: var(--shadow-2);
	color: var(--ink-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background var(--dur-fast) var(--ease-std), color var(--dur-fast) var(--ease-std), opacity var(--dur-fast) var(--ease-std);
}
.cat-carousel__arrow svg {
	width: 24px;
	height: 24px;
	flex: 0 0 auto;
}
.cat-carousel__arrow:hover { background: var(--leaf-50); color: var(--leaf-700); }
.cat-carousel__arrow--prev { left: -12px; }
.cat-carousel__arrow--next { right: -12px; }
.cat-carousel__arrow:disabled { opacity: 0; pointer-events: none; }

@media (max-width: 1024px) {
	.cat-carousel__track > .cat { flex-basis: calc((100% - 3 * var(--sp-4)) / 4); }
}
@media (max-width: 768px) {
	.cat-carousel__track { gap: var(--sp-3); }
	.cat-carousel__track > .cat { flex-basis: calc((100% - 1.3 * var(--sp-3)) / 2.3); }
	.cat-carousel__arrow { display: none; } /* на мобиле — свайп */
}

/* Центровка цифры степпера на странице товара (форс высоты) */
.woocommerce div.product form.cart .qty-stepper {
	height: 42px;
}
.woocommerce div.product form.cart .qty-stepper input.qty {
	height: 42px !important;
	line-height: 42px;
}

/* Корзина: миниатюра строго 1:1 */
.cart-item__thumb img,
.cart-item__thumb .cart-item__img {
	aspect-ratio: 1 / 1;
}

@media (max-width: 768px) {
	/* П.3.1 — кнопка «Фильтры» компактнее + отступ снизу */
	.filters-collapse__summary {
		height: 40px;
		padding: 0 var(--sp-4);
		font-size: var(--fs-body-s);
		margin-bottom: var(--sp-4);
	}
}

@media (max-width: 600px) {
	/* П.3.2 — на узкой 2-кол. карточке ужимаем отступы и счётчик,
	   чтобы строка «счётчик + кнопка-иконка 44px» влезала без переполнения
	   (иначе кнопку выдавливает за правый край и иконка кажется смещённой). */
	.product-card__actions {
		padding-left: var(--sp-3);
		padding-right: var(--sp-3);
	}
	.product-card__add-row {
		gap: var(--sp-2);
	}
	.product-card__qty .qty-stepper__btn {
		width: 24px;
	}
	.product-card__qty .qty-stepper input.qty,
	.product-card__qty .qty-stepper input.qty-input {
		width: 26px !important;
	}
	/* П.3.2 — кнопка добавления на карточке = иконка корзины, после клика галочка */
	.product-card__add-row .btn,
	.product-card__add-row .button {
		font-size: 0 !important;
		flex: 0 0 44px;
		width: 44px !important;
		height: 44px;
		/* padding ядра WooCommerce (.woocommerce a.button, спецификmy 0,2,1)
		   перебивает наш — без !important кнопку раздувает до 92px. */
		padding: 0 !important;
		box-sizing: border-box;
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	.product-card__add-row .btn::after,
	.product-card__add-row .button::after {
		content: '';
		/* Абсолютное центрирование: текст кнопки (font-size:0) остаётся
		   нулевым флекс-элементом и вместе с gap сдвигал иконку вправо.
		   Позиционируем иконку строго по центру кнопки независимо от него. */
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 22px;
		height: 22px;
		background-color: #fff;
		-webkit-mask: url("../img/icons/ui/cart.svg") center / contain no-repeat;
		mask: url("../img/icons/ui/cart.svg") center / contain no-repeat;
	}
	.product-card__add-row .btn.is-added::after,
	.product-card__add-row .button.is-added::after {
		-webkit-mask: url("../img/icons/ui/check.svg") center / contain no-repeat;
		mask: url("../img/icons/ui/check.svg") center / contain no-repeat;
	}
}

/* ============================================================
   42. Инфо-страницы (О нас, Частые вопросы, Советы по выращиванию)
   ============================================================ */

.info-page {
	max-width: 760px;
}
.info-photo {
	margin: var(--sp-6) 0;
}
.info-photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-2);
}
.info-page h2 {
	margin-top: var(--sp-9);
	margin-bottom: var(--sp-4);
	padding-bottom: var(--sp-3);
	border-bottom: 1px solid var(--line);
}
.info-page h3 {
	margin-top: var(--sp-5);
	margin-bottom: var(--sp-2);
}
.info-page p {
	margin: 0 0 var(--sp-4);
	color: var(--ink-700);
}
.info-lead {
	font-size: var(--fs-body-l);
	line-height: var(--lh-body-l);
	color: var(--ink-600) !important;
	margin-bottom: var(--sp-6) !important;
}

/* Заглушки для будущего контента */
.info-placeholder {
	background: var(--leaf-50);
	border: 1px dashed var(--leaf-300);
	border-radius: var(--r-md);
	padding: var(--sp-4) var(--sp-5);
	color: var(--ink-600);
	margin: 0 0 var(--sp-5);
	font-size: var(--fs-body-s);
}
.info-placeholder strong { color: var(--leaf-700); }

/* Сетка преимуществ */
.info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sp-4);
	margin: var(--sp-5) 0;
}
.info-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	box-shadow: var(--shadow-1);
	padding: var(--sp-5);
}
.info-card h3 { margin: 0 0 var(--sp-2); color: var(--leaf-700); }
.info-card p { margin: 0; font-size: var(--fs-body-s); color: var(--ink-600); }

/* Шаги «как мы работаем» */
.info-steps {
	margin: var(--sp-5) 0;
	padding-left: 0;
	list-style: none;
	counter-reset: info-step;
}
.info-steps > li {
	position: relative;
	padding-left: 48px;
	margin-bottom: var(--sp-4);
	color: var(--ink-700);
}
.info-steps > li::before {
	counter-increment: info-step;
	content: counter(info-step);
	position: absolute;
	left: 0;
	top: -2px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--grad-primary);
	color: #fff;
	font-family: var(--font-display);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.info-list { margin: 0 0 var(--sp-4); padding-left: var(--sp-5); color: var(--ink-700); }
.info-list li { margin-bottom: var(--sp-2); }

/* FAQ — нативный аккордеон <details> */
.faq__item {
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--paper);
	box-shadow: var(--shadow-1);
	margin-bottom: var(--sp-3);
	overflow: hidden;
}
.faq__item summary {
	list-style: none;
	cursor: pointer;
	padding: var(--sp-4) var(--sp-5);
	font-weight: 600;
	color: var(--ink-900);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	transition: background var(--dur-fast) var(--ease-std);
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
	content: '';
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	background-color: var(--leaf-700);
	-webkit-mask: url("../img/icons/ui/chevron-down.svg") center / contain no-repeat;
	mask: url("../img/icons/ui/chevron-down.svg") center / contain no-repeat;
	transition: transform var(--dur-fast) var(--ease-std);
}
.faq__item[open] summary { background: var(--leaf-50); }
.faq__item[open] summary::after { transform: rotate(180deg); }
.faq__item summary:hover { background: var(--leaf-50); }
.faq__a {
	padding: 0 var(--sp-5) var(--sp-4);
	color: var(--ink-700);
}
.faq__a p { margin: var(--sp-2) 0 0; }

/* Выноска-callout и CTA */
.info-callout {
	background: var(--grad-soft-leaf);
	border: 1px solid var(--leaf-200);
	border-radius: var(--r-lg);
	padding: var(--sp-5) var(--sp-6);
	margin: var(--sp-7) 0;
}
.info-callout h3 { margin-top: 0; color: var(--leaf-900); }
.info-callout .info-list { margin-bottom: 0; }

.info-cta {
	margin-top: var(--sp-9);
	padding: var(--sp-7) var(--sp-6);
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-2);
	text-align: center;
}
.info-cta h2 { border: 0; margin: 0 0 var(--sp-3); padding: 0; }
.info-cta .btn { text-decoration: none; margin-top: var(--sp-2); }

@media (max-width: 600px) {
	.info-grid { grid-template-columns: 1fr; }
	.info-page h2 { margin-top: var(--sp-7); }
}

/* ============================================================
   43. Адаптив каталога: «Фильтры» + сортировка одной строкой
   ============================================================ */

/* Кнопка «Фильтры» в тулбаре — видна только на адаптиве (≤1024). */
.shop-toolbar__filter-btn {
	display: none;
	align-items: center;
	gap: var(--sp-2);
	height: 40px;
	padding: 0 var(--sp-4);
	background: var(--paper);
	border: 1.5px solid var(--leaf-300);
	border-radius: var(--r-md);
	color: var(--leaf-700);
	font-family: var(--font-body);
	font-size: var(--fs-body-s);
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	flex: 0 0 auto;
	transition: background var(--dur-fast) var(--ease-std),
	            border-color var(--dur-fast) var(--ease-std);
}
.shop-toolbar__filter-btn svg {
	flex-shrink: 0;
}
.shop-toolbar__filter-btn:hover,
.shop-toolbar__filter-btn[aria-expanded="true"] {
	background: var(--leaf-50);
	border-color: var(--leaf-700);
}

@media (max-width: 1024px) {
	/* Меньше воздуха вокруг каталога. */
	.catalog-header {
		margin-bottom: var(--sp-3);
	}

	/* Колонкой: тулбар сверху, под ним — выпадающая панель фильтров, затем сетка.
	   display:contents у .catalog-main выносит тулбар и сетку на уровень layout,
	   чтобы порядком (order) поставить тулбар НАД панелью фильтров. */
	.catalog-layout {
		display: flex;
		flex-direction: column;
		gap: var(--sp-2);
	}
	.catalog-main {
		display: contents;
	}

	.shop-toolbar {
		order: -2;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		gap: var(--sp-2);
		margin-bottom: 0;
	}
	.catalog-filters {
		order: -1;
	}

	/* Встроенную в сайдбар кнопку-summary прячем — триггер теперь в тулбаре. */
	.filters-collapse__summary {
		display: none;
	}
	.filters {
		margin-top: 0;
	}

	.shop-toolbar__filter-btn {
		display: inline-flex;
	}
	.woocommerce-result-count {
		display: none;
	}
	.woocommerce-ordering {
		margin: 0 0 0 auto;
		flex: 1 1 auto;
		min-width: 0;
	}
	.woocommerce-ordering select {
		width: 100%;
	}
}

/* Footer: строка зоны доставки (локальное SEO) */
.site-footer__delivery {
	margin: var(--sp-3) 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.55);
}

/* ============================================================
   Модалка «нет в наличии» — заявка на товар
   ============================================================ */

.product-card__backorder {
	width: 100%;
}

.backorder-modal {
	position: fixed;
	inset: 0;
	z-index: 620;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--sp-4);
	overflow-y: auto;
}

.backorder-modal[hidden] {
	display: none;
}

.backorder-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(43, 48, 36, 0.55);
	backdrop-filter: blur(2px);
}

.backorder-modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 460px;
	margin: auto;
	background: var(--paper);
	border-radius: var(--r-xl);
	box-shadow: var(--shadow-4);
	padding: var(--sp-6) var(--sp-6) var(--sp-5);
}

.backorder-modal .backorder-modal__close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #2b3024 !important;
	overflow: visible !important;
	cursor: pointer;
	transition: background .15s, color .15s;
}

.backorder-modal__close:hover {
	background: #eef4e8;
	color: #3f6b36 !important;
}

/* Крестик: размеры и обводка форсированы, иначе сторонний CSS схлопывает svg в точку. */
.backorder-modal .backorder-modal__close svg {
	display: block !important;
	width: 20px !important;
	height: 20px !important;
	flex: 0 0 auto !important;
	overflow: visible !important;
	fill: none !important;
	stroke: #2b3024 !important;
}

.backorder-modal .backorder-modal__close svg path {
	fill: none !important;
	stroke: #2b3024 !important;
	stroke-width: 1.75 !important;
}

.backorder-modal__badge {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	color: #8a5a2b;
	background: #fbf1e2;
	border-radius: 999px;
	padding: 4px 12px;
	margin-bottom: var(--sp-3);
}

.backorder-modal__title {
	font-family: var(--font-display, Lora), serif;
	font-size: 22px;
	line-height: 1.25;
	margin: 0 0 var(--sp-2);
	color: var(--ink);
}

.backorder-modal__text {
	font-size: 15px;
	line-height: 1.6;
	color: #4c5348;
	margin: 0 0 var(--sp-4);
}

.backorder-form__field {
	display: block;
	margin-bottom: var(--sp-3);
}

.backorder-form__label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #4c5348;
	margin-bottom: 5px;
}

.backorder-form__input {
	width: 100%;
	box-sizing: border-box;
	padding: 11px 14px;
	font-size: 15px;
	font-family: inherit;
	color: var(--ink);
	background: #fff;
	border: 1px solid #d8ddd2;
	border-radius: var(--r-md, 10px);
	transition: border-color .15s, box-shadow .15s;
}

.backorder-form__input:focus {
	outline: none;
	border-color: #6b9e5e;
	box-shadow: 0 0 0 3px rgba(107, 158, 94, .18);
}

.backorder-form__input--area {
	resize: vertical;
	min-height: 60px;
}

.backorder-form__error {
	margin: 0 0 var(--sp-3);
	padding: 9px 12px;
	font-size: 14px;
	color: #8c2f2f;
	background: #fbeaea;
	border-radius: 8px;
}

.backorder-form__error[hidden] {
	display: none;
}

.backorder-form__submit {
	width: 100%;
	margin-top: var(--sp-1);
}

.backorder-form__submit.is-loading {
	opacity: .65;
	pointer-events: none;
}

.backorder-modal__contacts {
	margin-top: var(--sp-4);
	padding-top: var(--sp-3);
	border-top: 1px solid #e8ece3;
	font-size: 13.5px;
	color: #6a715f;
}

.backorder-modal__contacts-label {
	display: block;
	margin-bottom: 4px;
}

.backorder-modal__contacts-links a {
	color: #3f6b36;
	text-decoration: underline;
	margin-right: 12px;
	white-space: nowrap;
}

.backorder-modal__panel--done {
	text-align: center;
}

.backorder-modal__panel--done[hidden] {
	display: none;
}

.backorder-modal__done-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	margin-bottom: var(--sp-3);
	border-radius: 50%;
	background: #eaf3e4;
	color: #3f6b36 !important;
}

.backorder-modal__done-icon svg {
	width: 28px;
	height: 28px;
	stroke: currentColor !important;
	fill: none !important;
}

/* Мобильный: модалка становится нижней шторкой на всю ширину. */
@media (max-width: 600px) {
	.backorder-modal {
		padding: 0;
		align-items: flex-end;
	}

	.backorder-modal__dialog {
		max-width: none;
		margin: 0;
		border-radius: var(--r-xl) var(--r-xl) 0 0;
		padding: var(--sp-5) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom, 0px));
		max-height: 92vh;
		overflow-y: auto;
	}

	.backorder-modal__title {
		font-size: 20px;
	}

	.backorder-modal__text {
		font-size: 14.5px;
	}

	/* iOS не зумит поля при шрифте >= 16px. */
	.backorder-form__input {
		font-size: 16px;
	}

	.backorder-modal__contacts-links a {
		display: inline-block;
		margin-bottom: 4px;
	}
}
