/* ============================================================
   WOOCOMMERCE: переопределение стандартных стилей
   под палитру дизайн-системы (emerald / orange / Onest).
   Подключается только на WC-страницах.
   ============================================================ */

.zm-wc {
  padding: 32px 0 80px;
  font-family: var(--sans);
  color: var(--ink);
}

/* ===== заголовок страницы ===== */
.zm-wc .woocommerce-products-header__title,
.zm-wc h1.product_title,
.zm-wc .page-title {
  font-family: var(--sans);
  font-size: 36px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ink);
  font-weight: 700;
  margin: 0 0 24px;
}

/* ===== хлебные крошки ===== */
.zm-wc .woocommerce-breadcrumb {
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 20px;
}
.zm-wc .woocommerce-breadcrumb a {
  color: var(--green-d);
  text-decoration: none;
}
.zm-wc .woocommerce-breadcrumb a:hover {
  color: var(--green);
}

/* ===== результаты + сортировка ===== */
.zm-wc .woocommerce-result-count {
  font-size: 14px;
  color: var(--muted);
  padding-top: 8px;
}
.zm-wc .woocommerce-ordering select {
  font-family: var(--sans);
  font-size: 14px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--border-d);
  border-radius: var(--r-btn);
  background: #fff;
  cursor: pointer;
}

/* ============================================================
   КАТАЛОГ — СЕТКА КАРТОЧЕК
   Карточка товара использует .card / .card-photo / .card-body / .card-btn
   из main.css. Здесь только настройки сетки.
   ============================================================ */
.zm-wc ul.products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
}
.zm-wc ul.products li {
  margin: 0;
  width: auto !important;
  float: none !important;
}

/* Шильд "нет в наличии" */
.chip-out { background: var(--muted); color: #fff; }

/* Outline-вариант кнопки для variable/out-of-stock */
.card-btn-ghost {
  background: transparent !important;
  color: var(--ink) !important;
  box-shadow: inset 0 0 0 1.5px var(--border-d);
}
.card-btn-ghost:hover {
  box-shadow: inset 0 0 0 1.5px var(--ink);
  background: #fff !important;
  color: var(--ink) !important;
}

/* Адаптивность сетки */
@media (max-width: 1024px) {
  .zm-wc ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .zm-wc ul.products { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}


/* ============================================================
   КОРЗИНА И ОФОРМЛЕНИЕ
   ============================================================ */
.zm-wc .woocommerce-cart .shop_table,
.zm-wc .woocommerce-checkout .shop_table {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}
.zm-wc .woocommerce-cart .shop_table th {
  background: var(--mint-s);
  font-weight: 600;
  padding: 14px;
}
.zm-wc .woocommerce-cart .shop_table td { padding: 14px; }

.zm-wc .cart_totals,
.zm-wc .woocommerce-checkout-review-order {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 24px;
}

.zm-wc input[type=text],
.zm-wc input[type=email],
.zm-wc input[type=tel],
.zm-wc input[type=password],
.zm-wc input[type=number],
.zm-wc textarea,
.zm-wc select {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1.5px solid var(--border-d);
  border-radius: var(--r-btn);
  font-family: var(--sans);
  font-size: 15px;
  background: #fff;
  transition: border-color .15s ease;
}
.zm-wc textarea { height: auto; padding: 12px 14px; }
.zm-wc input:focus,
.zm-wc textarea:focus,
.zm-wc select:focus {
  outline: none;
  border-color: var(--green);
}

/* кнопка Оформить заказ, Перейти к оплате и т.п. */
.zm-wc .woocommerce a.button,
.zm-wc .woocommerce button.button,
.zm-wc .woocommerce input.button,
.zm-wc .woocommerce #respond input#submit,
.zm-wc .checkout-button,
.zm-wc .wc-proceed-to-checkout .checkout-button {
  background: var(--green) !important;
  color: #fff !important;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 15px;
  height: 48px;
  padding: 0 24px;
  border-radius: var(--r-btn);
  border: 0;
  transition: background .15s ease;
}
.zm-wc .woocommerce a.button:hover,
.zm-wc .woocommerce button.button:hover,
.zm-wc .woocommerce input.button:hover,
.zm-wc .woocommerce #respond input#submit:hover,
.zm-wc .checkout-button:hover,
.zm-wc .wc-proceed-to-checkout .checkout-button:hover {
  background: var(--green-2) !important;
  color: #fff !important;
}

/* плашки сообщений (товар добавлен, ошибка и т.п.) */
.zm-wc .woocommerce-message,
.zm-wc .woocommerce-info,
.zm-wc .woocommerce-error,
.zm-wc .woocommerce-notice {
  background: var(--mint);
  border-left: 4px solid var(--green);
  color: var(--green-d);
  padding: 14px 18px;
  border-radius: 6px;
  margin: 0 0 20px;
  font-size: 14px;
}
.zm-wc .woocommerce-error {
  background: #FDECEA;
  border-left-color: var(--sale);
  color: var(--sale);
}

/* ============================================================
   АДАПТИВНОСТЬ
   ============================================================ */
@media (max-width: 1024px) {
  .zm-wc ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .zm-wc ul.products { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .zm-wc .product > .images { width: 100% !important; margin-right: 0 !important; margin-bottom: 20px; }
  .zm-wc .product > .summary { width: 100% !important; }
  .zm-wc .product .price { font-size: 24px !important; }
}

/* ============================================================
   WOOCOMMERCE BLOCKS (Cart Block, Checkout Block, Mini-cart, Buttons)
   В WC 8+ корзина и оформление по умолчанию — блочные шаблоны
   с префиксами .wc-block-, .wp-block-, .wp-element-button
   ============================================================ */

/* Универсальный селектор для всех кнопок-блоков WP */
.wp-block-button__link,
.wp-element-button,
.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-product-button .wp-block-button__link,
button.wc-block-cart-item__remove-link,
.wc-block-cart .wc-block-components-button,
.wc-block-checkout .wc-block-components-button {
  background: var(--green) !important;
  color: #fff !important;
  font-family: var(--sans) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  border-radius: var(--r-btn) !important;
  border: 0 !important;
  padding: 0 24px !important;
  height: 48px !important;
  line-height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  transition: background .15s ease !important;
  letter-spacing: -0.01em !important;
}
.wp-block-button__link:hover,
.wp-element-button:hover,
.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background: var(--green-2) !important;
  color: #fff !important;
}

/* Outline-вариант для второстепенных кнопок */
.wp-block-button.is-style-outline .wp-block-button__link,
.wc-block-components-button.outlined {
  background: transparent !important;
  color: var(--ink) !important;
  box-shadow: inset 0 0 0 1.5px var(--border-d) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wc-block-components-button.outlined:hover {
  box-shadow: inset 0 0 0 1.5px var(--ink) !important;
  background: #fff !important;
  color: var(--ink) !important;
}

/* Карточки товара в блоках "Новинки", "Хиты" и т.п. */
.wc-block-grid__products .wc-block-grid__product,
.wp-block-woocommerce-product-template .wc-block-grid__product {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  padding: 14px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.wc-block-grid__products .wc-block-grid__product:hover {
  border-color: var(--border-d);
  box-shadow: 0 8px 24px rgba(11, 19, 15, .05);
}
.wc-block-grid__product-image {
  background: var(--mint-s);
  border-radius: 4px;
  margin-bottom: 12px;
}
.wc-block-grid__product-title,
.wc-block-components-product-name {
  font-family: var(--sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  color: var(--ink) !important;
  letter-spacing: -0.01em !important;
}
.wc-block-grid__product-price,
.wc-block-components-product-price {
  font-family: var(--sans) !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  color: var(--ink) !important;
  font-variant-numeric: tabular-nums !important;
}

/* Кнопки "В корзину" в блочной сетке */
.wc-block-grid__products .wp-block-button__link,
.wp-block-woocommerce-product-template .wp-block-button__link {
  width: 100%;
  text-align: center;
}

/* Иконка пустой корзины */
.wc-block-cart__empty-cart__title {
  font-family: var(--sans);
  color: var(--muted);
  font-weight: 500;
}

/* Скрываем "Edit" режим, если внутри страниц что-то осталось */
.wp-block-woocommerce-empty-cart-block .wp-block-image img,
.wp-block-woocommerce-empty-cart-block svg {
  max-width: 80px;
  margin: 0 auto 16px;
}

/* Поля форм в блочной корзине/оформлении */
.wc-block-components-text-input input,
.wc-block-components-select-input select,
.wc-block-components-textarea {
  font-family: var(--sans) !important;
  font-size: 15px !important;
  border: 1.5px solid var(--border-d) !important;
  border-radius: var(--r-btn) !important;
  height: 48px;
}
.wc-block-components-text-input input:focus,
.wc-block-components-select-input select:focus {
  border-color: var(--green) !important;
  outline: none !important;
}

/* Сводка в блочном чекауте — справа */
.wc-block-components-totals-item__value {
  font-family: var(--sans);
  font-weight: 600;
  color: var(--ink);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 22px;
  color: var(--green-d);
}

/* ============================================================
   ДОВОДКА КАРТОЧКИ ТОВАРА В КАТАЛОГЕ
   (только в контексте .zm-wc — на главной всё остаётся как есть)
   ============================================================ */

/* Названия видны полностью — отключаем -webkit-line-clamp из main.css.
   Цены и кнопки выровняются по нижнему краю карточки автоматически
   благодаря flex+margin-top:auto, заданному на .card-price в main.css. */
.zm-wc ul.products .card-name {
  display: block;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
  overflow: visible;
  min-height: 0;
}

/* Фото: вертикальный прямоугольник + показывать целиком, без обрезки.
   Если у картинки нестандартная пропорция — заливается мятным фоном. */
.zm-wc ul.products .card-photo {
  aspect-ratio: 4 / 5;
  background: var(--mint-s);
}
.zm-wc ul.products a.card-ph-inner {
  background-size: contain;
}

/* Сердечко — декорация: убираем смену цвета на наведение,
   оставляем только лёгкое масштабирование. */
.zm-wc ul.products .card-heart {
  cursor: default;
}
.zm-wc ul.products .card-heart:hover {
  color: var(--muted);
  background: #fff;
  transform: scale(1.06);
}

/* Outline-кнопка (.card-btn-ghost) — переопределяем мятным hover вместо белого */
.zm-wc ul.products .card-btn-ghost:hover {
  background: var(--mint-s) !important;
}

/* Сетка: 4 в ряд от 1180px (раньше переключалась на 3 уже на 1100px) */
@media (max-width: 1180px) {
  .zm-wc ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .zm-wc ul.products { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}

/* Шильд «Нет в наличии» — нейтрально-серый */
.chip-out { background: var(--muted); color: #fff; }

/* ============================================================
   ТОПБАР КАТАЛОГА
   ============================================================ */
.shop-topbar {
  margin: 0 0 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}
.shop-topbar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.shop-topbar-row-top { margin-bottom: 12px; }
.shop-topbar-controls { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* breadcrumbs */
.shop-topbar .woocommerce-breadcrumb {
  margin: 0;
  font-size: 12px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}
.shop-topbar .woocommerce-breadcrumb a {
  color: var(--muted);
  text-decoration: none;
}
.shop-topbar .woocommerce-breadcrumb a:hover { color: var(--green); }

/* счётчик товаров */
.shop-topbar .woocommerce-result-count {
  margin: 0;
  font-size: 13px;
  color: var(--muted);
}

/* per-page переключатель */
.shop-perpage {
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: 13px;
  color: var(--muted);
}
.shop-perpage-label { margin-right: 8px; }
.shop-perpage-btn {
  padding: 4px 10px;
  border-radius: var(--r-btn);
  color: var(--ink-2);
  text-decoration: none;
  font-weight: 600;
  font-size: 13px;
  transition: background .15s ease, color .15s ease;
}
.shop-perpage-btn:hover { background: var(--mint-s); color: var(--green-d); }
.shop-perpage-btn.is-active { background: var(--mint); color: var(--green-d); }

/* плотность сетки */
.shop-density {
  display: inline-flex;
  align-items: center;
  background: var(--mint-s);
  border-radius: var(--r-btn);
  padding: 4px;
  gap: 2px;
}
.shop-density-btn {
  height: 32px;
  min-width: 32px;
  border: 0;
  background: transparent;
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0 6px;
  transition: background .15s ease;
}
.shop-density-btn span {
  display: block;
  width: 3px;
  height: 14px;
  background: var(--muted);
  border-radius: 1px;
  transition: background .15s ease;
}
.shop-density-btn:hover span { background: var(--ink); }
.shop-density-btn.is-active {
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.shop-density-btn.is-active span { background: var(--green); }

/* сортировка */
.shop-topbar .woocommerce-ordering { margin: 0; }
.shop-topbar .woocommerce-ordering select {
  font-family: var(--sans);
  font-size: 14px;
  height: 40px;
  padding: 0 36px 0 14px;
  border: 1px solid var(--border-d);
  border-radius: var(--r-btn);
  background-color: #fff;
  cursor: pointer;
  color: var(--ink);
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3e%3cpath d='M1 1.5L6 6.5L11 1.5' stroke='%237A8377' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 12px center;
}

/* JS-классы плотности — перебивают наш media-grid */
.zm-wc ul.products.cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.zm-wc ul.products.cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.zm-wc ul.products.cols-4 { grid-template-columns: repeat(4, 1fr) !important; }

/* адаптив */
@media (max-width: 760px) {
  .shop-topbar-row { gap: 8px; }
  .shop-density { display: none; }
  .shop-perpage-label { display: none; }
}

/* ============================================================
   ФИЛЬТРЫ КАТАЛОГА — двухколоночный layout
   ============================================================ */
.zm-shop-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 32px;
  align-items: start;
}
.zm-shop-sidebar {
  position: sticky;
  top: 20px;
}
.zm-filters {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  padding: 20px;
}
.zm-filters-reset {
  display: inline-block;
  margin-bottom: 16px;
  color: var(--sale);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}
.zm-filters-reset:hover { color: var(--green-d); }

.zm-filter-group {
  padding: 18px 0;
  border-top: 1px solid var(--border);
}
.zm-filter-group:first-of-type,
.zm-filters-reset + .zm-filter-group {
  padding-top: 0;
  border-top: 0;
}
.zm-filter-title {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink);
}

.zm-price-inputs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.zm-price-inputs input {
  flex: 1;
  min-width: 0;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--border-d);
  border-radius: 6px;
  font-size: 13px;
  text-align: center;
  font-family: var(--sans);
}
.zm-price-inputs input:focus {
  outline: none;
  border-color: var(--green);
}
.zm-price-inputs span { color: var(--muted-2); }

.zm-filter-apply {
  display: block;
  width: 100%;
  height: 36px;
  background: var(--green);
  color: #fff;
  border: 0;
  border-radius: var(--r-btn);
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: background .15s ease;
}
.zm-filter-apply:hover { background: var(--green-2); }

.zm-checkbox-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.zm-checkbox-list-scroll {
  max-height: 240px;
  overflow-y: auto;
  padding-right: 6px;
}
.zm-checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 13px;
  color: var(--ink-2);
  line-height: 1.35;
}
.zm-checkbox input {
  width: 16px;
  height: 16px;
  accent-color: var(--green);
  cursor: pointer;
  flex-shrink: 0;
  margin: 0;
}
.zm-checkbox small {
  color: var(--muted-2);
  font-weight: 400;
}
.zm-checkbox:hover span {
  color: var(--green-d);
}

@media (max-width: 900px) {
  .zm-shop-layout { grid-template-columns: 1fr; }
  .zm-shop-sidebar { position: static; }
}

/* Гасим стандартные clearfix-псевдоэлементы WC — при grid они занимают
   слоты сетки и создают пустые ячейки в начале/конце. */
.zm-wc ul.products::before,
.zm-wc ul.products::after {
  content: none;
}


/* ============================================================
   SINGLE PRODUCT — Этап 1: каркас (галерея + сводка + дисклеймер)
   ============================================================ */
.zm-product {
  padding: 0;
}

.zm-product-breadcrumbs {
  margin: 8px 0 24px;
}
.zm-product-breadcrumbs .woocommerce-breadcrumb {
  font-size: 12px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  margin: 0;
}
.zm-product-breadcrumbs .woocommerce-breadcrumb a {
  color: var(--muted);
  text-decoration: none;
}
.zm-product-breadcrumbs .woocommerce-breadcrumb a:hover { color: var(--green); }

.zm-product-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}

/* Галерея */
.zm-product-gallery {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  padding: 20px;
}
.zm-product-gallery .woocommerce-product-gallery__image img {
  border-radius: 6px;
  background: var(--mint-s);
}
.zm-product-gallery .flex-control-thumbs {
  margin-top: 10px;
  display: flex;
  gap: 8px;
  list-style: none;
  padding: 0;
}
.zm-product-gallery .flex-control-thumbs li {
  flex: 0 0 calc(25% - 6px);
}
.zm-product-gallery .flex-control-thumbs img {
  border-radius: 4px;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity .15s ease;
  border: 1px solid var(--border);
}
.zm-product-gallery .flex-control-thumbs img:hover,
.zm-product-gallery .flex-control-thumbs img.flex-active {
  opacity: 1;
  border-color: var(--green);
}

/* Сводка */
.zm-product-summary {
  /* без фона — для лёгкости */
}
.zm-product-brand {
  font-size: 13px;
  font-weight: 600;
  color: var(--green-d);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 12px;
}
.zm-product-title {
  font-size: 28px;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--ink);
  font-weight: 700;
  margin: 0 0 16px;
}
.zm-product-price {
  font-size: 32px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 16px;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.zm-product-price del {
  font-size: 18px;
  color: var(--muted-2);
  font-weight: 500;
  margin-right: 12px;
}
.zm-product-price ins {
  text-decoration: none;
  color: var(--sale);
}

/* Индикатор наличия */
.zm-product-stock {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: var(--r-pill);
  margin: 0 0 20px;
}
.zm-product-stock-in {
  background: var(--mint);
  color: var(--green-d);
}
.zm-product-stock-out {
  background: #FDECEA;
  color: var(--sale);
}

/* Кнопка купить с селектором */
.zm-product-cart {
  margin: 0 0 24px;
}
.zm-product-cart form.cart {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  flex-wrap: wrap;
}
.zm-product-cart form.cart .quantity {
  margin: 0;
}
.zm-product-cart form.cart .quantity input {
  width: 80px;
  height: 52px;
  border: 1.5px solid var(--border-d);
  border-radius: var(--r-btn);
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  font-family: var(--sans);
  background: #fff;
}
.zm-product-cart .button.single_add_to_cart_button {
  height: 52px !important;
  padding: 0 32px !important;
  background: var(--green) !important;
  color: #fff !important;
  border-radius: var(--r-btn);
  border: 0;
  font-weight: 600;
  font-size: 15px;
  font-family: var(--sans);
  cursor: pointer;
  transition: background .15s ease;
  flex: 1 1 220px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-transform: none;
  letter-spacing: 0;
}
.zm-product-cart .button.single_add_to_cart_button:hover {
  background: var(--green-2) !important;
}

/* Краткое описание */
.zm-product-short-desc {
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.55;
  margin: 0 0 24px;
  padding: 18px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.zm-product-short-desc p:last-child { margin-bottom: 0; }
.zm-product-short-desc p:first-child { margin-top: 0; }

/* Мета: SKU, категория, метки */
.zm-product-meta {
  margin: 0 0 24px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.7;
}
.zm-product-meta > span {
  display: block;
}
.zm-product-meta .sku_wrapper,
.zm-product-meta .posted_in,
.zm-product-meta .tagged_as {
  display: block;
}
.zm-product-meta a {
  color: var(--green-d);
  text-decoration: none;
}
.zm-product-meta a:hover {
  color: var(--green);
}

/* Дисклеймер БАД */
.zm-product-disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: var(--mint-s);
  border-left: 3px solid var(--green);
  border-radius: 6px;
  font-size: 12px;
  color: var(--ink-2);
  line-height: 1.55;
}
.zm-product-disclaimer svg {
  flex-shrink: 0;
  color: var(--green-d);
  margin-top: 1px;
}

/* Адаптив */
@media (max-width: 900px) {
  .zm-product-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .zm-product-title { font-size: 22px; }
  .zm-product-price { font-size: 26px; }
  .zm-product-cart .button.single_add_to_cart_button { flex: 1 1 100%; }
}

/* ============================================================
   Блоки «Похожие» и «С этим покупают» — те же стили сетки,
   что и в основном каталоге. По умолчанию WC оставляет здесь
   старый float-layout, который ломает раскладку.
   ============================================================ */
.zm-wc .related,
.zm-wc .upsells {
  clear: both;
  width: 100%;
  margin-top: 48px;
}
.zm-wc .related > h2,
.zm-wc .upsells > h2 {
  clear: both;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 24px;
}
.zm-wc .related ul.products,
.zm-wc .upsells ul.products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.zm-wc .related ul.products li,
.zm-wc .upsells ul.products li {
  margin: 0 !important;
  width: auto !important;
  float: none !important;
}
.zm-wc .related ul.products::before,
.zm-wc .related ul.products::after,
.zm-wc .upsells ul.products::before,
.zm-wc .upsells ul.products::after {
  content: none;
}

@media (max-width: 1180px) {
  .zm-wc .related ul.products,
  .zm-wc .upsells ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .zm-wc .related ul.products,
  .zm-wc .upsells ul.products { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}


/* ============================================================
   КОРЗИНА И ЧЕКАУТ — Этап 1
   ============================================================ */

/* ---- Базовая ширина и шрифт обеих страниц ---- */
.woocommerce-cart .zm-wc .wrap,
.woocommerce-checkout .zm-wc .wrap {
  max-width: 1200px;
}
.woocommerce-cart .zm-wc,
.woocommerce-checkout .zm-wc,
.wc-block-checkout,
.wc-block-cart {
  font-family: 'Onest', system-ui, -apple-system, sans-serif !important;
}

/* ============================================================
   КЛАССИЧЕСКАЯ КОРЗИНА (shortcode)
   ============================================================ */

/* Заголовок страницы — переименовать в админке тоже */
.zm-wc .woocommerce-cart h1.entry-title,
.zm-wc .woocommerce-cart .wp-block-post-title {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
}

/* Лейаут: таблица + сумма */
.zm-wc form.woocommerce-cart-form {
  margin-bottom: 24px;
}

/* Таблица товаров */
.zm-wc .shop_table {
  border: 1px solid var(--border);
  border-radius: 8px;
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  overflow: hidden;
  background: #fff;
}
.zm-wc .shop_table thead {
  background: var(--mint-s);
}
.zm-wc .shop_table thead th {
  padding: 14px 16px;
  font-weight: 600;
  font-size: 13px;
  color: var(--ink);
  text-align: left;
  border: 0;
}
.zm-wc .shop_table tbody td {
  padding: 16px;
  vertical-align: middle;
  border: 0;
  border-top: 1px solid var(--border);
  background: #fff;
}
.zm-wc .shop_table tbody tr:first-child td {
  border-top: 0;
}

/* Колонка remove (×) */
.zm-wc .shop_table .product-remove {
  width: 36px;
}
.zm-wc .shop_table .product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--muted) !important;
  font-size: 18px;
  background: transparent;
  border-radius: 50%;
  text-decoration: none;
  transition: all 0.15s;
}
.zm-wc .shop_table .product-remove a.remove:hover {
  background: #fce8e6;
  color: var(--sale) !important;
}

/* Картинка товара */
.zm-wc .shop_table .product-thumbnail {
  width: 80px;
}
.zm-wc .shop_table .product-thumbnail a {
  display: block;
}
.zm-wc .shop_table .product-thumbnail img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  background: var(--mint-s);
  border-radius: 8px;
  padding: 6px;
  display: block;
}

/* Название товара */
.zm-wc .shop_table .product-name a {
  color: var(--ink) !important;
  text-decoration: none !important;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.4;
}
.zm-wc .shop_table .product-name a:hover {
  color: var(--green) !important;
}

/* Цена и подытог */
.zm-wc .shop_table .product-price,
.zm-wc .shop_table .product-subtotal {
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
}

/* Количество */
.zm-wc .shop_table .quantity input.qty {
  width: 60px;
  height: 36px;
  text-align: center;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0 4px;
  font-family: inherit;
}
.zm-wc .shop_table .quantity input.qty:focus {
  border-color: var(--green);
  outline: none;
  box-shadow: 0 0 0 2px rgba(15, 122, 74, .15);
}

/* Промокод + Обновить корзину (нижняя строка таблицы) */
.zm-wc .shop_table .actions {
  padding: 16px;
  background: var(--mint-s);
  border-top: 1px solid var(--border);
}
.zm-wc .coupon {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  vertical-align: middle;
}
.zm-wc .coupon label {
  display: none;
}
.zm-wc .coupon input.input-text {
  width: 220px;
  height: 38px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-family: inherit;
  background: #fff;
}
.zm-wc .coupon input.input-text:focus {
  border-color: var(--green);
  outline: none;
}
.zm-wc .coupon button,
.zm-wc button[name="apply_coupon"] {
  background: var(--ink) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 6px !important;
  padding: 0 16px !important;
  height: 38px !important;
  font-weight: 500 !important;
  font-family: inherit !important;
  cursor: pointer;
}
.zm-wc .coupon button:hover,
.zm-wc button[name="apply_coupon"]:hover {
  background: var(--green-d) !important;
}
.zm-wc button[name="update_cart"] {
  background: #fff !important;
  color: var(--ink) !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  padding: 0 16px !important;
  height: 38px !important;
  font-weight: 500 !important;
  margin-left: 12px;
  float: right;
}
.zm-wc button[name="update_cart"]:hover {
  border-color: var(--green) !important;
  color: var(--green) !important;
}
.zm-wc button[name="update_cart"]:disabled {
  opacity: .5;
  cursor: not-allowed;
}

/* Cart totals — сводка */
.zm-wc .cart-collaterals {
  width: 100%;
  display: flex;
  justify-content: flex-end;
}
.zm-wc .cart-collaterals .cart_totals {
  width: 100%;
  max-width: 420px;
  background: var(--mint-s);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 24px;
  float: none !important;
}
.zm-wc .cart_totals h2 {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 16px;
  letter-spacing: -0.01em;
}
.zm-wc .cart_totals table {
  background: transparent !important;
  border: 0 !important;
  width: 100%;
}
.zm-wc .cart_totals table th,
.zm-wc .cart_totals table td {
  padding: 10px 0;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--border) !important;
}
.zm-wc .cart_totals table th {
  font-weight: 500;
  color: var(--muted);
  text-align: left;
}
.zm-wc .cart_totals table td {
  text-align: right;
  font-weight: 600;
}
.zm-wc .cart_totals tr.order-total th,
.zm-wc .cart_totals tr.order-total td {
  border-bottom: 0 !important;
  padding-top: 16px;
  font-size: 18px;
}
.zm-wc .cart_totals tr.order-total td {
  font-size: 22px;
  font-weight: 700;
  color: var(--green-d);
}

/* Кнопка "Оформить заказ" */
.zm-wc .wc-proceed-to-checkout {
  margin-top: 16px;
  padding: 0;
}
.zm-wc .wc-proceed-to-checkout a.checkout-button,
.zm-wc a.checkout-button.button {
  display: block !important;
  width: 100% !important;
  background: var(--green) !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  padding: 14px 24px !important;
  border-radius: var(--r-btn) !important;
  text-align: center !important;
  text-decoration: none !important;
  border: 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  transition: background 0.15s;
}
.zm-wc .wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--green-d) !important;
}

/* Доставка в сводке */
.zm-wc .cart_totals .shipping-calculator-button {
  color: var(--green-d);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* "View Available Coupons" (Power Coupons) — спрятать */
.zm-wc .wc-coupons-list-show,
.zm-wc .show-available-coupons,
a[href*="show-coupons"],
a.smart-coupon-show-available-coupons-link {
  display: none !important;
}

/* Тёмное предупреждение про обновление количества */
.zm-wc .woocommerce-message,
.zm-wc .woocommerce-info {
  background: var(--mint) !important;
  color: var(--green-d) !important;
  border-left: 4px solid var(--green) !important;
  border-radius: 6px;
  padding: 14px 18px;
  font-size: 14px;
}
.zm-wc .woocommerce-error {
  background: #fce8e6 !important;
  color: var(--sale) !important;
  border-left: 4px solid var(--sale) !important;
}

/* ============================================================
   БЛОЧНЫЙ ЧЕКАУТ
   ============================================================ */

/* Контейнер */
.wc-block-checkout {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}

/* Сетка форма / сводка — 1.6 : 1 */
.wp-block-woocommerce-checkout {
  display: grid !important;
  grid-template-columns: 1.6fr 1fr !important;
  gap: 48px !important;
  align-items: start !important;
}
@media (max-width: 900px) {
  .wp-block-woocommerce-checkout {
    grid-template-columns: 1fr !important;
  }
}

/* Заголовки секций */
.wc-block-components-checkout-step__title,
.wc-block-components-title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  letter-spacing: -0.01em !important;
  margin: 0 0 16px !important;
}

/* Описание секции */
.wc-block-components-checkout-step__description {
  color: var(--muted) !important;
  font-size: 14px !important;
}

/* Поля ввода */
.wc-block-components-text-input,
.wc-block-components-textarea {
  font-family: 'Onest', sans-serif !important;
}
.wc-block-components-text-input input,
.wc-block-components-textarea textarea,
.wc-block-components-select select {
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  font-family: 'Onest', sans-serif !important;
  font-size: 15px !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-textarea textarea:focus,
.wc-block-components-select select:focus {
  border-color: var(--green) !important;
  box-shadow: 0 0 0 2px rgba(15, 122, 74, .15) !important;
}
.wc-block-components-text-input label {
  font-family: 'Onest', sans-serif !important;
  color: var(--muted) !important;
}

/* Чекбоксы */
.wc-block-components-checkbox input:checked + .wc-block-components-checkbox__mark {
  background: var(--green) !important;
  border-color: var(--green) !important;
}

/* Радио опции (доставка / оплата) */
.wc-block-components-radio-control__option {
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  padding: 16px !important;
  margin-bottom: 8px !important;
  transition: all 0.15s !important;
}
.wc-block-components-radio-control__option:hover {
  border-color: var(--green) !important;
}
.wc-block-components-radio-control__option--checked {
  border-color: var(--green) !important;
  background: var(--mint-s) !important;
}
.wc-block-components-radio-control__input:checked {
  background: var(--green) !important;
  border-color: var(--green) !important;
}

/* Кнопка "Оформить заказ" */
.wc-block-components-checkout-place-order-button,
button.wc-block-components-checkout-place-order-button {
  background: var(--green) !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  padding: 14px 28px !important;
  border-radius: var(--r-btn) !important;
  border: 0 !important;
  font-family: 'Onest', sans-serif !important;
}
.wc-block-components-checkout-place-order-button:hover {
  background: var(--green-d) !important;
}

/* Ссылка "Вернуться в корзину" */
.wc-block-components-checkout-return-to-cart-button {
  color: var(--green-d) !important;
  font-weight: 500 !important;
}
.wc-block-components-checkout-return-to-cart-button:hover {
  color: var(--green) !important;
}

/* Сводка справа */
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-components-sidebar {
  background: var(--mint-s);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 24px;
  position: sticky;
  top: 24px;
}

/* Скрыть огромный список атрибутов товара ("Сужение пор, Увлажнение...") */
.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary-item .wc-block-components-product-details {
  display: none !important;
}

/* Миниатюра товара в сводке */
.wc-block-components-order-summary-item__image {
  width: 56px !important;
  height: 56px !important;
}
.wc-block-components-order-summary-item__image img {
  object-fit: contain !important;
  background: #fff;
  border-radius: 6px;
  padding: 4px;
  border: 1px solid var(--border);
}

/* Бейджик количества на миниатюре */
.wc-block-components-order-summary-item__quantity {
  background: var(--green) !important;
  color: #fff !important;
}

/* Название товара в сводке */
.wc-block-components-order-summary-item__title,
.wc-block-components-product-name {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  line-height: 1.4 !important;
}

/* Цены */
.wc-block-components-product-price,
.wc-block-components-totals-item__value {
  font-weight: 600 !important;
  color: var(--ink) !important;
}

/* Итого */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item__price {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--green-d) !important;
}

/* Купоны — бейджи */
.wc-block-components-chip {
  background: var(--mint) !important;
  color: var(--green-d) !important;
  border: 1px solid var(--green) !important;
  border-radius: var(--r-pill) !important;
  font-weight: 500 !important;
}

/* "View Available Coupons" в блочном */
.wc-block-components-totals-coupon-link,
a.wc-block-components-totals-coupon-link {
  display: none !important;
}

/* Алерт "Нет доступных способов оплаты" — стилизуем мягче */
.wc-block-components-notice-banner.is-error {
  background: #fef2f0 !important;
  color: var(--sale) !important;
  border-left: 4px solid var(--sale) !important;
  border-radius: 6px !important;
}

/* ============================================================
   TRUST-блок (значки оплаты + ssl)
   ============================================================ */
.zm-trust {
  margin-top: 20px;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.zm-trust-head {
  display: flex;
  align-items: center;
  gap: 12px;
}
.zm-trust-lock {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--mint);
  border-radius: 50%;
  font-size: 16px;
}
.zm-trust-head strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.zm-trust-head span {
  display: block;
  font-size: 12px;
  color: var(--muted);
}
.zm-trust-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 4px;
  border-top: 1px solid var(--border);
  padding-top: 12px;
}
.zm-pm {
  display: inline-block;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ink);
  background: var(--mint-s);
  border: 1px solid var(--border);
  border-radius: 4px;
}

/* На блочном чекауте — добавим тот же блок через ::after сайдбара */
.wp-block-woocommerce-checkout-order-summary-block::after {
  content: "🔒  Безопасная оплата · SSL · МИР · VISA · Mastercard · СБП · Т-Банк";
  display: block;
  margin-top: 16px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 12px;
  color: var(--muted);
  text-align: center;
  line-height: 1.5;
}

/* ============================================================
   ФИКС ширины контейнеров на корзине и чекауте
   ============================================================ */
body.woocommerce-cart .wrap,
body.woocommerce-cart main,
body.woocommerce-cart article,
body.woocommerce-cart .entry-content,
body.woocommerce-cart .wp-block-post-content,
body.woocommerce-checkout .wrap,
body.woocommerce-checkout main,
body.woocommerce-checkout article,
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout .wp-block-post-content {
  max-width: 1240px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  box-sizing: border-box;
}

/* Снять max-width у внутренних group, если они ограничивают */
body.woocommerce-cart .wp-block-group,
body.woocommerce-checkout .wp-block-group {
  max-width: 100% !important;
  width: 100% !important;
}

/* Корзина — расширить таблицу, чтобы цифры влезали */
body.woocommerce-cart .shop_table,
body.woocommerce-cart .woocommerce-cart-form {
  width: 100% !important;
  min-width: 0 !important;
}

body.woocommerce-cart .shop_table .product-price,
body.woocommerce-cart .shop_table .product-subtotal,
body.woocommerce-cart .shop_table th.product-price,
body.woocommerce-cart .shop_table th.product-subtotal {
  white-space: nowrap !important;
  min-width: 120px;
}

body.woocommerce-cart .shop_table .product-name {
  min-width: 280px;
}

/* Чекаут — теперь сетка получит реальную ширину 1200+ */
body.woocommerce-checkout .wp-block-woocommerce-checkout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) !important;
  gap: 48px !important;
  align-items: start !important;
}
@media (max-width: 960px) {
  body.woocommerce-checkout .wp-block-woocommerce-checkout {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

/* Имя/Фамилия в две колонки на чекауте */
body.woocommerce-checkout .wc-block-components-address-form,
body.woocommerce-checkout .wc-block-components-address-form__address_1,
body.woocommerce-checkout .wc-block-components-address-form__address_2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
body.woocommerce-checkout .wc-block-components-address-form__address_1,
body.woocommerce-checkout .wc-block-components-address-form__address_2,
body.woocommerce-checkout .wc-block-components-address-form__email,
body.woocommerce-checkout .wc-block-components-address-form__country,
body.woocommerce-checkout .wc-block-components-address-form > [class*="__address_1"],
body.woocommerce-checkout .wc-block-components-address-form > [class*="__address_2"] {
  grid-column: 1 / -1;
}

/* Чекбокс согласия — стилизация (классический) */
.zm-privacy-consent {
  background: var(--mint-s);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  margin: 16px 0;
  font-size: 14px;
  line-height: 1.5;
}
.zm-privacy-consent label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--ink);
  cursor: pointer;
}
.zm-privacy-consent input[type="checkbox"] {
  margin-top: 2px;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  accent-color: var(--green);
}
.zm-privacy-consent a {
  color: var(--green-d);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.zm-privacy-consent a:hover {
  color: var(--green);
}

/* ===== Предзаказ ===== */
.chip-pre { background: var(--orange); color: #fff; }
.zm-product-stock-pre { color: var(--orange) !important; display: flex; align-items: center; gap: 6px; }
.card-btn-pre { background: var(--orange) !important; color: #fff !important; }
.card-btn-pre:hover { filter: brightness(.93); }
a.zm-preorder-btn {
  display: inline-flex !important; align-items: center; gap: 10px;
  height: 50px; padding: 0 28px; border-radius: var(--r-btn);
  background: var(--orange) !important; color: #fff !important;
  font-weight: 600; font-size: 15px; text-decoration: none !important;
  box-shadow: 0 8px 20px rgba(242,119,43,.3);
  transition: filter .15s ease;
}
a.zm-preorder-btn:hover { filter: brightness(.93); }
a.zm-preorder-btn svg { flex-shrink: 0; }
.zm-preorder-note { margin-top: 12px; font-size: 13px; color: var(--muted); max-width: 420px; }

/* ===== Компактные кнопки при сетке 4 в ряд ===== */
.zm-wc ul.products.cols-4 .card-btn,
.zm-wc ul.products.cols-4 .card-btn-ghost {
  font-size: 12px;
  height: 38px;
  gap: 5px;
  padding: 0 8px;
}
.zm-wc ul.products.cols-4 .card-btn svg { display: none; }

/* то же для дефолтной широкой сетки (4 колонки без переключателя) */
@media (min-width: 1181px) {
  .zm-wc ul.products:not(.cols-2):not(.cols-3) .card-btn,
  .zm-wc ul.products:not(.cols-2):not(.cols-3) .card-btn-ghost {
    font-size: 12px;
    height: 38px;
    gap: 5px;
    padding: 0 8px;
  }
  .zm-wc ul.products:not(.cols-2):not(.cols-3) .card-btn svg { display: none; }
}

/* ===== Мобильные фильтры/сортировка (WB/Ozon-стиль) ===== */
.zm-shop-mobilebar, .zm-shop-overlay{ display:none; }
.zm-shop-panel-head, .zm-shop-panel-apply, .zm-shop-sortsheet{ display:none; }

@media (max-width:768px){
  .zm-shop-mobilebar{
    display:grid; grid-template-columns:1fr 1fr; gap:10px;
    position:sticky; top:64px; z-index:40;
    background:#fff; padding:10px 0; margin-bottom:8px;
    border-bottom:1px solid var(--border,#EAEDEA);
  }
  .zm-shop-mb-btn{
    display:flex; align-items:center; justify-content:center; gap:8px;
    height:44px; border:1px solid var(--border-d,#D8DCD8); border-radius:8px;
    background:#fff; font-size:14px; font-weight:600; color:var(--ink,#0B130F);
  }
  .zm-shop-mb-btn:active{ background:var(--mint-s,#F6F7F6); }

  .zm-shop-main{ width:100% !important; }

  .zm-shop-overlay{
    display:block; position:fixed; inset:0; background:rgba(8,30,20,.45);
    z-index:1000; opacity:0; pointer-events:none; transition:opacity .25s ease;
  }
  .zm-shop-overlay.is-open{ opacity:1; pointer-events:auto; }
  .zm-wc .zm-shop-main ul.products,
  .zm-wc .zm-shop-main ul.products.cols-2,
  .zm-wc .zm-shop-main ul.products.cols-3,
  .zm-wc .zm-shop-main ul.products.cols-4{
    grid-template-columns:repeat(2,1fr) !important;
  }
  .zm-shop-sidebar, .zm-shop-sortsheet{
    display:block !important;
    position:fixed !important; left:0; right:0; bottom:0; top:auto !important;
    width:auto !important; max-width:none !important; margin:0 !important;
    max-height:88vh; overflow-y:auto; -webkit-overflow-scrolling:touch;
    background:#fff; z-index:1001;
    border-top-left-radius:18px; border-top-right-radius:18px;
    box-shadow:0 -8px 40px rgba(8,30,20,.22);
    transform:translateY(100%); transition:transform .28s ease;
    padding:0 18px calc(18px + env(safe-area-inset-bottom));
  }
  .zm-shop-sidebar.is-open, .zm-shop-sortsheet.is-open{ transform:translateY(0); }

  .zm-shop-panel-head{
    display:flex; align-items:center; justify-content:space-between;
    position:sticky; top:0; background:#fff; z-index:2;
    padding:16px 0 12px; border-bottom:1px solid var(--border,#EAEDEA);
    font-size:17px; font-weight:700;
  }
  .zm-shop-panel-close{ color:var(--muted,#6B7570); background:none; border:0; }

  .zm-shop-panel-apply{
    display:block; position:sticky; bottom:0; background:#fff;
    padding:12px 0; margin-top:8px; border-top:1px solid var(--border,#EAEDEA);
  }
  .zm-shop-apply-btn{
    width:100%; height:50px; border:0; border-radius:10px;
    background:var(--green,#0F7A4A); color:#fff; font-size:15px; font-weight:600;
  }

  /* внутри шторки прячем внутреннюю кнопку «Применить» у цены —
     всё применяет нижняя «Показать товары» */
  .zm-shop-sidebar .zm-filter-apply{ display:none; }
}


/* --- звёзды жёлтые --- */
.star-rating::before{color:#dcdcdc;}
.star-rating span::before{color:#f5a623;}

/* --- вкладки: убрать слипшиеся разделители, сделать табами --- */
.woocommerce-tabs ul.tabs{display:flex;gap:6px;flex-wrap:wrap;list-style:none;margin:0 0 26px;padding:0;border-bottom:1px solid #e8e8e8;}
.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after{display:none !important;content:none !important;}
.woocommerce-tabs ul.tabs li{margin:0;padding:0;background:none;border:0;border-radius:0;}
.woocommerce-tabs ul.tabs li a{display:block;padding:12px 18px;font-weight:600;color:#666;text-decoration:none;border-bottom:2px solid transparent;}
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover{color:#0a5;border-bottom-color:#0a5;}

/* --- плашка «Отзыв с Ozon» --- */
.zm-ozon-badge{display:inline-block;margin-left:8px;padding:2px 9px;font-size:11px;font-weight:600;line-height:1.4;color:#0a5;background:rgba(0,170,85,.10);border:1px solid rgba(0,170,85,.30);border-radius:999px;vertical-align:middle;}

/* --- сводный рейтинг --- */
.zm-rating-summary{display:flex;gap:32px;flex-wrap:wrap;align-items:center;padding:22px;margin:0 0 26px;background:#fafafa;border:1px solid #eee;border-radius:14px;}
.zm-rs-score{text-align:center;min-width:120px;}
.zm-rs-num{font-size:46px;font-weight:800;line-height:1;color:#222;}
.zm-rs-count{margin-top:8px;color:#999;font-size:13px;}
.zm-rs-stars{position:relative;display:inline-block;font-size:20px;line-height:1;font-family:Arial,sans-serif;margin-top:6px;}
.zm-rs-stars::before{content:"★★★★★";color:#dcdcdc;}
.zm-rs-stars::after{content:"★★★★★";color:#f5a623;position:absolute;left:0;top:0;width:var(--p);overflow:hidden;white-space:nowrap;}
.zm-rs-bars{flex:1;min-width:240px;display:flex;flex-direction:column;gap:6px;}
.zm-rs-bar{display:flex;align-items:center;gap:10px;font-size:13px;color:#666;}
.zm-rs-bar-label{width:30px;}
.zm-rs-bar-track{flex:1;height:8px;background:#ececec;border-radius:6px;overflow:hidden;}
.zm-rs-bar-fill{display:block;height:100%;background:#f5a623;border-radius:6px;}
.zm-rs-bar-num{width:30px;text-align:right;color:#aaa;}

/* метка «ozon» перед именем */
.zm-ozon-mark{
  display:inline-block;
  padding:1px 6px;margin-right:7px;
  font:700 11px/1.45 Arial,Helvetica,sans-serif;
  letter-spacing:.2px;color:#fff;background:#005BFF;
  border-radius:4px;text-transform:lowercase;
  vertical-align:baseline;cursor:help;
}

/* жёлтые звёзды в форме оценки «Ваша оценка» */
.woocommerce #review_form #respond p.stars a::before,
.woocommerce p.stars a::before{ color:#f5a623 !important; }

/* рейтинг в карточке каталога */
.card-rating{display:flex;align-items:center;gap:6px;margin:2px 0 8px;text-decoration:none;color:inherit;}
.card-stars{position:relative;display:inline-block;font:13px/1 Arial,sans-serif;flex:none;}
.card-stars::before{content:"★★★★★";color:#dcdcdc;}
.card-stars::after{content:"★★★★★";color:#f5a623;position:absolute;left:0;top:0;width:var(--p);overflow:hidden;white-space:nowrap;}
.card-rating-num{font-weight:700;font-size:13px;color:#222;}
.card-rating-cnt{font-size:12px;color:#8a978d;}

/* ===== Чекаут в стиле маркетплейса ===== */
.woocommerce-checkout .zm-co-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:28px;align-items:start}
.woocommerce-checkout #customer_details .col2-set{display:block}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{width:100%;float:none;max-width:none}
.woocommerce-checkout #customer_details .col-2{margin-top:6px}

.woocommerce-checkout .zm-co-left{background:#fff;border:1px solid #e6ece8;border-radius:16px;padding:24px}
.woocommerce-checkout #order_review{background:#fff;border:1px solid #e6ece8;border-radius:16px;padding:20px;position:sticky;top:20px}
.woocommerce-checkout #order_review_heading{margin:0 0 12px;font-size:18px;color:#15231c}
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #customer_details h3{font-size:18px;margin:0 0 16px;color:#15231c}

.woocommerce-checkout .form-row{margin:0 0 14px;padding:0}
.woocommerce-checkout .form-row label{display:block;font-size:13px;font-weight:600;color:#37463e;margin:0 0 6px}
.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea{
  width:100%;height:46px;border:1px solid #d8e0db;border-radius:10px;
  padding:0 14px;font-size:15px;background:#fff;box-sizing:border-box;
  transition:border-color .15s, box-shadow .15s;
}
.woocommerce-checkout textarea{height:auto;min-height:90px;padding:12px 14px}
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus{border-color:var(--green,#0a5);box-shadow:0 0 0 3px rgba(0,170,85,.12);outline:none}
.woocommerce-checkout .select2-container--default .select2-selection--single{height:46px;border-radius:10px;border-color:#d8e0db}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:46px;padding-left:14px}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{height:44px}

/* Подсказка под полем — фикс синей плашки */
.woocommerce-checkout .form-row .description{
  position:static !important;background:none !important;color:#7a8b81 !important;
  font-size:12px;padding:6px 0 0;margin:0;border:0;box-shadow:none;display:block;
}
.woocommerce-checkout .required{color:#e23b3b;border:0;text-decoration:none}

/* Сводка заказа */
.woocommerce-checkout #order_review table.shop_table{border:0;margin:0}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td{padding:10px 0;border-top:1px solid #f0f4f1}
.woocommerce-checkout #order_review .order-total .amount{color:var(--green,#0a5);font-size:20px}
.woocommerce-checkout #payment{background:transparent}
.woocommerce-checkout #payment ul.payment_methods{border:0;padding:0;margin:0 0 8px}
.woocommerce-checkout #payment ul.payment_methods li{border:1px solid #e6ece8;border-radius:10px;padding:12px;margin:0 0 8px;list-style:none}
.woocommerce-checkout #place_order{
  width:100%;height:52px;border-radius:12px;background:var(--green,#0a5);
  color:#fff;font-weight:700;font-size:16px;border:0;margin-top:8px;cursor:pointer;transition:background .15s;
}
.woocommerce-checkout #place_order:hover{background:var(--green-2,#0A6239)}

@media(max-width:980px){
  .woocommerce-checkout .zm-co-grid{grid-template-columns:1fr}
  .woocommerce-checkout #order_review{position:static}
}

/* Радио «Куда доставить» — карточки */
.woocommerce-checkout .zm-delivery-type > label{font-size:13px;font-weight:600;color:#37463e;margin:0 0 8px;display:block}
.woocommerce-checkout .zm-delivery-type .woocommerce-input-wrapper{display:flex;gap:10px;flex-wrap:wrap}
.woocommerce-checkout .zm-delivery-type input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.woocommerce-checkout .zm-delivery-type input[type=radio] + label{flex:1 1 200px;margin:0;border:1.5px solid #d8e0db;border-radius:12px;padding:12px 14px;cursor:pointer;font-weight:600;font-size:14px;color:#23302a;transition:border-color .15s,background .15s}
.woocommerce-checkout .zm-delivery-type input[type=radio]:checked + label{border-color:var(--green,#0a5);background:#f1f8f3;color:#0a5}

/* Способ связи + ник — в строку */
.woocommerce-checkout #contact_method_field{width:48%;float:left;margin-right:4%}
.woocommerce-checkout #contact_handle_field{width:48%;float:left}
.woocommerce-checkout #contact_handle_field{clear:none}

/* Сводка аккуратнее */
.woocommerce-checkout #order_review table.shop_table td,
.woocommerce-checkout #order_review table.shop_table th{font-size:14px;line-height:1.45}
.woocommerce-checkout #order_review .order-total td .amount{color:var(--green,#0a5);font-size:20px}
.woocommerce-checkout .zm-delivery-note td{color:#7a8b81 !important;font-size:12px;line-height:1.5;border-top:1px dashed #e6ece8 !important;padding-top:10px !important}

/* Согласия компактнее */
.woocommerce-checkout .woocommerce-privacy-policy-text p{font-size:12px;line-height:1.5;color:#7a8b81;margin:0 0 10px}
.woocommerce-checkout p.form-row label.checkbox,
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text{font-size:13px;line-height:1.4;color:#37463e;font-weight:400}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row{margin:6px 0 0}