/* La Cueva de Alibaba — propuesta estética.
   Cargar DESPUÉS de Blocksy y del CSS del tema hijo (0.9.45).
   Sin recursos externos. Los !important resuelven reglas ya importantes del hijo.
   No altera datos, monedas, carga de imágenes ni lógica de compra.
   Las clases cueva-variantes/elegida las crea el JS incluido en el HTML servido. */

/* 1. Base: superficies neutras, contraste y tipografía existente. */
:root {
  --cueva-amarillo: #ffc800;
  --cueva-tinta: #241d16;
  --cueva-secundario: #625c54;
  --cueva-fondo: #f6f6f3;
  --cueva-borde: #e3e2dc;
  --cueva-suave: #fff5cd;
}
body.home, body.tax-product_cat, body.single-product,
body.post-type-archive-product, body.search-results {
  background: var(--cueva-fondo);
  color: var(--cueva-tinta);
  font-family: "Open Sans", system-ui, sans-serif;
}
.home #main, .tax-product_cat #main, .single-product #main,
.post-type-archive-product #main, .search-results #main {
  background: var(--cueva-fondo);
}
.products a:focus-visible, .cueva-cats a:focus-visible,
.cueva-vertodo:focus-visible, .cueva-barra :focus-visible,
.cueva-arriba :focus-visible, .cueva-pc :focus-visible,
.single-product .summary :focus-visible,
.single-product .woocommerce-tabs a:focus-visible {
  outline: 2px solid #755600 !important;
  outline-offset: 3px;
}

/* 2. Cabeceras: conservar marca y disposición; afinar superficies y controles. */
.cueva-buscar {
  background: #f2f3f3;
  border: 1px solid #dedfdc;
  border-radius: 12px;
}
.cueva-buscar:focus-within {
  border-color: #917000;
  box-shadow: 0 0 0 2px var(--cueva-suave);
}
.cueva-buscar input[type="search"] { color: var(--cueva-tinta); }
.cueva-buscar input[type="search"]::placeholder { color: #686761; opacity: 1; }
.cueva-buscar button, .cueva-ubicacion-arriba { flex-shrink: 0; }
@media (min-width: 1000px) {
  .cueva-pc { background: #17110c; gap: 12px; }
  .cueva-pc-buscar { height: 44px; border-radius: 9px; }
  .cueva-pc-buscar select { background: #f1efe9; color: var(--cueva-tinta); }
  .cueva-pc-buscar button { background: var(--cueva-amarillo); }
  .cueva-pc-bloque { min-height: 44px; border-radius: 7px; }
  #header [data-device="desktop"] [data-row*="bottom"] {
    background: #2b2218 !important;
  }
  #header [data-device="desktop"] .header-menu-1 > ul > li > .ct-menu-link {
    min-height: 40px;
    border-radius: 6px;
  }
  #header [data-device="desktop"] .header-menu-1 > ul > li > .ct-menu-link:hover {
    background: #423629;
    border-color: transparent;
  }
}
@media (max-width: 999px) {
  .cueva-franja {
    background: var(--cueva-suave);
    color: #493b12;
    font-size: 12px;
    line-height: 1.4;
    padding: 5px 10px;
  }
  .cueva-barra {
    box-sizing: border-box;
    height: calc(60px + env(safe-area-inset-bottom, 0px));
    padding-bottom: env(safe-area-inset-bottom, 0px);
    border-color: var(--cueva-borde);
    box-shadow: 0 -2px 8px rgb(36 29 22 / 5%);
  }
  .cueva-barra a, .cueva-barra button { min-height: 44px; color: #5f5a53; }
  .cueva-barra a.activo { color: var(--cueva-tinta) !important; }
  .cueva-barra a.activo svg { background: var(--cueva-amarillo); }
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
}

/* 3. Portada y categoría: menos aire vacío, títulos proporcionados. */
.cueva-cat-aro {
  background: #e7c856;
  padding: 2px;
  box-shadow: none;
}
.cueva-cats a { font-weight: 600; color: var(--cueva-tinta) !important; }
.cueva-cats a .cueva-cat-foto { background: #faf9f4; border-width: 2px; }
.cueva-cats a:hover .cueva-cat-aro { background: var(--cueva-amarillo); }
.cueva-titulo { align-items: center; margin-bottom: 10px !important; }
.cueva-titulo h2 { color: var(--cueva-tinta); font-weight: 800 !important; }
.cueva-vertodo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 7px 12px;
  box-sizing: border-box;
  background: var(--cueva-suave);
  border: 1px solid #e4cd7a;
  border-radius: 9px;
}
.tax-product_cat .hero-section {
  width: 100%;
  margin: 0 0 16px !important;
  padding: 18px 0 12px !important;
  border-bottom: 1px solid var(--cueva-borde);
}
.tax-product_cat .hero-section .entry-header { margin: 0; padding: 0; }
.tax-product_cat .hero-section .page-title {
  margin: 0;
  color: var(--cueva-tinta);
  font-size: clamp(24px, 2.6vw, 36px) !important;
  line-height: 1.2 !important;
  font-weight: 800;
  letter-spacing: -.025em;
}
.tax-product_cat .woo-listing-top { margin: 0 0 14px; gap: 12px; }
.tax-product_cat .woocommerce-result-count {
  color: var(--cueva-secundario);
  font-size: 12px;
  text-transform: none;
  letter-spacing: 0;
}
.tax-product_cat .woocommerce-ordering select {
  min-height: 42px;
  background-color: #fff;
  border: 1px solid var(--cueva-borde);
  border-radius: 8px;
  color: var(--cueva-tinta);
}
.tax-product_cat .ct-pagination { margin-top: 24px; }
.tax-product_cat .ct-pagination a {
  min-height: 42px;
  border-radius: 8px;
  color: var(--cueva-tinta);
  background: #fff;
}
@media (max-width: 999px) {
  .home .entry-content > .wp-block-group {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .tax-product_cat #main > .ct-container,
  .post-type-archive-product #main > .ct-container {
    width: calc(100% - 32px) !important;
  }
  .tax-product_cat .hero-section {
    padding: 12px 0 !important;
    margin-bottom: 12px !important;
  }
  /* El tema ya oculta el contenido de esta fila en móvil, pero deja su margen. */
  .tax-product_cat .woo-listing-top:has(.woocommerce-ordering) {
    min-height: 0;
    margin-bottom: 0;
  }
  .cueva-cats-bloque + .wp-block-group { padding-top: 6px !important; }
  .cueva-titulo h2 { font-size: 21px !important; }
  .cueva-catalogo .woo-listing-top { margin: 0; min-height: 0; }
}

/* 4. Rejilla: fotos completas sin teñir y nombres en dos líneas.
   El marco algo menos alto compensa la segunda línea y los botones de 40 px.
   No se intenta borrar el césped ni los fondos impresos: solo unificar el marco. */
.products { gap: 12px !important; --grid-columns-gap: 12px; }
.products .product {
  min-width: 0;
  margin: 0 !important;
  padding: 7px !important;
  background: #fff !important;
  border: 1px solid var(--cueva-borde);
  border-radius: 12px !important;
  box-shadow: 0 1px 2px rgb(36 29 22 / 3%) !important;
}
.products .product figure { margin: 0 0 5px !important; }
.products .product .ct-media-container {
  background: #fff !important;
  border: 0;
  border-radius: 8px;
  padding: 0 !important;
}
.products .product .ct-media-container img.wp-post-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / .88 !important;
  object-fit: contain;
  object-position: center;
  background: #fff !important;
  mix-blend-mode: normal;
}
.products .product .woocommerce-loop-product__title {
  margin: 0 0 3px !important;
  padding: 0 2px;
  height: 38px;
  font-size: 14px !important;
  line-height: 19px !important;
  white-space: normal;
}
.products .product .woocommerce-loop-product__title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  white-space: normal;
  overflow-wrap: anywhere;
  color: var(--cueva-tinta);
  font-size: 14px !important;
  line-height: 19px !important;
  font-weight: 600;
}
.products .product .price {
  margin: 0 0 6px !important;
  color: var(--cueva-tinta);
  font-size: 16px !important;
  line-height: 23px;
  font-weight: 800 !important;
  font-variant-numeric: tabular-nums;
}
.products .product .precio-usd, .single-product .summary .precio-usd {
  color: #15803d;
  font-weight: 800;
}
.products .product.featured .ct-media-container::before,
.products .product.cueva-nuevo .ct-media-container::after {
  top: 6px;
  padding: 4px 6px;
  font-size: 9px;
  line-height: 13px;
  font-weight: 800;
  letter-spacing: .15px;
  border-radius: 5px;
}
.products .product.featured .ct-media-container::before {
  left: 6px;
  background: var(--cueva-amarillo);
  color: #241d16;
}
.products .product.cueva-nuevo .ct-media-container::after {
  right: 6px;
  background: #15763b;
  color: #fff;
}
/* Si coinciden ambas insignias, ninguna tapa a la otra. */
.products .product.featured.cueva-nuevo .ct-media-container::after { top: 31px; }
.products .product .ct-woo-card-actions .button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 40px !important;
  height: auto !important;
  line-height: 20px !important;
  padding: 9px 6px 9px 32px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  /* Conservar el SVG y su posición definidos por el tema hijo. */
  background-color: var(--cueva-amarillo) !important;
  color: var(--cueva-tinta) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  white-space: normal;
}
.products .product .ct-woo-card-actions .button.product_type_variable {
  padding: 9px 6px !important;
  background: var(--cueva-suave) !important;
  border-color: #e4cd7a !important;
}
/* Mantener legible el texto de confirmación/error que actualiza functions.php. */
.products .product .ct-woo-card-actions .button.added,
.products .product .ct-woo-card-actions .button.cueva-hecho {
  display: flex !important;
  padding: 9px 6px !important;
  font-size: 14px !important;
  background: #eaf5ed !important;
  border-color: #9cc5a7 !important;
  color: #14532d !important;
}
.products .product .ct-woo-card-actions .added_to_cart {
  display: block !important;
  padding: 10px 3px;
  min-height: 40px;
  color: #604900;
  font-size: 13px;
  text-align: center;
  text-decoration: underline;
}
@media (max-width: 689px) {
  .products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .products .product .ct-media-container img.wp-post-image { aspect-ratio: 1 / 1 !important; }
}
@media (hover: hover) and (pointer: fine) {
  .products .product:hover { border-color: #bdb6a8; }
  .products .product .woocommerce-loop-product__title a:hover { text-decoration: underline; }
  .products .product .ct-woo-card-actions .button:hover,
  .single-product .single_add_to_cart_button:hover { background-color: #edba00 !important; }
}

/* 5. Ficha: imagen contenida, resumen compacto y controles coherentes.
   Solo se dimensionan las imágenes de las diapositivas, nunca el carril flexy:
   Blocksy conserva desplazamiento, zoom, miniaturas y sustitución por variante. */
.single-product .ct-breadcrumbs { color: var(--cueva-secundario); }
.single-product .ct-breadcrumbs a { color: #735700; }
.single-product .woocommerce-product-gallery {
  --cueva-alto-foto: clamp(340px, 36vw, 490px);
  --thumbs-width: 60px;
}
.single-product .woocommerce-product-gallery .flexy-item .ct-media-container {
  background: #fff;
  border: 1px solid var(--cueva-borde);
  border-radius: 12px;
  overflow: hidden;
}
/* Solo la foto de la diapositiva: NO la copia grande de la lupa (img.zoomImg), que salía
   estirada y descolocada al pasar el ratón (18/09/2026). La lupa además se quitó (functions.php). */
.single-product .woocommerce-product-gallery .flexy-item .ct-media-container > img:not(.zoomImg) {
  width: 100%;
  height: var(--cueva-alto-foto) !important;
  aspect-ratio: auto !important;
  object-fit: contain;
  background: #fff;
}
.single-product .flexy-pills { margin-top: 8px; }
.single-product .flexy-pills .ct-media-container {
  background: #fff;
  border-radius: 7px;
  border: 1px solid var(--cueva-borde);
}
.single-product .flexy-pills .active .ct-media-container { border-color: #947100; }
.single-product .flexy-pills img { object-fit: contain; }
.single-product .flexy-arrow-prev, .single-product .flexy-arrow-next,
.single-product .woocommerce-product-gallery__trigger {
  min-width: 40px;
  min-height: 40px;
  background: #fff;
  color: var(--cueva-tinta);
  border: 1px solid var(--cueva-borde);
  box-shadow: 0 1px 4px rgb(36 29 22 / 6%);
}
.single-product .summary {
  align-self: start;
  min-width: 0;
  padding: 20px;
  background: #fff;
  border: 1px solid var(--cueva-borde);
  border-radius: 12px;
}
.single-product .summary > * { margin-bottom: 12px !important; }
.single-product .summary .product_title {
  color: var(--cueva-tinta);
  font-size: clamp(23px, 2.2vw, 30px) !important;
  line-height: 1.25 !important;
  letter-spacing: -.02em;
  margin-bottom: 8px !important;
}
.single-product .summary .price {
  color: var(--cueva-tinta);
  font-size: 23px;
  font-weight: 800;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
}
.single-product .ct-product-divider { margin: 2px 0 14px !important; background: var(--cueva-borde); }
.single-product .summary .ct-product-add-to-cart { margin-bottom: 8px !important; }
.single-product .summary form.cart { margin-top: 0; margin-bottom: 0; }
.cueva-variantes-rotulo { color: var(--cueva-secundario); font-size: 14px; }
.cueva-variantes-lista button {
  min-height: 44px;
  padding: 9px 14px;
  border-radius: 8px;
  border-color: #d5d1c8;
}
.cueva-variantes-lista button.elegida {
  background: var(--cueva-suave);
  border-color: #9b7600;
  color: var(--cueva-tinta);
}
.single-product .summary .stock { font-size: 14px; margin: 8px 0 12px; }
.single-product .summary .stock.in-stock { color: #216536; }
.single-product .summary .quantity {
  --quantity-height: 44px;
  --quantity-width: 120px;
  min-height: 44px;
  border-color: #c9c3b8;
  border-radius: 8px;
}
.single-product .summary .quantity input.qty {
  height: 44px;
  color: var(--cueva-tinta);
  font-size: 16px;
  border-color: #c9c3b8;
  border-radius: 8px;
}
.single-product .summary .quantity .ct-increase,
.single-product .summary .quantity .ct-decrease {
  top: 0;
  bottom: 0;
  height: 44px;
  min-width: 40px;
  min-height: 44px;
  transform: none;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cueva-tinta);
}
.single-product .summary .single_add_to_cart_button {
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: var(--cueva-amarillo);
  color: var(--cueva-tinta);
  font-size: 15px;
  line-height: 22px;
  font-weight: 700;
}
.single-product .summary .single_add_to_cart_button:disabled,
.cueva-variantes-lista button:disabled { opacity: .5; cursor: not-allowed; }
.single-product .summary .woocommerce-product-details__short-description {
  color: var(--cueva-secundario);
  font-size: 15px;
  line-height: 1.6;
}
.single-product .summary .woocommerce-product-details__short-description p { margin-bottom: 0; }
.single-product .summary .product_meta { color: var(--cueva-secundario); font-size: 12px; }

/* 6. Descripción: lectura cómoda y pestañas reconocibles, sin ocultar paneles. */
.single-product .woocommerce-tabs { padding-top: 24px !important; }
.single-product .woocommerce-tabs .tabs {
  gap: 0;
  margin-bottom: 20px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--cueva-borde);
  border-radius: 0;
}
.single-product .woocommerce-tabs .tabs li a {
  min-height: 44px;
  padding: 12px 16px;
  color: var(--cueva-secundario);
  font-size: 13px;
  font-weight: 600;
  text-transform: none;
  line-height: 20px;
}
.single-product .woocommerce-tabs .tabs li.active a { background: var(--cueva-suave); }
.single-product .woocommerce-Tabs-panel {
  color: #49443d;
  font-size: 16px;
  line-height: 1.7;
}
.single-product .woocommerce-Tabs-panel p { margin-bottom: 18px; }
@media (max-width: 999px) {
  .single-product .woocommerce-product-gallery { --cueva-alto-foto: clamp(240px, 72vw, 330px); }
  .single-product .summary { padding: 14px; }
  .single-product .summary .product_title { font-size: 22px !important; }
  .single-product .summary .price { font-size: 22px; }
  .single-product .woocommerce-tabs .tabs li a { padding: 11px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .products .product, .products .product .button { transition: none !important; }
}

/* ---------------------------------------------------------------------------
   EL TEXTO DE LA CATEGORÍA TAMBIÉN EN EL TELÉFONO (19/09/2026, trabajo de SEO).
   Blocksy le pone `ct-hidden-sm` a la descripción de la categoría y la esconde en
   pantallas chicas. Google mira la versión de TELÉFONO para decidir de qué trata
   una página, así que escondido ahí cuenta menos. Se enseña, pero recortado a tres
   líneas para no empujar los productos hacia abajo: el texto entero sigue en el
   código, que es lo que lee el buscador.
--------------------------------------------------------------------------- */
@media (max-width: 689px) {
  .page-description.ct-hidden-sm {
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 10px;
    color: #6b635a;
    font-size: 13px;
    line-height: 1.45;
  }
}
