/* =============================================
   FIX: Swiper carousel — overflow horizontal en body
   .elementor-swiper usa márgenes negativos para efecto peek, lo que hace
   que el wrapper quede 7px fuera del viewport en cada lado. Sin un ancestro
   con overflow:hidden, el body se vuelve scrollable horizontalmente.
   .e-swiper-container es la clase que Elementor agrega al widget-wrap que
   contiene un swiper — es el clip point correcto sin romper el carousel.
   ============================================= */
.e-swiper-container {
  overflow: hidden;
}

/* =============================================
   HEADER MOBILE — fix columna de íconos (búsqueda + carrito)
   La columna de íconos (d4682ef) se queda corta en mobile (72px) y el
   badge del carrito desborda. Logo cede espacio con flex:1, íconos
   se ajustan al contenido con flex:0 0 auto.

   FIX alineación vertical: esta columna usa flex-direction:column
   (Elementor container), por lo que "justify-content" controla el eje
   VERTICAL, no el horizontal. "flex-end" empujaba el ícono del carrito
   al fondo del header (44px de alto) mientras la columna del hamburguesa
   (0283aa0, 33px de alto, padding:10px) queda ~10px desde arriba, dejando
   ambos íconos desalineados entre sí (~17px de diferencia visual).
   Se centran ambas columnas verticalmente para que compartan el mismo eje.
   ============================================= */
@media (max-width: 1024px) {
  /* Logo: cede espacio libremente */
  .elementor-element-fb50929 {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
  }
  /* Íconos: crece solo lo necesario, centrado verticalmente */
  .elementor-element-d4682ef {
    flex: 0 0 auto !important;
    width: auto !important;
    justify-content: center !important;
    gap: 4px !important;
    overflow: visible !important;
  }
  /* Botón de búsqueda: compacto, sin min-width de Elementor */
  .elementor-element-471c52a .elementor-button {
    padding: 8px 10px !important;
    min-width: unset !important;
  }
  /* Badge contador del carrito: no recortar */
  .elementor-element-ae14ea3,
  .elementor-element-ae14ea3 .elementor-menu-cart__toggle {
    overflow: visible !important;
  }
  /* Hamburguesa: mismo criterio de centrado vertical que la columna de íconos */
  .elementor-element-0283aa0 {
    justify-content: center !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* =============================================
   FIX 4: Landing page — título del producto con line-height: 1px
   causa que el texto se superponga en móvil
   ============================================= */
.elementor-15402 .elementor-element.elementor-element-15cf65c.elementor-wc-products
  ul.products li.product .woocommerce-loop-product__title {
  line-height: 1.3 !important;
}

/* =============================================
   FIX 5: WooCommerce grid — clear:both en .first rompe
   CSS Grid auto-placement (columna 1 queda en blanco)
   Afecta base-coat y landing-new-in
   ============================================= */
.woocommerce ul.products li.product.first,
.woocommerce-page ul.products li.product.first {
  clear: none !important;
}

/* =============================================
   FIX 6: WooCommerce clearfix ::before se convierte en
   grid item cuando ul.products usa display:grid (Elementor),
   ocupando la primera celda y dejando la columna 1 en blanco.
   Solución: ocultar el pseudo-elemento clearfix.
   ============================================= */
.woocommerce ul.products::before,
.woocommerce-page ul.products::before {
  display: none !important;
}

/* Ocultar link "Ver carrito" que WC JS inyecta tras añadir al carrito en el loop.
   El drawer maneja la navegación — el link rompe el grid de productos. */
a.added_to_cart.wc-forward {
  display: none !important;
}

/* =============================================
   FIX 7a: Breadcrumb — ocultar en mobile (poco útil,
   ocupa espacio valioso en pantallas pequeñas)
   ============================================= */
@media (max-width: 1024px) {
  .woocommerce-breadcrumb {
    display: none !important;
  }
}

/* =============================================
   FIX 7b–7f: PDP Mobile — UX improvements
   ============================================= */
@media (max-width: 767px) {

  /* 7b: Descripción corta — reducir de 16px a 13px */
  .woocommerce-product-details__short-description,
  .woocommerce-product-details__short-description p,
  .woocommerce-product-details__short-description li,
  .woocommerce-product-details__short-description ul {
    font-size: 13px !important;
    line-height: 1.65 !important;
  }

  /* 7c: Título producto — reducir de 40px a 24px */
  .single-product h1.product_title,
  .elementor-17500 .elementor-widget-woocommerce-product-title .elementor-heading-title {
    font-size: 24px !important;
    line-height: 1.25 !important;
  }

  /* 7d: Input cantidad — touch target mínimo 44px */
  .single-product .quantity .qty {
    height: 44px !important;
    min-height: 44px !important;
    line-height: 44px !important;
    font-size: 16px !important;
    text-align: center !important;
    padding: 0 8px !important;
  }

  /* 7e: Tabs → Acordeón: ocultar nav horizontal */
  .woocommerce-tabs .wc-tabs {
    display: none !important;
  }
  /* Todos los paneles visibles (JS controla cuerpo) */
  .woocommerce-tabs .woocommerce-Tabs-panel {
    display: block !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* Ocultar h2 interno de cada panel (duplica el título del acordeón) */
  .woocommerce-tabs .woocommerce-Tabs-panel > h2 {
    display: none !important;
  }
  /* Header de acordeón (inyectado por JS) */
  .pm-tab-accordion-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 14px 0 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #1a1a1a !important;
    cursor: pointer !important;
    border-bottom: 1px solid #e0e0e0 !important;
    user-select: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }
  .pm-tab-accordion-icon {
    font-size: 22px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    margin-left: 8px !important;
  }
  /* Cuerpo del acordeón */
  .pm-tab-accordion-body {
    display: none !important;
    padding: 14px 0 18px !important;
    font-size: 13px !important;
    line-height: 1.65 !important;
    color: #555 !important;
  }
  .pm-tab-accordion-body.pm-open {
    display: block !important;
  }
}

/* =============================================
   FIX 7g: Sticky Añadir al carrito
   Visible vía JS cuando el botón principal sale de pantalla
   ============================================= */
#pm-sticky-cart {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #ffffff;
  border-top: 1px solid #e0e0e0;
  box-shadow: 0 -3px 14px rgba(0,0,0,0.12);
  padding: 10px 15px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  z-index: 99998;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
}
#pm-sticky-cart.pm-visible {
  display: flex !important;
}
#pm-sticky-cart .pm-sticky-info {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
#pm-sticky-cart .pm-sticky-name {
  font-size: 12px;
  font-weight: 600;
  color: #1a1a1a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
  margin-bottom: 2px;
}
#pm-sticky-cart .pm-sticky-price {
  font-size: 14px;
  font-weight: 700;
  color: #b5007a;
  line-height: 1.3;
}
#pm-sticky-cart .pm-sticky-price del {
  font-size: 11px;
  color: #999;
  font-weight: 400;
  margin-right: 4px;
}
#pm-sticky-cart .pm-sticky-btn {
  background: #b5007a;
  color: #ffffff;
  border: none;
  border-radius: 4px;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  font-family: Montserrat, sans-serif;
  letter-spacing: 0.3px;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}
#pm-sticky-cart .pm-sticky-btn:active {
  opacity: 0.82;
}

/* =============================================
   FIX 8: CSS defensivo — short description
   Evita que un h1/h2/h3 mal editado en el excerpt
   rompa el tamaño tipográfico del PDP.
   ============================================= */
.woocommerce-product-details__short-description h1,
.woocommerce-product-details__short-description h2,
.woocommerce-product-details__short-description h3 {
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  margin: 0 0 6px 0 !important;
  color: inherit !important;
}

/* =============================================
   FIX 9: Funnel de compra — mejoras UX mobile
   ============================================= */

/* --- 9a: PLP — título de producto en tarjeta --- */
@media (max-width: 767px) {
  ul.products li.product .woocommerce-loop-product__title,
  ul.products li.product .woocommerce-loop-category__title {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }

  /* --- 9b: PLP — botón Añadir al carrito en tarjeta --- */
  ul.products li.product .button,
  ul.products li.product a.button,
  ul.products li.product a.add_to_cart_button {
    font-size: 12px !important;
    padding: 8px 10px !important;
    line-height: 1.3 !important;
  }

  /* --- 9c: PLP — filtro de orden (height mínimo touch 44px) --- */
  form.woocommerce-ordering select.orderby {
    height: 44px !important;
    min-height: 44px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* --- 9d: Carrito — qty input del bloque (era 25px → 44px) --- */
.wc-block-components-quantity-selector {
  width: fit-content !important;
  height: 44px !important;
}
.wc-block-components-quantity-selector input {
  height: 44px !important;
  min-height: 44px !important;
  font-size: 16px !important;
  text-align: center !important;
}
.wc-block-components-quantity-selector__button {
  height: 44px !important;
  width: 44px !important;
  min-width: 44px !important;
}

/* --- 9e: Carrito — imagen de producto más grande (64px → 88px) --- */
@media (max-width: 767px) {
  .wc-block-cart-item__image {
    width: 88px !important;
    min-width: 88px !important;
  }
  .wc-block-cart-item__image img {
    width: 88px !important;
    height: 88px !important;
    object-fit: cover !important;
  }
}

/* --- 9f: Checkout — resumen del pedido DESPUÉS del formulario en mobile --- */
@media (max-width: 767px) {
  .wc-block-components-sidebar-layout {
    display: flex !important;
    flex-direction: column !important;
  }
  .wc-block-checkout__main {
    order: 1 !important;
  }
  .wc-block-checkout__sidebar {
    order: 2 !important;
    margin-top: 24px !important;
  }
}

/* --- 9g: Checkout — login prompt menos prominente --- */
.wc-block-checkout__login-prompt,
.wc-block-checkout__login-prompt p,
.wc-block-checkout__login-prompt a {
  font-size: 12px !important;
  color: #888 !important;
}

/* --- 9h: Carrito — Seguir comprando link (inyectado por JS) --- */
#pm-continue-shopping {
  display: block;
  text-align: center;
  padding: 12px 0 4px;
  font-size: 13px;
  color: #555;
  text-decoration: underline;
  cursor: pointer;
  background: none;
  border: none;
  width: 100%;
  font-family: inherit;
}
#pm-continue-shopping:hover {
  color: #b5007a;
}

/* =============================================
   FIX 10: Header cart toggle — badge de cantidad (global, todos los anchos)
   Ocultar badge nativo de Elementor y mostrar nuestro .pm-cart-count
   con la cantidad total de unidades en el carrito.
   ============================================= */

/* Ocultar badge nativo de Elementor — múltiples propiedades porque
   el JS de Elementor puede sobreescribir display:none solo */
.elementor-button-icon-qty {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  overflow: hidden !important;
}

/* El toggle necesita position:relative para anclar .pm-cart-count */
.elementor-menu-cart__toggle_button {
  position: relative !important;
}
.pm-cart-count {
  position: absolute !important;
  top: 2px !important;
  right: 0px !important;
  background: #b5007a !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  min-width: 17px !important;
  height: 17px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  padding: 0 3px !important;
  pointer-events: none !important;
  font-family: Montserrat, sans-serif !important;
}

@media (max-width: 1024px) {
  /* Ocultar texto con precio en mobile */
  .elementor-menu-cart__toggle .elementor-button-text {
    display: none !important;
  }

  /* Altura mínima touch 44px */
  .elementor-menu-cart__toggle,
  .elementor-menu-cart__toggle_button {
    height: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .elementor-menu-cart__toggle_button {
    padding: 0 8px !important;
  }
}

/* =============================================
   FIX 11: Carrito — alignwide con margin -80px
   desbordan el contenedor en mobile
   ============================================= */
@media (max-width: 1024px) {
  .wp-block-woocommerce-cart,
  .wc-block-cart {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}


/* =============================================
   SHIPPING BAR — Barra de envío por región
   ============================================= */
#pm-shipping-bar {
  position: relative;
  z-index: 99998;
  background: #fdf4fa;
  width: 100%;
  box-sizing: border-box;
}

#pm-shipping-bar-inner {
  max-width: 1200px;
  margin: 0 auto;
  min-height: 36px;
  padding: 9px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 13px;
  color: #444;
  font-family: Montserrat, sans-serif;
}

#pm-shipping-bar-icon {
  font-size: 15px;
  flex-shrink: 0;
}

#pm-shipping-bar-text strong {
  color: #b5007a;
}

.pm-bar-free {
  color: #1a7a1a;
  font-weight: 600;
}

/* Selector de región */
#pm-region-selector {
  position: relative;
  flex-shrink: 0;
}

#pm-region-btn {
  background: transparent;
  border: 1px solid #b5007a;
  color: #b5007a;
  font-size: 12px;
  font-family: Montserrat, sans-serif;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 20px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s;
  line-height: 1.4;
}

#pm-region-btn:hover,
#pm-region-btn[aria-expanded="true"] {
  background: #b5007a;
  color: #fff;
}

#pm-region-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 10px;
  z-index: 10000;
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  min-width: 230px;
}

#pm-region-dropdown.pm-open {
  display: block;
}

#pm-region-select {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 13px;
  font-family: Montserrat, sans-serif;
  color: #333;
  background: #fff;
  cursor: pointer;
}

#pm-region-select:focus {
  outline: 2px solid #b5007a;
  border-color: #b5007a;
}

/* Mobile */
@media (max-width: 767px) {
  #pm-shipping-bar-inner {
    min-height: 32px;
    padding: 7px 14px;
    gap: 8px;
    justify-content: space-between;
    font-size: 12px;
    flex-wrap: wrap;
  }

  #pm-shipping-bar-text {
    flex: 1;
    min-width: 0;
  }

  /* dropdown: ancho completo relativo al bar, no al botón */
  #pm-region-selector {
    position: static;
  }
  #pm-region-dropdown {
    left: 0;
    right: 0;
    width: auto;
    min-width: unset;
    top: 100%;
  }
}


/* =============================================
   Ocultar barra de despacho hardcodeada en
   header Elementor (widget uulefgg, template 17501)
   — reemplazada por #pm-shipping-bar dinámico
   ============================================= */
.elementor-element-uulefgg,
.elementor-element-3opot4m {
  display: none !important;
}

/* Shipping bar — mobile: pm-bar-free visible */



/* =============================================
   CARRITO — Botón Eliminar artículo touch target
   ============================================= */
.wc-block-cart-item__remove-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  min-width: 44px !important;
  padding: 8px !important;
  margin: -8px !important;
}

/* =============================================
   CATEGORÍAS — Botón ATC touch target mínimo 44px
   ============================================= */
.woocommerce ul.products li.product .button {
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}


/* =============================================
   CARRITO — Desglose de totales (espeja el checkout)
   ============================================= */
/* Filas del desglose: Subtotal, Crédito en tienda, Descuento cupón. */
.pm-cart-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 0;
  font-size: 14px;
  color: #555;
  font-family: Montserrat, sans-serif;
}

.pm-cart-line__label {
  padding-right: 8px;
}

.pm-cart-line__value {
  font-weight: 600;
  color: #333;
  white-space: nowrap;
}

/* Montos que restan (crédito en tienda, descuento cupón) en rosa de marca. */
.pm-cart-line__value--minus {
  color: #d96f93;
  font-weight: 700;
}

/* Fila de envío estimado: misma métrica que el resto del desglose (sin línea
   propia: la línea superior del grupo la aporta el wrapper de totales). */
#pm-shipping-estimate-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: 7px 0;
  font-size: 14px;
  color: #555;
  font-family: Montserrat, sans-serif;
}

.pm-est-label {
  flex: 1;
  padding-right: 8px;
}

.pm-est-value {
  font-weight: 600;
  color: #333;
}

.pm-est-free {
  color: #1a7a1a;
  font-weight: 700;
}

.pm-est-hint {
  width: 100%;
  font-size: 12px;
  color: #888;
  margin-top: 4px;
}

.pm-est-hint a {
  color: #b5007a;
  text-decoration: underline;
}

/* La fila de envío nativa se reemplaza por #pm-shipping-estimate-row: ocultarla
   por completo (su wrapper dejaba una franja vacía con línea divisoria = ruido). */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-shipping-block {
  display: none !important;
}
/* Si el bloque de totales solo contendría el envío (ya oculto), colapsar su borde
   y relleno para no dejar una línea/franja suelta. Se conserva intacto cuando hay
   descuento, fee, subtotal o impuestos visibles (p. ej. al aplicar un cupón). */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-totals-block:not(:has(
  .wp-block-woocommerce-cart-order-summary-subtotal-block,
  .wp-block-woocommerce-cart-order-summary-discount-block,
  .wp-block-woocommerce-cart-order-summary-fee-block,
  .wp-block-woocommerce-cart-order-summary-taxes-block
)) {
  border-top: none !important;
  padding: 0 !important;
}

/* Cart submit button — brand color + always readable */
.wc-block-cart__submit-button.wp-element-button {
  background-color: #b5007a !important;
  color: #ffffff !important;
}
.wc-block-cart__submit-button.wp-element-button:hover,
.wc-block-cart__submit-button.wp-element-button:focus {
  background-color: #8c005e !important;
  color: #ffffff !important;
}
/* Keep text visible even in loading/disabled state */
.wc-block-cart__submit-button[aria-disabled="true"] .wc-block-components-button__text,
.wc-block-cart__submit-button--loading .wc-block-components-button__text {
  visibility: visible !important;
  opacity: 0.7 !important;
}

/* Cart quantity stepper — borde rosa, símbolos grandes, separadores */
.wc-block-components-quantity-selector {
  width: fit-content !important;
  border: 1.5px solid #b5007a !important;
  border-radius: 6px !important;
  background: #fff !important;
  overflow: hidden;
}
.wc-block-components-quantity-selector__button {
  background: transparent !important;
  color: #b5007a !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  border: none !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
}
.wc-block-components-quantity-selector__button--minus {
  border-right: 1px solid #e8b3d8 !important;
}
.wc-block-components-quantity-selector__button--plus {
  border-left: 1px solid #e8b3d8 !important;
}
.wc-block-components-quantity-selector__button:hover {
  background: #fdf4fa !important;
}
.wc-block-components-quantity-selector__input {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #111 !important;
  background: transparent !important;
  border: none !important;
  text-align: center !important;
  width: 44px !important;
  height: 44px !important;
}

/* Checkout — hide "Acceso" login link (confusing for guest users) */
.wc-block-checkout__login-prompt {
  display: none !important;
}

/* =============================================
   Mini cart drawer
   ============================================= */
#pm-cart-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000001;
}
#pm-cart-drawer.pm-drawer-open {
  display: block;
}
#pm-drawer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  animation: pm-fade-in 0.25s ease;
}
#pm-drawer-panel {
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: min(360px, 90vw);
  background: #fff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}
#pm-cart-drawer.pm-drawer-open #pm-drawer-panel {
  transform: translateX(0);
}
.pm-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #eee;
  background: #fff;
  flex-shrink: 0;
}
.pm-drawer-success {
  font-size: 15px;
  font-weight: 700;
  color: #111;
  font-family: Montserrat, sans-serif;
  letter-spacing: -0.01em;
  transition: color 0.2s;
}
.pm-drawer-success.pm-drawer-success--added {
  color: #b5007a;
}
.pm-drawer-close {
  background: none;
  border: none;
  font-size: 26px;
  cursor: pointer;
  color: #888;
  line-height: 1;
  padding: 2px 6px;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pm-drawer-close:hover { color: #111; }
.pm-drawer-items {
  flex: 1;
  padding: 12px 20px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.pm-drawer-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #f2f2f2;
}
.pm-drawer-item:last-child { border-bottom: none; }
@keyframes pm-item-flash {
  0%   { background: #f5dff0; }
  60%  { background: #f5dff0; }
  100% { background: transparent; }
}
.pm-drawer-item--added {
  border-radius: 6px;
  animation: pm-item-flash 1s ease-out forwards;
}
.pm-drawer-item-img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
}
.pm-drawer-item-img--empty {
  background: #f5f5f5;
}
.pm-drawer-item-info { flex: 1; min-width: 0; }
.pm-drawer-item-remove {
  flex-shrink: 0;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  color: #bbb;
  padding: 4px 6px;
  border-radius: 4px;
  transition: color 0.15s, background 0.15s;
}
.pm-drawer-item-remove:hover { color: #e05; background: #fef0f0; }
.pm-drawer-item-remove:disabled { color: #ddd; cursor: default; }
.pm-drawer-item-name {
  font-size: 13px;
  font-weight: 600;
  color: #111;
  line-height: 1.3;
  font-family: Montserrat, sans-serif;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pm-drawer-item-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
}
.pm-drawer-badge {
  display: inline-block;
  font-size: 9px;
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  letter-spacing: 0.4px;
  padding: 2px 6px;
  border-radius: 4px;
  line-height: 1.4;
  white-space: nowrap;
}
.pm-drawer-badge--stock {
  color: #b5007a;
  border: 1px solid #b5007a;
  background: transparent;
}
.pm-drawer-badge--sale {
  color: #fff;
  background: #2e7d32;
  border: 1px solid transparent;
}
.pm-drawer-item-meta {
  font-size: 13px;
  color: #555;
  margin-top: 4px;
  font-weight: 500;
}
.pm-drawer-more {
  font-size: 12px;
  color: #999;
  padding: 10px 0 4px;
  text-align: center;
}
.pm-drawer-footer {
  padding: 16px 20px;
  border-top: 1px solid #f0e0ec;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
}
.pm-drawer-subtotal {
  font-size: 16px;
  font-weight: 700;
  color: #111;
  font-family: Montserrat, sans-serif;
  text-align: right;
}
.pm-drawer-btn-checkout {
  display: block;
  background: #b5007a !important;
  color: #fff !important;
  text-align: center;
  padding: 14px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 700;
  font-family: Montserrat, sans-serif;
  text-decoration: none !important;
  transition: background 0.2s;
}
.pm-drawer-btn-checkout:hover { background: #8c005e !important; }
.pm-drawer-btn-cart {
  display: block;
  text-align: center;
  color: #b5007a !important;
  font-size: 14px;
  text-decoration: underline !important;
  padding: 4px;
  font-family: Montserrat, sans-serif;
}
@keyframes pm-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Drawer — link "Ver todos los productos" */
.pm-drawer-more a {
  color: #b5007a !important;
  text-decoration: underline !important;
  font-size: 13px;
  font-family: Montserrat, sans-serif;
}

/* Drawer — upsell envío gratis */
.pm-drawer-upsell {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px dashed #f0c8e0;
}
.pm-drawer-progress {
  margin-bottom: 10px;
}
.pm-drawer-progress-flag {
  display: block;
  text-align: right;
  font-size: 11px;
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  color: #b5007a;
  margin-top: 5px;
}
.pm-drawer-progress-track {
  position: relative;
  height: 5px;
  background: #f0dcea;
  border-radius: 3px;
  margin-top: 28px; /* room for truck floating above */
}
.pm-drawer-progress-fill {
  height: 100%;
  background: #b5007a;
  border-radius: 3px;
  transition: width 0.4s ease;
}
.pm-drawer-progress-truck {
  position: absolute;
  top: 50%;
  transform: translate(-50%, calc(-50% - 18px)); /* float 18px above the bar */
  font-size: 22px;
  line-height: 1;
  pointer-events: none;
}
.pm-drawer-truck-icon {
  display: inline-block;
  transform: scaleX(-1); /* flip to face left → toward free shipping */
}
.pm-drawer-celeb {
  margin-top: auto;
  padding: 10px 14px;
  background: #fdf0f8;
  border: 1px solid #f0c8e0;
  border-radius: 10px;
  font-size: 13px;
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  color: #b5007a;
  text-align: center;
  animation: pm-celeb-in 0.3s ease;
}
@keyframes pm-celeb-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.pm-drawer-upsell-gap {
  margin: 6px 0 8px;
  font-size: 12px;
  font-family: Montserrat, sans-serif;
  color: #555;
  line-height: 1.4;
}
.pm-drawer-upsell-gap strong {
  color: #b5007a;
  font-weight: 700;
}
.pm-drawer-upsell-toggle {
  background: none;
  border: none;
  padding: 0;
  font-size: 13px;
  font-family: Montserrat, sans-serif;
  color: #b5007a;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 2px;
}
.pm-drawer-upsell-chevron { font-size: 11px; }
.pm-drawer-upsell-cards {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 12px 0 4px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
/* display:flex anularía [hidden] del HTML — forzar none cuando está colapsado */
.pm-drawer-upsell-cards[hidden] { display: none; }
.pm-drawer-upsell-cards::-webkit-scrollbar { display: none; }
.pm-drawer-upsell-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  min-width: 100px;
  max-width: 100px;
  flex-shrink: 0;
}
.pm-drawer-upsell-card-img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
}
.pm-drawer-upsell-card-img--empty {
  background: #f5f5f5;
  width: 80px;
  height: 80px;
  border-radius: 8px;
}
.pm-drawer-upsell-card-name {
  font-size: 11px;
  font-family: Montserrat, sans-serif;
  color: #111;
  line-height: 1.3;
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
}
.pm-drawer-upsell-card-price {
  font-size: 12px;
  font-weight: 700;
  font-family: Montserrat, sans-serif;
  color: #b5007a;
}
.pm-drawer-upsell-card-add {
  background: #b5007a;
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s;
}
.pm-drawer-upsell-card-add:hover { background: #8c005e; }
.pm-drawer-upsell-card-add:disabled { background: #ccc; cursor: default; }

/* Drawer skeleton loader */
@keyframes pm-pulse { 0%,100% { opacity:1 } 50% { opacity:.4 } }
.pm-drawer-skeleton-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #f2f2f2;
}
.pm-drawer-skeleton-item:last-child { border-bottom: none; }
.pm-drawer-skeleton-img {
  width: 64px;
  height: 64px;
  border-radius: 6px;
  flex-shrink: 0;
  background: #ecdff0;
  animation: pm-pulse 1.4s ease-in-out infinite;
}
.pm-drawer-skeleton-lines {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pm-drawer-skeleton-line {
  height: 12px;
  border-radius: 4px;
  background: #ecdff0;
  animation: pm-pulse 1.4s ease-in-out infinite;
}
.pm-drawer-skeleton-line--title { width: 65%; }
.pm-drawer-skeleton-line--meta  { width: 35%; }

/* Empty cart CTA */
#pm-empty-cart-cta {
  text-align: center;
  padding: 8px 0 24px;
}
.pm-empty-cart-msg {
  font-size: 14px;
  color: #666;
  margin-bottom: 16px;
  font-family: Montserrat, sans-serif;
}
.pm-empty-cart-btn {
  display: inline-block;
  background: #b5007a !important;
  color: #fff !important;
  text-decoration: none !important;
  padding: 14px 32px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 700;
  font-family: Montserrat, sans-serif;
  transition: background 0.2s;
}
.pm-empty-cart-btn:hover { background: #8c005e !important; }

/* Elementor mini-cart close button — más visible en mobile */
.elementor-menu-cart__close-button {
  min-width: 44px !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  overflow: visible !important;
  margin: 8px 8px 16px auto !important;
}
.elementor-menu-cart__close-button::before,
.elementor-menu-cart__close-button::after {
  background: #b5007a !important;
  width: 20px !important;
  height: 2.5px !important;
  border-radius: 2px !important;
  top: 50% !important;
  left: 50% !important;
  margin-left: -10px !important;
  margin-top: -1.25px !important;
}

/* ── Cart upsell row ─────────────────────────────────────────────────────── */
#pm-upsell-row {
  padding: 12px 0 8px;
  border-top: 1px dashed #e8b3d8;
  margin-top: 6px;
}
.pm-upsell-title {
  font-family: Montserrat, sans-serif;
  font-size: 13px;
  color: #555;
  margin: 0 0 10px;
  line-height: 1.4;
}
.pm-upsell-title strong {
  color: #b5007a;
}
.pm-upsell-subtitle {
  display: block;
  font-size: 11px;
  color: #888;
  font-weight: 400;
  margin-top: 3px;
}
.pm-upsell-cards {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}
.pm-upsell-cards::-webkit-scrollbar { display: none; }
.pm-upsell-card {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fdf0f8;
  border: 1px solid #f0c8e8;
  border-radius: 8px;
  padding: 8px 10px 8px 8px;
  min-width: 200px;
  flex-shrink: 0;
}
.pm-upsell-img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
}
.pm-upsell-no-img {
  display: inline-block;
  width: 48px;
  height: 48px;
  background: #f0c8e8;
  border-radius: 6px;
  flex-shrink: 0;
}
.pm-upsell-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.pm-upsell-name {
  font-family: Montserrat, sans-serif;
  font-size: 12px;
  color: #333;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pm-upsell-price {
  font-family: Montserrat, sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #b5007a;
}
.pm-upsell-add {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #b5007a;
  color: #fff;
  border: none;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  padding: 0;
}
.pm-upsell-add:hover { background: #8c005e; }
.pm-upsell-add:disabled { background: #ccc; cursor: default; }

/* Upsell row scroll fix — contain horizontal scroll within block */
#pm-upsell-row {
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
.pm-upsell-cards {
  width: 100%;
  box-sizing: border-box;
}

/* ── Checkout: ocultar resumen del pedido duplicado en mobile ────────────────
   WC Blocks renderiza el order summary dos veces: una en el sidebar (desktop)
   y otra como Fill inline (mobile, clase is-mobile). Solo se oculta el sidebar
   cuando is-mobile esta activo, que es cuando el Fill tambien se renderiza. */
.wc-block-components-sidebar-layout.is-mobile .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
  display: none !important;
}


/* ── Login en el menú: botón rosado solo en el menú horizontal desktop ─────────
   Ítem de menú WP con clase "pm-account-menu". El widget de menú desktop
   solo se muestra ≥1025px, así que esta regla no afecta la hamburguesa mobile
   (allí el ítem se ve como un enlace normal del menú).
   ─────────────────────────────────────────────────────────────────────────── */
@media (min-width: 1025px) {
  .pm-account-menu > a.elementor-item {
    padding: 9px 16px;
    border: 1.5px solid #e91e8c;
    border-radius: 8px;
    color: #e91e8c !important;
    font-family: Montserrat, sans-serif;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  }

  .pm-account-menu > a.elementor-item:hover,
  .pm-account-menu > a.elementor-item:focus-visible {
    background: #e91e8c;
    color: #fff !important;
  }

  /* Logueado: botón relleno (clase pm-logged-in añadida por nav_menu_css_class) */
  .pm-account-menu.pm-logged-in > a.elementor-item {
    background: #e91e8c;
    border-color: #e91e8c;
    color: #fff !important;
  }

  .pm-account-menu.pm-logged-in > a.elementor-item:hover,
  .pm-account-menu.pm-logged-in > a.elementor-item:focus-visible {
    background: #c4187a;
    border-color: #c4187a;
    color: #fff !important;
  }
}


/* ══════════════════════════════════════════════════════════════════════════════
   My Account — rediseño minimalista (Opción A)
   ══════════════════════════════════════════════════════════════════════════════ */

/* Ocultar título H1 "My account" en todas las páginas de cuenta */
.woocommerce-account .entry-title {
  display: none !important;
}

/* Ocultar el nav sidebar de WooCommerce — reemplazado por nuestro dashboard
   y en sub-páginas se navega con el botón "← Mi cuenta"  */
.woocommerce-account .woocommerce-MyAccount-navigation {
  display: none !important;
}

/* Ocultar bloque de "Conexiones en redes sociales" en el dashboard */
.woocommerce-account .woocommerce-MyAccount-content .ywsl-box,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info:has(.show-ywsl-box) {
  display: none !important;
}

/* Contenido a ancho completo, centrado con max-width */
.woocommerce-account .woocommerce-MyAccount-content {
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
  max-width: 520px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* ── Botón "← Mi cuenta" en sub-páginas ───────────────────────────── */
.pm-mya-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  color: #888;
  text-decoration: none;
  padding: 14px 16px 10px;
  transition: color 0.15s;
  max-width: 520px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}

.pm-mya-back:hover {
  color: #e91e8c;
}

/* ── Dashboard wrapper ─────────────────────────────────────────────── */
.pm-myaccount {
  padding: 0 0 40px; /* el padding lateral ya lo da .woocommerce-MyAccount-content */
  max-width: 520px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* ── Perfil ────────────────────────────────────────────────────────── */
.pm-mya-profile {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 28px 0 24px;
  border-bottom: 1px solid #f0e0ec;
  margin-bottom: 8px;
}

.pm-mya-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #e91e8c;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  letter-spacing: 0;
  font-family: inherit;
}

.pm-mya-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.pm-mya-info strong {
  font-size: 16px;
  font-weight: 600;
  color: #1a1a1a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pm-mya-info span {
  font-size: 13px;
  color: #999;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Lista de acciones ─────────────────────────────────────────────── */
.pm-mya-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.pm-mya-list li {
  border-bottom: 1px solid #f5f5f5;
  margin: 0 !important;
}

.pm-mya-list li::before {
  display: none !important;
}

.pm-mya-list li a {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 4px;
  text-decoration: none !important;
  color: #1a1a1a;
  transition: background 0.15s, padding-left 0.15s;
  border-radius: 8px;
}

.pm-mya-list li a:hover {
  background: #fdf4fa;
  padding-left: 8px;
}

/* Icono con fondo rosado suave */
.pm-mya-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #fdf4fa;
  flex-shrink: 0;
  transition: background 0.15s;
}

.pm-mya-list li a:hover .pm-mya-icon {
  background: #f5d0e8;
}

.pm-mya-icon svg {
  width: 18px;
  height: 18px;
  stroke: #e91e8c;
}

/* Etiqueta */
.pm-mya-label {
  font-size: 15px;
  font-weight: 500;
  color: #1a1a1a;
  flex: 1;
}

/* Badge de pedidos activos */
.pm-mya-badge {
  background: #e91e8c;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  padding: 3px 8px;
  border-radius: 20px;
  flex-shrink: 0;
}

/* Valor (crédito) */
.pm-mya-value {
  font-size: 14px;
  color: #aaa;
  flex-shrink: 0;
}

/* Chevron */
.pm-mya-chevron {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.pm-mya-chevron svg {
  width: 16px;
  height: 16px;
  stroke: #d0d0d0;
}

/* ── Cerrar sesión ─────────────────────────────────────────────────── */
.pm-mya-logout {
  margin-top: 28px;
  padding-top: 12px;
  border-top: 1px solid #f5f5f5;
}

.pm-mya-logout a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 4px;
  text-decoration: none !important;
  color: #aaa;
  font-size: 14px;
  transition: color 0.15s;
}

.pm-mya-logout a:hover {
  color: #e91e8c;
}

.pm-mya-logout svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  flex-shrink: 0;
}

/* ── Sub-páginas: tablas y formularios ─────────────────────────────── */
.woocommerce-account .woocommerce-MyAccount-content {
  padding: 0 16px 40px !important;
}

/* Quitar padding extra del wrapper de WooCommerce si lo aplica */
.woocommerce-account .woocommerce {
  padding: 0;
}

/* Mejor heading en sub-páginas */
.woocommerce-account .woocommerce-MyAccount-content h2 {
  font-size: 18px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid #f0e0ec;
}

@media (max-width: 767px) {
  .pm-mya-list li a {
    padding: 14px 2px;
    gap: 12px;
  }
  .pm-mya-icon {
    width: 36px;
    height: 36px;
  }
  .pm-mya-label {
    font-size: 14px;
  }
  .pm-mya-info strong {
    font-size: 15px;
  }
}

/* Dashboard: ocultar párrafos genéricos de WooCommerce y sección social */
/* Los <p> directos antes del dashboard (Hola... / Desde el escritorio...) */
.pm-account-dashboard-page .woocommerce-MyAccount-content > p {
  display: none !important;
}
/* Sección social YITH y cualquier elemento después del dashboard */
.woocommerce-account .woocommerce-MyAccount-content .pm-myaccount ~ h2,
.woocommerce-account .woocommerce-MyAccount-content .pm-myaccount ~ p,
.woocommerce-account .woocommerce-MyAccount-content .pm-myaccount ~ div,
.woocommerce-account .woocommerce-MyAccount-content .ywsl-social {
  display: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════════
   My Account — Store Credit (/my-account/store-credit/)
   Reemplaza el CSS destructivo anterior (display:none) con estilos reales
   que alinean la página con el lenguaje visual app-style del resto de Mi Cuenta.
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Hero card de saldo ─────────────────────────────────────────────────── */
.pm-sc-account {
  font-family: inherit;
}

.pm-sc-account__hero {
  display: flex;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, #fff0f6 0%, #fce8f1 100%);
  border: 1px solid #f5c6d8;
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
}

.pm-sc-account__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  background: #ed87a7;
  border-radius: 50%;
  color: #fff;
}

.pm-sc-account__icon svg {
  width: 28px;
  height: 28px;
}

.pm-sc-account__label {
  font-size: 0.82em;
  font-weight: 500;
  color: #d96f93;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}

.pm-sc-account__amount {
  font-size: 2em;
  font-weight: 700;
  color: #c0496d;
  line-height: 1.1;
  margin-bottom: 4px;
}

.pm-sc-account__sub {
  font-size: 0.82em;
  color: #888;
}

/* ── CTAs ────────────────────────────────────────────────────────────────── */
.pm-sc-account__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.pm-sc-account__btn {
  display: inline-block;
  padding: 10px 20px;
  border-radius: 999px;
  font-size: 0.88em;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}

.pm-sc-account__btn--primary {
  background: #ed87a7;
  color: #fff;
}

.pm-sc-account__btn--primary:hover {
  background: #d96f93;
  color: #fff;
}

.pm-sc-account__btn--secondary {
  background: transparent;
  color: #d96f93;
  border: 1px solid #d96f93;
}

.pm-sc-account__btn--secondary:hover {
  background: #ffe7f0;
}

/* ── Estado vacío (sin crédito) ─────────────────────────────────────────── */
.pm-sc-account__empty {
  text-align: center;
  padding: 32px 20px;
  color: #888;
}

.pm-sc-account__empty-icon {
  width: 52px;
  height: 52px;
  margin: 0 auto 12px;
  color: #ddd;
}

.pm-sc-account__empty-icon svg {
  width: 100%;
  height: 100%;
}

.pm-sc-account__empty-msg {
  margin-bottom: 16px;
  font-size: 0.95em;
}

/* ── Historial de movimientos (tabla de AC estilizada) ───────────────────── */
.pm-sc-account__history-title {
  font-size: 0.9em;
  font-weight: 600;
  color: #999;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 10px 0;
}

.pm-account-store-credit-page .woocommerce-MyAccount-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88em;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.pm-account-store-credit-page .woocommerce-MyAccount-content table th {
  background: #fdf0f5;
  color: #d96f93;
  font-weight: 600;
  padding: 10px 14px;
  text-align: left;
  border-bottom: 2px solid #f5c6d8;
  font-size: 0.85em;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.pm-account-store-credit-page .woocommerce-MyAccount-content table td {
  padding: 10px 14px;
  border-bottom: 1px solid #f9eaf0;
  vertical-align: middle;
  color: #444;
}

.pm-account-store-credit-page .woocommerce-MyAccount-content table tr:last-child td {
  border-bottom: none;
}

.pm-account-store-credit-page .woocommerce-MyAccount-content table tr:hover td {
  background: #fffafc;
}

/* El output de AC se descarta por completo vía ob_start en functions.php.
   Solo queda nuestro .pm-sc-account — no se necesitan reglas de ocultación. */

/* ── Dashboard: Credit Hero Card ─────────────────────────────────────────── */
.pm-mya-credit-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg, #fff0f6 0%, #fce8f1 100%);
  border: 1px solid #f5c6d8;
  border-radius: 14px;
  padding: 16px 18px;
  margin-bottom: 12px;
  text-decoration: none;
  transition: box-shadow 0.15s ease;
}

.pm-mya-credit-hero:hover {
  box-shadow: 0 4px 14px rgba(237, 135, 167, 0.25);
}

.pm-mya-credit-hero__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: #ed87a7;
  border-radius: 50%;
  color: #fff;
}

.pm-mya-credit-hero__icon svg {
  width: 22px;
  height: 22px;
}

.pm-mya-credit-hero__body {
  flex: 1;
  min-width: 0;
}

.pm-mya-credit-hero__amount {
  font-size: 1.3em;
  font-weight: 700;
  color: #c0496d;
  line-height: 1.1;
}

.pm-mya-credit-hero__label {
  font-size: 0.78em;
  color: #d96f93;
  font-weight: 500;
  margin-top: 1px;
}

.pm-mya-credit-hero__cta {
  font-size: 0.78em;
  color: #999;
  margin-top: 4px;
}


/* ══════════════════════════════════════════════════════════════════════════════
   My Account — Pedidos (card layout)
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Lista ──────────────────────────────────────────────────────────── */
.pm-orders-list {
  list-style: none !important;
  margin: 16px 0 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pm-orders-list li::before {
  display: none !important;
}

/* ── Tarjeta de pedido ─────────────────────────────────────────────── */
.pm-order-card {
  border: 1px solid #f0e0ec;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.pm-order-card:hover {
  border-color: #e8b3d8;
  box-shadow: 0 2px 12px rgba(233,30,140,0.08);
}

/* Enlace principal — ocupa toda la tarjeta */
.pm-order-main {
  display: block;
  padding: 16px;
  text-decoration: none !important;
  color: inherit;
}

/* Top: número + badge de estado */
.pm-order-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  gap: 8px;
}

.pm-order-number {
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
}

/* Badge de estado */
.pm-order-status-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  flex-shrink: 0;
}

/* Colores por estado */
.pm-order-status-completed   .pm-order-status-badge { background: #e8f5e9; color: #388e3c; }
.pm-order-status-processing  .pm-order-status-badge { background: #fde8f4; color: #e91e8c; }
.pm-order-status-on-hold     .pm-order-status-badge { background: #fff3e0; color: #e65100; }
.pm-order-status-pending     .pm-order-status-badge { background: #fff3e0; color: #e65100; }
.pm-order-status-cancelled   .pm-order-status-badge { background: #f5f5f5; color: #757575; }
.pm-order-status-refunded    .pm-order-status-badge { background: #f5f5f5; color: #757575; }
.pm-order-status-failed      .pm-order-status-badge { background: #fdecea; color: #c62828; }

/* Meta: fecha + total */
.pm-order-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.pm-order-date {
  font-size: 13px;
  color: #999;
}

.pm-order-total {
  font-size: 13px;
  color: #555;
}

/* Footer: acción principal + chevron */
.pm-order-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 10px;
  border-top: 1px solid #f5f5f5;
}

.pm-order-action-label {
  font-size: 13px;
  font-weight: 500;
  color: #e91e8c;
}

.pm-order-chevron {
  display: flex;
  align-items: center;
  color: #e8b3d8;
}

.pm-order-chevron svg {
  width: 16px;
  height: 16px;
  stroke: #e8b3d8;
}

/* Acciones secundarias (pagar, cancelar) */
.pm-order-secondary-actions {
  display: flex;
  gap: 8px;
  padding: 10px 16px 14px;
  border-top: 1px solid #f5f5f5;
  flex-wrap: wrap;
}

.pm-order-btn {
  font-size: 12px;
  font-weight: 500;
  padding: 6px 14px;
  border-radius: 6px;
  text-decoration: none !important;
  border: 1px solid #e8b3d8;
  color: #e91e8c;
  transition: background 0.15s, color 0.15s;
}

.pm-order-btn:hover {
  background: #e91e8c;
  color: #fff;
}

.pm-order-btn--cancel {
  border-color: #e0e0e0;
  color: #999;
}

.pm-order-btn--cancel:hover {
  background: #757575;
  color: #fff;
  border-color: #757575;
}

/* ── Paginación ────────────────────────────────────────────────────── */
.pm-orders-pagination {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
  gap: 8px;
}

.pm-orders-page-btn {
  font-size: 13px;
  font-weight: 500;
  padding: 8px 16px;
  border: 1px solid #e8b3d8;
  border-radius: 8px;
  text-decoration: none !important;
  color: #e91e8c;
  transition: background 0.15s, color 0.15s;
}

.pm-orders-page-btn:hover {
  background: #e91e8c;
  color: #fff;
}

/* ── Empty state ────────────────────────────────────────────────────── */
.pm-orders-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 48px 24px;
  gap: 12px;
}

.pm-orders-empty svg {
  width: 56px;
  height: 56px;
  stroke: #e8b3d8;
  margin-bottom: 4px;
}

.pm-orders-empty p {
  font-size: 16px;
  font-weight: 500;
  color: #555;
  margin: 0 !important;
}

.pm-orders-empty a {
  display: inline-block;
  margin-top: 4px;
  padding: 10px 24px;
  background: #e91e8c;
  color: #fff !important;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.15s, opacity 0.15s;
}

.pm-orders-empty a:hover {
  background: #c4187a;
}

/* Ocultar tabla y notice originales de WooCommerce en orders — reemplazados por cards */
.pm-account-orders-page .woocommerce-orders-table,
.pm-account-orders-page .woocommerce-MyAccount-content > .woocommerce-info,
.pm-account-orders-page .woocommerce-pagination,
.pm-account-orders-page .woocommerce-MyAccount-content > p {
  display: none !important;
}


/* ══════════════════════════════════════════════════════════════════════════════
   QA FIXES (2026-05-15)
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Fix 2: Cart Blocks — overflow horizontal y clutter en mobile ──────────── */
.wp-block-woocommerce-cart .wc-block-cart-items {
  table-layout: auto;
  width: 100% !important;
  max-width: 100% !important;
}

/* Ocultar descripción corta del producto en cada línea del carrito (clutter) */
.wc-block-cart-item__product .wc-block-components-product-metadata,
.wc-block-cart-item__product .wc-block-components-product-metadata__description {
  display: none !important;
}

@media (max-width: 480px) {
  /* Imagen más chica → más espacio para nombre + precio */
  .wc-block-cart-items__row td.wc-block-cart-item__image,
  .wc-block-cart-items__row .wc-block-cart-item__image {
    width: 60px !important;
    padding-right: 6px !important;
  }
  .wc-block-cart-item__image img {
    width: 60px !important;
    height: auto !important;
    max-width: 60px !important;
  }
  /* Compactar padding lateral */
  .wc-block-cart-items__row td.wc-block-cart-item__product,
  .wc-block-cart-item__product {
    padding: 0 4px !important;
  }
  .wc-block-cart-items__row td.wc-block-cart-item__total {
    padding-left: 4px !important;
    padding-right: 0 !important;
    text-align: right;
  }
  /* Forzar al precio a no romperse en líneas */
  .wc-block-cart-item__total .wc-block-components-product-price__value {
    white-space: nowrap;
    font-size: 14px;
  }
}

/* ── Fix 3: Ocultar "Continuar con Google" en order-received Y view-order ──── */
/* El selector .ywsl-box no aplicaba; el elemento real es .ywsl-social */
body.woocommerce-order-received .ywsl-social,
body.woocommerce-view-order .ywsl-social,
body.woocommerce-order-received .ywsl-box,
body.woocommerce-view-order .ywsl-box {
  display: none !important;
}

/* Ocultar también el h2 "Conexiones en redes sociales" y el p
   "Puedes iniciar sesión con:" que preceden al bloque YITH */
body.woocommerce-order-received h2:has(+ p + .ywsl-social),
body.woocommerce-order-received p:has(+ .ywsl-social),
body.woocommerce-view-order h2:has(+ p + .ywsl-social),
body.woocommerce-view-order p:has(+ .ywsl-social) {
  display: none !important;
}

/* Bonus: ocultar también en el checkout para usuarios logueados */
body.woocommerce-checkout.logged-in .ywsl-social,
body.woocommerce-checkout.logged-in h2:has(+ p + .ywsl-social),
body.woocommerce-checkout.logged-in p:has(+ .ywsl-social) {
  display: none !important;
}


/* ══════════════════════════════════════════════════════════════════════════════
   QA FIXES IMPORTANTES (2026-05-15)
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Fix #5: Sistema unificado de botones rosa ───────────────────────────────
   Brand: #e91e8c (rosa), hover #c4187a, texto blanco
   Cubre: login, registro, edit-account, lost-password, add-to-cart (PLP+PDP) */

.woocommerce-form-login button[type="submit"],
.woocommerce-form-register button[type="submit"],
.woocommerce-EditAccountForm button[type="submit"],
form.lost_reset_password button[type="submit"],
form.edit-account button[type="submit"],
.woocommerce-MyAccount-content form button[type="submit"],
.woocommerce form button.woocommerce-Button,
.woocommerce form input[type="submit"].woocommerce-Button,
a.add_to_cart_button,
a.button.product_type_simple,
a.button.product_type_variable,
button.single_add_to_cart_button,
.woocommerce ul.products li.product .button,
form.cart .single_add_to_cart_button {
  background-color: #e91e8c !important;
  background: #e91e8c !important;
  color: #ffffff !important;
  border: 1px solid #e91e8c !important;
  border-radius: 8px !important;
  padding: 10px 18px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  transition: background-color 0.15s ease, transform 0.05s ease !important;
  cursor: pointer;
  text-shadow: none !important;
}

.woocommerce-form-login button[type="submit"]:hover,
.woocommerce-form-register button[type="submit"]:hover,
.woocommerce-EditAccountForm button[type="submit"]:hover,
form.lost_reset_password button[type="submit"]:hover,
form.edit-account button[type="submit"]:hover,
.woocommerce-MyAccount-content form button[type="submit"]:hover,
.woocommerce form button.woocommerce-Button:hover,
a.add_to_cart_button:hover,
a.button.product_type_simple:hover,
a.button.product_type_variable:hover,
button.single_add_to_cart_button:hover,
.woocommerce ul.products li.product .button:hover,
form.cart .single_add_to_cart_button:hover {
  background-color: #c4187a !important;
  background: #c4187a !important;
  border-color: #c4187a !important;
  color: #ffffff !important;
}

/* "Acceso"/"Iniciar sesión" mantiene tamaño cómodo */
.woocommerce-form-login button[type="submit"],
.woocommerce-form-register button[type="submit"] {
  min-height: 44px;
  font-size: 15px;
  padding: 12px 24px !important;
}

/* ── Fix #6: "Realizar el pedido" sólido rosa ──────────────────────────────── */
.wc-block-components-checkout-place-order-button,
button.wc-block-components-checkout-place-order-button {
  background-color: #e91e8c !important;
  background: #e91e8c !important;
  color: #ffffff !important;
  border: 1px solid #e91e8c !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
}
.wc-block-components-checkout-place-order-button:hover,
button.wc-block-components-checkout-place-order-button:hover {
  background-color: #c4187a !important;
  background: #c4187a !important;
  border-color: #c4187a !important;
}
.wc-block-components-checkout-place-order-button .wc-block-components-button__text {
  color: #ffffff !important;
}

/* ── Fix #7: Tabs para Login/Registro en /my-account/ logged-out ──────────── */
.pm-auth-tabs {
  display: flex;
  margin: 16px auto 24px;
  max-width: 480px;
  border-bottom: 1px solid #f0e0ec;
}
.pm-auth-tab {
  flex: 1;
  padding: 14px 8px;
  background: none;
  border: 0;
  border-bottom: 3px solid transparent;
  font-size: 15px;
  font-weight: 500;
  color: #888;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
  margin-bottom: -1px;
}
.pm-auth-tab.is-active {
  color: #e91e8c;
  border-bottom-color: #e91e8c;
  font-weight: 600;
}

/* Default (modo magic link): ocultamos ambos formularios nativos de WC; la
   clienta ve el panel "email-first" .pm-ml-panel que renderiza el mu-plugin. */
body.woocommerce-account:not(.logged-in) #customer_login .u-column1,
body.woocommerce-account:not(.logged-in) #customer_login .u-column2 {
  display: none !important;
}
/* "Prefiero usar mi contraseña": mostramos el login nativo (.u-column1). */
body.pm-auth-show-password.woocommerce-account:not(.logged-in) #customer_login .u-column1 {
  display: block !important;
}
/* "Crear cuenta": mostramos el registro (.u-column2). */
body.pm-auth-show-register.woocommerce-account:not(.logged-in) #customer_login .u-column2 {
  display: block !important;
}

/* Visibilidad del panel magic link y del botón "volver al acceso por correo".
   El panel se oculta cuando estamos en modo contraseña o registro. */
body.pm-auth-show-password .pm-ml-panel,
body.pm-auth-show-register .pm-ml-panel,
body.pm-auth-show-register .pm-ml-back-magic {
  display: none !important;
}
body.pm-auth-show-password .pm-ml-back-magic {
  display: block !important;
}

/* ── Panel de acceso sin contraseña (magic link) ─────────────────────────── */
.pm-ml-panel {
  max-width: 480px;
  margin: 0 auto 8px;
}
.pm-ml-form { display: flex; flex-direction: column; }
.pm-ml-label {
  font-size: 14px;
  font-weight: 600;
  color: #555;
  margin: 0 0 6px;
}
.pm-ml-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 14px;
  font-size: 16px; /* evita zoom en iOS */
  border: 1px solid #e0cdd9;
  border-radius: 8px;
  margin: 0 0 14px;
}
.pm-ml-input:focus {
  outline: none;
  border-color: #e91e8c;
  box-shadow: 0 0 0 3px rgba(233, 30, 140, 0.12);
}
.pm-ml-submit {
  min-height: 48px;
  padding: 14px 20px;
  background: #e91e8c;
  color: #fff;
  border: 0;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}
.pm-ml-submit:disabled { opacity: 0.6; cursor: default; }
.pm-ml-error {
  margin: 12px 0 0;
  font-size: 13px;
  color: #c0392b;
}
.pm-ml-use-pass,
.pm-ml-back-magic {
  background: none;
  border: 0;
  color: #e91e8c;
  font-size: 14px;
  font-weight: 500;
  text-decoration: underline;
  cursor: pointer;
  padding: 14px 8px;
  min-height: 44px;
}
.pm-ml-use-pass { margin: 16px auto 0; }
/* Oculto por defecto. Usamos `button.pm-ml-back-magic` (0,1,1) a propósito:
   el reset de un plugin trae `[type="button"]{display:inline-block}` (0,1,0)
   que carga después y empataba/ganaba a `.pm-ml-back-magic` solo. Sólo se
   muestra en modo contraseña vía `body.pm-auth-show-password ...` (!important). */
button.pm-ml-back-magic {
  display: none;
  max-width: 480px;
  margin: 8px auto 0;
  text-align: left;
}

/* Estado "revisá tu correo" */
.pm-ml-sent { text-align: center; padding: 16px 0 8px; }
.pm-ml-sent-icon { font-size: 40px; line-height: 1; margin: 0 0 8px; }
.pm-ml-sent-title {
  font-size: 18px;
  font-weight: 600;
  color: #333;
  margin: 0 0 6px;
}
.pm-ml-sent-sub {
  font-size: 14px;
  color: #777;
  line-height: 1.5;
  margin: 0 0 18px;
}
.pm-ml-resend {
  min-height: 44px;
  padding: 10px 18px;
  background: none;
  border: 1px solid #e0cdd9;
  border-radius: 8px;
  font-size: 14px;
  color: #555;
  cursor: pointer;
}
.pm-ml-resend:disabled { opacity: 0.6; cursor: default; }

/* Banner de error de enlace expirado/usado */
.pm-ml-banner {
  max-width: 480px;
  margin: 0 auto 16px;
  padding: 12px 14px;
  font-size: 13px;
  line-height: 1.45;
  border-radius: 8px;
  background: #fdf4fa;
  color: #555;
  border-left: 3px solid #e91e8c;
}

/* ── Acceso social (YWSL) al tope de la escalera .pm-auth ─────────────────
   Botones Instagram/Facebook + Google renderizados por el mu-plugin sobre el
   panel magic link. Estilo alineado con el botón "Continuar con Google" del
   checkout (functions.php). Usamos !important para ganarle al CSS del plugin. */
.pm-auth-social {
  max-width: 480px;
  margin: 16px auto 0;
}
.pm-auth-social .ywsl-social {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 16px !important;
  margin: 0 0 10px !important;
  border: 1px solid transparent;
  border-radius: 8px !important;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  text-indent: 0;
  position: relative;
}
.pm-auth-social .ywsl-social img {
  width: 20px !important;
  height: 20px !important;
  flex-shrink: 0;
  margin: 0 !important;
}
/* Instagram / Facebook (mismo identity de Meta) */
.pm-auth-social .ywsl-facebook {
  background: #1877f2 !important;
  color: #fff !important;
}
.pm-auth-social .ywsl-facebook:hover { background: #166fe0 !important; }
.pm-auth-social .ywsl-facebook::after { content: 'Continuar con Instagram/Facebook'; }
/* Google */
.pm-auth-social .ywsl-google {
  background: #fff !important;
  color: #3c4043 !important;
  border-color: #dadce0 !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.pm-auth-social .ywsl-google:hover {
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
  border-color: #c6c6c6 !important;
}
.pm-auth-social .ywsl-google::after { content: 'Continuar con Google'; }
/* Separador "o" entre acceso social y magic link */
.pm-auth-divider {
  display: flex;
  align-items: center;
  text-align: center;
  color: #aaa;
  font-size: 13px;
  margin: 6px 0 4px;
}
.pm-auth-divider::before,
.pm-auth-divider::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid #f0e0ec;
}
.pm-auth-divider span { padding: 0 12px; }
/* Nota de fallback cuando estamos en el webview de Instagram/Facebook */
.pm-auth-social-fallback {
  margin: 4px 0 0;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.45;
  color: #555;
  background: #fdf4fa;
  border-left: 3px solid #e91e8c;
  border-radius: 8px;
}

/* Compactar 2 columnas a una sola en mobile */
#customer_login.u-columns {
  display: block !important;
  margin: 0 auto;
  max-width: 480px;
}
#customer_login .u-column1,
#customer_login .u-column2 {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

/* ── Fix #12: Aviso de contraseña temporal compacto ────────────────────────── */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-message {
  padding: 12px 14px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  border-radius: 8px !important;
  background: #fdf4fa !important;
  color: #555 !important;
  border-left: 3px solid #e91e8c !important;
  margin: 16px 0 !important;
  box-shadow: none !important;
}
/* Ocultar el ícono grande de WooCommerce blocks notice */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-message::before {
  display: none !important;
}


/* Fix #5 (specificity bump): override Elementor post-1058.css que pinta negro.
   El class .woocommerce está en el <body>, no como descendiente, por eso el
   selector usa body.woocommerce.woocommerce-page directamente. */
body.woocommerce.woocommerce-page ul.products li.product a.button,
body.woocommerce.woocommerce-page ul.products li.product .button,
body.woocommerce ul.products li.product a.add_to_cart_button,
body.woocommerce div.product form.cart .single_add_to_cart_button,
body.single-product .single_add_to_cart_button {
  background-color: #e91e8c !important;
  background: #e91e8c !important;
  color: #ffffff !important;
  border: 1px solid #e91e8c !important;
  border-radius: 8px !important;
  text-shadow: none !important;
}
body.woocommerce.woocommerce-page ul.products li.product a.button:hover,
body.woocommerce.woocommerce-page ul.products li.product .button:hover,
body.woocommerce ul.products li.product a.add_to_cart_button:hover,
body.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background-color: #c4187a !important;
  background: #c4187a !important;
  border-color: #c4187a !important;
  color: #ffffff !important;
}


/* ── Fix #13: PLP filters trigger + drawer ─────────────────────────────────── */
.pm-plp-filters {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  clear: both;
  margin: 0 0 14px;
  padding: 0 4px;
  box-sizing: border-box;
}
/* Ordering form movido dentro del filterbar via JS */
.pm-plp-filters form.woocommerce-ordering {
  float: none;
  margin: 0;
}
.pm-plp-filters form.woocommerce-ordering select.orderby {
  width: auto !important;
  max-width: 155px;
  font-size: 14px;
  height: 40px;
}
.pm-filters-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid #e91e8c;
  background: #fff;
  color: #e91e8c;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.pm-filters-trigger:hover { background: #fdf4fa; }
.pm-filters-trigger svg { width: 16px; height: 16px; }
.pm-filters-count {
  background: #e91e8c;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  line-height: 1;
}

/* Drawer */
.pm-filters-drawer {
  position: fixed;
  inset: 0;
  z-index: 9999999;
}
.pm-filters-drawer[hidden] { display: none !important; }
.pm-filters-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
  animation: pm-fade-in 0.18s ease-out;
}
.pm-filters-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 90vw;
  max-width: 380px;
  background: #fff;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: pm-slide-in 0.22s ease-out;
  box-shadow: -4px 0 24px rgba(0,0,0,0.12);
}
@keyframes pm-fade-in { from {opacity:0;} to {opacity:1;} }
@keyframes pm-slide-in {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}
.pm-filters-panel header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px;
  border-bottom: 1px solid #f0e0ec;
  flex-shrink: 0;
}
.pm-filters-panel header h3 {
  margin: 0 !important;
  font-size: 18px;
  font-weight: 600;
  color: #1a1a1a;
}
.pm-filters-close {
  background: none;
  border: 0;
  font-size: 28px;
  line-height: 1;
  color: #555;
  cursor: pointer;
  padding: 0 8px;
  font-weight: 300;
}
.pm-filters-close:hover { color: #e91e8c; }
.pm-filters-body {
  flex: 1;
  overflow-y: auto;
  padding: 6px 16px;
}
.pm-filter-group {
  border-bottom: 1px solid #f5f5f5;
  padding: 4px 0;
}
.pm-filter-group:last-child { border-bottom: none; }
.pm-filter-group summary {
  padding: 12px 0;
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
  cursor: pointer;
  list-style: none;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pm-filter-group summary::-webkit-details-marker { display: none; }
.pm-filter-group summary::after {
  content: '▾';
  color: #aaa;
  transition: transform 0.15s;
  font-size: 12px;
}
.pm-filter-group[open] summary::after { transform: rotate(180deg); }
.pm-filter-content { padding: 4px 0 14px; }
.pm-price-inputs {
  display: flex;
  gap: 12px;
}
.pm-price-inputs label {
  flex: 1;
  display: flex;
  flex-direction: column;
  font-size: 12px;
  color: #666;
  gap: 4px;
}
.pm-price-inputs input {
  padding: 9px 12px;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  font-size: 14px;
  width: 100%;
  box-sizing: border-box;
}
.pm-price-inputs input:focus {
  border-color: #e91e8c;
  outline: none;
}
.pm-filter-check {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  font-size: 14px;
  color: #333;
  cursor: pointer;
}
.pm-filter-check input[type="checkbox"] {
  accent-color: #e91e8c;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.pm-filter-label { flex: 1; }
.pm-count { color: #999; font-size: 12px; }
.pm-filters-footer {
  display: flex;
  gap: 10px;
  padding: 12px 16px;
  border-top: 1px solid #f0e0ec;
  background: #fff;
  flex-shrink: 0;
}
.pm-filters-clear {
  padding: 12px 18px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  color: #555;
  text-decoration: none !important;
  font-size: 14px;
  background: #fff;
  display: inline-flex;
  align-items: center;
  transition: background 0.15s, color 0.15s;
}
.pm-filters-clear:hover {
  background: #f5f5f5;
  color: #1a1a1a;
}
.pm-filters-apply {
  flex: 1;
  padding: 14px;
  background: #e91e8c !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: background 0.15s;
}
.pm-filters-apply:hover {
  background: #c4187a !important;
}

/* Mini-swatch dentro del drawer (junto al checkbox de color) */
.pm-swatch {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,.12);
  flex-shrink: 0;
}

/* ── Tira de swatches de color visible en el PLP (mobile-first) ───────────── */
.pm-color-swatches {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  padding: 4px 4px 10px;
  margin: 0 0 14px;
  scrollbar-width: none;
}
.pm-color-swatches::-webkit-scrollbar { display: none; }
.pm-color-swatch {
  flex: 0 0 auto;
  width: 64px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-decoration: none !important;
  color: #555;
  cursor: pointer;
}
.pm-color-dot {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,.12);
  transition: box-shadow 0.15s;
}
.pm-color-dot--all {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px dashed #c9b3c2;
  color: #999;
  font-size: 16px;
  line-height: 1;
}
.pm-color-name {
  font-size: 11px;
  line-height: 1.2;
  text-align: center;
  word-break: break-word;
}
.pm-color-swatch.is-active .pm-color-dot {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #e91e8c;
}
.pm-color-swatch.is-active .pm-color-name {
  color: #e91e8c;
  font-weight: 700;
}
.pm-color-swatch:focus-visible {
  outline: 2px solid #e91e8c;
  outline-offset: 2px;
  border-radius: 8px;
}
/* Desktop: en vez de scroll, que la tira envuelva */
@media (min-width: 783px) {
  .pm-color-swatches {
    flex-wrap: wrap;
    overflow-x: visible;
  }
}


/* ── Fase 3: FAQs visibles en PDPs (esmaltes) ─────────────────────────────── */
.pm-pdp-faqs {
  max-width: 720px;
  margin: 32px auto 48px;
  padding: 0 16px;
  font-size: 14px;
  color: #2a2a2a;
}
.pm-pdp-faqs h2 {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 16px;
  color: #1a1a1a;
}
.pm-faq-item {
  border-bottom: 1px solid #f0e0ec;
  padding: 0;
}
.pm-faq-item:last-of-type {
  border-bottom: none;
}
.pm-faq-item summary.pm-faq-q {
  list-style: none;
  cursor: pointer;
  padding: 14px 28px 14px 0;
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
  position: relative;
  user-select: none;
}
.pm-faq-item summary.pm-faq-q::-webkit-details-marker { display: none; }
.pm-faq-item summary.pm-faq-q::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 22px;
  font-weight: 300;
  color: #e91e8c;
  line-height: 1;
  transition: transform 0.2s ease;
}
.pm-faq-item[open] summary.pm-faq-q::after {
  content: "−";
  transform: translateY(-50%) rotate(0deg);
}
.pm-faq-item summary.pm-faq-q:hover { color: #e91e8c; }
.pm-faq-item .pm-faq-a {
  padding: 0 0 14px 0;
  color: #4a4a4a;
  line-height: 1.55;
  font-size: 14px;
}
.pm-faq-more {
  margin-top: 18px !important;
  font-size: 13px !important;
}
.pm-faq-more a {
  color: #e91e8c !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.pm-faq-more a:hover { text-decoration: underline !important; }

@media (max-width: 480px) {
  .pm-pdp-faqs h2 { font-size: 20px; }
  .pm-faq-item summary.pm-faq-q { font-size: 14px; padding: 12px 24px 12px 0; }
  .pm-faq-item .pm-faq-a { font-size: 13px; }
}

/* =============================================
   SEARCH MODAL
   ============================================= */
#pm-search-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000002;
}
#pm-search-modal.pm-search-open {
  display: block;
}
#pm-search-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  animation: pm-fade-in 0.2s ease;
}
#pm-search-panel {
  position: absolute;
  top: 18%;
  left: 50%;
  transform: translateX(-50%) translateY(-12px);
  width: min(520px, 92vw);
  background: #fff;
  border-radius: 14px;
  padding: 48px 24px 24px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
#pm-search-modal.pm-search-open #pm-search-panel {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.pm-search-close {
  position: absolute;
  top: 12px;
  right: 14px;
  background: none;
  border: none;
  font-size: 22px;
  line-height: 1;
  color: #aaa;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  transition: color 0.15s;
}
.pm-search-close:hover { color: #333; }
.pm-search-input-wrap {
  display: flex;
  align-items: center;
  border: 2px solid #e5c8e0;
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.2s;
  margin-top: 0;
}
.pm-search-input-wrap:focus-within {
  border-color: #e91e8c;
}
.pm-search-input {
  flex: 1;
  border: none;
  outline: none;
  padding: 14px 16px;
  font-size: 16px;
  font-family: Montserrat, sans-serif;
  color: #111;
  background: transparent;
}
.pm-search-input::placeholder { color: #bbb; }
.pm-search-submit {
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px 16px;
  color: #e91e8c;
  display: flex;
  align-items: center;
  transition: color 0.15s;
}
.pm-search-submit:hover { color: #c0156e; }

/* =============================================
   Header sticky — z-index por sobre el gallery trigger (z-index:99 de WC)
   Elementor sticky activa position:fixed pero sin z-index suficiente, lo que
   deja el trigger de galería visible encima del header al hacer scroll.
   ============================================= */
.elementor-location-header .elementor-sticky--effects {
  z-index: 100 !important;
}

/* =============================================
   PDP mobile — ocultar zoom lupa (jquery-zoom) y trigger galería
   .zoomImg se escapa del contenedor y .woocommerce-product-gallery__trigger
   tiene z-index:99 — ambos se superponen al header sticky al hacer scroll.
   El pinch-to-zoom nativo y el tap para PhotoSwipe reemplazan estas funciones.
   ============================================= */
@media (max-width: 767px) {
  .woocommerce-product-gallery .zoomImg { display: none !important; }
  .woocommerce-product-gallery__trigger { display: none !important; }
  .woocommerce-product-gallery { overflow: hidden; }
}
