/*
 * Stefani Larina — WooCommerce overrides.
 * Aligns WC block components with our design system.
 */

/* ---------- Product sale badge — positioning + screen-reader fix ---------- */

/* Positioning shell — mirrors .pc__tag */
.wp-block-woocommerce-product-sale-badge {
  position: absolute !important;
  top: 14px !important;
  left: 14px !important;
  z-index: 2 !important;
}

/* Direct styling — same capsule spec as .tag, bordeaux fill */
.wc-block-components-product-sale-badge {
  display: inline-flex !important;
  align-items: center !important;
  border-radius: 999px !important;
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  font-size: 10px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 6px 13px !important;
  line-height: 1 !important;
  background: var(--color-bordeaux) !important;
  color: var(--color-bone) !important;
  border: 0 !important;
  box-shadow: none !important;
  position: static !important;
  width: auto !important;
}

/* Hide "Продаваемый товар" — screen-reader only, must not be visible */
.wc-block-components-product-sale-badge .screen-reader-text {
  border: 0 !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  word-wrap: normal !important;
}

/* ---------- Product collection layout ---------- */

/* WC block wrapper: span all columns of outer grid */
.clg__grid,
.arrivals__grid .wp-block-woocommerce-product-collection {
  width: 100%;
}

/* ul spans full width — WC's columns-4 CSS handles the inner grid */
.clg__grid ul.wc-block-product-template__responsive,
.arrivals__grid ul.wc-block-product-template__responsive {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Force 4-col grid (needed on homepage where woocommerce.css also loads via is_home fix) */
ul.wc-block-product-template__responsive.columns-4 {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: var(--s5) var(--gutter) !important;
}

@media (max-width: 900px) {
  ul.wc-block-product-template__responsive.columns-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* li: fill column, stack vertically */
ul.wc-block-product-template__responsive > li.wc-block-product {
  display: flex !important;
  flex-direction: column !important;
  align-self: stretch;
}

/* Arrivals stagger: align-start so all cards same height; even items offset by margin-top */
.arrivals__grid ul.wc-block-product-template__responsive > li.wc-block-product {
  align-self: start !important;
  width: 100% !important;
}

/* Staggered cards must not clip at collection wrapper boundary */
.arrivals__grid .wp-block-woocommerce-product-collection {
  overflow: visible !important;
}

/* Notices block */
.wc-block-components-notices { margin: 0; }
.wc-block-components-notices.alignwide { width: 100%; }

/* ---------- Catalog pagination ---------- */

.clg__pagination {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  margin-top: var(--s10);
  font-family: var(--font-body);
}

.clg__pagination .wp-block-query-pagination-numbers {
  display: flex;
  align-items: center;
  gap: var(--s2);
}

.clg__pagination .page-numbers,
.clg__pagination .wp-block-query-pagination-previous,
.clg__pagination .wp-block-query-pagination-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 var(--s2);
  border: 1px solid var(--color-ink-14);
  border-radius: 0;
  font-size: 14px;
  font-weight: 400;
  color: var(--color-ink);
  text-decoration: none;
  transition: border-color var(--t-hover), color var(--t-hover), background-color var(--t-hover);
}

.clg__pagination .wp-block-query-pagination-previous,
.clg__pagination .wp-block-query-pagination-next {
  padding: 0 var(--s4);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.clg__pagination a.page-numbers:hover,
.clg__pagination a.wp-block-query-pagination-previous:hover,
.clg__pagination a.wp-block-query-pagination-next:hover {
  border-color: var(--color-bordeaux);
  color: var(--color-bordeaux);
}

.clg__pagination .page-numbers.current {
  background: var(--color-ink);
  border-color: var(--color-ink);
  color: var(--color-bone);
}

.clg__pagination .page-numbers.dots {
  border: none;
  min-width: auto;
  color: var(--color-ink-38);
}

/* ---------- Product card media — always 3:4 ratio ---------- */
.pc .pc__media,
.pc__media {
  aspect-ratio: 3 / 4;
  width: 100%;
  flex-shrink: 0;
  background-color: var(--color-bone-3);
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(44, 42, 43, 0.05) 0 1px,
    transparent 1px 9px
  );
  overflow: hidden;
  position: relative;
}

/* ── First image: WC block renders <div class="...pc__img"><a><img></a></div> ── */
.pc__media .pc__img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1;
  overflow: hidden;
}

.pc__media .pc__img > a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.pc__media .pc__img img,
.pc__media .pc__img .wp-post-image,
.pc__media img.pc__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.9s var(--ease-cine);
}

.pc:hover .pc__media .pc__img img,
.pc:hover .pc__media img.pc__img { transform: scale(1.04); }

/* ── Second image: appended by render_block filter, crossfades on hover ── */
.pc__img--second {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.6s var(--ease-cine), transform 0.9s var(--ease-cine);
}

.pc:hover .pc__img--second {
  opacity: 1;
  transform: scale(1.04);
}

/* WC image block wrapper — fill container */
.pc__media .wc-block-components-product-image,
.pc__media .woocommerce-product-gallery__image,
.pc__media > a,
.pc__media > div {
  width: 100%;
  height: 100%;
  display: block;
}


/* Hide WC default placeholder icon — show bone-3 bg from .pc__media instead */
.pc__media .woocommerce-placeholder,
.pc__media img.woocommerce-placeholder,
.pc__media .wc-block-components-product-image img[src*="placeholder"],
.pc__media .wp-post-image[src*="woocommerce-placeholder"] {
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  position: absolute !important;
}

/* When WC has NO image, the wc-block-components-product-image wrapper — fill space */
.pc__media .wc-block-components-product-image,
.pc__media .wp-block-woocommerce-product-image {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}

/* ph-label at card bottom — "КАТЕГОРИЯ · ЛУКБУК" via data-label */
.pc__media[data-label]::before {
  content: attr(data-label);
  position: absolute;
  left: 14px;
  bottom: 12px;
  z-index: 2;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-ink-60);
  background: rgba(255, 255, 255, 0.7);
  padding: 3px 7px;
  pointer-events: none;
}

/* ---------- Product card in WC block context ---------- */
.clg__grid .pc,
.arrivals__grid .pc {
  cursor: pointer;
  text-decoration: none;
  color: var(--color-ink);
  display: flex;
  flex-direction: column;
}

/* Fix product name: source uses sentence case, NOT uppercase */
.pc .pc__name,
.pc .wp-block-post-title,
.pc .wc-block-components-product-name {
  font-family: var(--font-body) !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  color: var(--color-ink) !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* Category eyebrow — source uses .eyebrow class which has weight 500, ls 0.28em.
   Minimal overrides: only reset margin/display. Let base .eyebrow rule handle fonts. */
.pc .pc__cat,
.pc .wp-block-post-terms {
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  font-size: 11px !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: var(--color-ink-60) !important;
  margin: 0 !important;
}

/* Color swatches row — always visible, right of price */
.pc__sw {
  display: flex;
  align-items: center;
  gap: 6px;
}

.pc__dot {
  width: 13px;
  height: 13px;
  border-radius: 999px;
  border: 1px solid var(--color-ink-14);
  padding: 1px;
  background: var(--swatch-bg, transparent);
  background-clip: content-box;
  flex-shrink: 0;
  display: inline-block;
}

/* ---------- Price blocks ---------- */
/* Source: .pc__price { letter-spacing: 0.04em; } */
.pc__price,
.pc__price .price,
.pc__prices,
.wc-block-components-product-price {
  letter-spacing: 0.04em;
}

.pc__price .price {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.04em;
}

.pc__price .price ins {
  text-decoration: none;
  color: var(--color-bordeaux);
}

.pc__price .price del {
  font-size: 12px;
  color: var(--color-ink-38);
}

.pc__price .price del .woocommerce-Price-amount {
  text-decoration: line-through;
}

/* Classic WC onsale flash — fallback for non-block rendering */
.pc__media .woocommerce-badge,
.pc__media .onsale {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
}

/* ---------- WC single product ---------- */

/* Hide WC default variation table — kept in DOM for WC variation JS.
   Our custom size pills / swatches sync to these hidden selects.
   !important needed: WC block CSS loads after theme and overrides without it. */
.pdp__sticky .variations,
.pdp__sticky table.variations,
.pdp__sticky .reset_variations,
.pdp__sticky .woocommerce-variation-availability,
.pdp__sticky .woocommerce-variation-price {
  display: none !important;
}

/* Make add-to-cart block visible (height:0 bug in WP 7.0) */
.wp-block-woocommerce-add-to-cart-form,
.wp-block-add-to-cart-form,
.wc-block-add-to-cart-form {
  display: block !important;
  height: auto !important;
  overflow: visible !important;
}

/* Override WC default gallery */
.woocommerce-product-gallery {
  width: 100% !important;
  float: none !important;
}

/* Gallery: force 3:4 aspect ratio like source design */
.woocommerce-product-gallery,
.wp-block-woocommerce-product-image-gallery {
  aspect-ratio: 3 / 4;
  background-color: var(--color-bone-3);
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(44, 42, 43, 0.05) 0 1px,
    transparent 1px 9px
  );
}

/* Hide WC placeholder icon inside gallery */
.woocommerce-product-gallery .woocommerce-product-gallery__image--placeholder img {
  opacity: 0;
}

.woocommerce-product-gallery__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Source: pdp__price { font-size:18px; font-weight:400; letter-spacing:0.04em } */
.pdp__price .price,
.pdp__lead .woocommerce-Price-amount,
.pdp__lead .price {
  font-size: 18px !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
}

/* PDP add-to-cart section */
.woocommerce form.cart {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Hide default quantity stepper (source design doesn't show it on simple products) */
.woocommerce form.cart .quantity { display: none; }

/* WC add-to-cart button — single canonical rule (DRY: was duplicated) */
.woocommerce form.cart .single_add_to_cart_button,
.wc-block-add-to-cart-form__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  background: var(--color-ink);
  color: var(--color-bone);
  border: 1px solid var(--color-ink);
  border-radius: 0;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 19px 40px;
  cursor: pointer;
  margin-top: var(--s3);
  transition: background var(--t-hover), color var(--t-hover), border-color var(--t-hover);
}

.woocommerce form.cart .single_add_to_cart_button:hover,
.wc-block-add-to-cart-form__button:hover {
  background: var(--color-bordeaux);
  border-color: var(--color-bordeaux);
}

.woocommerce form.cart .qty {
  min-width: 52px;
  height: 44px;
  border: 1px solid var(--color-ink-38);
  background: transparent;
  border-radius: 0;
  font-family: var(--font-body);
  font-size: 13px;
  text-align: center;
  color: var(--color-ink);
}

/* WC product price on PDP */
.woocommerce .pdp__price .price {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 18px;
}

.woocommerce .pdp__price .price ins {
  text-decoration: none;
  color: var(--color-bordeaux);
}

.woocommerce .pdp__price .price del {
  font-size: 14px;
  color: var(--color-ink-38);
}

/* WC breadcrumb reset */
.woocommerce .woocommerce-breadcrumb { display: none; }

/* WC notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: 0;
  border-left: 3px solid var(--color-ink);
  background: var(--color-bone-2);
  color: var(--color-ink);
  padding: var(--s3) var(--s4);
  font-family: var(--font-body);
  font-size: 14px;
  list-style: none;
  margin: 0 0 var(--s4);
}

.woocommerce-error { border-color: var(--color-bordeaux); }

/* WC mini-cart drawer: fixed off-screen — overflow:hidden prevents iOS scrollWidth inflation */
.wc-block-mini-cart__drawer,
.wc-block-components-drawer {
  overflow: hidden;
}

/* ---------- Mini-cart WC block ---------- */
.wc-block-mini-cart__button {
  background: transparent;
  border: 0;
  color: var(--color-ink);
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  padding: 4px;
}

/* WC mini-cart block removed from header.html — not needed in CSS */

/* WC mini-cart badge: keep in DOM for sync, but visually irrelevant */
.wc-block-mini-cart__badge {
  background: var(--color-bordeaux);
  color: var(--color-cream);
  border-radius: 999px;
  font-size: 9px;
  width: 14px;
  height: 14px;
  line-height: 14px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ---------- Checkout ---------- */
.woocommerce .input-text {
  border: 0;
  border-bottom: 1px solid var(--color-ink-38);
  border-radius: 0;
  background: transparent;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 15px;
  color: var(--color-ink);
  padding: 12px 0;
  width: 100%;
  outline: none;
  transition: border-color var(--t-hover);
}

.woocommerce .input-text:focus {
  border-color: var(--color-ink);
}

.woocommerce #place_order {
  border-radius: 0;
  background: var(--color-ink);
  color: var(--color-bone);
  border: 1px solid var(--color-ink);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 19px 40px;
  width: 100%;
  cursor: pointer;
  transition: background var(--t-hover), border-color var(--t-hover);
}

.woocommerce #place_order:hover {
  background: var(--color-bordeaux);
  border-color: var(--color-bordeaux);
}

/* ==========================================================================
   WC BLOCKS — CART PAGE
   ========================================================================== */

/* Cart page layout */
.wc-block-cart {
  padding-top: var(--s4);
}

.wc-block-cart .wp-block-woocommerce-cart-items-block {
  min-width: 0;
}

/* Cart item rows */
.wc-block-cart-items__row {
  border-top: 1px solid var(--color-ink-14) !important;
  border-bottom: 0 !important;
  padding: var(--s3) 0 !important;
  gap: var(--s3) !important;
}

.wc-block-cart-items__row:last-child {
  border-bottom: 1px solid var(--color-ink-14) !important;
}

/* Cart item image */
.wc-block-cart-items__row .wc-block-cart-item__image a img {
  object-fit: cover;
  aspect-ratio: 3 / 4;
  border-radius: 0 !important;
}

/* Cart item name */
.wc-block-cart-item__product-name {
  font-family: var(--font-body) !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
  color: var(--color-ink) !important;
  text-transform: none !important;
}

/* Cart variation meta — links inside must not show default blue */
.wc-block-cart-item__product-metadata a,
.wc-block-cart-item__product-metadata {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  color: var(--color-ink-60) !important;
  letter-spacing: 0.04em !important;
  margin-top: 4px !important;
  text-decoration: none !important;
}

/* Fix WC Blocks default link color throughout cart/checkout */
.wc-block-cart a:not(.wc-block-cart__submit-button),
.wc-block-checkout a:not(.wc-block-components-checkout-place-order-button) {
  color: var(--color-ink) !important;
  text-decoration: none !important;
}

/* Fix orange/link color on Подытог / Итого rows (WC injects anchor-like styles) */
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value,
.wc-block-components-totals-coupon-link,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--color-ink) !important;
  text-decoration: none !important;
}

/* Remove default WC block inner borders / box shadows */
.wc-block-cart__sidebar,
.wc-block-components-order-summary,
.wc-block-checkout__sidebar > * {
  box-shadow: none !important;
  border: 0 !important;
}

/* WC Block: apply body font to text elements only (avoids overriding heading exceptions) */
.wc-block-cart p, .wc-block-cart span, .wc-block-cart label, .wc-block-cart input,
.wc-block-cart select, .wc-block-cart textarea, .wc-block-cart button,
.wc-block-cart a, .wc-block-cart li, .wc-block-cart td, .wc-block-cart th,
.wc-block-checkout p, .wc-block-checkout span, .wc-block-checkout label, .wc-block-checkout input,
.wc-block-checkout select, .wc-block-checkout textarea, .wc-block-checkout button,
.wc-block-checkout a, .wc-block-checkout li, .wc-block-checkout td, .wc-block-checkout th {
  font-family: var(--font-body) !important;
}

/* Headings inside blocks use Lora */
.wc-block-cart h1, .wc-block-cart h2, .wc-block-cart h3,
.wc-block-checkout h1, .wc-block-checkout h2, .wc-block-checkout h3 {
  font-family: var(--font-head) !important;
}

/* Cart item price */
.wc-block-cart-items__row .wc-block-components-product-price {
  font-family: var(--font-body) !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
  color: var(--color-ink) !important;
}

/* Quantity stepper */
.wc-block-components-quantity-selector {
  border: 1px solid var(--color-ink-38) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.wc-block-components-quantity-selector__input {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--color-ink) !important;
  background: transparent !important;
  border: 0 !important;
  text-align: center;
}

.wc-block-components-quantity-selector__button {
  background: transparent !important;
  color: var(--color-ink) !important;
  border: 0 !important;
  font-size: 16px !important;
  width: 32px !important;
  transition: color var(--t-hover);
}

.wc-block-components-quantity-selector__button:hover {
  color: var(--color-bordeaux) !important;
}

/* Remove item button */
.wc-block-cart-item__remove-link {
  color: var(--color-ink-38) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: color var(--t-hover) !important;
  display: inline-block !important;
  margin-top: 8px !important;
}

.wc-block-cart-item__remove-link:hover {
  color: var(--color-bordeaux) !important;
}

/* Cart totals sidebar */
.wc-block-cart__totals-title {
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  font-size: 10px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--color-ink-60) !important;
  margin-bottom: var(--s3) !important;
  white-space: nowrap !important;
}

.wc-block-components-totals-item {
  font-family: var(--font-body) !important;
  border-top: 1px solid var(--color-ink-14) !important;
  padding: 16px 0 !important;
}

.wc-block-components-totals-item__label {
  font-size: 13px !important;
  font-weight: 300 !important;
  letter-spacing: 0.04em !important;
  color: var(--color-ink) !important;
}

.wc-block-components-totals-item__value {
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  color: var(--color-ink) !important;
}

.wc-block-components-totals-item.is-total {
  border-top: 1px solid var(--color-ink) !important;
}

.wc-block-components-totals-item.is-total .wc-block-components-totals-item__label,
.wc-block-components-totals-item.is-total .wc-block-components-totals-item__value {
  font-size: 15px !important;
  font-weight: 400 !important;
}

/* Coupon block */
.wc-block-components-totals-coupon__form,
.wc-block-components-totals-coupon {
  font-family: var(--font-body) !important;
}

.wc-block-components-totals-coupon-link {
  color: var(--color-ink-60) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: color var(--t-hover) !important;
}

.wc-block-components-totals-coupon-link:hover { color: var(--color-ink) !important; }

/* Proceed to checkout button */
.wc-block-cart__submit-button,
.wc-block-cart__submit .wc-block-components-checkout-button {
  display: block !important;
  width: 100% !important;
  background: var(--color-ink) !important;
  color: var(--color-bone) !important;
  border: 1px solid var(--color-ink) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-weight: 400 !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 17px 16px !important;
  cursor: pointer !important;
  transition: background var(--t-hover), border-color var(--t-hover) !important;
  margin-top: var(--s3) !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-cart__submit .wc-block-components-checkout-button:hover {
  background: var(--color-bordeaux) !important;
  border-color: var(--color-bordeaux) !important;
}

/* ==========================================================================
   WC BLOCKS — CHECKOUT PAGE
   ========================================================================== */

/* Main layout */
.wc-block-checkout {
  padding-top: var(--s4);
}

/* Step titles */
.wc-block-components-checkout-step__title,
.wp-block-woocommerce-checkout-fields-block h2,
.wc-block-checkout__contact-fields-title,
.wc-block-checkout__billing-fields-title {
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--color-ink) !important;
  margin-bottom: var(--s4) !important;
  padding-top: var(--s4) !important;
  border-top: 1px solid var(--color-ink-14) !important;
}

/* Group "Доставка/Самовывоз" toggle + "Адрес доставки" + "Параметры доставки"
   under the one "Доставка" heading (toggle's own title) — three same-weight
   step titles back to back read as a flat list, not a guided 1-2-3 flow. */
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-checkout-step__heading,
.wp-block-woocommerce-checkout-shipping-methods-block .wc-block-components-checkout-step__heading {
  display: none !important;
}

.wc-block-components-checkout-step__title:first-child,
.wc-block-checkout__contact-fields-title:first-child {
  border-top: 0 !important;
  padding-top: 0 !important;
}

/* Text inputs — line-bottom per brand system */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea {
  border: 0 !important;
  border-bottom: 1px solid var(--color-ink-38) !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-family: var(--font-body) !important;
  font-weight: 300 !important;
  font-size: 15px !important;
  color: var(--color-ink) !important;
  padding: 12px 0 !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color var(--t-hover) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus {
  border-color: var(--color-ink) !important;
  box-shadow: none !important;
}

/* Filled/active state — WC's own label CSS shrinks + moves the label to
   top:6px here (packages-style.css), which needs more top clearance than our
   flat 12px padding gives, otherwise the label overlaps the field's value */
.wc-block-components-text-input.is-active input,
.wc-block-components-text-input.is-active textarea,
.wc-block-components-text-input input:-webkit-autofill {
  padding: 22px 0 2px !important;
}

/* Доставка — порядок полей: Имя/Фамилия → Телефон → Страна → Индекс/Город → Область → Адрес.
   Поля 1 0 calc(50%-12px) от WC-ядра — сохраняем родную ширину, order лишь
   переставляет их в flex-потоке (одиночные 50%-поля растягиваются на всю
   строку сами за счёт flex-grow:1, ничего дополнительно задавать не нужно). */
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__first_name  { order: 1; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__last_name   { order: 2; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__phone        { order: 3; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-country-input              { order: 4; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__postcode     { order: 5; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__city         { order: 6; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__state        { order: 7; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__address_1    { order: 8; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__address_2-toggle       { order: 9; }
.wp-block-woocommerce-checkout-shipping-address-block .wc-block-components-address-form__address_2-hidden-input { order: 10; }

.wc-block-components-text-input label,
.wc-block-components-text-input .wc-block-components-form-step__description {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--color-ink-60) !important;
}

/* Select — line-bottom (WC Blocks uses custom wrapper + native select) */
.wc-block-components-select,
.wc-block-components-country-select,
.wc-block-components-state-input,
.wc-block-components-combobox {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--color-ink-38) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* WC uses .wc-block-components-form-step for each checkout section */
.wc-block-components-form-step {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-bottom: var(--s5) !important;
}

/* Guest notice and info texts */
.wc-block-checkout__guest-note,
.wc-block-checkout__login-prompt,
.wc-block-components-checkout-step__description {
  color: var(--color-ink-60) !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  letter-spacing: 0.04em !important;
}

.wc-block-checkout__guest-note a,
.wc-block-checkout__login-prompt a {
  color: var(--color-ink) !important;
  text-decoration: underline !important;
}

.wc-block-components-select select,
.wc-block-components-country-select select,
.wc-block-components-country-select__select,
.wc-block-components-state-input select {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-family: var(--font-body) !important;
  font-weight: 300 !important;
  font-size: 15px !important;
  color: var(--color-ink) !important;
  padding: 12px 0 !important;
  box-shadow: none !important;
  outline: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

/* WC custom select container (has its own border) */
.wc-block-components-select.wc-block-components-select {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--color-ink-38) !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Checkbox */
.wc-block-components-checkbox input[type="checkbox"],
.wc-block-checkout__checkbox input[type="checkbox"] {
  accent-color: var(--color-ink) !important;
  border-radius: 0 !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__label,
.wc-block-components-checkbox label {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  color: var(--color-ink-60) !important;
  letter-spacing: 0.04em !important;
}

/* Guest notice */
.wc-block-checkout__guest-note,
.wc-block-checkout__terms-and-conditions-checkbox-form p {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  color: var(--color-ink-60) !important;
  letter-spacing: 0.04em !important;
}

.wc-block-checkout__guest-note a,
.wc-block-checkout__terms-and-conditions-checkbox-form a {
  color: var(--color-ink) !important;
  text-decoration: underline !important;
}

/* Payment section */
.wc-block-components-payment-method-label,
.wc-block-components-radio-control__label {
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--color-ink) !important;
}

/* No payment methods message */
.wc-block-components-notices__notice,
.wc-block-checkout__no-payment-methods-notice {
  background: transparent !important;
  border: 1px solid var(--color-bordeaux) !important;
  border-radius: 0 !important;
  color: var(--color-bordeaux) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  padding: var(--s3) !important;
}

/* Shipping method toggle (Доставка / Самовывоз) — radius 0, palette colours */
.wc-block-checkout__shipping-method-option {
  border-radius: 0 !important;
  border: 1px solid var(--color-ink-14) !important;
  background: transparent !important;
  color: var(--color-ink) !important;
  transition: border-color var(--t-hover), background var(--t-hover) !important;
}

.wc-block-checkout__shipping-method-option--selected {
  border-color: var(--color-ink) !important;
  background: transparent !important;
}

.wc-block-checkout__shipping-method-option .wc-block-checkout__shipping-method-option-title {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

/* Newer WC Blocks select markup (wc-blocks- prefix) — line-bottom per system */
.wc-blocks-components-select__container {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--color-ink-38) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: auto !important;
}

.wc-blocks-components-select__select {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-weight: 300 !important;
  font-size: 15px !important;
  color: var(--color-ink) !important;
  padding: 16px 24px 0 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

.wc-blocks-components-select__label {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--color-ink-60) !important;
}

/* Error notice icon — bordeaux, not WP red */
.wc-block-components-notice-banner.is-error > svg {
  fill: var(--color-bordeaux) !important;
  background: transparent !important;
}

/* Place Order button */
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions .wc-block-components-button {
  display: block !important;
  width: 100% !important;
  background: var(--color-ink) !important;
  color: var(--color-bone) !important;
  border: 1px solid var(--color-ink) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 19px 40px !important;
  cursor: pointer !important;
  transition: background var(--t-hover), border-color var(--t-hover) !important;
}

.wc-block-components-checkout-place-order-button:hover,
.wc-block-checkout__actions .wc-block-components-button:hover {
  background: var(--color-bordeaux) !important;
  border-color: var(--color-bordeaux) !important;
}

/* Order summary (right panel) — :not() excludes the fixed, normally-invisible
   snackbar-toast container (a DOM child of the sidebar, but position:fixed —
   painting it full-bleed created a stray band pinned near the viewport bottom) */
.wc-block-checkout__sidebar .wc-block-components-order-summary,
.wc-block-checkout__sidebar > *:not(.wc-block-components-notice-snackbar-list) {
  background: var(--color-bone-2) !important;
  border-radius: 0 !important;
  padding: var(--s4) !important;
}

/* Correct class used by WC Blocks 10.x for the "Детали заказа" title */
.wc-block-components-checkout-order-summary__title,
.wc-block-components-order-summary__title {
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--color-ink) !important;
  margin: 0 0 var(--s3) !important;
  padding-bottom: var(--s2) !important;
  border-bottom: 1px solid var(--color-ink-14) !important;
}

/* Order summary product name — prevent uppercase wrapping */
.wc-block-components-order-summary-item__name,
.wc-block-components-order-summary-item h3 {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  color: var(--color-ink) !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
}

.wc-block-components-order-summary-item__name {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  color: var(--color-ink) !important;
}

.wc-block-components-order-summary-item__variation {
  font-size: 11px !important;
  font-weight: 300 !important;
  color: var(--color-ink-60) !important;
  letter-spacing: 0.04em !important;
}

.wc-block-components-order-summary-item__individual-price,
.wc-block-components-order-summary-item__total-price {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--color-ink) !important;
}

/* WC breaks the name mid-word in the narrow description column («ФУТБОЛК-А»):
   give the column the free flex space and forbid mid-word breaks on descendants */
.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary-item__description * {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.wc-block-components-order-summary-item__description {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* Unit price duplicates the total next to it — hide (qty is on the thumbnail badge) */
.wc-block-components-order-summary-item__individual-prices {
  display: none !important;
}

/* Order summary image */
.wc-block-components-order-summary-item__image img {
  border-radius: 0 !important;
  object-fit: cover !important;
}

/* Cart totals in checkout */
.wc-block-checkout__sidebar .wc-block-components-totals-item {
  font-family: var(--font-body) !important;
  border-top: 1px solid var(--color-ink-14) !important;
  padding: 14px 0 !important;
}

.wc-block-checkout__sidebar .wc-block-components-totals-item__label,
.wc-block-checkout__sidebar .wc-block-components-totals-item__value {
  font-size: 13px !important;
  color: var(--color-ink) !important;
  font-weight: 300 !important;
}

.wc-block-checkout__sidebar .wc-block-components-totals-item.is-total .wc-block-components-totals-item__label,
.wc-block-checkout__sidebar .wc-block-components-totals-item.is-total .wc-block-components-totals-item__value {
  font-size: 15px !important;
  font-weight: 400 !important;
  color: var(--color-ink) !important;
}

/* Spinner loading state */
.wc-block-checkout__spinner-overlay {
  background: color-mix(in srgb, var(--color-bone) 70%, transparent) !important;
}

/* Form step number badge (if shown) */
.wc-block-components-checkout-step__heading-number {
  background: var(--color-ink) !important;
  color: var(--color-bone) !important;
  border-radius: 999px !important;
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
}

/* Policy text at bottom */
.wc-block-checkout__privacy-policy,
.wc-block-checkout__terms-and-conditions {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  color: var(--color-ink-60) !important;
  font-weight: 300 !important;
  letter-spacing: 0.04em !important;
}

.wc-block-checkout__privacy-policy a,
.wc-block-checkout__terms-and-conditions a {
  color: var(--color-ink) !important;
}

/* ==========================================================================
   CART BLOCK — remove default WP borders/backgrounds
   ========================================================================== */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  --wp--style--block-gap: var(--s8);
}

/* sidebar-layout: controlled in pages.css */

/* Reset default WC block background/border on sidebar */
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}

/* Cart totals container */
.wc-block-cart__totals {
  background: var(--color-bone-2) !important;
  padding: var(--s4) !important;
  border-radius: 0 !important;
}

/* Column headers (ТОВАР / ИТОГО) */
.wc-block-cart-items__header {
  border-bottom: 1px solid var(--color-ink) !important;
  padding-bottom: 12px !important;
}

.wc-block-cart-items__header-column,
.wc-block-cart-items__header span {
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  font-size: 10px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--color-ink-60) !important;
}

/* Return to shop link */
.wc-block-cart__empty-cart__return-to-shop-link,
.return-to-shop a {
  color: var(--color-ink) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: color var(--t-hover) !important;
}

.wc-block-cart__empty-cart__return-to-shop-link:hover,
.return-to-shop a:hover {
  color: var(--color-bordeaux) !important;
}

/* ---------- Mobile responsive: cart + checkout ---------- */

@media (max-width: 600px) {
  /* Cart: hide ИТОГО column header (redundant on mobile — price shown inline) */
  .wc-block-cart-items__header .wc-block-cart-items__header-column:last-child {
    display: none !important;
  }

  /* Cart item row: price below product info, not hidden */
  .wc-block-cart-items__row {
    display: grid !important;
    grid-template-columns: 80px 1fr !important;
    gap: var(--s2) !important;
  }

  .wc-block-cart-items__row > .wc-block-cart-item__prices,
  .wc-block-cart-items__row > [class*="total"],
  .wc-block-cart-items__row > .wc-block-components-product-price:not([class*="product-info"]) {
    grid-column: 2;
    text-align: left !important;
    font-size: 13px !important;
  }

  /* Totals section: ensure full width on mobile */
  .wc-block-cart__sidebar,
  .wc-block-checkout__sidebar {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  /* Checkout: reduce top padding on mobile to avoid blank space */
  .page--checkout { padding-top: 0 !important; }
  .page--cart     { padding-top: 0 !important; }
}

@media (max-width: 480px) {
  /* PDP: single column (info below photos) */
  .pdp__main {
    grid-template-columns: 1fr;
    gap: var(--s3);
  }
  .pdp__info { position: static; }

  /* PDP size pills: smaller on narrow screens */
  .size {
    min-width: 44px;
    height: 40px;
    font-size: 12px;
  }
}
