/* ============================================================
   POLE CONCEPT STORE — макет v1
   Вайб: минимализм, ч/б, воздух, Defectica + Inter,
   пунктирные волосяные линии #ccc, прямые углы, капсулы, случайный регистр.
   Шрифты подключены в fonts.css (base64 — работает с file://).
   ============================================================ */

/* ---------- токены ---------- */
:root {
  --black: #000;
  --white: #fff;
  --ink: #111;
  --gray: #767676;
  --line: #ccc;
  --line-strong: #8c8c8c;
  --line-dashed: 1px dashed var(--line);
  --surface: #f5f5f3;

  --font-display: "Defectica", "Inter", sans-serif;
  --font-ui: "Inter", "Helvetica Neue", Arial, sans-serif;

  --container: 1360px;
  --gutter: clamp(16px, 3vw, 40px);
  --radius-pill: 200px;

  --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --t-fast: 180ms;
}

/* ---------- база ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  overflow-x: clip;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1.5;
  color: var(--black);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

:focus-visible {
  outline: 2px solid var(--black);
  outline-offset: 3px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  clip-path: inset(50%);
  overflow: hidden;
}

.container {
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ---------- типографика ---------- */
.display {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: 0.01em;
  text-transform: none;
  margin: 0;
}

.h1 { font-size: clamp(40px, 6.5vw, 88px); }
.h2 { font-size: clamp(30px, 4vw, 56px); }
.h3 { font-size: clamp(22px, 2.6vw, 32px); }

.section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: clamp(24px, 4vw, 48px);
}

.section-link {
  font-size: 15px;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
  transition: color var(--t-fast) var(--ease);
  white-space: nowrap;
}
.section-link:hover { color: var(--gray); }

.meta {
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gray);
}

/* ---------- кнопки ---------- */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 12px 36px;
  font-size: 16px;
  font-weight: 500;
  border: 1px solid var(--black);
  border-radius: 0;
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
  text-align: center;
}
.btn--solid { background: var(--black); color: var(--white); }
.btn--solid:hover { background: var(--white); color: var(--black); }
.btn--ghost { background: transparent; color: var(--black); }
.btn--ghost:hover { background: var(--black); color: var(--white); }
.btn--wide { width: 100%; }

.link-underline {
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
  transition: color var(--t-fast) var(--ease);
}
.link-underline:hover { color: var(--gray); }

/* ---------- шапка ---------- */
.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--white);
  border-bottom: var(--line-dashed);
}

.topbar__inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(16px, 3vw, 48px);
  padding-block: 14px;
}

.logo {
  display: inline-flex;
  align-items: center;
}
.logo img {
  display: block;
  height: 20px;
  width: auto;
}

.nav {
  display: flex;
  gap: clamp(16px, 2.5vw, 36px);
}
.nav a {
  font-size: 15px;
  text-transform: lowercase;
  padding-block: 6px;
  border-bottom: 1px solid transparent;
  transition: border-color var(--t-fast) var(--ease);
}
.nav a:hover { border-color: var(--black); }
.nav a[aria-current="page"],
.mnav a[aria-current="page"] { border-color: var(--black); }

.topbar__actions {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2vw, 24px);
}

/* поисковая строка мобильного меню (класс .search есть и на body
   страницы поиска — селекторы привязаны к .mnav, чтобы не задевать body) */
.mnav .search {
  position: relative;
  width: clamp(140px, 18vw, 280px);
}
.mnav .search input {
  width: 100%;
  height: 40px;
  padding: 0 16px;
  font-family: var(--font-ui);
  font-weight: 300;
  font-size: 15px;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: var(--white);
  outline-offset: 2px;
}
.mnav .search input::placeholder { color: var(--gray); }
.mnav .search input:focus { border-color: var(--black); outline: none; }

.icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  transition: opacity var(--t-fast) var(--ease);
}
.icon-btn:hover { opacity: 0.6; }
.icon-btn svg { width: 20px; height: 20px; }
.icon-btn img { width: 22px; height: 22px; display: block; }

/* раскрывающийся поиск: клик по лупе открывает строку под шапкой */
.search-bar {
  display: none;
  background: var(--white);
  border-top: var(--line-dashed);
  padding-block: 12px;
}
.search-bar.open { display: block; }
.search-bar input {
  width: 100%;
  height: 44px;
  padding: 0 16px;
  font-family: var(--font-ui);
  font-weight: 300;
  font-size: 16px;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: var(--white);
}
.search-bar input:focus { outline: none; border-color: var(--black); }

.icon-btn__count {
  position: absolute;
  top: 2px;
  right: 0;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 600;
  background: var(--black);
  color: var(--white);
  border-radius: var(--radius-pill);
}

.burger { display: none; }

/* мобильное меню — простой дропдаун */
.mnav {
  display: none;
  flex-direction: column;
  border-top: var(--line-dashed);
  padding: 12px var(--gutter) 20px;
}
.mnav.open { display: flex; }
.mnav a {
  font-family: var(--font-display);
  font-size: 26px;
  text-transform: lowercase;
  padding-block: 10px;
  border-bottom: var(--line-dashed);
}
.mnav a:last-child { border-bottom: 0; }
.mnav .search {
  display: block;
  width: 100%;
  margin-block: 12px;
}

/* ---------- кастомный курсор (f-merge) ---------- */
.cursor {
  position: fixed; z-index: 100; top: 0; left: 0; width: 14px; height: 14px;
  background: var(--white); border-radius: 50%; pointer-events: none;
  mix-blend-mode: difference; transform: translate(-50%, -50%);
  transition: width .25s var(--ease), height .25s var(--ease);
  display: none;
}
.cursor.big { width: 56px; height: 56px; }
@media (hover: hover) and (pointer: fine) { .cursor { display: block; } }

/* ---------- reveal on scroll (f-merge) ---------- */
.js .rv { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.js .rv.in { opacity: 1; transform: none; }

/* ---------- анимация заголовков страниц ---------- */
@keyframes fadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.page-head h1 { animation: fadeUp .7s var(--ease) both; }
.page-head .meta { animation: fadeUp .7s var(--ease) .15s both; }

/* ---------- кнопки: заливка как в f-merge ---------- */
.btn {
  overflow: hidden; isolation: isolate;
  transition: color .35s var(--ease), background-color .35s var(--ease), border-color .35s var(--ease);
}
.btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--black); transform: translateY(101%);
  transition: transform .35s var(--ease);
}
.btn:hover { color: var(--white); }
.btn:hover::before { transform: translateY(0); }
.btn--solid { background: var(--black); color: var(--white); }
.btn--solid::before { background: var(--white); }
.btn--solid:hover { color: var(--black); }

/* ---------- декоративные SVG-линии: один фон на несколько блоков ---------- */
.bg-lines {
  background-image: url("../img/line-2-5-2.svg?v=2");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.footer {
  background-image: url("../img/vector-13.svg?v=2");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* ---------- акцентные карточки выставок ---------- */
.exhibits {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 2vw, 32px);
}
.exhibit {
  display: flex;
  flex-direction: column;
  background: #fff;
  padding: clamp(16px, 2vw, 28px);
  min-height: 420px;
}
.exhibit__label {
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.exhibit__media {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 2.5vw, 40px) 0;
}
.exhibit__media img {
  max-height: 380px;
  width: auto;
  max-width: 100%;
  height: auto;
  transition: transform 400ms var(--ease);
}
.exhibit:hover .exhibit__media img { transform: scale(1.02); }
.exhibit__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: 14px;
  color: var(--ink);
}
.exhibit__foot svg {
  width: 28px;
  height: 28px;
  transition: transform var(--t-fast) var(--ease);
}
.exhibit:hover .exhibit__foot svg { transform: translateX(6px); }

/* ---------- герой ---------- */
.hero { padding-block: clamp(28px, 5vw, 72px); }

.hero__grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: clamp(24px, 4vw, 64px);
}

.hero__title { margin-bottom: clamp(16px, 2.5vw, 28px); }

.hero__sub {
  max-width: 46ch;
  font-size: clamp(15px, 1.4vw, 18px);
  font-weight: 300;
  color: var(--ink);
  margin: 0 0 clamp(24px, 3vw, 40px);
}

.hero__media {
  position: relative;
  border-radius: var(--radius-pill);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #fff;
}
.hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
  z-index: 0;
}

.hero__note {
  display: block;
  margin-top: 18px;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gray);
}

/* ---------- категории: редакционный указатель ---------- */
.cats { padding-block: clamp(40px, 6vw, 96px); }

.cats__list {
  border-top: var(--line-dashed);
}
.cats__item {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  align-items: baseline;
  gap: clamp(12px, 2vw, 32px);
  padding-block: clamp(14px, 1.8vw, 22px);
  border-bottom: var(--line-dashed);
  transition: padding-left var(--t-fast) var(--ease);
}
.cats__item:hover { padding-left: 14px; }
.cats__num {
  font-size: 13px;
  color: var(--gray);
  font-variant-numeric: tabular-nums;
}
.cats__name {
  font-family: var(--font-display);
  font-size: clamp(24px, 3.4vw, 44px);
  line-height: 1;
  text-transform: lowercase;
}
.cats__count { font-size: 14px; color: var(--gray); }

/* ---------- карточка товара ---------- */
.grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
  row-gap: clamp(32px, 4vw, 56px);
}

.card { position: relative; }

.card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #fff;
  overflow: hidden;
  margin-bottom: 14px;
}
.card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 400ms var(--ease);
}
.card:hover .card__media img { transform: scale(1.03); }

.card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 6px 14px;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--white);
}
.card__badge--sold { background: var(--black); color: var(--white); }

.card__name {
  display: block;
  font-size: 15px;
  line-height: 1.35;
  margin-bottom: 4px;
}
.card__brand {
  display: block;
  font-size: 13px;
  color: var(--gray);
  margin-bottom: 8px;
}
.card__price {
  display: block;
  font-size: 16px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.card__price s {
  color: var(--gray);
  font-weight: 400;
  margin-right: 8px;
}
.card__sold-note {
  font-size: 13px;
  color: var(--gray);
}

/* ---------- USP ---------- */
.usp {
  border-bottom: var(--line-dashed);
}
.usp__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.usp__item {
  padding: clamp(32px, 5vw, 72px) clamp(16px, 2.5vw, 40px);
}
.usp__item + .usp__item { border-left: var(--line-dashed); }
.usp__title {
  font-family: var(--font-display);
  font-size: 20px;
  margin: 0 0 8px;
}
.usp__text {
  font-size: 14px;
  font-weight: 300;
  color: var(--ink);
  margin: 0;
}

/* ---------- футер ---------- */
.footer {
  padding-block: clamp(40px, 6vw, 80px) 32px;
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: clamp(24px, 4vw, 64px);
  padding-bottom: clamp(32px, 4vw, 56px);
  border-bottom: var(--line-dashed);
}
.footer__logo {
  display: block;
  height: clamp(90px, 9vw, 130px);
  width: auto;
  margin-bottom: 16px;
}
.footer__addr {
  font-size: 14px;
  font-weight: 300;
  color: var(--ink);
  max-width: 34ch;
  margin: 0;
}
.footer__col-title {
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gray);
  margin: 0 0 16px;
}
.footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.footer__list a {
  font-size: 15px;
  text-transform: lowercase;
}
.footer__list a:hover { text-decoration: underline; text-underline-offset: 5px; }

.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 24px;
  font-size: 13px;
  color: var(--gray);
}
.footer__pay {
  display: flex;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer__pay span {
  border: 1px solid var(--line);
  padding: 4px 10px;
  font-size: 11px;
  letter-spacing: 0.06em;
}

/* ============================================================
   КАТАЛОГ
   ============================================================ */
.page-head {
  padding-block: clamp(24px, 4vw, 56px) clamp(16px, 2vw, 28px);
}
.breadcrumbs {
  font-size: 13px;
  color: var(--gray);
  margin-bottom: clamp(12px, 2vw, 24px);
  padding-top: 20px;
}
.breadcrumbs a:hover { color: var(--black); }
.page-head .meta { display: block; margin-top: 12px; }

.section {
  padding-block: clamp(40px, 6vw, 96px);
}

/* мобильный переключатель фильтров */
.filters-toggle {
  display: none;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 20px;
  font-size: 15px;
  border: 1px solid var(--black);
}

.catalog {
  display: grid;
  grid-template-columns: 264px 1fr;
  gap: clamp(24px, 3.5vw, 56px);
  padding-bottom: clamp(48px, 6vw, 96px);
}

/* фильтры */
.filters {
  position: sticky;
  top: 86px;
  align-self: start;
}
.filters__group {
  border-top: var(--line-dashed);
  padding-block: 18px;
}
.filters__title {
  font-family: var(--font-display);
  font-size: 17px;
  margin: 0 0 14px;
  text-transform: lowercase;
}
.filters__list {
  display: grid;
  gap: 10px;
}
.check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  cursor: pointer;
  user-select: none;
}
.check input {
  appearance: none;
  width: 18px;
  height: 18px;
  border: 1px solid var(--line-strong);
  cursor: pointer;
  display: grid;
  place-items: center;
  margin: 0;
  flex: none;
}
.check input:checked { background: var(--black); border-color: var(--black); }
.check input:checked::after {
  content: "";
  width: 10px;
  height: 6px;
  border-left: 2px solid var(--white);
  border-bottom: 2px solid var(--white);
  transform: rotate(-45deg) translate(0, -1px);
}
.check .n { color: var(--gray); font-size: 12px; }

.price-inputs {
  display: flex;
  align-items: center;
  gap: 8px;
}
.price-inputs input {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  font: inherit;
  font-size: 14px;
  border: 1px solid var(--line-strong);
  border-radius: 0;
}
.price-inputs input:focus { outline: none; border-color: var(--black); }

/* свотчи цвета */
.swatches { display: flex; flex-wrap: wrap; gap: 12px; }
.swatch {
  position: relative;
  width: 28px;
  height: 28px;
  border: 1px solid var(--line-strong);
}
.swatch::after {
  content: "";
  position: absolute;
  inset: -8px;
}
.swatch.selected { outline: 2px solid var(--black); outline-offset: 2px; }

/* тулбар над сеткой */
.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: clamp(20px, 3vw, 36px);
}
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  padding: 11px 18px;
  border: 1px solid var(--black);
  border-radius: var(--radius-pill);
  transition: opacity var(--t-fast) var(--ease);
}
.chip:hover { opacity: 0.6; }
.sort {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  white-space: nowrap;
}
.sort select {
  height: 44px;
  padding: 0 12px;
  font: inherit;
  font-size: 14px;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: var(--white);
}

/* каталог 3 колонки */
.catalog .grid { grid-template-columns: repeat(3, 1fr); }

/* пагинация */
.pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: clamp(40px, 5vw, 72px);
}
.pagination a,
.pagination span {
  min-width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  border: 1px solid transparent;
}
.pagination a:hover { border-color: var(--black); }
.pagination .current { border-color: var(--black); background: var(--black); color: var(--white); }

/* ============================================================
   КОРЗИНА
   ============================================================ */
.cart-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: clamp(24px, 4vw, 72px);
  align-items: start;
  padding-bottom: clamp(48px, 6vw, 96px);
}

.cart-items { border-top: var(--line-dashed); }

.cart-item {
  display: grid;
  grid-template-columns: 96px 1fr auto auto;
  gap: clamp(16px, 2vw, 32px);
  align-items: center;
  padding-block: 24px;
  border-bottom: var(--line-dashed);
}
.cart-item__img {
  width: 96px;
  aspect-ratio: 1 / 1;
  background: #fff;
  overflow: hidden;
}
.cart-item__img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.cart-item__name {
  display: block;
  font-size: 16px;
  margin-bottom: 4px;
}
.cart-item__meta { font-size: 13px; color: var(--gray); }
.cart-item__price { font-size: 15px; white-space: nowrap; }

.qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line);
}
.qty button {
  width: 44px;
  height: 44px;
  font-size: 18px;
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.qty button:hover { background: var(--black); color: var(--white); }
.qty output {
  width: 40px;
  text-align: center;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
}

/* Контроль количества в корзине: Woo рендерит .quantity (не .qty из макета).
   Один «− число +» в одну строку на десктопе и мобиле (по образцу PDP). */
.cart-item .quantity {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  border: 1px solid var(--line);
  margin: 0 !important;
  float: none !important;
  background: var(--white);
}
.cart-item .quantity .pd-qty-btn {
  width: 44px;
  height: 44px;
  flex: none;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.cart-item .quantity .pd-qty-btn:hover { background: var(--black); color: var(--white); }
.cart-item .quantity input.qty {
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  float: none;
  text-align: center;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield;
  appearance: textfield;
}
.cart-item .quantity input.qty::-webkit-outer-spin-button,
.cart-item .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.cart-item__sum {
  font-size: 17px;
  font-weight: 500;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.cart-item__sum-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  text-align: right;
}
.cart-item__remove {
  font-size: 13px;
  color: var(--gray);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.cart-item__remove:hover { color: var(--black); }

/* итоги */
.summary {
  position: sticky;
  top: 86px;
  border: 1px solid var(--black);
  padding: clamp(16px, 2vw, 24px);
}
.summary__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 15px;
  padding-block: 10px;
}
.summary__row--total {
  border-top: var(--line-dashed);
  margin-top: 10px;
  padding-top: 18px;
  font-size: 20px;
  font-weight: 600;
}
.summary__note {
  font-size: 13px;
  color: var(--gray);
  margin: 12px 0 20px;
}
.summary .btn + .summary__back { margin-top: 14px; }
.summary__back {
  display: block;
  text-align: center;
  font-size: 14px;
}
.summary__split {
  margin-top: 18px;
  padding-top: 16px;
  border-top: var(--line-dashed);
  font-size: 13px;
  color: var(--ink);
}
/* Кнопка оформления одна — своя, в блоке итогов (по cart.html).
   Скрываем только ссылку Woo: внутри .wc-proceed-to-checkout плагин
   подарочных карт рендерит свою форму — её не трогать. */
.cart_totals .wc-proceed-to-checkout .checkout-button { display: none !important; }
.cart_totals .wc-proceed-to-checkout { padding: 0; }

/* Woo-итоги внутри summary: без внутренних рамок, плотные отступы,
   заголовок фирменным шрифтом. */
.summary .cart_totals h2 {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.summary .cart_totals .shop_table {
  border: 0;
  margin: 0 0 16px;
  background: none;
  border-collapse: collapse;
}
.summary .cart_totals th,
.summary .cart_totals td {
  border: 0 !important;
  background: none !important;
  padding: 7px 0 !important;
  text-align: left;
  vertical-align: top;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
}
.summary .cart_totals td p,
.summary .cart_totals td small {
  margin: 6px 0 0;
  font-size: 13px;
  color: var(--gray);
}
.summary .cart_totals .order-total th,
.summary .cart_totals .order-total td {
  border-top: var(--line-dashed) !important;
  margin-top: 6px;
  padding-top: 14px !important;
  font-size: 19px;
  font-weight: 600;
}
.summary .btn { margin-top: 0; }
.summary .btn + .summary__back { margin-top: 12px; }

/* Подарочная карта (PW Gift Card): единые правила — в style.css */

/* ============================================================
   ЧЕКАУТ
   ============================================================ */
.checkout-layout {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 32px;
  align-items: start;
  padding-bottom: clamp(48px, 6vw, 96px);
}

.step {
  border-top: var(--line-dashed);
  padding-block: clamp(24px, 3vw, 40px);
}
.step__head {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: clamp(18px, 2.5vw, 28px);
}
.step__num {
  font-size: 13px;
  color: var(--gray);
  font-variant-numeric: tabular-nums;
}

.field { margin-bottom: 18px; }
.field label {
  display: block;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 8px;
}
.field input {
  width: 100%;
  height: 52px;
  padding: 0 16px;
  font: inherit;
  font-size: 16px;
  border: 1px solid var(--line-strong);
  border-radius: 0;
}
.field input:focus { outline: none; border-color: var(--black); }
.field__hint { font-size: 12px; color: var(--gray); margin-top: 6px; }
.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* радио-карточки (доставка/оплата) */
.radio-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px;
  border: 1px solid var(--line-strong);
  cursor: pointer;
  transition: border-color var(--t-fast) var(--ease);
  margin-bottom: 12px;
}
.radio-card:hover { border-color: var(--black); }
.radio-card:has(input:checked) { border-color: var(--black); border-width: 2px; padding: 17px 19px; }
.radio-card input {
  appearance: none;
  width: 20px;
  height: 20px;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  margin: 2px 0 0;
  flex: none;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.radio-card input:checked { border-color: var(--black); }
.radio-card input:checked::after {
  content: "";
  width: 10px;
  height: 10px;
  background: var(--black);
  border-radius: 50%;
}
.radio-card__title {
  display: block;
  font-size: 16px;
  margin-bottom: 2px;
}
.radio-card__desc {
  font-size: 13px;
  color: var(--gray);
}
.radio-card__price {
  margin-left: auto;
  font-size: 15px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* оплата — доверие рядом */
.pay-note {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  font-size: 13px;
  color: var(--gray);
  margin-top: 16px;
}

/* согласие */
.consent {
  display: flex;
  gap: 12px;
  font-size: 13px;
  color: var(--ink);
  margin: 24px 0;
  max-width: 60ch;
  cursor: pointer;
}
.consent input {
  appearance: none;
  width: 18px;
  height: 18px;
  border: 1px solid var(--line-strong);
  margin: 2px 0 0;
  flex: none;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.consent input:checked { background: var(--black); border-color: var(--black); }
.consent input:checked::after {
  content: "";
  width: 10px;
  height: 6px;
  border-left: 2px solid var(--white);
  border-bottom: 2px solid var(--white);
  transform: rotate(-45deg) translate(0, -1px);
}

/* мини-состав в итогах чекаута */
.summary__title {
  font-size: 22px;
  margin: 0 0 8px;
}
.summary__items { margin-bottom: 8px; }
.summary__item {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 12px;
  align-items: center;
  padding-block: 12px;
  border-bottom: var(--line-dashed);
}
.summary__item img { width: 56px; aspect-ratio: 1; object-fit: contain; background: #fff; }
.summary__item-name { font-size: 13px; line-height: 1.3; }
.summary__item-sum { font-size: 13px; font-variant-numeric: tabular-nums; }

/* ============================================================
   СТРАНИЦА ТОВАРА (PDP)
   ============================================================ */
.pdp {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(24px, 4vw, 72px);
  align-items: start;
  padding-bottom: clamp(24px, 3vw, 48px);
}

.pdp__main {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #fff;
  overflow: hidden;
  margin-bottom: 12px;
}
.pdp__main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
/* лупа: клик по фото или иконке — лайтбокс */
.pdp__zoom {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  background: none; border: 0; padding: 0;
  color: var(--pd-black); cursor: zoom-in;
}
.pdp__zoom svg { width: 22px; height: 22px; }
.pdp__thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.pdp__thumb {
  position: relative;
  width: 72px; height: 72px;
  aspect-ratio: auto;
  background: #fff;
  overflow: visible;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.pdp__thumb img { width: 100%; height: 100%; object-fit: contain; }
/* рукописная обводка миниатюр (как на проде) */
.pdp__thumb .pd-card__outline {
  position: absolute; inset: -7px;
  width: calc(100% + 14px); height: calc(100% + 14px);
  pointer-events: none;
}
.pdp__thumb.selected .pd-card__outline path { stroke: var(--pd-black); }

.pdp__title {
  font-size: clamp(30px, 3.4vw, 52px);
  margin: 10px 0 18px;
}
.pdp__price {
  font-size: 28px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  margin: 0 0 4px;
}
.pdp__split { font-size: 13px; color: var(--gray); margin: 0 0 18px; }
.pdp__avail { font-size: 14px; margin: 0 0 14px; }
.pdp__desc {
  font-size: 15px;
  font-weight: 300;
  line-height: 1.6;
  margin: 0 0 24px;
  max-width: 56ch;
}

.buybox {
  display: flex;
  gap: 12px;
  margin-bottom: 22px;
}
.buybox .qty { flex: none; }
.buybox .btn { flex: 1; }

.pdp__trust {
  list-style: none;
  margin: 0 0 28px;
  padding: 16px 0;
  border-top: var(--line-dashed);
  border-bottom: var(--line-dashed);
  display: grid;
  gap: 8px;
  font-size: 14px;
  font-weight: 300;
}

/* аккордеоны */
.acc details {
  border-bottom: var(--line-dashed);
}
.acc summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--font-display);
  font-size: 19px;
  padding-block: 18px;
  min-height: 44px;
}
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after {
  content: "+";
  font-family: var(--font-ui);
  font-size: 22px;
  font-weight: 300;
  color: var(--gray);
  transition: transform var(--t-fast) var(--ease);
}
.acc details[open] summary::after { transform: rotate(45deg); }
.acc__body {
  padding-bottom: 20px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.6;
  max-width: 60ch;
}
.acc__body p { margin: 0 0 10px; }
.acc__body p:last-child { margin-bottom: 0; }
.specs {
  width: 100%;
  border-collapse: collapse;
}
.specs td {
  padding: 7px 0;
  vertical-align: top;
}
.specs tr + tr td { border-top: var(--line-dashed); }
.specs td:first-child { color: var(--gray); width: 40%; }

/* мобильная закреплённая покупка */
.sticky-buy {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  background: var(--white);
  border-top: var(--line-dashed);
  padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
  align-items: center;
  gap: 16px;
}
.sticky-buy__info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}
.sticky-buy__name {
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sticky-buy__price { font-size: 15px; font-weight: 600; }
.sticky-buy .btn { min-height: 48px; padding: 10px 28px; }

@media (max-width: 900px) {
  .pdp { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .sticky-buy { display: flex; }
  body { padding-bottom: 76px; }
  /* PDP: кнопка «в корзину» — отдельная строка на всю ширину, количество выше */
  .buybox { display: block; }
  .buybox form.cart { margin: 0; }
  .buybox .quantity { margin-bottom: 12px; }
  .buybox button.single_add_to_cart_button { width: 100%; }
  /* платёжная строка переносится, как на проде */
  .pdp__parts { flex-wrap: wrap; row-gap: 6px; }
}

/* ---------- Бренд-страница: сетка товаров как в каталоге.
   На /katalog/ колонки рисует css Woo (селектор .woocommerce-page ...),
   на статической странице бренда его нет — даёт тема. ---------- */
.brand-products ul.products {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}
.brand-products ul.products::before,
.brand-products ul.products::after { display: none; }
.brand-products ul.products li.product {
	float: none; width: auto; margin: 0; padding: 0; position: relative;
}
@media (min-width: 769px) {
	.brand-products ul.products { grid-template-columns: repeat(4, 1fr); gap: 40px; }
}

/* ---------- Лайтбокс (лупа на фото товара) ---------- */
.pd-lightbox {
  position: fixed; inset: 0; z-index: 200;
  display: none; align-items: center; justify-content: center;
  background: rgba(0, 0, 0, .92);
}
.pd-lightbox.is-open { display: flex; }
.pd-lightbox img {
  max-width: 92vw; max-height: 84vh;
  width: auto; height: auto;
  object-fit: contain;
}
.pd-lightbox button {
  background: none; border: 0; padding: 0;
  color: #fff; cursor: pointer;
  font-size: 34px; line-height: 1;
  font-family: var(--font-ui, Arial, sans-serif);
}
.pd-lightbox__close { position: absolute; top: 10px; right: 10px; width: 48px; height: 48px; }
.pd-lightbox__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px;
  display: inline-flex; align-items: center; justify-content: center;
}
.pd-lightbox__nav--prev { left: 6px; }
.pd-lightbox__nav--next { right: 6px; }
.pd-lightbox__count {
  position: absolute; bottom: 18px; left: 0; right: 0;
  text-align: center; color: rgba(255, 255, 255, .75);
  font-size: 13px; font-variant-numeric: tabular-nums;
}

/* ============================================================
   БРЕНДЫ (page-brendy.php): сетка логотипов 1:1 с продом
   ============================================================ */
.brands__grid {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: clamp(24px, 3vw, 40px);
}
.brand-logo {
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 500 / 350; background: var(--white);
  overflow: hidden;
}
.brand-logo img {
  max-width: 100%; max-height: 100%; width: auto; height: auto;
  transition: transform .4s var(--ease);
}
.brand-logo:hover img { transform: scale(1.04); }

/* ============================================================
   АФИША (page-afisha.php, по afisha.html)
   ============================================================ */
.ev-current {
  display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(24px, 4vw, 64px);
  align-items: center; padding-bottom: clamp(40px, 5vw, 80px);
  border-bottom: var(--line-dashed);
}
.ev-current__media {
  border-radius: 200px; overflow: hidden; max-width: 460px; justify-self: center;
  aspect-ratio: 4/5; background: #fff;
}
.ev-current__media img { width: 100%; height: 100%; object-fit: contain; }
.ev__tag {
  display: inline-block; font-size: 13px; letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid var(--black); border-radius: 200px; padding: 8px 20px; margin-bottom: 20px;
}
.ev__title {
  font-family: var(--font-display);
  font-size: clamp(34px, 4.4vw, 64px); line-height: 1; margin-bottom: 18px;
}
.ev__date { font-size: clamp(15px, 1.4vw, 18px); font-weight: 300; color: var(--ink); margin-bottom: clamp(20px, 2.5vw, 36px); }
.ev__desc { font-size: 15px; font-weight: 300; line-height: 1.7; color: var(--ink); max-width: 48ch; margin-bottom: clamp(24px, 3vw, 40px); }
.archive { padding-block: clamp(40px, 6vw, 96px); }
.archive .section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: clamp(20px, 3vw, 36px); }
.archive__meta { font-size: 13px; color: var(--gray); }
.archive__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 32px); }
.acard {
  background: var(--surface); padding: clamp(16px, 2vw, 28px);
  display: flex; flex-direction: column; min-height: 340px;
}
.acard__label { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.acard__media { flex: 1; display: flex; align-items: center; justify-content: center; padding: clamp(14px, 2vw, 32px) 0; }
.acard__media img {
  max-height: 260px; width: auto; max-width: 100%;
  filter: grayscale(1);
  transition: filter .5s var(--ease), transform .5s var(--ease);
}
.acard:hover .acard__media img { filter: none; transform: scale(1.03); }
.acard__media--soon {
  min-height: 200px; border: 1px dashed var(--line);
  align-items: center; justify-content: center; background: var(--white); flex: 1;
}
.acard__foot { font-size: 13px; color: var(--gray); }

/* ============================================================
   КАТАЛОГ: сайдбар фильтров + сетка (archive-product.php)
   ============================================================ */
.catalog-layout {
  display: grid;
  grid-template-columns: 264px 1fr;
  gap: clamp(24px, 3vw, 48px);
  align-items: start;
  padding-bottom: clamp(48px, 6vw, 96px);
}
.catalog-filters { padding-bottom: 20px; }
/* Elementor-условия архива товаров вешают на body padding ~96px (разные
   body-классы на /katalog/ и в категориях) — сброс для всех Woo-страниц:
   шапка и подвал должны прилегать к краям */
body.woocommerce-shop,
body.post-type-archive-product,
body.woocommerce-page { padding: 0 !important; }
/* Elementor-условия архива товаров вешают на body padding ~96px —
   в код-теме шапка и подвал должны прилегать к краям */
body.woocommerce-shop,
body.post-type-archive-product { padding: 0 !important; }
.cf-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.cf-title {
  font-family: var(--font-display);
  font-size: 16px; letter-spacing: .02em; color: var(--black);
}
.cf-close { display: none; font-size: 26px; line-height: 1; padding: 4px 10px; }
.cf-block { border-top: var(--line-dashed); padding-block: 18px; }
.cf-block__title {
  font-family: var(--font-display);
  font-size: 15px; letter-spacing: .02em; color: var(--black);
  font-weight: 400; margin: 0 0 12px;
}
.cf-list { display: grid; gap: 8px; }
.cf-list--scroll { max-height: 264px; overflow-y: auto; padding-right: 8px; }
.fcheck {
  display: flex; align-items: center; gap: 8px; cursor: pointer;
  font-family: var(--font-display);
  font-size: 13px; line-height: 1.35; letter-spacing: .01em;
}
.fcheck input { accent-color: var(--black); width: 15px; height: 15px; flex: none; margin: 0; cursor: pointer; }
.fcheck:hover .fcheck__name { text-decoration: underline; text-underline-offset: 3px; }
.fcheck__name { flex: 1; }
.fcheck__count { font-size: 11px; color: var(--gray); font-variant-numeric: tabular-nums; font-family: var(--font-ui); }

/* категории: аккордеон «основная категория → подкатегории» */
.fcheck-row { display: flex; align-items: center; gap: 4px; }
.fcheck-row .fcheck { flex: 1; min-width: 0; }
.cf-arrow {
  flex: none; width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; background: none; cursor: pointer; color: var(--gray);
  transition: transform .2s var(--ease), color .2s var(--ease);
}
.cf-arrow::before { content: "▾"; font-size: 12px; }
.cf-arrow:hover { color: var(--black); }
.cf-arrow.open { transform: rotate(180deg); color: var(--black); }
.cf-sub {
  display: grid; gap: 8px;
  padding: 10px 0 6px 14px; margin: 4px 0 10px;
  border-left: 1px dashed var(--line);
}
.cf-sub[hidden] { display: none; }
.fcheck--sub .fcheck__name { font-size: 12px; }

/* цвет: кастомный дропдаун с иконками цветов */
.cf-dd { position: relative; }
.cf-dd__btn {
  width: 100%; height: 44px;
  display: flex; align-items: center; gap: 10px; padding: 0 12px;
  border: 1px solid var(--line); border-radius: 0; background: var(--white);
  font-family: var(--font-display); font-size: 13px; letter-spacing: .01em;
  cursor: pointer; text-align: left;
}
.cf-dd__dot {
  width: 16px; height: 16px; border-radius: 50%; flex: none;
  border: 1px solid var(--line); background: transparent;
}
.cf-dd__dot--any {
  background: linear-gradient(135deg, var(--white) 45%, var(--surface) 45%);
}
.cf-dd__label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cf-dd__chev { color: var(--gray); font-size: 12px; }
.cf-dd__list {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 20;
  background: var(--white); border: 1px solid var(--black);
  max-height: 300px; overflow-y: auto;
}
.cf-dd__list[hidden] { display: none; }
.cf-dd__opt {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 8px 12px; border: 0; background: none;
  font-family: var(--font-ui); font-size: 13px;
  cursor: pointer; text-align: left;
}
.cf-dd__opt:hover { background: var(--surface); }
.cf-dd__opt.sel { background: var(--black); color: var(--white); }
.cf-dd__btn:focus-visible {
	outline: 2px solid var(--black);
	outline-offset: 2px;
}

/* сортировка каталога: справа в тулбаре, фирменный шрифт у кнопки и списка */
.catalog-toolbar .cf-dd--sort { margin-left: auto; }
.cf-dd--sort .cf-dd__opt { font-family: var(--font-display); font-size: 13px; }

/* цена — двойной слайдер + числа */
.cf-price { padding-top: 4px; }
.cf-range { position: relative; height: 28px; margin-bottom: 10px; }
.cf-range input[type="range"] {
  position: absolute; inset: 0; width: 100%; margin: 0;
  appearance: none; -webkit-appearance: none; background: none; pointer-events: none; height: 28px;
}
.cf-range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; pointer-events: auto;
  width: 18px; height: 18px; border-radius: 50%; cursor: pointer;
  background: var(--white); border: 1.5px solid var(--black);
}
.cf-range input[type="range"]::-moz-range-thumb {
  pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; cursor: pointer;
  background: var(--white); border: 1.5px solid var(--black);
}
.cf-range::before {
  content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 1px;
  background: var(--line); pointer-events: none;
}
.cf-price__inputs { display: flex; align-items: center; gap: 8px; }
.cf-price__inputs input {
  width: 100%; min-width: 0; height: 44px; padding: 0 12px;
  border: 1px solid var(--line); background: var(--white);
  font: inherit; font-size: 14px; text-align: center;
  appearance: textfield; -moz-appearance: textfield;
}
.cf-price__inputs input::-webkit-outer-spin-button,
.cf-price__inputs input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cf-price__dash { color: var(--gray); flex: none; }

.cf-apply { display: none; margin-top: 18px; }
.cf-reset { display: inline-block; margin-top: 14px; font-size: 14px; color: var(--gray); }
.cf-reset:hover { color: var(--black); }

/* тулбар выдачи + сетка */
.catalog-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin-bottom: clamp(20px, 3vw, 36px);
}
.catalog-toolbar .woocommerce-result-count { font-size: 13px; color: var(--gray); }
.catalog-toolbar .cf-toggle { display: none; }
/* ≤480px: счётчик выдачи уводим под строку, сортировка ужимается с многоточием —
   иначе дропдаун сортировки (200px + счётчик) вылезал за вьюпорт на 100-155px
   (аудит мобильного адаптива 20.10) */
@media (max-width: 480px) {
  .catalog-toolbar { flex-wrap: wrap; row-gap: 10px; }
  .catalog-toolbar .woocommerce-result-count { order: 10; flex-basis: 100%; }
  .catalog-toolbar .cf-dd--sort { margin-left: auto; min-width: 0; flex: 1 1 0; }
}
.catalog-results.is-loading { opacity: .35; pointer-events: none; }
.catalog-empty { padding-block: 24px 60px; }

/* пагинация — единые квадраты: бренд-страницы, поиск, каталог.
   !important — против дефолтных розовых рамок ядра WooCommerce
   (nav.woocommerce-pagination ul li...). */
.woocommerce-pagination { margin-block: clamp(32px, 5vw, 64px) 0; }
.woocommerce-pagination ul,
.woocommerce-pagination ul.page-numbers {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}
.woocommerce-pagination ul li {
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	display: block !important;
	background: none !important;
}
.woocommerce-pagination a.page-numbers,
.woocommerce-pagination span.page-numbers {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 44px !important;
	height: 44px;
	padding: 0 !important;
	border: 1px solid var(--line) !important;
	border-radius: 0 !important;
	background: var(--white) !important;
	color: var(--black) !important;
	font-size: 14px;
	font-variant-numeric: tabular-nums;
	text-decoration: none !important;
	overflow: hidden;
	transition: border-color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.woocommerce-pagination a.page-numbers:hover,
.woocommerce-pagination a.page-numbers:focus-visible {
	border-color: var(--black) !important;
	color: var(--black) !important;
}
.woocommerce-pagination span.page-numbers.current {
	border-color: var(--black) !important;
	background: var(--black) !important;
	color: var(--white) !important;
	font-weight: 500;
}

/* ============================================================
   ПОИСК в шапке: рукописная плашка (рамка из svg-макета).
   Десктоп 420px, мобилка 352px; таргеты ≥44px; основной текст 16px.
   ============================================================ */
.pd-search { position: relative; }
.pd-search__panel {
  position: absolute; top: calc(100% + 12px); right: 0;
  width: 420px; box-sizing: border-box;
  padding: 16px 22px 8px;
  background: var(--white);
  z-index: 95;
}
.pd-search__panel > *:not(.pd-search__frame-svg) { position: relative; z-index: 1; }
/* рукописная рамка рисуется кодом по фактическим размерам панели */
.pd-search__frame-svg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  pointer-events: none;
}
.pd-search__logo { display: block; width: 67px; height: 15px; margin: 0 0 2px; }
.pd-search__input {
  width: 100%; box-sizing: border-box;
  min-height: 44px; padding: 8px 0 10px;
  border: 0; outline: none; background: transparent;
  font: inherit; font-size: 16px; color: var(--ink);
}
.pd-search__input::placeholder { color: #9a9a9a; }
.pd-search__input::-webkit-search-cancel-button { display: none; }
.pd-search__divider {
  height: 3px; margin: 0 -4px;
  background: url("../img/search-divider.svg") no-repeat center / 100% 100%;
}
.pd-search__results:empty { display: none; }
.pd-search__cats { padding: 4px 0 2px; }
.pd-search__cats-label {
  padding: 8px 2px 0;
  font-family: var(--font-ui); font-size: 12px; letter-spacing: .08em;
  text-transform: uppercase; color: #9a9a9a;
}
.pd-search__cat {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 44px; padding: 0 2px;
  font-size: 16px; color: var(--ink);
}
.pd-search__cat:hover span { text-decoration: underline; text-underline-offset: 3px; }
.pd-search__cat img, .pd-search__all img { width: 27px; height: 12px; flex: none; }
.pd-search__item {
  display: flex; align-items: center; gap: 14px;
  min-height: 60px; padding: 8px 2px;
}
.pd-search__item + .pd-search__item { border-top: 1px solid #e5e5e5; }
.pd-search__item:hover .pd-search__name { text-decoration: underline; text-underline-offset: 3px; }
.pd-search__item img {
  width: 44px; height: 44px; object-fit: contain; flex: none;
  background: #fff;
}
.pd-search__col { flex: 1; min-width: 0; }
.pd-search__name {
  display: block;
  font-family: var(--font-display);
  font-size: 16px; line-height: 1.3; letter-spacing: .01em;
}
.pd-search__variant {
  display: block; margin-top: 3px;
  font-family: var(--font-ui); font-size: 13px; color: #9a9a9a;
}
.pd-search__price {
  font-size: 16px; color: var(--ink);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.pd-search__empty { padding: 12px 2px 4px; }
.pd-search__empty strong {
  display: block; font-family: var(--font-ui); font-weight: 400;
  font-size: 16px; color: var(--ink);
}
.pd-search__empty span {
  display: block; margin-top: 4px;
  font-family: var(--font-ui); font-size: 14px; color: #9a9a9a;
}
.pd-search__all {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 44px; padding: 0 2px;
  font-family: var(--font-ui); font-size: 16px; color: var(--ink);
}
.pd-search__all:hover span { text-decoration: underline; text-underline-offset: 3px; }
.pd-search__results {
  max-height: min(56vh, 420px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #d8d8d3 transparent;
}
.pd-search__results::-webkit-scrollbar { width: 4px; }
.pd-search__results::-webkit-scrollbar-thumb { background: #d8d8d3; border-radius: 2px; }
.pd-search__results::-webkit-scrollbar-track { background: transparent; }
@media (max-width: 600px) {
  .pd-search__panel {
    position: fixed; top: 64px; left: 12px; right: 12px; width: auto;
    max-width: 352px; margin-left: auto;
  }
  .pd-search__results { max-height: calc(100vh - 320px); }
}

/* ============================================================
   КОНТАКТЫ (page-kontakty.php, по kontakty.html)
   ============================================================ */
.contact-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 72px);
  align-items: start; padding-bottom: clamp(40px, 5vw, 80px);
}
.contact-list { border-top: var(--line-dashed); }
.contact-row {
  display: grid; grid-template-columns: 140px 1fr; gap: 16px;
  padding-block: 18px; border-bottom: var(--line-dashed);
}
.contact-row dt { font-size: 13px; letter-spacing: .05em; text-transform: uppercase; color: var(--gray); }
.contact-row dd { font-size: 16px; margin: 0; }
.contact-row a { text-decoration: underline; text-underline-offset: 5px; }
.contact-row a:hover { color: var(--gray); }
.contact-note { font-size: 13px; color: var(--gray); margin-top: 6px; }
.req { margin-top: clamp(28px, 3vw, 44px); border: 1px solid var(--line); padding: clamp(16px, 2vw, 28px); }
.req h2 {
  font-family: var(--font-display); font-size: 18px;
  margin: 0 0 12px; text-transform: lowercase;
}
.req p { font-size: 14px; font-weight: 300; line-height: 1.7; margin: 0; color: var(--ink); }
.map { width: 100%; height: 100%; min-height: 380px; border: 1px solid var(--line); filter: grayscale(1); }
.socials { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.socials a {
  border: 1px solid var(--black); padding: 10px 22px; font-size: 14px; text-transform: lowercase;
  transition: background-color .25s var(--ease), color .25s var(--ease);
}
.socials a:hover { background: var(--black); color: var(--white); }

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width: 1100px) {
  .grid { grid-template-columns: repeat(3, 1fr); }
  .catalog .grid { grid-template-columns: repeat(2, 1fr); }
  .cart-layout,
  .checkout-layout { grid-template-columns: 1fr; }
  .summary { position: static; }
  .checkout-layout .summary { order: -1; }
  .brands__grid { grid-template-columns: repeat(3, 1fr); }
  .ev-current { grid-template-columns: 1fr; }
  .ev-current__media { max-width: 420px; aspect-ratio: 4/3; }
  .archive__grid { grid-template-columns: 1fr; }
  .acard { min-height: 0; }
  .contact-grid { grid-template-columns: 1fr; }
  .map { min-height: 320px; }

  /* каталог: сайдбар → выезжающая панель */
  .catalog-layout { display: block; }
  .catalog-filters {
    position: fixed; inset: 0 auto 0 0; z-index: 95;
    width: min(360px, 92vw);
    background: var(--white); overflow-y: auto;
    padding: 20px 20px 40px;
    transform: translateX(-105%);
    transition: transform .3s var(--ease);
  }
  .catalog-layout.filters-open .catalog-filters { transform: none !important; box-shadow: 0 0 0 100vmax rgba(0,0,0,.35); }
  .cf-close { display: inline-flex; align-items: center; justify-content: center; }
  .cf-apply { display: block; }
  .catalog-toolbar .cf-toggle {
    display: inline-flex !important; align-items: center; gap: 8px;
    height: 44px; padding: 0 14px;
    font-family: var(--font-display); font-size: 13px; letter-spacing: .01em; text-transform: none;
    border: 1px solid var(--line); cursor: pointer; background: var(--white);
  }
}

@media (max-width: 900px) {
  .nav { display: none; }
  .burger { display: inline-flex; }
  .hero__grid { grid-template-columns: 1fr; }
  .hero__media { max-width: 420px; aspect-ratio: 4 / 3; border-radius: var(--radius-pill); }
  .exhibits { grid-template-columns: 1fr; }
  .exhibit { min-height: 0; }
  .usp__grid { grid-template-columns: 1fr; }
  .usp__item + .usp__item { border-left: 0; border-top: var(--line-dashed); }
  .footer__grid { grid-template-columns: 1fr; }
  .catalog { grid-template-columns: 1fr; }
  .filters { display: none; }
  .filters.open { display: block; }
  .filters-toggle { display: inline-flex; }
  .toolbar { flex-wrap: wrap; }
}

@media (max-width: 600px) {
  .grid,
  .catalog .grid { grid-template-columns: repeat(2, 1fr); gap: 14px; row-gap: 28px; }
  .card__name { font-size: 13px; }
  .card__price { font-size: 14px; }
  .cart-item {
    grid-template-columns: 72px 1fr;
    grid-template-areas:
      "img info"
      "img qty"
      "sum sum";
    row-gap: 12px;
    padding-block: 18px;
  }
  .cart-item__img { width: 72px; grid-area: img; }
  .cart-item__info { grid-area: info; }
  .cart-item__qty { grid-area: qty; display: flex; justify-content: flex-start; }
  .cart-item__sum-wrap { grid-area: sum; align-items: flex-start; text-align: left; }
  .field-row { grid-template-columns: 1fr; }
  .brands__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Правовые страницы (покупателям) ---------- */.legal {
	max-width: 800px;
	padding-bottom: clamp(48px, 6vw, 96px);
}
.legal h2 {
	font-family: var(--font-display);
	font-size: clamp(20px, 2.2vw, 28px);
	line-height: 1.2;
	margin: clamp(28px, 3vw, 44px) 0 14px;
}
.legal h3 {
	font-family: var(--font-display);
	font-size: 18px;
	margin: 24px 0 10px;
}
.legal p {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	margin: 0 0 12px;
	color: var(--ink);
}
.legal ul,
.legal ol {
	margin: 0 0 14px 20px;
	display: grid;
	gap: 8px;
}
.legal li {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.6;
	color: var(--ink);
}
.legal ul li { list-style: disc; }
.legal ol li { list-style: decimal; }
.legal strong { font-weight: 600; color: var(--black); }
.legal a {
	text-decoration: underline;
	text-underline-offset: 2px;
}
.legal a:hover { color: var(--gray); }

/* ---------- Cookie notice (справа внизу): код + маскот, оживающий по наведению ---------- */
.pd-cookie {
	position: fixed;
	right: clamp(16px, 3vw, 40px);
	bottom: clamp(16px, 3vw, 40px);
	z-index: 90;
	width: 460px;
	box-sizing: border-box;
	padding: 26px 200px 26px 30px;
	background: var(--white);
	animation: fadeUp 0.5s var(--ease) both;
}
.pd-cookie[hidden] { display: none; }
/* рукописная обводка (svg из макета) — вместо css-рамки */
.pd-cookie__frame {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.pd-cookie__frame svg {
	display: block;
	width: 100%;
	height: 100%;
}
.pd-cookie__body { position: relative; }
.pd-cookie__title {
	margin: 0 0 12px;
	font-family: var(--font-display);
	font-size: 24px;
	line-height: 1.15;
	font-weight: 400;
}
.pd-cookie__text {
	margin: 0 0 16px;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.55;
	color: var(--ink);
}
.pd-cookie__text a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.pd-cookie__text a:hover { color: var(--gray); }
.pd-cookie__btn {
	min-height: 46px;
	padding: 10px 26px;
	font-family: var(--font-ui);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.01em;
	text-transform: lowercase;
}
/* маскот: булочка (svg), по наведению — видео «оживает» */
.pd-cookie__mascot {
	position: absolute;
	right: 16px;
	bottom: 12px;
	width: 150px;
	pointer-events: none;
}
.pd-cookie__mascot img,
.pd-cookie__mascot video {
	display: block;
	width: 100%;
	height: auto;
}
.pd-cookie__mascot video { position: absolute; inset: 0; opacity: 0; }
.pd-cookie.is-live .pd-cookie__mascot img { opacity: 0; }
.pd-cookie.is-live .pd-cookie__mascot video { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
	.pd-cookie__mascot video { display: none; }
}
@media (max-width: 600px) {
	.pd-cookie {
		left: 16px;
		right: 16px;
		bottom: 16px;
		width: auto;
		padding: 22px 128px 20px 22px;
	}
	.pd-cookie__title { font-size: 21px; }
	.pd-cookie__mascot { width: 112px; right: 10px; bottom: 8px; }
}

/* ---------- Страница бренда (page-solid-water.php) ---------- */
/* карточки товаров в кастомных гридах — ul без маркеров */
ul.pd-grid { list-style: none; margin: 0; padding: 0; }
.bslider img {
	opacity: 0;
	transition: opacity 0.6s var(--ease);
}
.bslider img.is-active { opacity: 1; }
.bslider__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: none;
	color: var(--white);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5);
}
.bslider__btn--prev { left: 8px; }
.bslider__btn--next { right: 8px; }
.bslider__dots {
	position: absolute;
	bottom: 8px;
	left: 0;
	right: 0;
	z-index: 2;
	display: flex;
	justify-content: center;
	gap: 2px;
}
.bslider__dot {
	position: relative;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.bslider__dot::before {
	content: "";
	position: absolute;
	inset: 7px;
	border-radius: 50%;
	border: 1px solid var(--white);
	transition: background-color var(--t-fast) var(--ease);
}
.bslider__dot.is-active::before { background: var(--white); }
.bslider__btn:focus-visible,
.bslider__dot:focus-visible {
	outline: 2px solid var(--white);
	outline-offset: 2px;
}

.brand-about {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 4vw, 72px);
	padding-block: clamp(32px, 4vw, 64px);
	border-top: var(--line-dashed);
}
.brand-about__item h2 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(18px, 2vw, 28px);
	text-transform: lowercase;
	margin: 0 0 12px;
}
.brand-about__item p {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--ink);
	margin: 0;
	max-width: 56ch;
}
@media (max-width: 900px) {
	.brand-about { grid-template-columns: 1fr; }
}

/* ---------- Вопросы о бренде (FAQ, стилистика pdp-acc) ---------- */
.brand-faq {
	padding-block: 0 clamp(40px, 5vw, 72px);
}
.brand-faq__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(18px, 2vw, 28px);
	text-transform: lowercase;
	margin: 0 0 18px;
}
.brand-faq__item {
	border-top: 1px solid var(--black);
}
.brand-faq__item:last-child { border-bottom: 1px solid var(--black); }
.brand-faq__item summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 54px;
	padding: 0 4px;
	font-size: 15px;
	font-weight: 500;
}
.brand-faq__item summary::-webkit-details-marker { display: none; }
.brand-faq__item summary::after {
	content: "+";
	font-size: 22px;
	font-weight: 300;
	color: var(--gray);
	transition: transform var(--t-fast) var(--ease);
}
.brand-faq__item[open] summary::after { transform: rotate(45deg); }
.brand-faq__a { padding: 2px 4px 20px; }
.brand-faq__a p {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--ink);
	margin: 0;
	max-width: 60ch;
}

/* ---------- Страница «заказ принят» (woocommerce/checkout/thankyou.php) ---------- */
.ty { max-width: 880px; padding-bottom: clamp(48px, 6vw, 96px); }
.ty__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(18px, 2vw, 28px);
	text-transform: lowercase;
	margin: clamp(32px, 4vw, 56px) 0 14px;
}
.ty__note { font-size: 15px; font-weight: 300; color: var(--ink); }
.ty__actions { margin: 20px 0 0; }
.ty-meta {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: var(--line-dashed);
	border-bottom: var(--line-dashed);
	margin: 0 0 clamp(28px, 4vw, 48px);
}
.ty-meta__item { padding: 18px 16px; }
.ty-meta__item + .ty-meta__item { border-left: var(--line-dashed); }
.ty-meta__item dt {
	font-size: 12px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gray);
	margin: 0 0 8px;
}
.ty-meta__item dd { margin: 0; font-size: 16px; font-weight: 500; }
.ty-items { list-style: none; margin: 0; padding: 0; border-top: var(--line-dashed); }
.ty-item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	border-bottom: var(--line-dashed);
	font-size: 15px;
}
.ty-item__name { color: var(--ink); }
.ty-item__qty { color: var(--gray); font-size: 13px; margin-left: 6px; }
.ty-item__total { flex: none; text-align: right; font-variant-numeric: tabular-nums; }
.ty-item__total--wrap { white-space: normal; }
.ty-item--grand .ty-item__name,
.ty-item--grand .ty-item__total { font-weight: 600; font-size: 17px; }
.ty-addr {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(20px, 3vw, 48px);
	margin-top: clamp(28px, 4vw, 48px);
}
.ty-addr h3 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 16px;
	text-transform: lowercase;
	margin: 0 0 8px;
}
.ty-addr p {
	font-size: 14px;
	font-weight: 300;
	line-height: 1.6;
	color: var(--ink);
	margin: 0;
}
@media (max-width: 700px) {
	.ty-meta { grid-template-columns: 1fr 1fr; }
	.ty-meta__item:nth-child(3) { border-left: 0; }
	.ty-meta__item:nth-child(n + 3) { border-top: var(--line-dashed); }
	.ty-addr { grid-template-columns: 1fr; }
}

/* ---------- фоновые линии концепта (из макета index.html) ---------- */
.bg-lines {
	background-image: url("../img/line-2-5-2.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}
/* модификатор не используется: на высоких страницах (каталог) cover излишне
   растягивал рисунок, а владелец оставил линии только на главной */
/* ≤768px: при узком вьюпорте рисунок 1920px сжимается в волосную трещину —
   линии убираем (решение владельца, 20.10) */
@media (max-width: 768px) {
	.bg-lines { background-image: none; }
}

/* ---------- Избранное (сердца, страница /izbrannoe/) ---------- */
.pd-fav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--black);
	cursor: pointer;
}
.pd-fav svg { display: block; }
.pd-fav .pd-fav__added { display: none; }
.pd-fav.is-added .pd-fav__normal { display: none; }
.pd-fav.is-added .pd-fav__added { display: block; }
.pd-fav:focus-visible {
	outline: 2px solid var(--black);
	outline-offset: 2px;
}
.pd-fav--card {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	width: 36px;
	height: 36px;
	background: none;
}
#pd-fav-count[data-count="0"] { display: none; }

.fav-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 24px;
}
.fav-cell { position: relative; }
.fav-grid .pd-card__title { margin-top: 0; }
.fav-empty { padding-block: 24px 60px; }
.fav-empty p { margin: 0 0 20px; }
.fav-loading { font-size: 14px; color: var(--gray); padding-block: 24px; }
@media (max-width: 1100px) {
	.fav-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
	.fav-grid { grid-template-columns: repeat(2, 1fr); gap: 14px 24px; }
}

/* ---------- Уведомления Woo (ошибки/успех/инфо) в стилистике сайта ---------- */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--white);
	border: 1px solid var(--black);
	color: var(--ink);
	list-style: none;
	margin: 0 0 24px;
	padding: 14px 18px;
	font-size: 15px;
	font-weight: 300;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-message li::before,
.woocommerce-info li::before,
.woocommerce-error li::before { display: none; }
.woocommerce-message li,
.woocommerce-info li,
.woocommerce-error li { list-style: none; margin: 0; padding: 2px 0; }
.woocommerce-error { border-width: 1px 1px 1px 4px; }
.woocommerce-message { border-width: 1px 1px 1px 4px; }
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button,
.woocommerce-message .wc-forward,
.woocommerce-info .wc-forward,
.woocommerce-error .wc-forward {
	float: none !important;
	display: inline !important;
	margin: 0 0 0 12px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	color: var(--black) !important;
	font-size: inherit !important;
	font-weight: 400 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}
.woocommerce-message a.button:hover,
.woocommerce-info a.button:hover,
.woocommerce-error a.button:hover { color: var(--gray) !important; background: none !important; }
.pdp__info .woocommerce-notices-wrapper,
.pdp__info .woocommerce-message,
.pdp__info .woocommerce-info,
.pdp__info .woocommerce-error { margin: 14px 0 18px; }

/* ---------- доступность движения ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
  .js .rv { opacity: 1; transform: none; }
  .cursor { display: none !important; }
  .page-head h1, .page-head .meta { animation: none; }
}
