/* =================================================================
   EJECUTORA.COM — WooCommerce & Elementor Store CSS
   Sistema Rutina que Vende™ | ejecutora.com

   Alineación nativa con el Design System de Ejecutora:
   - Paleta: --ej-cyan (#00C2CB), --ej-navy (#1A1F6E), --ej-violet (#7B5CF5)
   - Tipografía: Poppins (--font-display), Nunito Sans (--font-body), JetBrains Mono (--font-mono)
   - Radios: --radius-lg (24px) para tarjetas, --radius-xl (50px) para CTAs
   - Sombras: --shadow-sm, --shadow-md, --shadow-lg
   ================================================================= */


/* ─── 1. GRILLE & TARJETAS DE PRODUCTOS (CATÁLOGO / LOOP) ──────── */

.woocommerce ul.products,
.elementor-widget-wc-products ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
  align-items: stretch !important;
  gap: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
}

/* Contenedor de producto de altura completa y flex columna para empujar botones al fondo */
.woocommerce ul.products li.product,
.elementor-widget-wc-products ul.products li.product {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  position: relative;
}

/* Enlace/imagen/título flexible que absorbe todo el espacio vertical extra arriba del precio/botón */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.elementor-widget-wc-products ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  text-decoration: none !important;
  flex: 1 1 auto !important;
}

.woocommerce ul.products li.product img,
.elementor-widget-wc-products ul.products li.product img {
  border-radius: var(--radius-lg, 20px) !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 720 / 1040 !important;
  object-fit: contain !important;
  margin-bottom: 16px !important;
  background: transparent !important;
  box-shadow: 0 4px 20px rgba(26,31,110,0.06);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
}

.woocommerce ul.products li.product:hover img,
.elementor-widget-wc-products ul.products li.product:hover img {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 10px 30px rgba(26,31,110,0.12);
}

/* Título de producto en catálogo */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.elementor-widget-wc-products ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 16.5px !important;
  font-weight: 800 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  line-height: 1.35 !important;
  margin: 0 0 6px !important;
  letter-spacing: -0.01em !important;
  text-align: left !important;
}

/* Categoría en loop */
.woocommerce ul.products li.product .woocommerce-loop-category__title {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--ej-navy, #1A1F6E) !important;
}


/* ─── 2. PRECIOS Y BADGES (OFFERS / ON SALE) ───────────────────── */

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.elementor-widget-wc-products ul.products li.product .price {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  color: var(--ej-cyan-dark, #00A8B0) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  margin: 4px 0 16px !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
}

.woocommerce ul.products li.product .price del,
.woocommerce div.product p.price del {
  color: var(--ej-muted, #9898B0) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

.woocommerce ul.products li.product .price ins,
.woocommerce div.product p.price ins {
  text-decoration: none !important;
  color: var(--ej-cyan-dark, #00A8B0) !important;
  font-weight: 700 !important;
}

.woocommerce div.product p.price {
  font-size: 34px !important;
  margin: 18px 0 24px !important;
}

/* Badges de oferta (¡Oferta! / On Sale) */
.woocommerce span.onsale,
.elementor-widget-wc-products span.onsale {
  background: var(--ej-violet-light, #EDE8FF) !important;
  color: var(--ej-violet-deep, #5A3FD6) !important;
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  border-radius: 50px !important;
  padding: 6px 14px !important;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1 !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  position: absolute !important;
  top: 36px !important;
  right: 36px !important;
  left: auto !important;
  z-index: 9 !important;
  box-shadow: 0 4px 12px rgba(123,92,245,0.15) !important;
  border: 1px solid rgba(123,92,245,0.2) !important;
}

/* Estrellas y valoraciones */
.woocommerce .star-rating {
  color: var(--ej-violet, #7B5CF5) !important;
  font-size: 14px !important;
  margin: 4px 0 10px !important;
}

/* ─── CANDADO DE EXCLUSIVIDAD (#00C2CB) PARA PRODUCTOS NO ADQUIRIDOS ─────────────── */

/* Insignia circular HTML en el loop de WooCommerce (.ej-product-lock-badge) */
.woocommerce ul.products li.product .ej-product-lock-badge,
.elementor-widget-wc-products ul.products li.product .ej-product-lock-badge,
.elementor-widget-wc-archive-products ul.products li.product .ej-product-lock-badge,
.wc-block-grid__product .ej-product-lock-badge,
.wc-block-products-grid__product .ej-product-lock-badge {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  left: auto !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: #FFFFFF !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 4px 16px rgba(26, 31, 110, 0.15) !important;
  z-index: 15 !important;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease !important;
  pointer-events: none !important;
}

.woocommerce ul.products li.product:hover .ej-product-lock-badge,
.elementor-widget-wc-products ul.products li.product:hover .ej-product-lock-badge,
.elementor-widget-wc-archive-products ul.products li.product:hover .ej-product-lock-badge,
.wc-block-grid__product:hover .ej-product-lock-badge,
.wc-block-products-grid__product:hover .ej-product-lock-badge {
  transform: scale(1.1) !important;
  box-shadow: 0 6px 22px rgba(0, 194, 203, 0.3) !important;
}

.ej-product-lock-badge svg {
  width: 20px !important;
  height: 20px !important;
  stroke: var(--ej-cyan, #00C2CB) !important;
  display: block !important;
}

/* Fallback universal vía CSS por si una plantilla o bloque personalizado no ejecuta el action hook del título */
.ej-product-locked.product:not(:has(.ej-product-lock-badge))::after,
.ej-product-locked.wc-block-grid__product:not(:has(.ej-product-lock-badge)) .wc-block-grid__product-image::after,
.ej-product-locked.wc-block-products-grid__product:not(:has(.ej-product-lock-badge)) .wc-block-products-grid__product-image::after {
  content: "" !important;
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background-color: #FFFFFF !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='20' height='20' fill='none' stroke='%2300C2CB' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'%3E%3C/rect%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'%3E%3C/path%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 20px 20px !important;
  box-shadow: 0 4px 16px rgba(26, 31, 110, 0.15) !important;
  z-index: 15 !important;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease !important;
  pointer-events: none !important;
}

.ej-product-locked.product:hover::after,
.ej-product-locked.wc-block-grid__product:hover .wc-block-grid__product-image::after,
.ej-product-locked.wc-block-products-grid__product:hover .wc-block-products-grid__product-image::after {
  transform: scale(1.1) !important;
  box-shadow: 0 6px 22px rgba(0, 194, 203, 0.3) !important;
}

/* Si la tarjeta tiene un candado (ej-product-locked), y al mismo tiempo tiene etiqueta de oferta (onsale), mover la oferta a la izquierda para que no choquen */
.ej-product-locked span.onsale {
  top: 16px !important;
  right: auto !important;
  left: 16px !important;
}


/* ─── 3. BOTONES DE ACCIÓN (AÑADIR AL CARRITO / PAGAR) ─────────── */

/* Botones en las tarjetas del catálogo (Loop) alineados abajo uniformemente */
.woocommerce ul.products li.product .button,
.elementor-widget-wc-products ul.products li.product .button,
.woocommerce ul.products li.product a.added_to_cart {
  background: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-white, #FFFFFF) !important;
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-weight: 800 !important;
  font-size: 12.5px !important;
  border-radius: var(--radius-xl, 50px) !important;
  padding: 10px 22px !important;
  box-shadow: 0 4px 14px rgba(0,194,203,0.35) !important;
  transition: all 0.2s ease !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  border: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  text-decoration: none !important;
  margin-top: auto !important;
  align-self: flex-start !important;
  width: fit-content !important;
}

.woocommerce ul.products li.product .button img,
.elementor-widget-wc-products ul.products li.product .button img,
.woocommerce a.button img,
.woocommerce button.button img {
  width: 16px !important;
  height: 16px !important;
  display: inline-block !important;
  margin: 0 !important;
  object-fit: contain !important;
}

/* Botones en producto individual y formularios */
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  background: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-white, #FFFFFF) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  border-radius: var(--radius-xl, 50px) !important;
  padding: 14px 32px !important;
  box-shadow: 0 4px 16px rgba(0,194,203,0.35) !important;
  transition: all 0.2s ease !important;
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  border: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  text-decoration: none !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce div.product form.cart .button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.elementor-widget-wc-products ul.products li.product .button:hover {
  background: var(--ej-cyan-dark, #00A8B0) !important;
  color: var(--ej-white, #FFFFFF) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 22px rgba(0,194,203,0.45) !important;
  text-decoration: none !important;
}

/* Botón deshabilitado */
.woocommerce a.button.disabled,
.woocommerce button.button.disabled,
.woocommerce input.button.disabled {
  background: var(--ej-muted, #9898B0) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  transform: none !important;
}


/* ─── 3.B. BLOQUES DE GRILLA DE PRODUCTOS GUTENBERG/WOOCOMMERCE (.wc-block-grid / .wc-block-products-grid) ─────────── */

/* Contenedor general de la grilla de bloques (Ej. Nuevo en la tienda en carrito vacío) */
.wc-block-grid,
.wc-block-products-grid,
.wp-block-woocommerce-product-new,
.wp-block-woocommerce-product-best-sellers,
.wp-block-woocommerce-product-top-rated,
.wp-block-woocommerce-products-by-attribute,
.wp-block-woocommerce-handpicked-products {
  width: 100% !important;
  max-width: 1240px !important;
  margin: 28px auto 48px auto !important;
}

.wc-block-grid.has-4-columns .wc-block-grid__products,
.wc-block-products-grid.has-4-columns .wc-block-products-grid__products,
.wc-block-grid .wc-block-grid__products,
.wc-block-products-grid .wc-block-products-grid__products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  align-items: stretch !important;
}

@media (max-width: 1024px) {
  .wc-block-grid.has-4-columns .wc-block-grid__products,
  .wc-block-products-grid.has-4-columns .wc-block-products-grid__products,
  .wc-block-grid .wc-block-grid__products,
  .wc-block-products-grid .wc-block-products-grid__products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }
}

@media (max-width: 580px) {
  .wc-block-grid.has-4-columns .wc-block-grid__products,
  .wc-block-products-grid.has-4-columns .wc-block-products-grid__products,
  .wc-block-grid .wc-block-grid__products,
  .wc-block-products-grid .wc-block-products-grid__products {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

/* Tarjeta individual del bloque de producto e inactivación de flex: 1 0 25% y max-width: 25% nativos de WooCommerce */
.wc-block-grid.has-1-columns .wc-block-grid__product,
.wc-block-grid.has-2-columns .wc-block-grid__product,
.wc-block-grid.has-3-columns .wc-block-grid__product,
.wc-block-grid.has-4-columns .wc-block-grid__product,
.wc-block-grid.has-5-columns .wc-block-grid__product,
.wc-block-grid.has-6-columns .wc-block-grid__product,
.wc-block-products-grid.has-1-columns .wc-block-products-grid__product,
.wc-block-products-grid.has-2-columns .wc-block-products-grid__product,
.wc-block-products-grid.has-3-columns .wc-block-products-grid__product,
.wc-block-products-grid.has-4-columns .wc-block-products-grid__product,
.wc-block-products-grid.has-5-columns .wc-block-products-grid__product,
.wc-block-products-grid.has-6-columns .wc-block-products-grid__product,
.wc-block-grid__products .wc-block-grid__product,
.wc-block-products-grid__products .wc-block-products-grid__product {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  position: relative !important;
  box-sizing: border-box !important;
}

/* Enlace superior de imagen y título que absorbe espacio vertical extra */
.wc-block-grid__product-link,
.wc-block-products-grid__product-link {
  display: flex !important;
  flex-direction: column !important;
  text-decoration: none !important;
  flex: 1 1 auto !important;
}

/* Imagen del producto dentro del bloque */
.wc-block-grid__product-image img,
.wc-block-products-grid__product-image img {
  border-radius: var(--radius-lg, 20px) !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 720 / 1040 !important;
  object-fit: contain !important;
  margin-bottom: 16px !important;
  background: transparent !important;
  box-shadow: 0 4px 20px rgba(26, 31, 110, 0.06) !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease !important;
}

.wc-block-grid__product:hover .wc-block-grid__product-image img,
.wc-block-products-grid__product:hover .wc-block-products-grid__product-image img {
  transform: translateY(-4px) scale(1.02) !important;
  box-shadow: 0 10px 30px rgba(26, 31, 110, 0.12) !important;
}

/* Título de producto en el bloque de grilla */
.wc-block-grid__product-title,
.wc-block-products-grid__product-title {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 16.5px !important;
  font-weight: 800 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  line-height: 1.35 !important;
  margin: 0 0 6px !important;
  letter-spacing: -0.01em !important;
  text-align: left !important;
  text-decoration: none !important;
}

/* Precios en el bloque de grilla */
.wc-block-grid__product-price,
.wc-block-products-grid__product-price,
.wc-block-grid__product-price.price,
.wc-block-products-grid__product-price.price {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  color: var(--ej-cyan-dark, #00A8B0) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  margin: 4px 0 16px !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  text-align: left !important;
}

.wc-block-grid__product-price .woocommerce-Price-amount,
.wc-block-products-grid__product-price .woocommerce-Price-amount {
  color: var(--ej-cyan-dark, #00A8B0) !important;
  font-weight: 700 !important;
}

/* Botón de acción (Añadir al carrito / Seleccionar opciones) al pie del bloque */
.wc-block-grid__product-add-to-cart,
.wc-block-products-grid__product-add-to-cart {
  margin-top: auto !important;
  align-self: flex-start !important;
  width: fit-content !important;
}

.wc-block-grid__product .wp-block-button__link,
.wc-block-grid__product .add_to_cart_button,
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-products-grid__product .wp-block-button__link,
.wc-block-products-grid__product .add_to_cart_button,
.wc-block-products-grid__product-add-to-cart .wp-block-button__link {
  background: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-white, #FFFFFF) !important;
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-weight: 800 !important;
  font-size: 12.5px !important;
  border-radius: var(--radius-xl, 50px) !important;
  padding: 10px 22px !important;
  box-shadow: 0 4px 14px rgba(0, 194, 203, 0.35) !important;
  transition: all 0.2s ease !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  border: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  text-decoration: none !important;
  margin-top: auto !important;
  width: fit-content !important;
}

.wc-block-grid__product .wp-block-button__link:hover,
.wc-block-grid__product .add_to_cart_button:hover,
.wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.wc-block-products-grid__product .wp-block-button__link:hover,
.wc-block-products-grid__product .add_to_cart_button:hover,
.wc-block-products-grid__product-add-to-cart .wp-block-button__link:hover {
  background: var(--ej-cyan-dark, #00A8B0) !important;
  color: var(--ej-white, #FFFFFF) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 22px rgba(0, 194, 203, 0.45) !important;
  text-decoration: none !important;
}


/* ─── 4. PÁGINA DE PRODUCTO INDIVIDUAL (`SINGLE PRODUCT`) ──────── */


/* Espacio superior para compensar el menú y breadcrumbs */
.woocommerce-page.single-product .site-main,
.elementor-page.single-product .elementor-section-wrap > .elementor-section:first-child {
  padding-top: clamp(60px, 7vw, 110px) !important;
}

/* Miga de pan (Breadcrumb) situada sobre la imagen */
.woocommerce-page.single-product .woocommerce-breadcrumb,
.elementor-widget-woocommerce-breadcrumb {
  max-width: 1180px !important;
  margin: 0 auto 16px !important;
  padding: 0 40px !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--ej-secondary, #5A5A72) !important;
  line-height: 1.4 !important;
  display: block !important;
}

.woocommerce-breadcrumb a,
.elementor-widget-woocommerce-breadcrumb a {
  color: var(--ej-navy, #1A1F6E) !important;
  text-decoration: none !important;
  transition: color 0.2s !important;
}

.woocommerce-breadcrumb a:hover,
.elementor-widget-woocommerce-breadcrumb a:hover {
  color: var(--ej-cyan, #00C2CB) !important;
}

/* Grilla principal del producto individual (exclusivamente en páginas de producto o cuando tiene galería de imágenes) */
.single-product .woocommerce div.product,
.woocommerce div.product:has(div.images),
.woocommerce div.product:has(div.summary) {
  max-width: 1180px !important;
  margin: 16px auto 80px !important;
  padding: 0 40px !important;
  display: grid !important;
  grid-template-columns: 1.1fr 1fr !important;
  gap: 56px !important;
  align-items: start !important;
}

/* Protección de ancho completo de alta especificidad para archivos, categorías y plantillas de Elementor que llevan la clase .product en el contenedor superior */
body.woocommerce .elementor-location-archive.product,
body.woocommerce-page .elementor-location-archive.product,
body .elementor-location-archive.product,
body .elementor-location-archive,
body div[data-elementor-type="product-archive"],
.woocommerce .elementor-location-archive.product,
div[data-elementor-type="product-archive"] {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Si la miga de pan está dentro del contenedor div.product, se posiciona arriba de toda la columna de imagen */
.single-product .woocommerce div.product > .woocommerce-breadcrumb,
.woocommerce div.product:has(div.images) > .woocommerce-breadcrumb {
  grid-column: 1 / -1 !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
}

@media (max-width: 980px) {
  .single-product .woocommerce div.product,
  .woocommerce div.product:has(div.images),
  .woocommerce div.product:has(div.summary) {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
    padding: 0 24px !important;
    margin-top: 24px !important;
  }
  .woocommerce-page.single-product .woocommerce-breadcrumb,
  .elementor-widget-woocommerce-breadcrumb {
    padding: 0 24px !important;
  }
}

/* Galería del producto individual: sin color de fondo ni bordes en la caja exterior */
.woocommerce div.product div.images,
.woocommerce-product-gallery,
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery {
  background: transparent !important;
  border-radius: var(--radius-lg, 24px) !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
  width: 100% !important;
  position: relative !important;
}

/* Imagen principal: solo conserva la curvatura de las esquinas */
.woocommerce div.product div.images img,
.woocommerce-product-gallery img,
.elementor-widget-woocommerce-product-images img {
  background: transparent !important;
  border-radius: var(--radius-lg, 24px) !important;
  width: 100% !important;
  display: block !important;
  box-shadow: 0 4px 20px rgba(26,31,110,0.08) !important;
  transition: transform 0.3s ease !important;
}

/* Miniaturas de la galería: grid con gap exacto de 10px (Anulando width: 25% de WooCommerce/Elementor) */
.woocommerce div.product div.images .flex-control-thumbs,
.woocommerce-page div.product div.images .flex-control-thumbs,
.woocommerce #content div.product div.images .flex-control-thumbs,
.woocommerce-product-gallery .flex-control-thumbs,
.woocommerce div.product div.images div.thumbnails {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 10px !important;
  margin-top: 12px !important;
  padding: 0 !important;
  list-style: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Anular width: 25% y float: left de WooCommerce/Elementor (Especificidad 0,4,3 y superior) */
.woocommerce div.product div.images .flex-control-thumbs li,
.woocommerce-page div.product div.images .flex-control-thumbs li,
.woocommerce #content div.product div.images .flex-control-thumbs li,
.elementor-widget-wc-add-to-cart .woocommerce div.product div.images .flex-control-thumbs li,
.woocommerce-product-gallery .flex-control-thumbs li,
.woocommerce div.product div.images div.thumbnails a {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  cursor: pointer !important;
  border: 2px solid transparent !important;
  transition: all 0.2s ease !important;
  background: transparent !important;
  box-sizing: border-box !important;
}

.woocommerce div.product div.images .flex-control-thumbs li img,
.woocommerce-page div.product div.images .flex-control-thumbs li img,
.woocommerce-product-gallery .flex-control-thumbs li img,
.woocommerce div.product div.images div.thumbnails a img {
  border-radius: 10px !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  display: block !important;
  box-shadow: none !important;
  opacity: 0.75 !important;
  transition: opacity 0.2s ease, transform 0.2s ease !important;
}

.woocommerce div.product div.images .flex-control-thumbs li:hover img,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images div.thumbnails a:hover img {
  opacity: 1 !important;
  transform: scale(1.03) !important;
}

.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
  border: 2px solid var(--ej-cyan, #00C2CB) !important;
}

/* Resumen / Detalles del producto */
.woocommerce div.product div.summary {
  width: 100% !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
}

.woocommerce div.product .product_title {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: clamp(32px, 3.5vw, 42px) !important;
  color: var(--ej-navy, #1A1F6E) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 12px !important;
}

.woocommerce div.product div.summary .woocommerce-product-details__short-description {
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif);
  font-size: 16.5px;
  color: var(--ej-secondary, #5A5A72);
  line-height: 1.7;
  margin-bottom: 28px;
}

/* Formulario de carrito y selector de cantidad */
.woocommerce div.product form.cart {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  margin: 24px 0 36px !important;
  flex-wrap: wrap;
}

.woocommerce div.product form.cart div.quantity {
  margin: 0 !important;
  display: flex !important;
}

.woocommerce div.product form.cart div.quantity input.qty {
  width: 76px !important;
  height: 52px !important;
  border-radius: var(--radius-sm, 12px) !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  text-align: center !important;
  background: #FFFFFF !important;
  padding: 0 !important;
}

/* Tabla y select de variaciones en producto individual ("Elige una opción") */
.woocommerce div.product form.cart table.variations,
.elementor-widget-woocommerce-product-add-to-cart table.variations {
  width: 100% !important;
  margin: 0 0 24px 0 !important;
  border: none !important;
  box-shadow: none !important;
  border-collapse: separate !important;
  border-spacing: 0 14px !important;
}

.woocommerce div.product form.cart table.variations tr,
.elementor-widget-woocommerce-product-add-to-cart table.variations tr {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  border: none !important;
  background: transparent !important;
}

.woocommerce div.product form.cart table.variations td,
.elementor-widget-woocommerce-product-add-to-cart table.variations td {
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  display: block !important;
  width: 100% !important;
  text-align: left !important;
}

.woocommerce div.product form.cart table.variations td.label label,
.elementor-widget-woocommerce-product-add-to-cart table.variations td.label label {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.03em !important;
  display: inline-block !important;
  margin-bottom: 2px !important;
}

.woocommerce div.product form.cart table.variations td.value select,
.elementor-widget-woocommerce-product-add-to-cart table.variations td.value select,
.woocommerce div.product form.cart .variations select {
  width: 100% !important;
  max-width: 100% !important;
  height: 54px !important;
  padding: 0 46px 0 20px !important;
  border-radius: var(--radius-md, 16px) !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  background-color: #FFFFFF !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1F6E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") !important;
  background-repeat: no-repeat !important;
  background-position: right 18px center !important;
  background-size: 18px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  box-shadow: 0 4px 16px rgba(26,31,110,0.04) !important;
  transition: all 0.25s ease !important;
  cursor: pointer !important;
}

.woocommerce div.product form.cart table.variations td.value select:hover,
.woocommerce div.product form.cart table.variations td.value select:focus,
.woocommerce div.product form.cart .variations select:hover,
.woocommerce div.product form.cart .variations select:focus {
  border-color: var(--ej-cyan, #00C2CB) !important;
  box-shadow: 0 6px 20px rgba(0, 194, 203, 0.18) !important;
  outline: none !important;
}

.woocommerce div.product form.cart .reset_variations {
  display: inline-block !important;
  margin-top: 8px !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  color: var(--ej-pink, #FF6B8A) !important;
  text-decoration: underline !important;
  transition: color 0.2s ease !important;
}

.woocommerce div.product form.cart .reset_variations:hover {
  color: #8D0F2E !important;
}

/* Meta del producto (Categorías, SKU) */
.woocommerce div.product .product_meta {
  border-top: 1px solid var(--ej-border, #E0E8FF);
  padding-top: 24px;
  margin-top: 16px;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif);
  font-size: 14px;
  color: var(--ej-secondary, #5A5A72);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.woocommerce div.product .product_meta span {
  font-weight: 700;
  color: var(--ej-navy, #1A1F6E);
}

.woocommerce div.product .product_meta a {
  color: var(--ej-cyan-dark, #00A8B0);
  font-weight: 600;
  text-decoration: none;
}

.woocommerce div.product .product_meta a:hover {
  color: var(--ej-cyan, #00C2CB);
  text-decoration: underline;
}

/* Pestañas (Tabs) de producto */
.woocommerce div.product .woocommerce-tabs {
  grid-column: 1 / -1;
  margin-top: 60px;
  background: var(--ej-white, #FFFFFF);
  border-radius: var(--radius-lg, 24px);
  border: 1px solid var(--ej-border, #E0E8FF);
  padding: 40px;
  box-shadow: var(--shadow-sm);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex !important;
  gap: 8px !important;
  margin: 0 0 32px !important;
  padding: 0 !important;
  border-bottom: 2px solid var(--ej-border, #E0E8FF) !important;
  list-style: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: none !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: inline-block !important;
  padding: 12px 24px !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  color: var(--ej-secondary, #5A5A72) !important;
  border-radius: 12px 12px 0 0 !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--ej-navy, #1A1F6E) !important;
  background: var(--ej-cyan-light, #E8FFFE) !important;
  border-bottom: 2px solid var(--ej-cyan, #00C2CB) !important;
}

.woocommerce div.product .woocommerce-tabs .panel {
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif);
  font-size: 16px;
  color: var(--ej-body, #2A2A3A);
  line-height: 1.75;
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-family: var(--ej-font-display, 'Poppins', sans-serif);
  font-size: 24px;
  font-weight: 800;
  color: var(--ej-navy, #1A1F6E);
  margin-bottom: 16px;
}


/* ─── 4.B PRODUCTOS RELACIONADOS & VENTAS CRUZADAS (UP-SELLS) ─── */
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells,
section.related.products {
  grid-column: 1 / -1 !important;
  margin-top: 64px !important;
  padding-top: 40px !important;
  border-top: 2px solid var(--ej-border, #E0E8FF) !important;
  width: 100% !important;
}

.woocommerce div.product .related.products > h2,
.woocommerce div.product .up-sells > h2,
section.related.products > h2,
.woocommerce div.product .related.products .elementor-heading-title,
.woocommerce div.product .up-sells .elementor-heading-title {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: clamp(22px, 2.2vw, 28px) !important;
  color: var(--ej-navy, #1A1F6E) !important;
  margin-bottom: 28px !important;
  line-height: 1.25 !important;
}

/* Grid controlado con auto-fill para que 1 o 2 productos no se estiren a toda pantalla */
.woocommerce div.product .related.products ul.products,
.woocommerce div.product .up-sells ul.products,
section.related.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
  align-items: stretch !important;
  gap: 24px !important;
  width: 100% !important;
  justify-content: flex-start !important;
}

/* Tope estricto de tamaño a cada tarjeta e imagen de producto relacionado */
.woocommerce div.product .related.products ul.products li.product,
.woocommerce div.product .up-sells ul.products li.product,
section.related.products ul.products li.product {
  max-width: 270px !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

.woocommerce div.product .related.products ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce div.product .up-sells ul.products li.product a.woocommerce-LoopProduct-link,
section.related.products ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}

.woocommerce div.product .related.products ul.products li.product img,
.woocommerce div.product .up-sells ul.products li.product img,
section.related.products ul.products li.product img {
  height: auto !important;
  aspect-ratio: 720 / 1040 !important;
  object-fit: contain !important;
  border-radius: 18px !important;
  margin-bottom: 14px !important;
}


/* ─── 5. FORMULARIOS GLOBALES & CHECKOUT & CARRITO ─────────────── */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-page form .form-row select,
.woocommerce table.shop_table input.input-text {
  border-radius: 12px !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  padding: 13px 16px !important;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 15px !important;
  color: var(--ej-body, #2A2A3A) !important;
  background: #FFFFFF !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce-page form .form-row select:focus {
  border-color: var(--ej-cyan, #00C2CB) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(0,194,203,0.15) !important;
}

.woocommerce form .form-row label {
  font-family: var(--ej-font-display, 'Poppins', sans-serif);
  font-weight: 700;
  font-size: 14px;
  color: var(--ej-navy, #1A1F6E);
  margin-bottom: 6px;
  display: block;
}

/* Tablas de carrito y pedidos */
.woocommerce table.shop_table {
  border-radius: var(--radius-lg, 24px) !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
  border-collapse: separate !important;
  overflow: hidden !important;
  width: 100% !important;
  margin: 24px 0 40px !important;
}

.woocommerce table.shop_table th {
  background: var(--ej-navy, #1A1F6E) !important;
  color: #FFFFFF !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  padding: 16px 20px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  border: none !important;
}

.woocommerce table.shop_table td {
  padding: 20px !important;
  border-top: 1px solid var(--ej-border, #E0E8FF) !important;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  color: var(--ej-body, #2A2A3A) !important;
}

/* Caja de pago y totales en Checkout */
.woocommerce-checkout #order_review_heading {
  font-family: var(--ej-font-display, 'Poppins', sans-serif);
  font-size: 26px;
  font-weight: 800;
  color: var(--ej-navy, #1A1F6E);
  margin: 36px 0 16px;
}

.woocommerce #payment {
  background: var(--ej-cyan-light, #E8FFFE) !important;
  border-radius: var(--radius-lg, 24px) !important;
  border: 1px solid var(--ej-cyan-mid, #B2F0F2) !important;
  padding: 28px !important;
  box-shadow: var(--shadow-md) !important;
}

.woocommerce #payment ul.payment_methods {
  border-bottom: 1px solid var(--ej-cyan-mid, #B2F0F2) !important;
  padding: 0 0 20px !important;
}

.woocommerce #payment div.payment_box {
  background: #FFFFFF !important;
  border-radius: 12px !important;
  color: var(--ej-secondary, #5A5A72) !important;
  font-size: 14px !important;
  padding: 16px !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
}

.woocommerce #payment div.payment_box::before {
  border-bottom-color: #FFFFFF !important;
}

.woocommerce #payment #place_order {
  background: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-white, #FFFFFF) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  border-radius: var(--radius-xl, 50px) !important;
  padding: 18px 40px !important;
  width: 100% !important;
  margin-top: 24px !important;
  box-shadow: 0 6px 24px rgba(0, 194, 203, 0.45) !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  border: none !important;
  cursor: pointer !important;
}

.woocommerce #payment #place_order:hover {
  background: var(--ej-cyan-dark, #00A8B0) !important;
  color: var(--ej-white, #FFFFFF) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 30px rgba(0, 194, 203, 0.55) !important;
}


/* ─── 6. AVISOS Y MENSAJES (NOTICES / ALERTS) ──────────────────── */

.woocommerce-notices-wrapper,
.wc-block-components-notice-banner {
  width: 100% !important;
  max-width: 1180px !important;
  margin: 24px auto !important;
  padding: 0 40px !important;
  box-sizing: border-box !important;
}

@media (max-width: 980px) {
  .woocommerce-notices-wrapper,
  .wc-block-components-notice-banner {
    padding: 0 24px !important;
  }
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: var(--radius-md, 16px) !important;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 15.5px !important;
  font-weight: 600 !important;
  box-shadow: var(--shadow-sm) !important;
  margin: 0 auto 28px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  border-top: none !important;
}

.woocommerce-message {
  background: var(--ej-cyan-light, #E8FFFE) !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

.woocommerce-info {
  background: var(--ej-violet-light, #EDE8FF) !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

.woocommerce-error {
  background: var(--ej-pink-light, #FFE8EE) !important;
  color: #8D0F2E !important;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  background: var(--ej-navy, #1A1F6E) !important;
  color: #FFFFFF !important;
  box-shadow: none !important;
  padding: 8px 20px !important;
  font-size: 13px !important;
}


/* ─── 7. PAGINACIÓN DE PRODUCTOS ───────────────────────────────── */

.woocommerce nav.woocommerce-pagination ul {
  display: flex !important;
  justify-content: center !important;
  gap: 8px !important;
  border: none !important;
  margin: 48px 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: none !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  color: var(--ej-secondary, #5A5A72) !important;
  background: #FFFFFF !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--ej-cyan, #00C2CB) !important;
  color: #FFFFFF !important;
  border-color: var(--ej-cyan, #00C2CB) !important;
}


/* ─── 8. WOOCOMMERCE BLOCKS & ELEMENTOR (CARRITO & CHECKOUT BLOCKS) ─── */

/* Contenedores principales de los bloques de Carrito y Checkout (SIEMPRE BLOCK FULL WIDTH) */
.wc-block-cart,
.wc-block-checkout,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.elementor-widget-wc-cart,
.elementor-widget-wc-checkout {
  display: block !important;
  width: 100% !important;
  max-width: 1180px !important;
  margin: 24px auto 80px !important;
  box-sizing: border-box !important;
}

/* Layout de dos columnas en Checkout y Cart Block */
.wc-block-components-sidebar-layout.wc-block-checkout,
.wc-block-components-sidebar-layout.wc-block-cart,
.wc-block-components-sidebar-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.6fr) minmax(360px, 1fr) !important;
  gap: 48px !important;
  align-items: start !important;
  width: 100% !important;
}

@media (max-width: 980px) {
  .wc-block-components-sidebar-layout.wc-block-checkout,
  .wc-block-components-sidebar-layout.wc-block-cart,
  .wc-block-components-sidebar-layout {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
}

/* ── TABLA Y FILAS DE PRODUCTOS EN EL CARRITO BLOCK (`table.wc-block-cart-items`) ── */
table.wc-block-cart-items,
.wp-block-woocommerce-cart-line-items-block {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 18px !important;
  margin: 0 !important;
}

thead tr.wc-block-cart-items__header th {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  color: var(--ej-secondary, #5A5A72) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 0 20px 12px !important;
  border-bottom: 2px solid var(--ej-border, #E0E8FF) !important;
  text-align: left !important;
}

thead tr.wc-block-cart-items__header th.wc-block-cart-items__header-total {
  text-align: right !important;
}

/* Transformar cada fila en una tarjeta independiente limpia y flotante (sin hover) */
table.wc-block-cart-items tbody tr.wc-block-cart-items__row {
  /* background: #FFFFFF !important; */
  /* border: 1.5px solid var(--ej-border, #E0E8FF) !important; */
  /* border-radius: 20px !important; */
  /* box-shadow: 0 2px 12px rgba(26,31,110,0.02) !important; */
  /* overflow: hidden !important; */
}

table.wc-block-cart-items tbody tr.wc-block-cart-items__row td,
table.wc-block-cart-items tbody tr.wc-block-cart-items__row td:first-child,
table.wc-block-cart-items tbody tr.wc-block-cart-items__row td:last-child {
  background: transparent !important;
  border: none !important;
  padding: 24px 20px !important;
  vertical-align: middle !important;
}

table.wc-block-cart-items tbody tr.wc-block-cart-items__row td.wc-block-cart-item__image {
  width: 76px !important;
  padding: 20px 10px 20px 20px !important;
}

table.wc-block-cart-items tbody tr.wc-block-cart-items__row td.wc-block-cart-item__total {
  text-align: right !important;
  padding: 24px 24px 24px 12px !important;
  width: 140px !important;
}

/* Imagen del producto en el carrito (respetando proporción 720x1040 y más compacta) */
td.wc-block-cart-item__image img {
  border-radius: 10px !important;
  box-shadow: 0 4px 14px rgba(26,31,110,0.08) !important;
  width: 64px !important;
  height: auto !important;
  aspect-ratio: 720 / 1040 !important;
  object-fit: contain !important;
  background: transparent !important;
}

/* Detalles (Título, Precio unitario, Metadatos) */
td.wc-block-cart-item__product .wc-block-components-product-name {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 16.5px !important;
  font-weight: 800 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  text-decoration: none !important;
  margin-bottom: 6px !important;
  display: block !important;
  line-height: 1.35 !important;
  transition: color 0.2s !important;
}

td.wc-block-cart-item__product .wc-block-components-product-name:hover {
  color: var(--ej-cyan-dark, #00A8B0) !important;
}

/* Precio unitario sutil debajo del título */
td.wc-block-cart-item__product .wc-block-cart-item__prices .wc-block-components-product-price__value {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--ej-secondary, #5A5A72) !important;
  display: inline-block !important;
  margin-bottom: 8px !important;
}

td.wc-block-cart-item__product .wc-block-components-product-metadata {
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 13px !important;
  color: var(--ej-secondary, #5A5A72) !important;
  background: #F4F6FC !important;
  padding: 5px 12px !important;
  border-radius: 8px !important;
  display: inline-block !important;
  margin: 2px 0 12px 0 !important;
}

/* Contenedor de cantidad y eliminar */
.wc-block-cart-item__quantity {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 4px !important;
}

/* Selector de cantidad en Carrito Block */
.wc-block-cart-item__quantity .wc-block-components-quantity-selector {
  border-radius: 12px !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  background: #FBFCFF !important;
  height: 38px !important;
  padding: 0 4px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  box-shadow: 0 2px 6px rgba(26,31,110,0.03) !important;
}

.wc-block-cart-item__quantity .wc-block-components-quantity-selector__input {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  background: transparent !important;
  border: none !important;
  text-align: center !important;
  width: 34px !important;
}

.wc-block-cart-item__quantity .wc-block-components-quantity-selector__button {
  background: transparent !important;
  border: none !important;
  color: var(--ej-navy, #1A1F6E) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 17px !important;
  width: 26px !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: color 0.2s !important;
}

.wc-block-cart-item__quantity .wc-block-components-quantity-selector__button:hover {
  color: var(--ej-cyan, #00C2CB) !important;
}

/* Botón de eliminar (papelera) estilizado */
.wc-block-cart-item__remove-link {
  color: var(--ej-secondary, #5A5A72) !important;
  background: #F4F6FC !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 10px !important;
  width: 36px !important;
  height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.wc-block-cart-item__remove-link svg {
  width: 17px !important;
  height: 17px !important;
  fill: currentColor !important;
}

.wc-block-cart-item__remove-link:hover {
  background: #FFE8EE !important;
  color: #FF4D6D !important;
  border-color: #FFB3C1 !important;
  transform: scale(1.08) !important;
}

/* Columna Total */
td.wc-block-cart-item__total .wc-block-components-product-price__value {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-weight: 800 !important;
  font-size: 18px !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

/* ── TARJETAS Y PASOS DEL CHECKOUT BLOCK ── */
.wc-block-components-checkout-step,
.wc-block-checkout__contact-fields,
.wc-block-checkout__billing-fields,
.wc-block-checkout__shipping-fields,
.wc-block-checkout__payment-method,
.wc-block-checkout__order-notes,
.wc-block-checkout__terms {
  background: #FFFFFF !important;
  border-radius: var(--radius-lg, 24px) !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  padding: 32px !important;
  margin-bottom: 28px !important;
  box-shadow: var(--shadow-sm, 0 4px 16px rgba(26,31,110,0.04)) !important;
}

/* Espaciado entre campos en formularios de dirección (facturación y envío) */
.wc-block-checkout__billing-fields .wc-block-components-address-form,
.wc-block-checkout__shipping-fields .wc-block-components-address-form,
.wc-block-checkout__contact-fields .wc-block-components-address-form,
.wc-block-components-address-form {
  gap: 12px !important;
  row-gap: 12px !important;
}

/* Títulos de los pasos en Checkout y Carrito */
.wc-block-components-checkout-step__title,
.wc-block-checkout__contact-fields h2,
.wc-block-checkout__shipping-fields h2,
.wc-block-checkout__billing-fields h2,
.wc-block-checkout__payment-method h2,
.wc-block-cart__totals-title,
.wc-block-components-order-summary h2,
.wc-block-components-sidebar h2,
.elementor-widget-wc-cart h2,
.elementor-widget-wc-checkout h2 {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: clamp(19px, 1.8vw, 22px) !important;
  color: var(--ej-navy, #1A1F6E) !important;
  letter-spacing: -0.015em !important;
  margin: 0 0 20px 0 !important;
  padding-bottom: 14px !important;
  border-bottom: 2px solid var(--ej-border, #E0E8FF) !important;
  line-height: 1.3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
}

/* Campos de entrada, Textareas y Combobox/Selects en Checkout */
.wc-block-checkout input[type="text"],
.wc-block-checkout input[type="email"],
.wc-block-checkout input[type="tel"],
.wc-block-checkout input[type="password"],
.wc-block-checkout input[type="number"],
.wc-block-checkout textarea,
.wc-block-checkout select,
.wp-block-woocommerce-checkout input[type="text"],
.wp-block-woocommerce-checkout input[type="email"],
.wp-block-woocommerce-checkout input[type="tel"],
.wp-block-woocommerce-checkout input[type="password"],
.wp-block-woocommerce-checkout input[type="number"],
.wp-block-woocommerce-checkout textarea,
.wp-block-woocommerce-checkout select,
.wc-block-components-text-input input,
.wc-block-components-combobox input,
.wc-blocks-components-select__select {
  border-radius: 12px !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  padding: 15px 18px !important;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 15.5px !important;
  color: var(--ej-body, #2A2A3A) !important;
  background-color: #FFFFFF !important;
  height: auto !important;
  min-height: 50px !important;
  box-shadow: none !important;
  transition: all 0.2s ease !important;
  box-sizing: border-box !important;
  width: 100% !important;
}

.wc-block-checkout input:focus,
.wc-block-checkout select:focus,
.wp-block-woocommerce-checkout input:focus,
.wp-block-woocommerce-checkout select:focus,
.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus {
  border-color: var(--ej-cyan, #00C2CB) !important;
  outline: none !important;
  box-shadow: 0 0 0 3.5px rgba(0, 194, 203, 0.18) !important;
}

/* Etiquetas (Labels) en los campos de Checkout */
.wc-block-checkout label,
.wp-block-woocommerce-checkout label,
.wc-block-components-text-input label,
.wc-blocks-components-select__label {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 12.5px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.AccordionItem.wc-block-components-radio-control-accordion-option {
  background: #FFFFFF !important;
  border-radius: 14px !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  margin-bottom: 14px !important;
  overflow: hidden !important;
}

/* Eliminar borde externo no deseado (--p-colorBackgroundDeemphasize10) en elementos AccordionItem internos */
.AccordionItem,
.wc-block-components-radio-control-accordion-option .AccordionItem,
.wc-block-checkout__payment-method .AccordionItem:not(.wc-block-components-radio-control-accordion-option) {
  border: none !important;
  box-shadow: none !important;
}

/* Opciones de pago (Acordeón de métodos de pago y Stripe) */
.wc-block-checkout__payment-method .wc-block-components-radio-control,
.wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

.wc-block-components-radio-control-accordion-option {
  background: #FFFFFF !important;
  border-radius: 14px !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  margin-bottom: 14px !important;
  overflow: hidden !important;
  transition: all 0.25s ease !important;
}

.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control-accordion-option:has(input:checked) {
  border-color: var(--ej-cyan, #00C2CB) !important;
  box-shadow: 0 4px 18px rgba(0, 194, 203, 0.16) !important;
}

/* ── ESTRUCTURA Y ALINEACIÓN IMPENETRABLE DE LAS OPCIONES DE RADIO (MÉTODOS DE PAGO / STRIPE / CHECKOUT) ── */
label.wc-block-components-radio-control__option,
.wc-block-components-radio-control__option {
  padding: 18px 22px !important;
  background: transparent !important;
  border: none !important;
  cursor: pointer !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 16px !important;
  position: relative !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Forzar que el input radio (`⚫`) sea un elemento flex estático, visible y de tamaño exacto 20x20px sin solapamiento */
label.wc-block-components-radio-control__option input[type="radio"],
.wc-block-components-radio-control__option input[type="radio"],
label.wc-block-components-radio-control__option input.wc-block-components-radio-control__input,
.wc-block-components-radio-control__option input.wc-block-components-radio-control__input,
input.wc-block-components-radio-control__input {
  position: static !important;
  float: none !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
  appearance: auto !important;
  display: block !important;
  vertical-align: middle !important;
  transform: none !important;
  accent-color: var(--ej-cyan, #00C2CB) !important;
}

/* Contenedor del texto/etiqueta (`option-layout`) al lado del radio sin márgenes negativos o posición absoluta */
label.wc-block-components-radio-control__option .wc-block-components-radio-control__option-layout,
.wc-block-components-radio-control__option .wc-block-components-radio-control__option-layout {
  position: static !important;
  float: none !important;
  flex: 1 1 auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  text-align: left !important;
}

/* Grupos y textos de etiquetas internas (`label-group`, `label`, `optimized-checkout-element`, y spans) */
.wc-block-components-radio-control__option-layout .wc-block-components-radio-control__label-group,
.wc-block-components-radio-control__option-layout .wc-block-components-radio-control__label,
.wc-block-components-radio-control__option-layout .optimized-checkout-element,
.wc-block-components-radio-control__option-layout span {
  position: static !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  display: inline-block !important;
  text-align: left !important;
  line-height: 1.3 !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

/* ELIMINAR CUALQUIER DOT/PUNTO NEGRO O PSEUDO-ELEMENTO DUPLICADO EN RADIO CONTROLS Y ACCORDION ITEMS */
label.wc-block-components-radio-control__option::before,
label.wc-block-components-radio-control__option::after,
.wc-block-components-radio-control__option::before,
.wc-block-components-radio-control__option::after,
.AccordionItem::before,
.AccordionItem::after,
.wc-block-components-radio-control-accordion-option::before,
.wc-block-components-radio-control-accordion-option::after,
.wc-block-components-radio-control__option-layout::before,
.wc-block-components-radio-control__option-layout::after,
.wc-block-components-radio-control__label-group::before,
.wc-block-components-radio-control__label-group::after,
.wc-block-components-radio-control__label::before,
.wc-block-components-radio-control__label::after,
.optimized-checkout-element::before,
.optimized-checkout-element::after,
input.wc-block-components-radio-control__input::before,
input.wc-block-components-radio-control__input::after {
  content: none !important;
  display: none !important;
}

/* Quitar viñetas o marcadores de lista en caso de que AccordionItem sea list-item */
.AccordionItem,
label.wc-block-components-radio-control__option,
.wc-block-components-radio-control__option {
  list-style: none !important;
}

.wc-block-components-radio-control-accordion-content {
  padding: 0 20px 20px 20px !important;
  background: #FFFFFF !important;
}

/* ── COLUMNAS PRINCIPALES DEL CARRITO Y CHECKOUT BLOCK (`main`) ── */
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar-layout.is-large .wc-block-components-main,
.wc-block-components-main,
.wc-block-checkout__main,
.wc-block-cart__main {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* ── SIDEBAR / RESUMEN DEL CARRITO Y PEDIDO (COLUMNA DERECHA) ── */
.wc-block-components-sidebar-layout .wc-block-components-sidebar,
.wc-block-components-sidebar-layout.is-large .wc-block-components-sidebar,
.wc-block-components-sidebar,
.wc-block-checkout__sidebar,
.wc-block-cart__sidebar {
  background: #FBFCFF !important;
  border-radius: var(--radius-lg, 24px) !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  padding: 32px !important;
  box-shadow: var(--shadow-md, 0 8px 30px rgba(26,31,110,0.08)) !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* ── BLOQUES INTERNOS DEL RESUMEN Y TOTALES DENTRO DEL SIDEBAR ── */
.wp-block-woocommerce-checkout-totals-block,
.wp-block-woocommerce-cart-totals-block,
.wc-block-components-order-summary,
.wp-block-woocommerce-checkout-order-summary-block {
  background: #FBFCFF !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* ── BOTONES ACORDEÓN DE PANELES (Añadir cupones, Detalles, etc.) ── */
.wc-block-components-panel__button,
.wc-block-components-totals-coupon .wc-block-components-panel__button {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 14.5px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  background: #FFFFFF !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 12px !important;
  padding: 14px 18px 14px 10px !important;
  padding-left: 10px !important;
  margin: 0 !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
  transform: none !important;
  letter-spacing: normal !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
}

.wc-block-components-panel__button:hover,
.wc-block-components-panel__button:focus,
.wc-block-components-panel__button:active,
.wc-block-components-panel__button:focus-visible,
.wc-block-components-panel__button[aria-expanded="true"],
.wc-block-components-totals-coupon .wc-block-components-panel__button:hover,
.wc-block-components-totals-coupon .wc-block-components-panel__button:focus,
.wc-block-components-totals-coupon .wc-block-components-panel__button:active,
.wc-block-components-totals-coupon .wc-block-components-panel__button:focus-visible,
.wc-block-components-totals-coupon .wc-block-components-panel__button[aria-expanded="true"] {
  border-color: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-cyan-dark, #00A8B0) !important;
  background: #F8FFFE !important;
  transform: none !important;
  padding: 14px 18px 14px 10px !important;
  padding-left: 10px !important;
  margin: 0 !important;
  letter-spacing: normal !important;
  outline: none !important;
  box-shadow: none !important;
}

.wc-block-components-panel__button,
.wc-block-components-panel__button:active,
.wc-block-components-panel__button:focus,
.wc-block-components-panel__button:hover,
.wc-block-components-totals-coupon .wc-block-components-panel__button,
.wc-block-components-totals-coupon .wc-block-components-panel__button:active,
.wc-block-components-totals-coupon .wc-block-components-panel__button:focus,
.wc-block-components-totals-coupon .wc-block-components-panel__button:hover {
  padding-left: 10px !important;
}

/* Alineación perfecta entre el ícono y la palabra en botones de panel (`.wc-block-components-panel__button > .wc-block-components-panel__button-icon`) */
.wc-block-components-panel__button > .wc-block-components-panel__button-icon,
.wc-block-components-panel__button svg.wc-block-components-panel__button-icon,
.wc-block-components-panel__button:hover > .wc-block-components-panel__button-icon,
.wc-block-components-panel__button:hover svg.wc-block-components-panel__button-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
  align-self: center !important;
  transform: none !important;
  transition: transform 0.25s ease !important;
}

.wc-block-components-panel__button[aria-expanded="true"] > .wc-block-components-panel__button-icon,
.wc-block-components-panel__button[aria-expanded="true"] svg.wc-block-components-panel__button-icon {
  transform: rotate(180deg) !important;
}

/* Contenedor y formulario desplegable de cupón */
.wc-block-components-totals-coupon__content,
.wc-block-components-totals-coupon__form {
  margin-top: 14px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  width: 100% !important;
}

/* El contenedor exterior de inputs de texto (floating label wrapper) DEBE estar limpio sin borde ni relleno */
.wc-block-components-totals-coupon__content .wc-block-components-text-input,
.wc-block-components-text-input,
.wc-block-components-text-input:hover,
.wc-block-components-text-input.is-active {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  position: relative !important;
}

/* Input real del cupón y campos de texto ("Escribe aquí tu cupón") */
.wc-block-components-totals-coupon__content input.wc-block-components-text-input__input,
.wc-block-components-totals-coupon__form input[type="text"],
.wc-block-components-text-input input.wc-block-components-text-input__input,
.wc-block-components-text-input input.wc-block-components-text-input__input:hover {
  background: #FFFFFF !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 12px !important;
  padding: 22px 16px 8px 16px !important;
  margin: 0 !important;
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.wc-block-components-totals-coupon__content input.wc-block-components-text-input__input:focus,
.wc-block-components-totals-coupon__form input[type="text"]:focus,
.wc-block-components-text-input input.wc-block-components-text-input__input:focus {
  border-color: var(--ej-cyan, #00C2CB) !important;
  outline: none !important;
  margin: 0 !important;
  box-shadow: 0 0 0 3px rgba(0, 194, 203, 0.15) !important;
}

/* Etiqueta flotante (`INTRODUCE EL CÓDIGO`) fija, limpia y sin saltos en hover */
.wc-block-components-text-input label.wc-block-components-text-input__label,
.wc-block-components-text-input.is-active label.wc-block-components-text-input__label,
.wc-block-components-text-input:hover label.wc-block-components-text-input__label,
.wc-block-components-text-input:focus-within label.wc-block-components-text-input__label {
  position: absolute !important;
  top: 7px !important;
  left: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  color: var(--ej-secondary, #5A5A72) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  pointer-events: none !important;
}

/* Botón "Aplicar" del Cupón (`.wc-block-components-totals-coupon__button`) */
.wc-block-components-totals-coupon__button,
.wc-block-components-totals-coupon__content button.wc-block-components-button,
.wc-block-components-totals-coupon__form button.wc-block-components-button {
  background: var(--ej-navy, #1A1F6E) !important;
  color: var(--ej-white, #FFFFFF) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  border-radius: var(--radius-xl, 50px) !important;
  padding: 14px 24px !important;
  border: none !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.25s ease !important;
  box-shadow: 0 4px 15px rgba(26, 31, 110, 0.2) !important;
  box-sizing: border-box !important;
}

.wc-block-components-totals-coupon__button:hover:not(:disabled),
.wc-block-components-totals-coupon__content button.wc-block-components-button:hover:not(:disabled),
.wc-block-components-totals-coupon__form button.wc-block-components-button:hover:not(:disabled) {
  background: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-white, #FFFFFF) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(0, 194, 203, 0.4) !important;
}

.wc-block-components-totals-coupon__button:disabled,
.wc-block-components-totals-coupon__button[aria-disabled="true"],
.wc-block-components-totals-coupon__content button.wc-block-components-button:disabled {
  background: var(--ej-border, #E0E8FF) !important;
  color: var(--ej-secondary, #5A5A72) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  transform: none !important;
  opacity: 0.7 !important;
}

/* Tarjeta por cada producto en el resumen del checkout */
.wc-block-components-order-summary-item {
  background: #FFFFFF !important;
  border-radius: 16px !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
  padding: 16px !important;
  margin-bottom: 14px !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  box-shadow: 0 2px 10px rgba(26,31,110,0.02) !important;
}

.wc-block-components-order-summary-item__image {
  width: 54px !important;
  flex: 0 0 54px !important;
}

.wc-block-components-order-summary-item__image img {
  border-radius: 8px !important;
  width: 54px !important;
  height: auto !important;
  aspect-ratio: 720 / 1040 !important;
  object-fit: contain !important;
  background: transparent !important;
}

.wc-block-components-order-summary-item__description h3 {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 15.5px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  line-height: 1.35 !important;
  margin: 0 0 4px 0 !important;
}

.wc-block-components-order-summary-item__individual-price {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

/* Totales intermedios y subtotales */
.wc-block-components-totals-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 12px 0 !important;
  border-bottom: 1px dashed var(--ej-border, #E0E8FF) !important;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 15px !important;
  color: var(--ej-secondary, #5A5A72) !important;
}

.wc-block-components-totals-item__value {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

/* TOTAL A PAGAR HOY (Gran total) */
.wc-block-components-totals-footer-item,
.wc-block-components-totals-item--footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 20px 0 !important;
  border-top: 2px solid var(--ej-navy, #1A1F6E) !important;
  border-bottom: none !important;
  margin-top: 14px !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-item--footer .wc-block-components-totals-item__label {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 19px !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-item--footer .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item-tax-value {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-weight: 800 !important;
  font-size: 23px !important;
  color: var(--ej-cyan-dark, #00A8B0) !important;
}

/* Panel de Total Recurrente (Suscripciones y Hospedaje) */
.fsb-recurring-totals-panel {
  background: var(--ej-cyan-light, #E8FFFE) !important;
  border-radius: 16px !important;
  border: 1.5px solid var(--ej-cyan, #00C2CB) !important;
  padding: 18px 20px !important;
  margin: 18px 0 !important;
}

.fsb-recurring-totals-panel__title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border-bottom: none !important;
  padding: 0 !important;
}

.fsb-recurring-totals-panel__title .wc-block-components-totals-item__label {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

.fsb-recurring-totals-panel__title .wc-block-components-totals-item__value {
  font-family: var(--ej-font-mono, 'JetBrains Mono', monospace) !important;
  font-weight: 800 !important;
  font-size: 17px !important;
  color: var(--ej-cyan-dark, #00A8B0) !important;
}

.fsb-recurring-totals-panel .wc-block-components-totals-item__description {
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 13px !important;
  color: var(--ej-secondary, #5A5A72) !important;
  margin: 6px 0 12px 0 !important;
  line-height: 1.4 !important;
}

.fsb-recurring-totals-panel .wc-block-components-panel__button {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 13.5px !important;
  color: var(--ej-cyan-dark, #00A8B0) !important;
  background: #FFFFFF !important;
  border: 1px solid var(--ej-cyan-mid, #B2F0F2) !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  cursor: pointer !important;
}


/* ─── 9. BOTÓN PRINCIPAL DE CONVERSIÓN ("FINALIZAR COMPRA" / "REALIZAR EL PEDIDO") ─── */

button.wc-block-components-checkout-place-order-button,
a.wc-block-cart__submit-button,
button.wc-block-cart__submit-button,
.wc-block-cart__submit a.wc-block-components-button,
.wc-block-cart__submit button.wc-block-components-button,
.wc-block-checkout__actions_row button.wc-block-components-button,
.wc-block-checkout__actions_row a.wc-block-components-button,
.wc-block-checkout__actions_row .wp-element-button,
.wp-block-woocommerce-checkout-actions-block button,
.wp-block-woocommerce-proceed-to-checkout-block a,
.wp-block-woocommerce-proceed-to-checkout-block button,
.wp-block-woocommerce-checkout button.wc-block-components-button:not(.is-link),
.wc-block-checkout button.wc-block-components-button:not(.is-link) {
  background: var(--ej-cyan, #00C2CB) !important;
  background-color: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-white, #FFFFFF) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: clamp(14.5px, 1.2vw, 16px) !important;
  border-radius: var(--radius-xl, 100px) !important;
  padding: 16px 24px !important;
  box-shadow: 0 4px 18px rgba(0, 194, 203, 0.35) !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  border: none !important;
  width: 100% !important;
  max-width: 100% !important;
  text-align: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  text-decoration: none !important;
  margin-top: 24px !important;
  min-height: 54px !important;
  height: auto !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  line-height: 1.2 !important;
}

button.wc-block-components-checkout-place-order-button:hover,
a.wc-block-cart__submit-button:hover,
button.wc-block-cart__submit-button:hover,
.wc-block-cart__submit a.wc-block-components-button:hover,
.wc-block-cart__submit button.wc-block-components-button:hover,
.wc-block-checkout__actions_row button.wc-block-components-button:hover,
.wc-block-checkout__actions_row a.wc-block-components-button:hover,
.wc-block-checkout__actions_row .wp-element-button:hover,
.wp-block-woocommerce-checkout-actions-block button:hover,
.wp-block-woocommerce-proceed-to-checkout-block a:hover,
.wp-block-woocommerce-proceed-to-checkout-block button:hover,
.wp-block-woocommerce-checkout button.wc-block-components-button:not(.is-link):hover,
.wc-block-checkout button.wc-block-components-button:not(.is-link):hover {
  background: var(--ej-cyan-dark, #00A8B0) !important;
  background-color: var(--ej-cyan-dark, #00A8B0) !important;
  color: var(--ej-white, #FFFFFF) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 26px rgba(0, 194, 203, 0.5) !important;
  text-decoration: none !important;
}

/* Blindaje absoluto al final del archivo para padding-left: 10px en todos los botones de panel y acordeones */
.wc-block-components-panel__button,
.wc-block-components-panel__button:active,
.wc-block-components-panel__button:focus,
.wc-block-components-panel__button:hover,
.wc-block-components-panel__button:focus-visible,
.wc-block-components-panel__button[aria-expanded="true"],
.wc-block-components-totals-coupon .wc-block-components-panel__button,
.wc-block-components-totals-coupon .wc-block-components-panel__button:active,
.wc-block-components-totals-coupon .wc-block-components-panel__button:focus,
.wc-block-components-totals-coupon .wc-block-components-panel__button:hover,
.fsb-recurring-totals-panel .wc-block-components-panel__button,
.fsb-recurring-totals-panel .wc-block-components-panel__button:active,
.fsb-recurring-totals-panel .wc-block-components-panel__button:focus,
.fsb-recurring-totals-panel .wc-block-components-panel__button:hover {
  padding-left: 10px !important;
}

/* ═════════════════════════════════════════════════════════════════════════
   10. PÁGINA "MI CUENTA" (.woocommerce-account) — DISEÑO PREMIUM EJECUTORA
   ═════════════════════════════════════════════════════════════════════════ */

/* Asegurar que el contenedor de toda la página de Mi Cuenta ocupe el ancho amplio (1240px) y no esté restringido por Elementor/Gutenberg */
.woocommerce-account .site-main,
.woocommerce-account .entry-content,
.woocommerce-account .page-content,
.woocommerce-account .elementor-section,
.woocommerce-account .elementor-container,
.woocommerce-account .elementor-widget-container {
  max-width: 1240px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Contenedor general cuando hay sesión iniciada */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation),
.woocommerce-account .elementor-widget-woocommerce-my-account .elementor-widget-container:has(.woocommerce-MyAccount-navigation),
.wp-block-woocommerce-customer-account:has(.woocommerce-MyAccount-navigation) {
  grid-template-rows: auto auto !important;
  gap: 36px !important;
  align-items: start !important;
  max-width: 1240px !important;
  width: 100% !important;
  padding: 0 24px !important;
  box-sizing: border-box !important;
}

/* Cuando el Sidebar App de Ejecutora está activo, la nav de WC está oculta:
   anulamos el grid de 2 columnas para evitar el espacio vacío de 280px */
body.ej-has-sidebar-menu .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation),
body.ej-has-sidebar-menu .woocommerce-account .elementor-widget-woocommerce-my-account .elementor-widget-container:has(.woocommerce-MyAccount-navigation),
body.ej-has-sidebar-menu .wp-block-woocommerce-customer-account:has(.woocommerce-MyAccount-navigation) {
  display: block !important;
  grid-template-columns: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Contenedor general cuando el usuario NO ha iniciado sesión (pantalla Acceder / Login): centrado perfecto */
body:not(.ej-has-sidebar-menu) .woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)),
body:not(.ej-has-sidebar-menu) .woocommerce-account .elementor-widget-woocommerce-my-account .elementor-widget-container:not(:has(.woocommerce-MyAccount-navigation)),
body:not(.ej-has-sidebar-menu) .wp-block-woocommerce-customer-account:not(:has(.woocommerce-MyAccount-navigation)) {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  max-width: 1080px !important;
  width: 100% !important;
  margin: 40px auto 80px auto !important;
  padding: 0 24px !important;
  box-sizing: border-box !important;
}

/* Forzar que notificaciones o alertas ocupen ambas columnas o se centren arriba */
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account .woocommerce > .woocommerce-error,
.woocommerce-account .woocommerce > .woocommerce-info,
.woocommerce-account .woocommerce > .woocommerce-message {
  grid-column: 1 / -1 !important;
  grid-row: 1 / 2 !important;
  width: 100% !important;
}

/* Asignación explícita de columnas: Menú siempre en la Columna 1 y Contenido siempre en la Columna 2 */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .e-my-account-tab__navigation {
  grid-column: 1 / -2 !important;
  grid-row: 2 / 3 !important;
  width: 100% !important;
  min-width: 260px !important;
  background: #FFFFFF !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-radius: var(--radius-lg, 24px) !important;
  padding: 22px !important;
  box-shadow: var(--shadow-sm, 0 4px 16px rgba(26, 31, 110, 0.04)) !important;
  box-sizing: border-box !important;
}

.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .e-my-account-tab__content {
  grid-column: 2 / -1 !important;
  grid-row: 2 / 3 !important;
  width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 1024px) {
  .woocommerce-account .woocommerce,
  .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation),
  .woocommerce-account .elementor-widget-woocommerce-my-account .elementor-widget-container,
  .woocommerce-account .elementor-widget-woocommerce-my-account .elementor-widget-container:has(.woocommerce-MyAccount-navigation),
  .wp-block-woocommerce-customer-account,
  .wp-block-woocommerce-customer-account:has(.woocommerce-MyAccount-navigation) {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 28px !important;
    padding: 0px !important;
    box-sizing: border-box !important;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .e-my-account-tab__navigation {
    width: 100% !important;
    min-width: 100% !important;
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    margin-bottom: 12px !important;
    padding: 18px !important;
  }
  .woocommerce-account .woocommerce-MyAccount-content,
  .woocommerce-account .e-my-account-tab__content {
    width: 100% !important;
    min-width: 100% !important;
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
  }
  .woocommerce-account .woocommerce-MyAccount-content table.woocommerce-orders-table,
  .woocommerce-account .woocommerce-MyAccount-content table.account-orders-table,
  .woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-downloads {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    width: 100% !important;
  }
}

/* Quitar viñetas azules y estilos de lista por defecto */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Enlaces del menú de Mi Cuenta */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 14px 18px !important;
  border-radius: 14px !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 14.5px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  box-sizing: border-box !important;
}

/* Efecto Hover elegante */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: #F8FFFE !important;
  color: var(--ej-cyan-dark, #00A8B0) !important;
  border-color: var(--ej-cyan, #00C2CB) !important;
  transform: translateX(4px) !important;
}

/* Pestaña activa actual */
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.current-menu-item a {
  background: var(--ej-navy, #1A1F6E) !important;
  color: #FFFFFF !important;
  border-color: var(--ej-navy, #1A1F6E) !important;
  box-shadow: 0 6px 18px rgba(26, 31, 110, 0.2) !important;
  transform: none !important;
}

/* Botón Salir / Cerrar sesión diferenciado en rojo sutil al hacer hover */
.woocommerce-account .woocommerce-MyAccount-navigation ul li--customer-logout a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child a:hover {
  background: #FFF5F5 !important;
  color: #D32F2F !important;
  border-color: #FFCDD2 !important;
}

/* ── PANEL DE CONTENIDO PRINCIPAL (DERECHA) ── */
.woocommerce-account .woocommerce-MyAccount-content {
  /* background: #FFFFFF !important; */
  /* border: 1.5px solid var(--ej-border, #E0E8FF) !important; */
  /* border-radius: var(--radius-lg, 24px) !important; */
  /* padding: 38px 42px !important; */
  /* box-shadow: var(--shadow-sm, 0 4px 16px rgba(26, 31, 110, 0.04)) !important; */
  /* font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important; */
  /* font-size: 15.5px !important; */
  /* color: var(--ej-secondary, #5A5A72) !important; */
  /* line-height: 1.7 !important; */
  /* min-height: 420px !important; */
  /* width: 100% !important; */
  /* box-sizing: border-box !important; */
}

@media (max-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-content {
    /* padding: 24px 20px !important; */
  }
}

/* Títulos dentro de Mi Cuenta */
.woocommerce-account .woocommerce-MyAccount-content h1,
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: clamp(20px, 1.8vw, 24px) !important;
  color: var(--ej-navy, #1A1F6E) !important;
  margin-top: 0 !important;
  margin-bottom: 22px !important;
  padding-bottom: 14px !important;
  border-bottom: 2px solid var(--ej-border, #E0E8FF) !important;
  line-height: 1.3 !important;
}

/* Textos e instrucciones */
.woocommerce-account .woocommerce-MyAccount-content p {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  color: var(--ej-secondary, #5A5A72) !important;
  font-size: 15.5px !important;
  line-height: 1.7 !important;
}

/* Enlaces de texto dentro de párrafos de Mi Cuenta (ej. "Cerrar sesión", "pedidos recientes") */
.woocommerce-account .woocommerce-MyAccount-content p a:not([class*="btn"]):not([class*="button"]),
.woocommerce-account .woocommerce-MyAccount-content a:not(.woocommerce-Button):not(.button):not(.woocommerce-orders-table__link):not([class*="btn"]):not([class*="button"]):not(.stat-value) {
  color: var(--ej-cyan-dark, #00A8B0) !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  transition: color 0.2s ease !important;
}

.woocommerce-account .woocommerce-MyAccount-content p a:not([class*="btn"]):not([class*="button"]):hover {
  color: var(--ej-navy, #1A1F6E) !important;
}

/* ── TABLAS DE PEDIDOS Y DESCARGAS EN MI CUENTA ── */
.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-orders-table,
.woocommerce-account .woocommerce-MyAccount-content table.account-orders-table,
.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-downloads {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 14px !important;
  margin: 20px 0 !important;
  border: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content table thead th {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--ej-secondary, #5A5A72) !important;
  padding: 0 18px 12px !important;
  border-bottom: 2px solid var(--ej-border, #E0E8FF) !important;
  text-align: left !important;
  background: transparent !important;
}

.woocommerce-account .woocommerce-MyAccount-content table tbody tr {
  background: #FFFFFF !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 16px !important;
  box-shadow: 0 2px 10px rgba(26, 31, 110, 0.02) !important;
  transition: all 0.2s ease !important;
}

.woocommerce-account .woocommerce-MyAccount-content table tbody tr:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(26, 31, 110, 0.06) !important;
}

.woocommerce-account .woocommerce-MyAccount-content table tbody td {
  padding: 18px !important;
  border: none !important;
  border-top: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-bottom: 1.5px solid var(--ej-border, #E0E8FF) !important;
  font-size: 14.5px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  vertical-align: middle !important;
  background: #FFFFFF !important;
}

.woocommerce-account .woocommerce-MyAccount-content table tbody tr td:first-child {
  border-left: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-top-left-radius: 16px !important;
  border-bottom-left-radius: 16px !important;
  font-weight: 700 !important;
}

.woocommerce-account .woocommerce-MyAccount-content table tbody tr td:last-child {
  border-right: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-top-right-radius: 16px !important;
  border-bottom-right-radius: 16px !important;
}

/* Botón "Ver" u otros botones de acción en tablas de Mi Cuenta */
.woocommerce-account .woocommerce-MyAccount-content table tbody td .woocommerce-button,
.woocommerce-account .woocommerce-MyAccount-content table tbody td .button,
.woocommerce-account .woocommerce-MyAccount-content table tbody td a.woocommerce-orders-table__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 8px 16px !important;
  border-radius: 10px !important;
  background: #F0F4FF !important;
  color: var(--ej-navy, #1A1F6E) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
}

.woocommerce-account .woocommerce-MyAccount-content table tbody td .woocommerce-button:hover,
.woocommerce-account .woocommerce-MyAccount-content table tbody td .button:hover,
.woocommerce-account .woocommerce-MyAccount-content table tbody td a.woocommerce-orders-table__link:hover {
  background: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-navy, #1A1F6E) !important;
  border-color: var(--ej-cyan, #00C2CB) !important;
}

/* ── BOTONES GENERALES DENTRO DEL PANEL DE CONTENIDO ── */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"] {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 14.5px !important;
  color: #FFFFFF !important;
  background: var(--ej-navy, #1A1F6E) !important;
  padding: 14px 28px !important;
  border-radius: 100px !important;
  border: none !important;
  cursor: pointer !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  box-shadow: 0 4px 16px rgba(26, 31, 110, 0.25) !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-account .woocommerce-MyAccount-content .button:hover,
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"]:hover {
  background: var(--ej-cyan-dark, #00A8B0) !important;
  color: #FFFFFF !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(0, 194, 203, 0.4) !important;
}

/* ── FORMULARIOS EN MI CUENTA (EDITAR CUENTA, DIRECCIONES, LOGIN / REGISTRO) ── */
.woocommerce-account form .form-row {
  margin-bottom: 22px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.woocommerce-account form label {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  color: var(--ej-navy, #1A1F6E) !important;
}

.woocommerce-account form input[type="text"],
.woocommerce-account form input[type="email"],
.woocommerce-account form input[type="password"],
.woocommerce-account form input[type="tel"],
.woocommerce-account form select {
  background: #FFFFFF !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 12px !important;
  padding: 14px 18px !important;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 15px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.woocommerce-account form input[type="text"]:focus,
.woocommerce-account form input[type="email"]:focus,
.woocommerce-account form input[type="password"]:focus,
.woocommerce-account form input[type="tel"]:focus,
.woocommerce-account form select:focus {
  border-color: var(--ej-cyan, #00C2CB) !important;
  box-shadow: 0 0 0 4px rgba(0, 194, 203, 0.15) !important;
  outline: none !important;
}

/* ── GRID Y TARJETA DE LOGIN CENTRALIZADA ESTILO "EJECUTORA SUITE" (CUANDO EL USUARIO NO HA INICIADO SESIÓN) ── */
.woocommerce-account #customer_login.u-columns.col2-set,
.woocommerce-account .u-columns.col2-set {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: flex-start !important;
  gap: 36px !important;
  max-width: 1080px !important;
  margin: 40px auto 80px auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Tarjeta individual de Login / Registro centrada y con estilo Ejecutora Suite */
.woocommerce-account .u-column1.col-1,
.woocommerce-account .u-column2.col-2,
.woocommerce-account form.login,
.woocommerce-account form.register {
  background: #FFFFFF !important;
  border: none !important;
  border-radius: 36px !important;
  padding: 48px 44px !important;
  box-shadow: 0 16px 48px rgba(26, 31, 110, 0.08) !important;
  width: 100% !important;
  max-width: 520px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  float: none !important;
}

@media (max-width: 768px) {
  .woocommerce-account .u-column1.col-1,
  .woocommerce-account .u-column2.col-2,
  .woocommerce-account form.login,
  .woocommerce-account form.register {
    padding: 36px 26px !important;
    border-radius: 28px !important;
  }
}

/* Título superior centralizado ("Acceder" / "Crear cuenta") con icono brillante */
.woocommerce-account .u-column1.col-1 h2,
.woocommerce-account .u-column2.col-2 h2,
.woocommerce-account form.login h2,
.woocommerce-account form.register h2 {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 26px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  text-align: center !important;
  margin-top: 0 !important;
  margin-bottom: 30px !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
  display: block !important;
  width: 100% !important;
}

.woocommerce-account .u-column1.col-1 h2::before,
.woocommerce-account .u-column2.col-2 h2::before,
.woocommerce-account form.login h2::before,
.woocommerce-account form.register h2::before {
  content: "✨";
  display: block !important;
  font-size: 32px !important;
  margin: 0 auto 10px auto !important;
  text-align: center !important;
  line-height: 1 !important;
}

/* Campos e Inputs estilo Ejecutora Suite (fondo lavanda suave #EEF3FD) */
.woocommerce-account form.login .form-row,
.woocommerce-account form.register .form-row,
.woocommerce-account .u-column1.col-1 .form-row,
.woocommerce-account .u-column2.col-2 .form-row {
  margin-bottom: 22px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.woocommerce-account form.login label,
.woocommerce-account form.register label,
.woocommerce-account .u-column1.col-1 label,
.woocommerce-account .u-column2.col-2 label {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 13.5px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  display: block !important;
  text-align: left !important;
}

.woocommerce-account form.login input[type="text"],
.woocommerce-account form.login input[type="email"],
.woocommerce-account form.login input[type="password"],
.woocommerce-account form.register input[type="text"],
.woocommerce-account form.register input[type="email"],
.woocommerce-account form.register input[type="password"],
.woocommerce-account .u-column1.col-1 input[type="text"],
.woocommerce-account .u-column1.col-1 input[type="email"],
.woocommerce-account .u-column1.col-1 input[type="password"],
.woocommerce-account .u-column2.col-2 input[type="text"],
.woocommerce-account .u-column2.col-2 input[type="email"],
.woocommerce-account .u-column2.col-2 input[type="password"] {
  background: #EEF3FD !important;
  border: 1.5px solid transparent !important;
  border-radius: 16px !important;
  padding: 16px 20px !important;
  font-family: var(--ej-font-body, 'Nunito Sans', sans-serif) !important;
  font-size: 15.5px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  height: 54px !important;
  box-sizing: border-box !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  width: 100% !important;
}

.woocommerce-account form.login input:focus,
.woocommerce-account form.register input:focus,
.woocommerce-account .u-column1.col-1 input:focus,
.woocommerce-account .u-column2.col-2 input:focus {
  background: #FFFFFF !important;
  border-color: var(--ej-cyan, #00C2CB) !important;
  box-shadow: 0 0 0 4px rgba(0, 194, 203, 0.15) !important;
  outline: none !important;
}

/* Botón principal estilo píldora cyan (#00C2CB) al fondo de la tarjeta */
.woocommerce-account form.login .button,
.woocommerce-account form.login .woocommerce-Button,
.woocommerce-account form.login input[type="submit"],
.woocommerce-account form.register .button,
.woocommerce-account form.register .woocommerce-Button,
.woocommerce-account form.register input[type="submit"],
.woocommerce-account .u-column1.col-1 .button,
.woocommerce-account .u-column2.col-2 .button {
  background: var(--ej-cyan, #00C2CB) !important;
  color: var(--ej-navy, #1A1F6E) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  border-radius: 100px !important;
  padding: 18px 32px !important;
  width: 100% !important;
  border: none !important;
  cursor: pointer !important;
  text-align: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 24px !important;
  box-shadow: 0 8px 26px rgba(0, 194, 203, 0.35) !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  min-height: 56px !important;
}

.woocommerce-account form.login .button:hover,
.woocommerce-account form.login .woocommerce-Button:hover,
.woocommerce-account form.login input[type="submit"]:hover,
.woocommerce-account form.register .button:hover,
.woocommerce-account form.register .woocommerce-Button:hover,
.woocommerce-account form.register input[type="submit"]:hover,
.woocommerce-account .u-column1.col-1 .button:hover,
.woocommerce-account .u-column2.col-2 .button:hover {
  background: var(--ej-cyan-dark, #00A8B0) !important;
  color: #FFFFFF !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 34px rgba(0, 194, 203, 0.45) !important;
}

/* Checkbox Recuérdame y Enlace "¿Olvidaste la contraseña?" */
.woocommerce-account form.login .woocommerce-form-login__rememberme {
  margin: 16px 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: 14px !important;
  color: var(--ej-secondary, #5A5A72) !important;
}

.woocommerce-account form.login .woocommerce-LostPassword,
.woocommerce-account form.login .lost_password {
  text-align: center !important;
  margin-top: 22px !important;
  margin-bottom: 0 !important;
}

.woocommerce-account form.login .woocommerce-LostPassword a,
.woocommerce-account form.login .lost_password a {
  color: var(--ej-secondary, #6C7293) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  display: inline-block !important;
}

.woocommerce-account form.login .woocommerce-LostPassword a:hover,
.woocommerce-account form.login .lost_password a:hover {
  color: #4836DB !important;
  text-decoration: underline !important;
}

/* ==========================================================================
   MARCO VIP PARA PEDIDO RECIBIDO / GRACIAS / FINALIZAR COMPRA (.woocommerce-order)
   ========================================================================== */

/* Contenedor principal de orden de compra (El "Marco" del tema) */
.woocommerce-order,
.woocommerce-thankyou-order-received-wrapper,
.woocommerce-order-received .woocommerce {
  max-width: 920px !important;
  margin: 40px auto 80px !important;
  padding: 48px 52px !important;
  background: #FFFFFF !important;
  border: 1.5px solid var(--ej-border, #E0E8FF) !important;
  border-radius: var(--radius-lg, 24px) !important;
  box-shadow: 0 12px 40px rgba(26, 31, 110, 0.06) !important;
  box-sizing: border-box !important;
  position: relative !important;
}

@media (max-width: 768px) {
  .woocommerce-order,
  .woocommerce-thankyou-order-received-wrapper,
  .woocommerce-order-received .woocommerce {
    padding: 28px 20px !important;
    margin: 24px auto 60px !important;
    border-radius: 18px !important;
  }
}

/* Alerta superior de éxito (Gracias. Tu pedido ha sido recibido.) */
.woocommerce-order p.woocommerce-notice,
.woocommerce-order p.woocommerce-thankyou-order-received,
p.woocommerce-notice--success {
  background: linear-gradient(135deg, var(--ej-cyan-light, #E5FAFA) 0%, #D5FBFA 100%) !important;
  border: 1.5px solid var(--ej-cyan, #00C2CB) !important;
  border-radius: 16px !important;
  padding: 20px 26px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin-top: 0 !important;
  margin-bottom: 36px !important;
  box-shadow: 0 4px 16px rgba(0, 194, 203, 0.12) !important;
  line-height: 1.4 !important;
}

.woocommerce-order p.woocommerce-notice::before,
.woocommerce-order p.woocommerce-thankyou-order-received::before,
p.woocommerce-notice--success::before {
  content: '✓';
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  background: var(--ej-cyan, #00C2CB) !important;
  color: #FFFFFF !important;
  border-radius: 50% !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  flex: none !important;
}

/* Cuadro Resumen (NÚMERO DE PEDIDO, FECHA, CORREO, TOTAL, MÉTODO) */
.woocommerce-order ul.woocommerce-order-overview,
.woocommerce-order ul.woocommerce-thankyou-order-details,
ul.order_details {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
  gap: 14px !important;
  margin: 0 0 40px 0 !important;
  padding: 22px !important;
  background: #F8F9FE !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 16px !important;
  list-style: none !important;
}

.woocommerce-order ul.woocommerce-order-overview li,
.woocommerce-order ul.woocommerce-thankyou-order-details li,
ul.order_details li {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 4px !important;
  padding: 14px 16px !important;
  background: #FFFFFF !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 12px !important;
  font-size: 11.5px !important;
  color: var(--ej-secondary, #5A5A72) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  margin: 0 !important;
  box-shadow: 0 2px 6px rgba(26, 31, 110, 0.02) !important;
  border-right: 1px solid var(--ej-border, #E0E8FF) !important;
}

.woocommerce-order ul.woocommerce-order-overview li strong,
.woocommerce-order ul.woocommerce-thankyou-order-details li strong,
ul.order_details li strong {
  font-size: 14.5px !important;
  color: var(--ej-navy, #1A1F6E) !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 800 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  margin-top: 2px !important;
  display: block !important;
  word-break: break-word !important;
}

/* Encabezados de Sección inside the Order Frame */
.woocommerce-order h2,
.woocommerce-order-details h2.woocommerce-order-details__title,
section.woocommerce-customer-details h2.woocommerce-column__title {
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  margin: 32px 0 16px !important;
  border-bottom: 2px solid var(--ej-border, #E0E8FF) !important;
  padding-bottom: 12px !important;
}

/* Tabla de Detalles de Pedido */
.woocommerce-order table.woocommerce-table--order-details,
.woocommerce-order table.shop_table.order_details {
  width: 100% !important;
  background: #FFFFFF !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  margin-bottom: 36px !important;
}

.woocommerce-order table.woocommerce-table--order-details thead th,
.woocommerce-order table.shop_table.order_details thead th {
  background: var(--ej-navy, #1A1F6E) !important;
  color: #FFFFFF !important;
  font-family: var(--ej-font-display, 'Poppins', sans-serif) !important;
  font-weight: 700 !important;
  padding: 15px 18px !important;
  font-size: 13.5px !important;
  border: none !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}

.woocommerce-order table.woocommerce-table--order-details tbody td,
.woocommerce-order table.shop_table.order_details tbody td,
.woocommerce-order table.woocommerce-table--order-details tfoot td,
.woocommerce-order table.shop_table.order_details tfoot td,
.woocommerce-order table.woocommerce-table--order-details tfoot th,
.woocommerce-order table.shop_table.order_details tfoot th {
  padding: 15px 18px !important;
  border-bottom: 1px solid var(--ej-border, #E0E8FF) !important;
  font-size: 14.5px !important;
  color: var(--ej-body-text, #2D3160) !important;
}

.woocommerce-order table.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order table.woocommerce-table--order-details tfoot tr:last-child td,
.woocommerce-order table.shop_table.order_details tfoot tr:last-child th,
.woocommerce-order table.shop_table.order_details tfoot tr:last-child td {
  border-bottom: none !important;
  font-weight: 800 !important;
  color: var(--ej-navy, #1A1F6E) !important;
  background: #F8F9FE !important;
  font-size: 16px !important;
}

/* Dirección de Facturación / Datos del Cliente */
section.woocommerce-customer-details {
  background: #F8F9FE !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
  border-radius: 16px !important;
  padding: 24px 28px !important;
  margin-top: 36px !important;
}

section.woocommerce-customer-details h2.woocommerce-column__title {
  margin: 0 0 14px 0 !important;
  border-bottom: none !important;
  padding-bottom: 0 !important;
  font-size: 17px !important;
}

section.woocommerce-customer-details address {
  font-style: normal !important;
  line-height: 1.7 !important;
  color: var(--ej-secondary, #5A5A72) !important;
  font-size: 14.5px !important;
  background: #FFFFFF !important;
  padding: 16px 20px !important;
  border-radius: 10px !important;
  border: 1px solid var(--ej-border, #E0E8FF) !important;
}

