/*
Theme Name: PrintShop v2
Theme URI: https://gaussworkshop.com
Author: Gauss Workshop
Description: Тема сайта печати наклеек, маек, флагов и баннеров: чёрный, неоновые мазки кисти, наклейки с жёсткой тенью. Совместима с WooCommerce и конструктором CPD.
Version: 2.5.5
Requires PHP: 7.4
Text Domain: printshop-custom
*/

/* =========================================================================
   Направление: стена с наклейками. Цвета — из картинок направлений:
   почти чёрный, розовый, жёлтый, голубой и лайм точечно. Неон — только
   фоном, мазком и тенью; текстом он на светлом не читается, поэтому текст
   всегда чёрный или белый.

   Корзина, касса и поля товара остаются спокойными: там человек вписывает
   данные и платит, и яркость ему мешает. Меняются рамка сайта, главная,
   карточки и кнопки.
   ====================================================================== */

@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/unbounded-latin-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/unbounded-latin-ext-700.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/unbounded-cyrillic-700.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

:root {
  --v2-ink: #121214;
  --v2-text: #1C1C20;
  --v2-muted: #5E5E66;
  --v2-bg: #F1F1EE;
  --v2-paper: #FFFFFF;
  --v2-line: #DCDCD7;
  --v2-pink: #FF2E88;
  --v2-yellow: #FFC21A;
  --v2-cyan: #19B6F4;
  --v2-lime: #C8F03C;
  --v2-display: "Unbounded", "Arial Black", sans-serif;
  --v2-radius: 12px;
}

body {
  background: var(--v2-bg);
  color: var(--v2-text);
}

/* Заголовки — широким жирным Unbounded: в нём есть и кириллица, и
   латышские буквы, так что все семь языков набраны одним шрифтом. */
.hero h1,
.home-title,
.page-body h1,
.page-body h2:where(:not(.cpd *)),
.cat-title,
.woocommerce div.product .product_title,
.woocommerce-products-header__title,
.choice-page .choice-hero h1,
.choice-page .choice-card h2,
.fork-about h2,
.not-found h1 {
  font-family: var(--v2-display);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--v2-ink);
}

/* Заголовок магазина и категорий: без отступа крупный Unbounded
   упирался прямо в карточки товаров. */
.woocommerce-products-header { margin-bottom: 28px; }
.woocommerce-products-header__title { margin: 0; line-height: 1.15; }
.woocommerce-products-header .term-description { margin-top: 10px; color: var(--v2-muted); }

/* ---------- Шапка ---------- */

.site-header {
  background: var(--v2-paper);
  box-shadow: none;
  border-bottom: 2px solid var(--v2-ink);
  backdrop-filter: none;
}

/* Логотип: корона, как на визитке, и название тем же шрифтом, что
   заголовки. Корона — маска, красится цветом текста. */
.logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--v2-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.02em;
  color: var(--v2-ink);
}
.logo::before {
  content: "";
  flex: none;
  width: 26px;
  height: 20px;
  background: currentColor;
  -webkit-mask: url("assets/images/crown.svg") no-repeat center / contain;
  mask: url("assets/images/crown.svg") no-repeat center / contain;
}

.site-header .main-nav a { color: var(--v2-ink); font-weight: 600; }
.site-header .main-nav .current-menu-item > a,
.site-header .main-nav .current-menu-ancestor > a {
  color: var(--v2-ink);
  text-decoration: underline;
  text-decoration-color: var(--v2-pink);
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}
@media (hover: hover) {
  .site-header .main-nav a:hover {
    color: var(--v2-ink);
    text-decoration: underline;
    text-decoration-color: var(--v2-yellow);
    text-decoration-thickness: 3px;
    text-underline-offset: 6px;
  }
}

.icons-top a:hover .ps-icon { color: var(--v2-pink); }
/* Чёрное на розовом читается, белое — нет. */
.cart-count { background: var(--v2-pink); color: var(--v2-ink); }

.site-header.nav-ready .nav-toggle {
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
  box-shadow: 3px 3px 0 var(--v2-pink);
}
.site-header.nav-ready .nav-toggle:focus-visible { outline-color: var(--v2-ink); }
.site-header.nav-ready .main-nav li { border-top-color: var(--v2-line); }

/* Unbounded вдвое шире шрифта основы: на телефоне логотип,
   значки и кнопка меню иначе не встают в одну строку. Селекторы — с тем же
   весом, что у основы для узких экранов, иначе её размер победит. */
@media (max-width: 400px) {
  .site-header .logo,
  .site-header.nav-ready .logo { font-size: 12.5px; gap: 5px; }
  .site-header .logo::before { width: 19px; height: 15px; }
  .site-header.nav-ready { column-gap: 6px; }
  .site-header.nav-ready .icons-top { gap: 8px; }
}
@media (max-width: 360px) {
  .site-header.nav-ready .logo { font-size: 11.5px; }
  .site-header .logo::before { width: 17px; height: 13px; }
}

/* ---------- Главная: верх ---------- */

/* Чёрная полоса с мазками кисти по углам — как фон на картинках
   направлений. Пятна основы не нужны. */
.hero {
  background: var(--v2-ink);
  padding: 88px 24px 104px;
  isolation: isolate;
}
.hero .blob {
  display: block;
  position: absolute;
  opacity: 1;
  border-radius: 0;
  background: none no-repeat center / 100% 100%;
  pointer-events: none;
  z-index: -1;
}
.hero .blob1 {
  width: 420px; height: 100px;
  top: 34px; left: -80px;
  background-image: url("assets/images/brush-cyan.svg");
  transform: rotate(-12deg);
}
.hero .blob2 {
  width: 460px; height: 108px;
  top: auto; bottom: 26px; right: -90px;
  background-image: url("assets/images/brush-pink.svg");
  transform: rotate(-14deg);
}
.hero::before,
.hero::after {
  content: "";
  position: absolute;
  background: no-repeat center / 100% 100%;
  pointer-events: none;
  z-index: -1;
}
.hero::before {
  width: 300px; height: 74px;
  bottom: 40px; left: -40px;
  background-image: url("assets/images/brush-yellow.svg");
  transform: rotate(8deg);
}
.hero::after {
  width: 260px; height: 64px;
  top: 30px; right: -30px;
  background-image: url("assets/images/brush-lime.svg");
  transform: rotate(10deg);
}

/* Основа заливает заголовок градиентом через обрезку фона по
   буквам — снимаем, иначе белый текст остался бы прозрачным. */
/* Переноса в заголовке нет (см. front-page.php) — строки ровняет браузер. */
.hero h1 {
  position: relative;
  z-index: 1;
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
  text-wrap: balance;
  font-size: clamp(26px, 6.2vw, 48px);
  line-height: 1.12;
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  color: #FFFFFF;
  -webkit-text-fill-color: #FFFFFF;
}
.hero p {
  position: relative;
  z-index: 1;
  color: #C9C9D1;
  max-width: 560px;
  margin: 0 auto;
}

@media (max-width: 600px) {
  .hero { padding: 64px 18px 76px; }
  .hero .blob1 { width: 260px; height: 64px; top: 16px; left: -90px; }
  .hero .blob2 { width: 280px; height: 66px; bottom: 12px; right: -110px; }
  .hero::before { width: 180px; height: 46px; bottom: 16px; left: -50px; }
  .hero::after { width: 160px; height: 40px; top: 14px; right: -50px; }
}

/* ---------- Главная: направления ---------- */

/* Кружки — наклейки: чёрная обводка и жёсткая цветная тень, у каждой
   своя. При наведении наклейка чуть поворачивается, будто её берут. */
.categories { padding-top: 44px; }
.cat-card img {
  border: 3px solid var(--v2-ink);
  box-shadow: 6px 6px 0 var(--v2-pink);
  background: var(--v2-paper);
  transition: transform .18s ease, box-shadow .18s ease;
}
.cat-card:nth-child(4n + 2) img { box-shadow: 6px 6px 0 var(--v2-yellow); }
.cat-card:nth-child(4n + 3) img { box-shadow: 6px 6px 0 var(--v2-cyan); }
.cat-card:nth-child(4n + 4) img { box-shadow: 6px 6px 0 var(--v2-lime); }
@media (hover: hover) {
  .cat-card:hover img { transform: translate(-3px, -3px) rotate(-4deg); }
  .cat-card:hover img { box-shadow: 9px 9px 0 var(--v2-pink); }
  .cat-card:nth-child(4n + 2):hover img { box-shadow: 9px 9px 0 var(--v2-yellow); }
  .cat-card:nth-child(4n + 3):hover img { box-shadow: 9px 9px 0 var(--v2-cyan); }
  .cat-card:nth-child(4n + 4):hover img { box-shadow: 9px 9px 0 var(--v2-lime); }
}
.cat-title { font-size: 15px; margin-top: 18px; }

/* ---------- Главная: шаги, условия, вопросы ---------- */

.home-title::after {
  content: "";
  display: block;
  width: 96px;
  height: 14px;
  margin: 10px auto 0;
  background: url("assets/images/brush-pink.svg") no-repeat center / 100% 100%;
}

.home-step {
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
  border-radius: var(--v2-radius);
  box-shadow: 5px 5px 0 var(--v2-ink);
}
.home-step::before {
  background: var(--v2-yellow);
  color: var(--v2-ink);
  border: 2px solid var(--v2-ink);
  font-family: var(--v2-display);
}
.home-step:nth-child(2)::before { background: var(--v2-cyan); }
.home-step:nth-child(3)::before { background: var(--v2-pink); }
.home-step h3 { color: var(--v2-ink); }
.home-step p { color: var(--v2-muted); }

/* Условия — чёрной плашкой: главные факты магазина одним взглядом. */
.home-facts {
  background: var(--v2-ink);
  border: 0;
  border-radius: var(--v2-radius);
}
/* Только в чёрной плашке главной: те же пункты стоят и на белой карточке
   развилки (.fork-about), там белый текст пропадал. */
.home-facts .home-fact__icon { color: var(--v2-yellow); }
.home-facts .home-fact__title { color: #FFFFFF; }
.home-facts .home-fact__text { color: #BDBDC6; }
.fork-about .home-fact__icon { color: var(--v2-pink); }
.fork-about .home-fact__title { color: var(--v2-ink); }
.fork-about .home-fact__text { color: var(--v2-muted); }

/* Отзывы Google — между условиями и вопросами. Карточки как у шагов,
   но мельче; ширина — как у плашки условий. */
.home-reviews {
  max-width: 1020px;
  margin: 0 auto 40px;
  padding: 0 24px;
  box-sizing: content-box;
}
.home-reviews__head { text-align: center; margin-bottom: 16px; }
.home-reviews__head .home-title { margin-bottom: 8px; }
.home-reviews__score {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--v2-ink);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}
.home-reviews__score:hover { text-decoration: underline; text-decoration-color: var(--v2-pink); }
.home-reviews__stars { color: var(--v2-yellow); letter-spacing: 1px; font-size: 16px; line-height: 1; }
.home-reviews__stars .is-empty { color: var(--v2-line); }
/* Сколько отзывов пришло, столько и колонок: четыре — в ряд, три — шире. */
.home-reviews__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 14px;
}
.home-review {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
  border-radius: var(--v2-radius);
  box-shadow: 4px 4px 0 var(--v2-ink);
}
.home-review .home-reviews__stars { font-size: 13px; }
/* Длинный отзыв не растягивает ряд: пять строк, остальное — в Google. */
.home-review__text {
  margin: 0;
  flex: 1;
  color: var(--v2-text);
  font-size: 14px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-review__author { margin: 0; font-size: 13px; font-weight: 700; color: var(--v2-ink); }
.home-review__author a { color: inherit; text-decoration: none; }
.home-review__date { display: block; font-weight: 400; color: var(--v2-muted); }
.home-reviews__note,
.home-reviews__empty { margin: 12px 0 0; text-align: center; font-size: 12px; color: var(--v2-muted); }
.home-reviews__empty { font-size: 16px; color: var(--v2-text); }
.home-reviews__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 14px 0 0;
}
.home-reviews__button {
  display: inline-block;
  padding: 9px 16px;
  background: var(--v2-ink);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid var(--v2-ink);
  border-radius: 10px;
  box-shadow: 3px 3px 0 var(--v2-pink);
}
.home-reviews__button--ghost { background: var(--v2-paper); color: var(--v2-ink); box-shadow: 3px 3px 0 var(--v2-yellow); }
.home-reviews__button:focus-visible { outline: 2px solid var(--v2-pink); outline-offset: 3px; }
/* Уже экрана — лентой с прокруткой вбок: четыре карточки столбиком
   заняли бы на телефоне пол-экрана вниз. Отступ снизу — под тень. */
@media (max-width: 900px) {
  .home-reviews__list {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 0 6px 8px 0;
    scrollbar-width: thin;
  }
  .home-review { flex: 0 0 min(260px, 78%); scroll-snap-align: start; }
}
@media (max-width: 480px) {
  .home-reviews { padding: 0 16px; margin-bottom: 32px; }
}

.home-faq__item,
.home-faq__item:first-of-type { border-color: var(--v2-line); }
.home-faq__item summary { color: var(--v2-ink); }
.home-faq__item summary::after { border-color: var(--v2-pink); }
.home-faq__item summary:focus-visible { outline-color: var(--v2-ink); }
.home-faq__item p { color: var(--v2-muted); }

/* ---------- Кнопки ---------- */

/* Главные кнопки — чёрные с розовой жёсткой тенью; нажатие вдавливает
   кнопку в тень. */
.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wc-block-cart .wc-block-cart__submit-button,
.wc-block-checkout .wc-block-components-checkout-place-order-button,
.contact-form__submit,
.woocommerce #review_form #respond input#submit,
.choice-page .btn-design {
  background: var(--v2-ink);
  color: #FFFFFF;
  border: 2px solid var(--v2-ink);
  border-radius: 10px;
  box-shadow: 4px 4px 0 var(--v2-pink);
  transition: transform .12s ease, box-shadow .12s ease;
}
@media (hover: hover) {
  .woocommerce div.product form.cart button.single_add_to_cart_button:hover,
  .woocommerce a.button.alt:hover,
  .woocommerce button.button.alt:hover,
  .woocommerce input.button.alt:hover,
  .wc-block-cart .wc-block-cart__submit-button:hover,
  .wc-block-checkout .wc-block-components-checkout-place-order-button:hover,
  .contact-form__submit:hover,
  .woocommerce #review_form #respond input#submit:hover,
  .choice-page .btn-design:hover {
    background: var(--v2-ink);
    color: #FFFFFF;
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 var(--v2-pink);
  }
}
.woocommerce div.product form.cart button.single_add_to_cart_button:active,
.woocommerce a.button.alt:active,
.woocommerce button.button.alt:active,
.contact-form__submit:active,
.choice-page .btn-design:active {
  transform: translate(3px, 3px);
  box-shadow: 1px 1px 0 var(--v2-pink);
}
.woocommerce div.product form.cart button.single_add_to_cart_button.disabled,
.woocommerce div.product form.cart button.single_add_to_cart_button:disabled {
  background: #CFCFD4;
  border-color: #CFCFD4;
  color: #FFFFFF;
  box-shadow: none;
  transform: none;
}

.choice-page .btn-catalog {
  background: var(--v2-paper);
  color: var(--v2-ink);
  border: 2px solid var(--v2-ink);
  box-shadow: 4px 4px 0 var(--v2-yellow);
}
@media (hover: hover) {
  .choice-page .btn-catalog:hover {
    background: var(--v2-paper);
    color: var(--v2-ink);
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 var(--v2-yellow);
  }
}

/* ---------- Витрина ---------- */

.woocommerce ul.products li.product.product {
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
  border-radius: var(--v2-radius);
}
@media (hover: hover) {
  .woocommerce ul.products li.product.product:hover {
    transform: translate(-3px, -3px);
    box-shadow: 6px 6px 0 var(--v2-cyan);
  }
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price { color: var(--v2-ink); }
.woocommerce ul.products li.product a.button {
  color: var(--v2-ink);
  border: 2px solid var(--v2-ink);
}
@media (hover: hover) {
  .woocommerce ul.products li.product a.button:hover {
    background: var(--v2-ink);
    border-color: var(--v2-ink);
    color: #FFFFFF;
  }
}
/* Новинки в пустой корзине — блок WordPress: кнопка у него своя, тёмно-
   серая, а текст ссылки v2 делал чёрным — надпись пропадала. Те же
   кнопки, что в витрине. */
.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link {
  background: var(--v2-paper);
  color: var(--v2-ink);
  border: 2px solid var(--v2-ink);
  border-radius: 10px;
}
@media (hover: hover) {
  .wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
    background: var(--v2-ink);
    color: #FFFFFF;
  }
}
.wc-block-grid .wc-block-grid__product-link { color: var(--v2-ink); text-decoration: none; }

.shop-cats a { background: var(--v2-paper); }
.shop-cats a:hover { background: var(--v2-paper); }
.shop-cats__all.is-open,
.shop-cats__item.is-open > a { background: var(--v2-paper); }
.shop-cats [aria-current="page"] {
  border-color: var(--v2-ink);
  color: var(--v2-ink);
  box-shadow: 3px 3px 0 var(--v2-pink);
}
.shop-cats [aria-current="page"] .shop-cats__count { color: var(--v2-ink); }
/* Рамку открытой ветки основа задаёт весомее — без a в селекторе
   чёрная рамка у текущей рубрики не появлялась. */
.shop-cats a[aria-current="page"] { border-color: var(--v2-ink); color: var(--v2-ink); }

/* Телефон: верхний ряд — кнопки-«таблетки», открытая ветка залита чёрным;
   ряд подрубрик под ним — тише, выбранная — с розовой тенью. */
@media (max-width: 900px) {
  .shop-cats a {
    border: 2px solid var(--v2-ink);
    border-radius: 999px;
    padding: 6px 14px;
    color: var(--v2-ink);
    font-weight: 600;
  }
  .shop-cats__all.is-open,
  .shop-cats__item.is-open > a {
    background: var(--v2-ink);
    border-color: var(--v2-ink);
    color: #FFFFFF;
    padding: 6px 14px;
  }
  .shop-cats__row a {
    background: transparent;
    border-color: transparent;
    color: var(--v2-muted);
  }
  .shop-cats__row .is-open > a { background: var(--v2-paper); border-color: var(--v2-ink); color: var(--v2-ink); }
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { background: var(--v2-paper); }
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--v2-ink);
  border-color: var(--v2-ink);
  color: #FFFFFF;
}
.woocommerce .woocommerce-ordering select { background: var(--v2-paper); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--v2-ink); }
/* Бледно-бежевый основы на сером фоне v2 почти не читался. */
.woocommerce .woocommerce-breadcrumb,
.woocommerce div.product .product_meta { color: #7C7C84; }

.shop-empty__list a { background: var(--v2-paper); }
.shop-empty__list a:hover { border-color: var(--v2-ink); color: var(--v2-ink); }

/* ---------- Товар ---------- */

.woocommerce div.product div.images.woocommerce-product-gallery,
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { background: var(--v2-paper); }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { border-color: var(--v2-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a:hover { border-bottom-color: var(--v2-pink); }
.woocommerce div.product .product_meta a:hover { color: var(--v2-ink); }
.woocommerce div.product .stock { color: #128C4A; }
/* Unbounded широкий: размером основы длинное название товара
   уходило в четыре строки. */
.woocommerce div.product .product_title { font-size: clamp(22px, 2.3vw, 28px); line-height: 1.2; }

/* Поля — белые и спокойные: в них вписывают данные, яркость тут мешает. */
.woocommerce div.product form.cart .variations select,
.woocommerce div.product form.cart .cpd-stamp-fields .input-text,
.woocommerce div.product form.cart .cpd-stamp-fields select,
.woocommerce div.product form.cart .quantity input.qty,
.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"],
.woocommerce #review_form #respond textarea,
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
  background: var(--v2-paper);
  border-color: #CFCFCA;
}
.woocommerce div.product form.cart .variations select:focus,
.woocommerce div.product form.cart .cpd-stamp-fields .input-text:focus,
.woocommerce div.product form.cart .cpd-stamp-fields select:focus,
.woocommerce #review_form #respond input:focus,
.woocommerce #review_form #respond textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus {
  outline: 2px solid var(--v2-ink);
  border-color: var(--v2-ink);
}

/* Форма отказа от договора и образец под ней (inc/consumer-rights.php). */
.page-body .withdrawal-form {
  margin-top: 4px;
  padding: 20px;
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
  border-radius: var(--v2-radius);
}
.page-body .withdrawal-form__title { margin: 0; font-size: 18px; }
.contact-form__hint { font-size: 13px; color: var(--v2-muted); }
.page-body .withdrawal-sample {
  max-width: 640px;
  margin: 0 0 32px;
  font-size: 14px;
}
.page-body .withdrawal-sample summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--v2-ink);
}
.page-body .withdrawal-sample p { margin: 10px 0 0; }
.page-body .withdrawal-sample__text {
  padding: 12px 14px;
  background: var(--v2-paper);
  border: 1px dashed var(--v2-line);
  border-radius: 8px;
  line-height: 1.7;
}
.page-body .withdrawal-sample__note { color: var(--v2-muted); }

/* ---------- Корзина, касса, сообщения ---------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.contact-form__status.is-ok,
.contact-form__status.is-error {
  background: var(--v2-paper);
  border-left: 4px solid var(--v2-ink);
}

p.lead-time--cart,
p.lead-time--checkout,
p.lead-time--thankyou,
.free-shipping { background: var(--v2-paper); }
.lead-time__icon,
.free-shipping__icon { color: var(--v2-ink); }
.free-shipping__bar span { background: linear-gradient(90deg, var(--v2-pink), var(--v2-yellow)); }

/* ---------- Страницы ---------- */

.page-body h1 { font-size: clamp(26px, 5vw, 38px); line-height: 1.15; margin: 0 0 20px; }
.page-body h2:where(:not(.cpd *)) { font-size: 22px; }
.page-body a:where(:not(.cpd *, .wc-block-grid *, .wp-element-button, .wc-block-components-button)) {
  color: var(--v2-ink);
  text-decoration: underline;
  text-decoration-color: var(--v2-pink);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* Развилка «свой дизайн / готовые»: стили её живут прямо в шаблоне,
   поэтому здесь селекторы на ступень весомее. */
.choice-page .choice-card {
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
  border-radius: 16px;
}
@media (hover: hover) {
  .choice-page .choice-card:hover {
    border-color: var(--v2-ink);
    transform: translate(-3px, -3px);
    box-shadow: 8px 8px 0 var(--v2-cyan);
  }
}
.choice-page .choice-hero p,
.choice-page .choice-desc { color: var(--v2-muted); }
.choice-page .badge-design { background: var(--v2-pink); color: var(--v2-ink); }
.choice-page .badge-catalog { background: var(--v2-yellow); color: var(--v2-ink); }
.choice-page .choice-btn { border-radius: 10px; }

.fork-about {
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
  border-radius: var(--v2-radius);
}
.fork-about__more {
  color: var(--v2-ink);
  font-weight: 600;
  text-decoration-color: var(--v2-pink);
  text-underline-offset: 3px;
}

/* Под конструктором — во всю его ширину и низкий: текст сверху,
   условия одной строкой. На развилке блок прежний. */
.page-designer .fork-about {
  max-width: none;
  margin: 24px 0 0;
  padding: 20px 24px;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}
.page-designer .fork-about h2 { font-size: 20px; margin: 0 0 6px; }
.page-designer .fork-about__text p { font-size: 15px; line-height: 1.55; max-width: none; margin-bottom: 6px; }
.page-designer .fork-about__facts {
  /* Столько колонок, сколько условий: у визиток цены «от» нет — их три. */
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px 24px;
  margin: 0;
  padding: 16px 0 0;
  border-top: 1px solid var(--v2-line);
}
.page-designer .fork-about .home-fact { margin: 0; max-width: none; }
/* Абзацы страницы дают 16 px и отступ снизу — в строке условий это лишнее. */
.page-designer .fork-about .home-fact__title { font-size: 14px; line-height: 1.35; margin: 0 0 2px; }
.page-designer .fork-about .home-fact__text { font-size: 13px; line-height: 1.4; margin: 0; }
@media (max-width: 900px) {
  .page-designer .fork-about__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .page-designer .fork-about { padding: 16px; }
  .page-designer .fork-about__facts { grid-template-columns: minmax(0, 1fr); }
}

/* «404» — как наклейка: чёрные цифры с розовой тенью, без бледного
   водяного знака основы. */
.not-found__code {
  font-family: var(--v2-display);
  letter-spacing: -0.02em;
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  color: var(--v2-ink);
  text-shadow: 6px 6px 0 var(--v2-pink);
  opacity: 1;
  margin: 0 0 18px;
}
.not-found__links a { color: var(--v2-ink); text-decoration-color: var(--v2-pink); }

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

/* Чёрный подвал замыкает рамку сайта, как шапка её открывает. */
.site-footer {
  background: var(--v2-ink);
  border-top: 0;
  color: #9A9AA3;
}
.site-footer .footer-nav a,
.site-footer a { color: #E6E6EA; }
/* Текущая страница: у основы она тёмная — на чёрном пропадала. */
.site-footer .footer-nav .current-menu-item > a {
  color: #FFFFFF;
  text-decoration: underline;
  text-decoration-color: var(--v2-pink);
  text-underline-offset: 3px;
}
@media (hover: hover) {
  .site-footer .footer-nav a:hover,
  .site-footer a:hover { color: #FFFFFF; text-decoration: underline; text-decoration-color: var(--v2-pink); }
}
.site-footer .footer-copy { color: #8A8A93; }
/* Языки в подвале основа красит серым под светлый фон — на
   чёрном он почти пропадал. */
.site-footer .gwi-switcher--list .gwi-switcher__item a { color: #D9D9DF; }
.site-footer .gwi-switcher--list .gwi-switcher__item.is-current a { color: #FFFFFF; }

/* ---------- Баннер cookie ---------- */

/* Та же наклейка: чёрная рамка и жёсткая тень. Стили плагина подключаются
   позже темы, поэтому здесь селекторы от body — на ступень весомее.
   Обе кнопки по-прежнему одного вида: отказ не должен выглядеть
   второстепенным. */
body .gw-consent {
  color: var(--v2-text);
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
  border-radius: 14px;
  box-shadow: 6px 6px 0 var(--v2-ink);
}
body .gw-consent__title,
body .gw-consent-dialog__title {
  font-family: var(--v2-display);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--v2-ink);
}
body .gw-consent__title::after {
  content: "";
  display: block;
  width: 64px;
  height: 9px;
  margin-top: 6px;
  background: url("assets/images/brush-pink.svg") no-repeat left center / 100% 100%;
}
body .gw-consent__text,
body .gw-consent-category__text { color: var(--v2-muted); }
body .gw-consent__text a,
body .gw-consent__link {
  color: var(--v2-ink);
  text-decoration-color: var(--v2-pink);
  text-decoration-thickness: 2px;
}
body .gw-consent__btn {
  color: #FFFFFF;
  background: var(--v2-ink);
  border: 2px solid var(--v2-ink);
  box-shadow: 3px 3px 0 var(--v2-pink);
  transition: transform .12s ease, box-shadow .12s ease;
}
@media (hover: hover) {
  body .gw-consent__btn:hover {
    background: var(--v2-ink);
    transform: translate(-1px, -1px);
    box-shadow: 4px 4px 0 var(--v2-pink);
  }
}
body .gw-consent__btn:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--v2-pink);
}
body .gw-consent__btn:focus-visible,
body .gw-consent__link:focus-visible,
body .gw-consent-dialog__close:focus-visible,
body .gw-consent-switch:focus-visible { outline: 2px solid var(--v2-ink); }

body .gw-consent-dialog {
  color: var(--v2-text);
  border: 2px solid var(--v2-ink);
  border-radius: 16px;
  box-shadow: 8px 8px 0 var(--v2-ink);
}
body .gw-consent-dialog::backdrop { background: rgba(18, 18, 20, 0.55); }
body .gw-consent-dialog__close {
  color: var(--v2-ink);
  background: var(--v2-paper);
  border: 2px solid var(--v2-ink);
}
body .gw-consent-category,
body .gw-consent-dialog__actions { border-top-color: var(--v2-line); }
body .gw-consent-category__always { color: var(--v2-ink); }
body .gw-consent-switch { background: #CFCFD4; }
body .gw-consent-switch:checked { background: var(--v2-ink); }

@media (max-width: 600px) {
  body .gw-consent { box-shadow: 4px 4px 0 var(--v2-ink); }
  body .gw-consent__title::after { width: 52px; height: 7px; margin-top: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  body .gw-consent__btn { transition: none; }
}

@media (prefers-reduced-motion: reduce) {
  .cat-card img,
  .home-step,
  .choice-page .choice-card { transition: none; }
}
