/* =============================================
   INFORMATICA SHIVAX — WooCommerce
   ---------------------------------------------
   Estilos de tienda construidos SOBRE los design
   tokens del tema (variables :root de main.css).
   No redefine tokens ni toca el diseño existente:
   solo viste las clases de WooCommerce y del header
   de tienda para que se sientan nativas.
   ============================================= */

/* Accesibilidad: ocultar visualmente sin perder lectura por lector de pantalla.
   (El tema base solo define .skip-link; .screen-reader-text no tenía estilo.) */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- Tokens locales derivados (no sobrescriben nada) --- */
.woocommerce,
.shivax-shop,
.shivax-shop-tools {
  --shop-radius: 16px;
  --shop-border: #f1f5f9;
  --shop-muted: #6b7280;
  --shop-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
  --shop-primary: linear-gradient(to right, var(--primary-500), var(--primary-600));
  --shop-primary-hover: linear-gradient(to right, var(--primary-600), var(--primary-700));
}

/* =============================================
   HEADER: BUSCADOR + MINI-CART
   ============================================= */
.shivax-shop-tools {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Botones-icono del header heredan el color del nav (blanco → oscuro al hacer scroll) */
.shivax-search-toggle,
.shivax-cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 40px;
  height: 40px;
  border: none;
  background: none;
  border-radius: 12px;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.9);
  transition: background 0.3s, color 0.3s;
}
.shivax-search-toggle:hover,
.shivax-cart:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.site-header.scrolled .shivax-search-toggle,
.site-header.scrolled .shivax-cart { color: #374151; }
.site-header.scrolled .shivax-search-toggle:hover,
.site-header.scrolled .shivax-cart:hover { background: var(--primary-50); color: var(--primary-600); }
.shivax-search-toggle svg,
.shivax-cart svg { width: 20px; height: 20px; }

/* Contador del carrito */
.shivax-cart-count {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: linear-gradient(to right, #22c55e, #16a34a);
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  box-shadow: 0 2px 6px rgba(34, 197, 94, 0.4);
}
.shivax-cart-count[hidden] { display: none; }

/* Desplegable mini-cart */
.shivax-cart-wrap { position: relative; }
.shivax-cart-dropdown {
  position: absolute;
  top: calc(100% + 0.75rem);
  right: 0;
  width: 340px;
  max-width: calc(100vw - 2rem);
  background: #fff;
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
  padding: 1.25rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.25s, transform 0.25s, visibility 0.25s;
  z-index: 60;
}
.shivax-cart-wrap:hover .shivax-cart-dropdown,
.shivax-cart-wrap:focus-within .shivax-cart-dropdown,
.shivax-cart-wrap.open .shivax-cart-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Contenido del mini-cart de WooCommerce */
.shivax-cart-dropdown .woocommerce-mini-cart__empty-message {
  color: var(--shop-muted);
  font-size: 0.9375rem;
  text-align: center;
  padding: 1rem 0;
}
.shivax-cart-dropdown ul.cart_list {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  max-height: 320px;
  overflow-y: auto;
}
.shivax-cart-dropdown ul.cart_list li {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 0 0.75rem 2rem;
  border-bottom: 1px solid var(--shop-border);
  font-size: 0.875rem;
  line-height: 1.4;
}
.shivax-cart-dropdown ul.cart_list li a:not(.remove) { color: var(--navy-900); font-weight: 600; }
.shivax-cart-dropdown ul.cart_list li a:not(.remove):hover { color: var(--primary-600); }
.shivax-cart-dropdown ul.cart_list li img {
  width: 48px !important;
  height: 48px;
  object-fit: cover;
  border-radius: 8px;
  order: 2;
  margin: 0 !important;
  float: none !important;
}
.shivax-cart-dropdown ul.cart_list li .quantity { color: var(--shop-muted); font-size: 0.8125rem; }
.shivax-cart-dropdown a.remove {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  border-radius: 50%;
  background: #fef2f2 !important;
  color: #dc2626 !important;
  font-size: 0;
}
.shivax-cart-dropdown a.remove::before { content: "×"; font-size: 14px; font-weight: 700; }
.shivax-cart-dropdown .woocommerce-mini-cart__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0 0 1rem;
  padding-top: 0.25rem;
  font-family: var(--font-display);
  color: var(--navy-900);
}
.shivax-cart-dropdown .woocommerce-mini-cart__total strong { font-weight: 600; }
.shivax-cart-dropdown .woocommerce-mini-cart__total .amount { font-weight: 700; color: var(--primary-600); }
.shivax-cart-dropdown .woocommerce-mini-cart__buttons {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin: 0;
}
.shivax-cart-dropdown .woocommerce-mini-cart__buttons .button { width: 100%; margin: 0; }

/* Panel de búsqueda */
.shivax-search-panel {
  position: absolute;
  top: 100%;
  right: 1.5rem;
  margin-top: 0.5rem;
  width: 360px;
  max-width: calc(100vw - 2rem);
  background: #fff;
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
  padding: 1rem;
  z-index: 60;
}
.shivax-search-panel[hidden] { display: none; }
.shivax-product-search { display: flex; gap: 0.5rem; }
.shivax-ps-field {
  flex: 1;
  min-width: 0;
  padding: 0.625rem 0.875rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  color: var(--navy-900);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.shivax-ps-field:focus {
  outline: none;
  border-color: var(--primary-400);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}
.shivax-ps-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  flex-shrink: 0;
  border: none;
  border-radius: 10px;
  background: var(--shop-primary);
  color: #fff;
  cursor: pointer;
  transition: background 0.3s;
}
.shivax-ps-submit:hover { background: var(--shop-primary-hover); }
.shivax-ps-submit svg { width: 18px; height: 18px; }

/* =============================================
   WRAPPER GENERAL DE TIENDA
   ============================================= */
.shivax-shop {
  padding: 8rem 1.5rem 5rem;
  background: linear-gradient(to bottom, #f9fafb, #fff);
  min-height: 60vh;
}
.shivax-shop .container { max-width: 1280px; }

.woocommerce-products-header,
.shivax-shop .page-title,
.woocommerce-products-header__title,
.shivax-shop h1.entry-title,
.product_title {
  font-family: var(--font-display);
  color: var(--navy-900);
  line-height: 1.1;
}
.woocommerce-products-header__title {
  font-size: clamp(1.875rem, 4vw, 3rem);
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.woocommerce-products-header {
  text-align: center;
  max-width: 48rem;
  margin: 0 auto 2.5rem;
}
.term-description,
.woocommerce-products-header .term-description { color: #4b5563; font-size: 1.0625rem; line-height: 1.75; }

/* =============================================
   BREADCRUMB
   ============================================= */
.shivax-breadcrumb,
.woocommerce-breadcrumb {
  max-width: 1280px;
  margin: 0 auto 1.5rem;
  font-size: 0.8125rem;
  color: var(--shop-muted);
  text-align: center;
}
.shivax-breadcrumb a,
.woocommerce-breadcrumb a { color: var(--primary-600); transition: color 0.2s; }
.shivax-breadcrumb a:hover,
.woocommerce-breadcrumb a:hover { color: var(--primary-700); }
.shivax-crumb-sep { margin: 0 0.5rem; color: #cbd5e1; }

/* =============================================
   FILTRO DE CATEGORÍAS (CHIPS)
   ============================================= */
.shivax-cat-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  max-width: 1280px;
  margin: 0 auto 2rem;
}
.shivax-cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1.1rem;
  border-radius: 999px;
  background: #f3f4f6;
  color: #374151;
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 600;
  transition: background 0.25s, color 0.25s, box-shadow 0.25s, transform 0.25s;
}
.shivax-cat-chip span {
  font-size: 0.75rem;
  opacity: 0.7;
  font-weight: 700;
}
.shivax-cat-chip:hover {
  background: var(--primary-50);
  color: var(--primary-600);
  transform: translateY(-1px);
}
.shivax-cat-chip.active {
  background: var(--shop-primary);
  color: #fff;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.25);
}
.shivax-cat-chip.active span { opacity: 0.85; }

/* =============================================
   NOTICES
   ============================================= */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews {
  list-style: none;
  border-radius: 12px;
  padding: 1rem 1.25rem;
  margin: 0 auto 1.5rem;
  max-width: 1280px;
  font-size: 0.9375rem;
  border: 1px solid;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.woocommerce-message { background: #f0fdf4; border-color: #bbf7d0; color: #15803d; }
.woocommerce-info { background: var(--primary-50); border-color: #c7d2fe; color: var(--primary-700); }
.woocommerce-error { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.woocommerce-message .button,
.woocommerce-info .button { margin-left: auto; }

/* =============================================
   ORDENAMIENTO / RESULT COUNT
   ============================================= */
.woocommerce-result-count { color: var(--shop-muted); font-size: 0.875rem; margin: 0 0 1.5rem; }
.woocommerce-ordering select,
.shivax-shop select.orderby {
  padding: 0.5rem 2rem 0.5rem 0.875rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  font-family: var(--font-sans);
  font-size: 0.875rem;
  color: var(--navy-900);
  cursor: pointer;
}

/* =============================================
   GRID DE PRODUCTOS (catálogo)
   ============================================= */
.woocommerce ul.products,
.shivax-shop ul.products {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 640px) {
  .woocommerce ul.products,
  .shivax-shop ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .woocommerce ul.products,
  .shivax-shop ul.products,
  .woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
  .woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
}

/* Tarjeta de producto = lenguaje de .service-card */
.woocommerce ul.products li.product {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  padding: 1.25rem;
  margin: 0 !important;
  width: auto !important;
  float: none !important;
  transition: box-shadow 0.4s, transform 0.4s;
}
.woocommerce ul.products li.product:hover {
  box-shadow: var(--shop-shadow);
  transform: translateY(-4px);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; }
.woocommerce ul.products li.product img {
  border-radius: 12px;
  margin-bottom: 1rem;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
  background: #f8fafc;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-display);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--navy-900);
  padding: 0;
  margin: 0 0 0.5rem;
  line-height: 1.35;
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title { color: var(--primary-600); }
.woocommerce ul.products li.product .star-rating { margin: 0 0 0.5rem; font-size: 0.8rem; }
.woocommerce ul.products li.product .price {
  font-family: var(--font-display);
  color: var(--navy-900);
  font-weight: 700;
  font-size: 1.125rem;
  margin: 0 0 1rem;
  display: block;
}
.woocommerce ul.products li.product .price del { color: #9ca3af; font-weight: 400; font-size: 0.9rem; margin-right: 0.375rem; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .price .amount { color: var(--primary-600); }
/* Empuja el botón al pie de la tarjeta para alinear el grid */
.woocommerce ul.products li.product .button { margin-top: auto; }

/* Badge de oferta = lenguaje de .service-popular-badge */
.woocommerce span.onsale {
  position: absolute;
  top: 1rem;
  left: 1rem;
  min-height: auto;
  min-width: auto;
  margin: 0;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  background: linear-gradient(to right, #22c55e, #16a34a);
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.4;
  box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);
}

/* =============================================
   BOTONES (compartido)
   ============================================= */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.shivax-cart-dropdown .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  background: var(--shop-primary);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.2;
  border: none;
  border-radius: 12px;
  box-shadow: 0 4px 15px rgba(99, 102, 241, 0.25);
  cursor: pointer;
  transition: background 0.3s, box-shadow 0.3s, transform 0.3s;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.shivax-cart-dropdown .button:hover {
  background: var(--shop-primary-hover);
  box-shadow: 0 8px 20px rgba(99, 102, 241, 0.35);
  transform: translateY(-2px);
  color: #fff;
}
.woocommerce a.button.added::after { margin-left: 0.4rem; }

/* Botón secundario / “ver carrito” tras añadir */
.woocommerce a.button.wc-forward:not(.checkout-button),
.woocommerce .widget_shopping_cart .buttons a:first-child {
  background: #fff;
  color: var(--primary-700);
  border: 1px solid #e0e7ff;
  box-shadow: none;
}
.woocommerce a.button.wc-forward:not(.checkout-button):hover,
.woocommerce .widget_shopping_cart .buttons a:first-child:hover {
  background: var(--primary-50);
  color: var(--primary-700);
}

/* Botón deshabilitado */
.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled { opacity: 0.5; transform: none; box-shadow: none; cursor: not-allowed; }

/* =============================================
   PAGINACIÓN
   ============================================= */
.woocommerce nav.woocommerce-pagination { margin-top: 3rem; text-align: center; }
.woocommerce nav.woocommerce-pagination ul {
  display: inline-flex;
  gap: 0.5rem;
  border: none;
  padding: 0;
}
.woocommerce nav.woocommerce-pagination ul li { border: none; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 0.5rem;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
  font-weight: 600;
  transition: all 0.2s;
}
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--primary-50); color: var(--primary-600); border-color: #c7d2fe; }
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--shop-primary);
  color: #fff;
  border-color: transparent;
}

/* =============================================
   PRODUCTO INDIVIDUAL
   ============================================= */
.woocommerce div.product { display: grid; gap: 2.5rem; }
@media (min-width: 900px) {
  .woocommerce div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  .woocommerce div.product .woocommerce-product-gallery { grid-column: 1; }
  .woocommerce div.product .summary { grid-column: 2; margin: 0; }
  .woocommerce div.product .woocommerce-tabs,
  .woocommerce div.product .related,
  .woocommerce div.product .upsells { grid-column: 1 / -1; }
}
.woocommerce div.product .woocommerce-product-gallery { margin: 0; }
.woocommerce div.product .woocommerce-product-gallery__wrapper { border-radius: var(--shop-radius); overflow: hidden; }
.woocommerce div.product .woocommerce-product-gallery img { border-radius: var(--shop-radius); }
.woocommerce div.product .flex-control-thumbs { margin-top: 0.75rem; display: flex; gap: 0.5rem; padding: 0; }
.woocommerce div.product .flex-control-thumbs li { width: 72px; margin: 0; }
.woocommerce div.product .flex-control-thumbs img { border-radius: 8px; border: 1px solid var(--shop-border); }

.woocommerce div.product .product_title {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 700;
  margin-bottom: 0.75rem;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--font-display);
  color: var(--primary-600);
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.woocommerce div.product p.price del { color: #9ca3af; font-weight: 400; font-size: 1.25rem; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem; }
.woocommerce div.product .woocommerce-product-details__short-description {
  color: #4b5563;
  line-height: 1.75;
  margin-bottom: 1.5rem;
}
.woocommerce .star-rating { color: #facc15; }
.woocommerce .star-rating span::before { color: #facc15; }

/* Cantidad + añadir al carrito */
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-bottom: 1.5rem; }
.woocommerce .quantity { display: inline-flex; align-items: center; }
.woocommerce .quantity input.qty {
  width: 72px;
  height: 48px;
  padding: 0 0.5rem;
  text-align: center;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  font-family: var(--font-sans);
  font-size: 1rem;
  color: var(--navy-900);
}
.woocommerce div.product form.cart .button.single_add_to_cart_button {
  height: 48px;
  padding: 0 2rem;
  font-size: 1rem;
  font-weight: 700;
}
.woocommerce div.product .product_meta {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--shop-border);
  font-size: 0.8125rem;
  color: var(--shop-muted);
}
.woocommerce div.product .product_meta a { color: var(--primary-600); }
.woocommerce div.product .product_meta > span { display: block; margin-bottom: 0.25rem; }

/* Variaciones */
.woocommerce div.product form.cart .variations { width: 100%; border-collapse: collapse; margin-bottom: 0.5rem; }
.woocommerce div.product form.cart .variations td { padding: 0.375rem 0; }
.woocommerce div.product form.cart .variations select {
  padding: 0.625rem 0.875rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  font-family: var(--font-sans);
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0 0 1rem;
  margin: 0 0 1.5rem;
  border-bottom: 1px solid var(--shop-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: none;
  border-radius: 999px;
  background: #f3f4f6;
  padding: 0;
  margin: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0.5rem 1.25rem;
  color: #374151;
  font-weight: 600;
  font-size: 0.875rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--primary-600); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel {
  color: #374151;
  line-height: 1.8;
  padding: 0;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-family: var(--font-display);
  color: var(--navy-900);
  font-size: 1.375rem;
  margin-bottom: 1rem;
}

/* Reviews */
.woocommerce #reviews .comment-form-rating .stars a { color: #facc15; }
.woocommerce #reviews .commentlist li .comment-text {
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  padding: 1.25rem;
}

/* Encabezados de secciones (related / upsell / cross-sell) */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2,
.woocommerce section.related h2,
.woocommerce section.up-sells h2 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 700;
  color: var(--navy-900);
  margin: 3rem 0 1.5rem;
}

/* =============================================
   CARRITO
   ============================================= */
.woocommerce table.shop_table {
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: #fff;
}
.woocommerce table.shop_table th {
  font-family: var(--font-display);
  color: var(--navy-900);
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 1rem 1.25rem;
  background: #f9fafb;
  border-bottom: 1px solid var(--shop-border);
}
.woocommerce table.shop_table td {
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--shop-border);
  vertical-align: middle;
  color: #374151;
}
.woocommerce table.cart img { width: 64px; border-radius: 10px; }
.woocommerce a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fef2f2 !important;
  color: #dc2626 !important;
  font-size: 16px;
  line-height: 1;
}
.woocommerce a.remove:hover { background: #dc2626 !important; color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
.woocommerce .cart-collaterals { margin-top: 2rem; }
@media (min-width: 768px) {
  .woocommerce .cart-collaterals { display: flex; justify-content: flex-end; }
  .woocommerce .cart-collaterals .cart_totals { max-width: 420px; }
}
.woocommerce .cart_totals h2 {
  font-family: var(--font-display);
  color: var(--navy-900);
  font-size: 1.25rem;
  margin-bottom: 1rem;
}
.woocommerce .cart_totals .order-total .amount { color: var(--primary-600); font-weight: 700; }
.woocommerce .wc-proceed-to-checkout { padding-top: 1rem; }
.woocommerce .wc-proceed-to-checkout a.checkout-button {
  width: 100%;
  font-size: 1.0625rem;
  font-weight: 700;
  padding: 1rem;
}
/* Cupón */
.woocommerce .coupon { display: flex; gap: 0.5rem; }
.woocommerce form.woocommerce-cart-form { margin-bottom: 0; }
.woocommerce #coupon_code.input-text {
  width: auto;
  padding: 0.625rem 0.875rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
}
.woocommerce .actions .button { white-space: nowrap; }

/* Cross-sells */
.woocommerce .cross-sells { margin-top: 3rem; }

/* =============================================
   CHECKOUT
   ============================================= */
.woocommerce-checkout .col2-set,
.woocommerce-checkout #customer_details { margin-bottom: 2rem; }
@media (min-width: 900px) {
  .woocommerce-checkout #customer_details { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
  .woocommerce-checkout #customer_details .col-1,
  .woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
}
.woocommerce-checkout h3 {
  font-family: var(--font-display);
  color: var(--navy-900);
  font-size: 1.25rem;
  margin-bottom: 1rem;
}

/* Campos de formulario (compartido con Mi Cuenta) */
.woocommerce form .form-row { padding: 0; margin: 0 0 1rem; }
.woocommerce form .form-row label { display: block; margin-bottom: 0.375rem; font-size: 0.875rem; font-weight: 600; color: #374151; }
.woocommerce .required { color: #dc2626; border: none; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce-account form input.input-text {
  width: 100%;
  padding: 0.75rem 0.875rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  color: var(--navy-900);
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-account form input.input-text:focus {
  outline: none;
  border-color: var(--primary-400);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}
.woocommerce .select2-container--default .select2-selection--single {
  height: auto;
  display: flex;
  align-items: center;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }

/* Order review / pago */
.woocommerce-checkout #order_review {
  background: #fff;
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  padding: 1.5rem;
  box-shadow: var(--shop-shadow);
}
.woocommerce-checkout #order_review_heading {
  font-family: var(--font-display);
  color: var(--navy-900);
  font-size: 1.25rem;
  margin-bottom: 1rem;
}
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods {
  border: 1px solid var(--shop-border);
  border-radius: 12px;
  padding: 1rem;
  margin: 0 0 1rem;
  background: #f9fafb;
}
.woocommerce-checkout #payment div.payment_box {
  background: #fff;
  border-radius: 10px;
  font-size: 0.875rem;
  color: #4b5563;
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
.woocommerce-checkout #place_order {
  width: 100%;
  font-size: 1.0625rem;
  font-weight: 700;
  padding: 1rem;
  margin-top: 0.5rem;
}
@media (min-width: 900px) {
  .woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1fr; gap: 2rem; }
}

/* =============================================
   MI CUENTA
   ============================================= */
.woocommerce-account .woocommerce { max-width: 1080px; margin: 0 auto; }
@media (min-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: 260px; }
  .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
  .woocommerce-account .woocommerce-MyAccount-navigation + .woocommerce-MyAccount-content { }
  .woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { }
  .woocommerce-account div.woocommerce { display: grid; grid-template-columns: 260px 1fr; gap: 2.5rem; align-items: start; }
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.25rem; }
.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 0.75rem 1rem;
  border-radius: 12px;
  color: #374151;
  font-weight: 600;
  font-size: 0.9375rem;
  transition: all 0.2s;
}
.woocommerce-MyAccount-navigation ul li a:hover { background: var(--primary-50); color: var(--primary-600); }
.woocommerce-MyAccount-navigation ul li.is-active a { background: var(--shop-primary); color: #fff; }
.woocommerce-MyAccount-content { color: #374151; line-height: 1.75; }
.woocommerce-MyAccount-content a:not(.button) { color: var(--primary-600); }

/* Login / registro */
.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
.woocommerce .col2-set.u-columns { display: grid; gap: 2rem; }
@media (min-width: 768px) {
  .woocommerce-account:not(.logged-in) .woocommerce > .u-columns { grid-template-columns: 1fr 1fr; }
}
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password {
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  padding: 1.5rem;
  background: #fff;
}

/* =============================================
   GRACIAS / PEDIDO RECIBIDO
   ============================================= */
.woocommerce-order {
  max-width: 760px;
  margin: 0 auto;
}
.woocommerce-order .woocommerce-notice--success {
  text-align: center;
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: var(--navy-900);
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: var(--shop-radius);
  padding: 1.5rem;
  margin-bottom: 2rem;
}
.woocommerce-order ul.woocommerce-order-overview {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem;
  margin: 0 0 2rem;
  padding: 0;
  border: none;
}
.woocommerce-order ul.woocommerce-order-overview li {
  border: 1px solid var(--shop-border) !important;
  border-radius: 12px;
  padding: 1rem;
  text-align: center;
  font-size: 0.8125rem;
  color: var(--shop-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.woocommerce-order ul.woocommerce-order-overview li strong {
  display: block;
  margin-top: 0.375rem;
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--navy-900);
  text-transform: none;
  letter-spacing: 0;
}

/* =============================================
   RESPONSIVE / VARIOS
   ============================================= */
@media (max-width: 480px) {
  .shivax-shop { padding-top: 6.5rem; }
  .shivax-cart-dropdown,
  .shivax-search-panel { right: -0.5rem; }
}

/* Oculta el buscador nativo duplicado si un tema/plugin lo inyecta dentro del shop */
.shivax-shop .widget_product_search { max-width: 420px; margin: 0 auto 2rem; }

/* =============================================
   PUENTE LANDING ↔ TIENDA
   ---------------------------------------------
   Sección de productos destacados en la portada + botón reutilizable a la
   tienda (footer, servicios, destacados). Mismo lenguaje de botón primario.
   ============================================= */
.shivax-featured-grid { margin-top: 0.5rem; }
.shivax-featured-grid.woocommerce { padding: 0; }
/* La sección ya trae su propio contenedor centrado; evita doble ancho. */
.shivax-featured .woocommerce ul.products { margin: 0; }

.shivax-btn-shop {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1.75rem;
  background: var(--shop-primary);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 600;
  border-radius: 12px;
  box-shadow: 0 4px 15px rgba(99, 102, 241, 0.25);
  transition: background 0.3s, box-shadow 0.3s, transform 0.3s;
}
.shivax-btn-shop:hover {
  background: var(--shop-primary-hover);
  color: #fff;
  box-shadow: 0 8px 20px rgba(99, 102, 241, 0.35);
  transform: translateY(-2px);
}
.shivax-btn-shop:active { transform: translateY(0) scale(0.98); }
.shivax-btn-shop svg { transition: transform 0.3s; }
.shivax-btn-shop:hover svg { transform: translateX(3px); }

/* =============================================
   CAPA PREMIUM — MICROINTERACCIONES Y PULIDO
   ---------------------------------------------
   Todo aditivo, sobre los mismos tokens. No redefine el diseño existente.
   ============================================= */

/* --- Zoom suave de imagen en la tarjeta de producto --- */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
  overflow: hidden;
  border-radius: 12px;
  margin-bottom: 1rem;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img {
  margin-bottom: 0;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease;
}
.woocommerce ul.products li.product:hover a.woocommerce-LoopProduct-link img {
  transform: scale(1.06);
  filter: saturate(1.12) brightness(1.04);
}

/* --- Foco visible accesible en toda la tienda --- */
.woocommerce a:focus-visible,
.woocommerce button:focus-visible,
.woocommerce input:focus-visible,
.woocommerce select:focus-visible,
.shivax-shop-tools a:focus-visible,
.shivax-shop-tools button:focus-visible {
  outline: 3px solid var(--primary-300);
  outline-offset: 2px;
  border-radius: 8px;
}

/* --- Realimentación al pulsar botones --- */
.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce input.button:active { transform: translateY(0) scale(0.98); }

/* --- Estado «añadido» del botón (loop) --- */
.woocommerce ul.products li.product .button.loading { opacity: 0.75; pointer-events: none; }
.woocommerce ul.products li.product .button.added { background: linear-gradient(to right, #22c55e, #16a34a); }
.woocommerce a.added_to_cart {
  display: inline-flex;
  align-items: center;
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--primary-600);
}

/* --- Señales de confianza bajo el botón de compra --- */
.shivax-assurances {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 1rem 0 0;
  border-top: 1px solid var(--shop-border);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
}
.shivax-assurances li {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151;
}
.shivax-assurances svg { width: 18px; height: 18px; color: #16a34a; flex-shrink: 0; }

/* --- Estados vacíos elegantes (catálogo / búsqueda) --- */
.shivax-empty {
  grid-column: 1 / -1;
  text-align: center;
  max-width: 30rem;
  margin: 2rem auto;
  padding: 2.5rem 1.5rem;
}
.shivax-empty__icon {
  width: 56px; height: 56px;
  color: var(--primary-300);
  margin: 0 auto 1rem;
}
.shivax-empty__title {
  font-family: var(--font-display);
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--navy-900);
  margin: 0 0 0.5rem;
}
.shivax-empty__text { color: var(--shop-muted); margin: 0 0 1.5rem; line-height: 1.6; }
.shivax-empty-cart-cta { margin-top: 1.5rem; }

/* --- Botones de cantidad (+ / −) --- */
.woocommerce .quantity.shivax-qty-done {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.woocommerce .quantity.shivax-qty-done input.qty {
  width: 48px;
  height: 44px;
  border: none;
  border-left: 1px solid #e5e7eb;
  border-right: 1px solid #e5e7eb;
  border-radius: 0;
  -moz-appearance: textfield;
}
.woocommerce .quantity.shivax-qty-done input.qty::-webkit-outer-spin-button,
.woocommerce .quantity.shivax-qty-done input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.shivax-qty-btn {
  width: 40px;
  border: none;
  background: #f9fafb;
  color: var(--navy-900);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.shivax-qty-btn:hover { background: var(--primary-50); color: var(--primary-600); }
.shivax-qty-btn:active { background: var(--primary-100); }

/* --- Toast de confirmación «añadido al carrito» --- */
.shivax-toast {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 120;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  max-width: calc(100vw - 3rem);
  padding: 0.875rem 1.25rem;
  background: var(--navy-900);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: 14px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
  opacity: 0;
  transform: translateY(1rem) scale(0.96);
  visibility: hidden;
  transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
}
.shivax-toast.is-visible { opacity: 1; transform: none; visibility: visible; }
.shivax-toast svg {
  width: 20px; height: 20px;
  color: #fff;
  background: linear-gradient(to right, #22c55e, #16a34a);
  border-radius: 50%;
  padding: 3px;
  flex-shrink: 0;
}

/* =============================================
   WISHLIST (FAVORITOS)
   ============================================= */
/* Corazón del header */
.shivax-wishlist-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.9);
  transition: background 0.3s, color 0.3s;
}
.shivax-wishlist-link:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.site-header.scrolled .shivax-wishlist-link { color: #374151; }
.site-header.scrolled .shivax-wishlist-link:hover { background: var(--primary-50); color: var(--primary-600); }
.shivax-wishlist-link svg { width: 20px; height: 20px; }
.shivax-wishlist-count {
  position: absolute;
  top: 2px; right: 2px;
  min-width: 18px; height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: linear-gradient(to right, #f43f5e, #e11d48);
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  box-shadow: 0 2px 6px rgba(244, 63, 94, 0.4);
}
.shivax-wishlist-count[hidden] { display: none; }

/* Corazón sobre la tarjeta de producto */
.woocommerce ul.products li.product { }
.shivax-wish-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  border: none;
  background: none;
  cursor: pointer;
  color: #9ca3af;
  transition: color 0.25s, transform 0.25s, background 0.25s;
}
.woocommerce ul.products li.product .shivax-wish-btn {
  position: absolute;
  top: 1rem; right: 1rem;
  z-index: 2;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.shivax-wish-btn svg { width: 20px; height: 20px; transition: transform 0.25s; }
.shivax-wish-btn:hover { color: #f43f5e; transform: scale(1.08); }
.shivax-wish-btn.is-active { color: #f43f5e; }
.shivax-wish-btn.is-active svg { fill: #f43f5e; stroke: #f43f5e; }
.shivax-wish-btn.is-active svg { animation: shivax-heart-pop 0.35s ease; }
@keyframes shivax-heart-pop { 0% { transform: scale(0.7); } 60% { transform: scale(1.25); } 100% { transform: scale(1); } }

/* Botón texto en el producto individual */
.shivax-wish-btn--text {
  margin: 0.75rem 0 0;
  padding: 0.5rem 0;
  color: #6b7280;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 600;
}
.shivax-wish-btn--text:hover { color: #f43f5e; transform: none; }

/* =============================================
   VISTA RÁPIDA — botón sobre la tarjeta
   ============================================= */
.woocommerce ul.products li.product .shivax-qv-btn {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #374151;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.3s, transform 0.3s, background 0.3s, color 0.3s;
}
/* En la tarjeta solo el icono (el texto queda para accesibilidad). */
.woocommerce ul.products li.product .shivax-qv-btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.woocommerce ul.products li.product:hover .shivax-qv-btn { opacity: 1; transform: translateY(0); }
.shivax-qv-btn svg { width: 18px; height: 18px; }
.shivax-qv-btn:hover { background: var(--primary-600); color: #fff; }
@media (hover: none) { .woocommerce ul.products li.product .shivax-qv-btn { opacity: 1; transform: translateY(0); } }

/* Ajusta el enlace para que las posiciones absolutas se refieran a la tarjeta */
.woocommerce ul.products li.product { position: relative; }

/* =============================================
   VISTA RÁPIDA — modal
   ============================================= */
.shivax-qv-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.shivax-qv-modal[hidden] { display: none; }
.shivax-qv-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(3px);
  animation: shivax-fade-in 0.25s ease;
}
.shivax-qv-dialog {
  position: relative;
  width: 100%;
  max-width: 860px;
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: var(--shop-radius);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.3);
  padding: 2rem;
  animation: shivax-pop-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes shivax-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes shivax-pop-in { from { opacity: 0; transform: translateY(16px) scale(0.98); } to { opacity: 1; transform: none; } }
.shivax-qv-close {
  position: absolute;
  top: 0.875rem; right: 0.875rem;
  width: 38px; height: 38px;
  display: inline-flex; align-items: center; justify-content: center;
  border: none; border-radius: 50%;
  background: #f3f4f6; color: #374151;
  cursor: pointer; transition: background 0.2s, color 0.2s;
}
.shivax-qv-close:hover { background: #fee2e2; color: #dc2626; }
.shivax-qv-close svg { width: 20px; height: 20px; }
.shivax-qv-grid { display: grid; gap: 1.5rem; }
@media (min-width: 700px) { .shivax-qv-grid { grid-template-columns: 1fr 1fr; align-items: start; } }
.shivax-qv-media img { border-radius: 12px; width: 100%; }
.shivax-qv-name { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--navy-900); margin: 0 0 0.5rem; }
.shivax-qv-price { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--primary-600); margin: 0.5rem 0; }
.shivax-qv-price del { color: #9ca3af; font-weight: 400; font-size: 1.1rem; }
.shivax-qv-price ins { text-decoration: none; }
.shivax-qv-desc { color: #4b5563; line-height: 1.7; margin-bottom: 1.25rem; }
.shivax-qv-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.shivax-qv-details { background: #fff !important; color: var(--primary-700) !important; border: 1px solid #e0e7ff !important; box-shadow: none !important; }
.shivax-qv-spinner {
  width: 40px; height: 40px; margin: 3rem auto;
  border: 3px solid var(--primary-100);
  border-top-color: var(--primary-600);
  border-radius: 50%;
  animation: shivax-spin 0.7s linear infinite;
}

/* =============================================
   BARRA STICKY DE COMPRA
   ============================================= */
.shivax-sticky-atc {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 90;
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--shop-border);
  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.08);
  transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.shivax-sticky-atc.is-visible { transform: translateY(0); }
.shivax-sticky-atc[hidden] { display: block; } /* mantiene la transición; oculto por transform */
.shivax-sticky-atc__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1.5rem;
}
.shivax-sticky-atc__info { display: flex; align-items: center; gap: 0.875rem; min-width: 0; }
.shivax-sticky-atc__info img { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; }
.shivax-sticky-atc__meta { display: flex; flex-direction: column; min-width: 0; }
.shivax-sticky-atc__name {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--navy-900);
  font-size: 0.9375rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 42vw;
}
.shivax-sticky-atc__price { font-size: 0.875rem; color: var(--primary-600); font-weight: 700; }
.shivax-sticky-atc__price del { color: #9ca3af; font-weight: 400; margin-right: 0.25rem; }
.shivax-sticky-atc__price ins { text-decoration: none; }
.shivax-sticky-atc__action .button { margin: 0 !important; white-space: nowrap; }
@media (max-width: 560px) {
  .shivax-sticky-atc__info img { display: none; }
  .shivax-sticky-atc__name { max-width: 40vw; }
  .shivax-sticky-atc__inner { padding: 0.6rem 1rem; }
}

/* =============================================
   VISTOS RECIENTEMENTE
   ============================================= */
.shivax-recent { margin-top: 3rem; }
.shivax-recent[hidden] { display: none; }
.shivax-recent__title {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 700;
  color: var(--navy-900);
  margin: 0 0 1.5rem;
}

/* =============================================
   BÚSQUEDA EN VIVO
   ============================================= */
.shivax-live-results {
  margin-top: 0.75rem;
  border-top: 1px solid var(--shop-border);
  padding-top: 0.5rem;
  max-height: 340px;
  overflow-y: auto;
}
.shivax-live-results[hidden] { display: none; }
.shivax-live-loading,
.shivax-live-empty {
  padding: 0.75rem;
  text-align: center;
  color: var(--shop-muted);
  font-size: 0.875rem;
}
.shivax-live-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.5rem;
  border-radius: 10px;
  transition: background 0.2s;
}
.shivax-live-item:hover { background: var(--primary-50); }
.shivax-live-item img {
  width: 40px; height: 40px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
  background: #f8fafc;
}
.shivax-live-info { display: flex; flex-direction: column; min-width: 0; }
.shivax-live-title {
  font-weight: 600;
  color: var(--navy-900);
  font-size: 0.875rem;
  line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.shivax-live-price { font-size: 0.8125rem; color: var(--primary-600); font-weight: 700; }
.shivax-live-price del { color: #9ca3af; font-weight: 400; margin-right: 0.25rem; }

/* --- Mini-cart: estado de carga durante AJAX --- */
.shivax-cart-wrap.loading .shivax-cart { opacity: 0.6; }
.shivax-cart-wrap.loading .shivax-cart::after {
  content: '';
  position: absolute;
  inset: -2px;
  border: 2px solid transparent;
  border-top-color: var(--primary-500);
  border-radius: 50%;
  animation: shivax-spin 0.7s linear infinite;
}
@keyframes shivax-spin { to { transform: rotate(360deg); } }

/* --- Deep-link al carrito abierto (feedback) --- */
.shivax-cart-dropdown { transition: opacity 0.25s, transform 0.25s, visibility 0.25s; }

/* =============================================
   COBERTURA: CART / CHECKOUT EN BLOQUES (Woo 8+/10)
   ---------------------------------------------
   Los nuevos bloques usan otras clases; los vestimos con los mismos tokens
   para que coincidan con el carrito/checkout clásico y el resto del sitio.
   ============================================= */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { font-family: var(--font-sans); color: #374151; }

.wc-block-components-title,
.wp-block-woocommerce-cart h1,
.wp-block-woocommerce-checkout h1,
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title {
  font-family: var(--font-display) !important;
  color: var(--navy-900) !important;
}

/* Botones de bloque = botón del tema */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  background: var(--shop-primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  box-shadow: 0 4px 15px rgba(99, 102, 241, 0.25);
  transition: background 0.3s, box-shadow 0.3s, transform 0.3s;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background: var(--shop-primary-hover) !important;
  box-shadow: 0 8px 20px rgba(99, 102, 241, 0.35);
  transform: translateY(-2px);
}

/* Campos de formulario de bloque */
.wc-block-components-text-input input,
.wc-block-components-address-form input,
.wc-block-components-select select {
  border-radius: 10px !important;
  border: 1px solid #e5e7eb !important;
  font-family: var(--font-sans) !important;
}
.wc-block-components-text-input input:focus {
  border-color: var(--primary-400) !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15) !important;
}

/* Totales y precios de bloque con el acento del tema */
.wc-block-components-totals-item__value,
.wc-block-formatted-money-amount { font-family: var(--font-display); color: var(--navy-900); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--primary-600); }

/* Panel/tarjetas de bloque redondeados como el tema */
.wc-block-components-sidebar,
.wc-block-checkout__sidebar,
.wc-block-components-panel {
  border-radius: var(--shop-radius);
}

/* =============================================
   FIX GRID: quitar clearfix fantasma de WooCommerce
   ---------------------------------------------
   WooCommerce agrega ::before/::after (content:" "; display:table) como
   clearfix del layout flotante antiguo. Nuestro catalogo usa CSS grid, y
   ahi esos pseudo-elementos cuentan como CELDAS: empujan los productos una
   posicion y descuadran la grilla (2 arriba + 1 abajo torcido). Los
   neutralizamos: en grid no se necesita clearfix.
   ============================================= */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.shivax-shop ul.products::before,
.shivax-shop ul.products::after,
.shivax-featured ul.products::before,
.shivax-featured ul.products::after {
  content: none !important;
  display: none !important;
}
