/*
  Theme Name: Hello Elementor
  Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash
  Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin.
  Author: Elementor Team
  Version: 3.4.7
  License: GNU General Public License v3 or later.
  Text Domain: hello-elementor
*/

/* ====================================================
   1. Ajustes Responsivos Generales
   ==================================================== */
html,
body {
  overflow-x: hidden;
}

.site, #page, #content, .site-main, .content-area, main,
.site-header, .site-header .header-inner, .site-footer,
.site-footer .footer-inner, .elementor, .elementor-section,
.elementor-container, .elementor-row, .elementor-column,
.elementor-widget-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

@media (min-width: 1200px) {
  .site-header .header-inner,
  .site-footer .footer-inner,
  body:not([class*="elementor-page-"]) .site-main,
  .page-header .entry-title {
    width: 100%;
    max-width: 1100px !important; 
    margin-inline: auto;
  }
}

/* ====================================================
   2. Header Adaptativo Premium (Abanil) - REFACTORIZADO
   ==================================================== */
.elementor-location-header {
  background-color: #000 !important;
  width: 100% !important;
  position: relative !important; /* LA ÚNICA ANCLA PERMITIDA EN PC */
  z-index: 999999 !important;
}

.elementor-location-header .elementor-container {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 10px 20px !important;
  gap: clamp(5px, 1.5
  vw, 15px) !important; /* Espaciado fluido que se contrae con el zoom */
}

.elementor-location-header .elementor-column,
.elementor-location-header .elementor-widget-wrap {
  width: auto !important;
  max-width: none !important;
  flex: 0 1 auto !important; /* Permite que el contenedor se pueda encoger si falta espacio */
  display: flex !important;
  align-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important; /* Vital para que el contenido no desborde con el zoom */
}

/* ====================================================
   ESCRITORIO Y TABLET (>= 768px)
   ==================================================== */
@media (min-width: 768px) {
  .elementor-location-header .elementor-menu-toggle,
  .elementor-location-header .elementor-nav-menu--dropdown {
    display: none !important;
  }

  /* Anulamos que Elementor esconda cosas automáticamente en Tablet (Zoom 100%) */
  .elementor-location-header .elementor-hidden-tablet {
    display: flex !important;
  }
  .elementor-location-header .elementor-widget.elementor-hidden-tablet {
    display: block !important;
  }

  /* Forzar orden de columnas: Logo, Carrito, Menú, Buscador */
  
  /* 1. LOGO */
  .elementor-location-header .elementor-column:has(.elementor-widget-theme-site-logo),
  .elementor-location-header .elementor-column:has(.elementor-widget-image) {
    order: 1 !important;
    flex-shrink: 0 !important; /* El logo jamás se aplasta */
    margin-right: 0 !important; /* El gap dinámico se encarga de separarlos */
  }
  
  /* 2. CARRITO */
  .elementor-location-header .elementor-column:has(.elementor-widget-woocommerce-menu-cart),
  .elementor-location-header .elementor-column:has(.elementor-menu-cart__toggle) {
    order: 2 !important;
    flex-shrink: 1 !important; /* Permite encogerse un poco si es necesario */
    max-width: 150px !important; /* Limitante: no pasará de este ancho para no encimarse */
    flex-shrink: 0 !important; /* No cederá espacio para evitar deformarse */
    max-width: 80px !important; /* Límite muy estricto para que el subtotal no invada el menú */
    margin-right: 0 !important; /* Quitamos el margen rígido que empujaba al menú y lo encimaba */
    position: relative !important;
    z-index: 9999999 !important; /* Fuerza a que la cortina del carrito tape todo lo demás */
    overflow: visible !important; /* FIX CLIPPING: SE ELIMINÓ OVERFLOW HIDDEN PARA NO CORTAR PANEL */
    z-index: 2147483647 !important; /* Nivel Dios absoluto, sobrepondrá el panel a todo el header */
  }
  
  /* 3. MENÚ PRINCIPAL */
  .elementor-location-header .elementor-column:has(.elementor-widget-nav-menu) {
    order: 3 !important;
    flex-grow: 1 !important;
    flex-shrink: 1 !important;
    justify-content: flex-start !important;
    min-width: 0 !important; /* Previene el desbordamiento oculto */
    overflow: hidden !important; /* Limitante para que el menú no invada otras áreas */
    z-index: 10 !important; /* Hundimos el menú para que sus letras NUNCA se filtren por encima de la cortina del carrito */
  }
  
  .elementor-location-header .elementor-nav-menu {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  /* Anula el "modo tablet" de Elementor, forzando a que el menú siempre se vea en zoom 100% */
  .elementor-location-header .elementor-nav-menu--main {
    display: flex !important;
  }
  
  .elementor-location-header .elementor-nav-menu a {
    white-space: nowrap !important; /* Prohíbe que las palabras salten de línea */
    padding-left: clamp(4px, 0.8vw, 15px) !important;
    padding-right: clamp(4px, 0.8vw, 15px) !important;
    font-size: clamp(10px, 1vw, 15px) !important; /* Mayor elasticidad en el texto para evitar desbordes */
    transition: all 0.3s ease !important;
  }

  /* 4. BUSCADOR */
  .elementor-location-header .elementor-column:has(.abanil-live-search),
  .elementor-location-header .elementor-widget-wrap:has(.abanil-live-search),
  .elementor-location-header .elementor-column:has(.elementor-search-form) {
    order: 4 !important;
    flex-shrink: 1 !important; /* Liga elástica, cede espacio si lo necesita el menú */
    width: 100% !important;
    max-width: 250px !important;
    min-width: 120px !important; /* Cede un poco más de espacio al menú si es necesario */
    margin-left: auto !important; /* Empuja el buscador hacia la derecha final */
  }

  .abanil-live-search,
  .elementor-search-form {
    width: 100% !important;
  }
}

/* ====================================================
   3. COMPORTAMIENTO MÓVIL EXTREMO (< 768px)
   ==================================================== */
@media (max-width: 767px) {
  
  /* DESTRUCCIÓN DE LA JAULA: Rompemos los transform nativos pero protegemos el sticky header */
  .elementor-location-header .elementor-container,
  .elementor-location-header .elementor-column,
  .elementor-location-header .elementor-widget-wrap,
  .elementor-location-header .elementor-widget-nav-menu,
  .elementor-location-header .elementor-widget-woocommerce-menu-cart,
  .elementor-location-header .e-child,
  .elementor-location-header .elementor-widget,
  .elementor-location-header .elementor-widget-container,
  .elementor-location-header .elementor-menu-cart__wrapper,
  .elementor-location-header .elementor-menu-cart__toggle_wrapper {
    position: static !important;
    transform: none !important;
    overflow: visible !important;
  }

  /* Excluimos explicitamente la clase e-parent y la primera caja que suele ser la del Sticky de recibir static */
  .elementor-location-header .e-con.e-parent {
    transform: none !important;
    overflow: visible !important;
  }

  /* Aseguramos que la caja principal sea el ancla para el menú absoluto cuando NO es sticky */
  .elementor-location-header .e-con.e-parent:not(.elementor-sticky--active) {
    position: relative !important;
  }

  /* Forzamos a que si tiene clase de sticky, no tiemble o salte y mantenga su fondo */
  .elementor-location-header .elementor-sticky--active {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 999999 !important;
  }

  /* El wrapper externo ya no lleva padding ni fondo para evitar rayas blancas al hacer scroll */
  .elementor-location-header {
    padding: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    z-index: 999999 !important;
    background-color: transparent !important;
  }

  /* La caja interna (que se vuelve sticky) toma el padding y el color negro para llevárselos consigo */
  .elementor-location-header .e-con.e-parent,
  .elementor-location-header .elementor-container {
    display: flex !important;
    flex-wrap: wrap !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 10px 15px !important;
    gap: 0 !important; /* Eliminamos el gap nativo para usar space-between y flex 1 */
    width: 100% !important;
    box-sizing: border-box !important;
    background-color: #000 !important;
  }

  .elementor-location-header .elementor-column,
  .elementor-location-header .elementor-widget-wrap,
  .elementor-location-header .e-child,
  .elementor-location-header .elementor-widget {
    width: auto !important;
    flex: 0 0 auto !important; /* Forza a que las columnas se ajusten a su contenido y eviten apilarse */
    max-width: none !important;
    min-width: 0 !important;
  }

  /* Si algún contenedor o widget tiene un --width configurado por Elementor en móvil, se lo quitamos */
  .elementor-location-header .e-con,
  .elementor-location-header .e-child,
  .elementor-location-header .elementor-widget,
  .elementor-location-header .elementor-widget-wrap {
    --width: auto !important;
    --flex-basis: auto !important;
    --flex-direction: row !important;
    flex-direction: row !important;
  }

  .elementor-location-header > .elementor-element {
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Distribución de la fila superior (Logo - Hamburguesa - Carrito) */
  .elementor-location-header .elementor-widget-image,
  .elementor-location-header .elementor-widget-theme-site-logo,
  .elementor-location-header .e-child:has(.elementor-widget-image),
  .elementor-location-header .e-child:has(.elementor-widget-theme-site-logo),
  .elementor-location-header .elementor-column:has(.elementor-widget-image),
  .elementor-location-header .elementor-column:has(.elementor-widget-theme-site-logo) {
    margin: 0 !important;
    flex-shrink: 0 !important;
    max-width: 50% !important; /* Le quitamos el limitante de 110px para que el flex:1 funcione */
    order: 1 !important;
    width: auto !important;
    flex: 1 !important; /* Toma el espacio izquierdo restante */
    display: flex !important;
    justify-content: flex-start !important; /* Alinea logo a la izquierda */
  }

  .elementor-location-header .elementor-widget-image img,
  .elementor-location-header .elementor-widget-theme-site-logo img {
    max-width: 110px !important; /* El limite estricto se lo pasamos a la imagen, no a su columna */
  }

  .elementor-location-header .elementor-menu-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
    padding: 5px !important;
    margin: 0 auto !important; /* Centrado automático forzado en el medio */
    flex-shrink: 0 !important;
    order: 2 !important; /* Ahora está en el medio */
    width: auto !important;
    flex: 0 0 auto !important; /* Tamaño justo para la hamburguesa */
  }
  
  .elementor-location-header .elementor-widget-nav-menu,
  .elementor-location-header .e-child:has(.elementor-widget-nav-menu),
  .elementor-location-header .elementor-column:has(.elementor-widget-nav-menu) {
    width: auto !important;
    flex: 0 0 auto !important;
    order: 2 !important; /* Va junto con el toggle en el medio */
  }
  .elementor-location-header .elementor-menu-toggle i,
  .elementor-location-header .elementor-menu-toggle svg {
    color: #fff !important;
    fill: #fff !important;
    font-size: 26px !important;
  }

  .elementor-location-header .elementor-widget-woocommerce-menu-cart,
  .elementor-location-header .e-child:has(.elementor-widget-woocommerce-menu-cart),
  .elementor-location-header .elementor-column:has(.elementor-widget-woocommerce-menu-cart) {
    margin: 0 !important;
    flex-shrink: 0 !important;
    order: 3 !important; /* Ahora está a la derecha */
    width: auto !important;
    max-width: 50% !important; /* Permite estirarse hasta la mitad para equilibrar al logo */
    flex: 1 !important; /* Toma el espacio derecho restante equilibrando el logo */
    display: flex !important;
    justify-content: flex-end !important; /* Empuja el carrito al borde derecho */
  }

  .elementor-location-header .elementor-menu-cart__toggle {
    max-width: none !important; /* Quita limites estrictos del carrito en movil */
  }

  /* Buscador en fila inferior */
  .elementor-location-header .elementor-column:has(.abanil-live-search),
  .elementor-location-header .elementor-widget-wrap:has(.abanil-live-search),
  .elementor-location-header .e-child:has(.abanil-live-search) {
      order: 4 !important;
      width: 100% !important;
      --width: 100% !important;
      flex-basis: 100% !important;
      margin-top: 10px !important;
      display: flex !important;
      justify-content: center !important;
      position: static !important;
  }
  .elementor-location-header .abanil-live-search { margin: 0 auto !important; width: 100% !important; }
  .elementor-location-header .elementor-nav-menu--main { display: none !important; }


  /* ====================================================
     SOLUCIÓN DEFINITIVA 1: MENÚ DROPDOWN 100% ANCHO
     ==================================================== */
  body .elementor-location-header .elementor-nav-menu--dropdown,
  body .elementor-nav-menu--dropdown {
    background-color: #000 !important;
    width: 100% !important;      /* 100% de la pantalla horizontal, NO 100vw para evitar scrollbar y temblores */
    max-width: 100% !important;
    position: absolute !important; /* Cambiado a absolute para que se ancle al .e-con.e-parent */
    top: 100% !important;         /* Nace EXACTAMENTE en el borde inferior del header sin huecos */
    left: 0 !important;           /* Pegado a la orilla izquierda */
    right: 0 !important;          /* Pegado a la orilla derecha */
    margin: 0 !important;
    padding: 0 !important;
    z-index: 999999 !important;
    border-top: 2px solid #c5a059 !important;
    border-radius: 0 0 15px 15px !important;
    box-shadow: 0 20px 50px rgba(0,0,0,0.9) !important;
    overflow-y: auto !important;
    max-height: calc(100vh - 110px) !important;
    
    /* MODIFICACIÓN: Oculto por defecto y con animación de entrada (tipo App) */
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-15px) !important;
    transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1), visibility 0.3s ease !important;
  }
  
  /* Visible cuando Elementor agrega la clase .elementor-active al botón o al menú */
  body .elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown,
  body .elementor-nav-menu--dropdown.elementor-active {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }
  
  body .elementor-location-header .elementor-nav-menu--dropdown a {
    color: #fff !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    padding: 15px 25px !important;
    border-bottom: 1px solid #111 !important;
    display: block !important;
    width: 100% !important;
    text-align: center !important;
  }
  body .elementor-location-header .elementor-nav-menu--dropdown a:hover,
  body .elementor-location-header .elementor-nav-menu--dropdown a.elementor-item-active {
    color: #c5a059 !important;
    background-color: #111 !important;
  }

  body .elementor-location-header .elementor-nav-menu--dropdown .abanil-live-search { display: block !important; width: 100% !important; padding: 20px 25px 25px 25px !important; background-color: #050505 !important; }
  body .elementor-location-header .elementor-nav-menu--dropdown .abanil-search-input { width: 100% !important; background-color: #111 !important; border: 1px solid #333 !important; color: #fff !important; border-radius: 50px !important; padding: 12px 20px !important; }

}

/* ====================================================
   SOLUCIÓN DEFINITIVA 2: CARRITO DESDE ABAJO 100% ANCHO (Global)
   ==================================================== */
/* Liberar la jaula: Prevenir que Elementor corte el panel */
.elementor-location-header,
.elementor-location-header .e-con,
.elementor-location-header .elementor-container,
.elementor-location-header .elementor-column,
.elementor-location-header .elementor-widget-wrap,
.elementor-location-header .elementor-widget-woocommerce-menu-cart,
.elementor-location-header .elementor-menu-cart__wrapper {
    overflow: visible !important; /* CRÍTICO para evitar que se corte a la derecha */
}

/* Panel desde abajo estilo APP */
body .elementor-menu-cart__container,
.elementor-menu-cart__wrapper .elementor-menu-cart__container {
    width: 100% !important;
    max-width: 100% !important;
    height: 100vh !important; /* El contenedor es el dimmer de fondo */
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: rgba(0,0,0,0.5) !important; /* Oscurecer el fondo */
    overflow: hidden !important;
    
    /* Ocultar inicialmente */
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity 0.4s ease, visibility 0.4s ease !important;
    z-index: 2147483647 !important;
}

/* Panel Interno (Bottom Sheet) */
body .elementor-menu-cart__container .elementor-menu-cart__main,
.elementor-menu-cart__container .elementor-menu-cart__main {
    width: 100% !important;
    max-width: 100% !important;
    height: 85vh !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    margin: 0 !important;
    border: none !important;
    box-sizing: border-box !important;
    border-radius: 20px 20px 0 0 !important;
    box-shadow: 0 -10px 40px rgba(0,0,0,0.15) !important;
    background: #fff !important;
    transform: translateY(100%) !important; /* Oculto abajo inicialmente */
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

/* Mostrar cuando el botón se activa */
.elementor-menu-cart--shown .elementor-menu-cart__container,
body.elementor-menu-cart--shown .elementor-menu-cart__container {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

.elementor-menu-cart--shown .elementor-menu-cart__container .elementor-menu-cart__main,
body.elementor-menu-cart--shown .elementor-menu-cart__container .elementor-menu-cart__main {
    transform: translateY(0) !important;
}

body.elementor-menu-cart--hidden .elementor-menu-cart__container,
.elementor-menu-cart--hidden .elementor-menu-cart__container {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

body.elementor-menu-cart--hidden .elementor-menu-cart__container .elementor-menu-cart__main,
.elementor-menu-cart--hidden .elementor-menu-cart__container .elementor-menu-cart__main {
    transform: translateY(100%) !important;
}

/* ====================================================
   Buscador AJAX, Stepper, Tabla y Checkout (Intactos)
   ==================================================== */
.abanil-search-form { width: 100%; position: relative; }
.abanil-search-input { width: 100%; padding: 10px 20px; border: 1px solid #ddd; border-radius: 50px; background-color: #fff; font-size: 15px; color: #000; box-sizing: border-box; outline: none; transition: all 0.3s; }
.abanil-search-input::placeholder { color: #888; }
.abanil-search-input:focus { background-color: #fff; border-color: #000; box-shadow: 0 0 8px rgba(0,0,0,0.1); }
.abanil-search-results { position: absolute; top: 110%; right: 0; width: 320px; background: #fff; border: 1px solid #ddd; border-radius: 12px; box-shadow: 0 10px 25px rgba(0,0,0,0.1); z-index: 999; overflow: hidden; }
.abanil-search-list { list-style: none; margin: 0; padding: 0; }
.abanil-search-list li { border-bottom: 1px solid #eee; margin: 0; }
.abanil-search-list li a { display: flex; align-items: center; padding: 12px 15px; text-decoration: none; color: #333; transition: background 0.2s; }
.abanil-search-list li a:hover { background-color: #f9f9f9; color: #000; }
.abanil-search-icon { margin-right: 12px; color: #888; flex-shrink: 0; }
.abanil-suggestion-text { font-size: 15px; font-weight: 400; color: #555; }
.abanil-suggestion-text strong { color: #000; font-weight: 600; }
.abanil-view-all { display: block; text-align: center; padding: 12px; background: #fff; font-size: 14px; font-weight: 600; color: #000; text-decoration: none; border-top: 1px solid #eee; }
.abanil-view-all:hover { background: #f5f5f5; color: #000; }
.abanil-loading, .abanil-no-results { padding: 20px; text-align: center; font-size: 14px; color: #555; background: #fff; }

@media (max-width: 767px) {
  .abanil-live-search { width: 100%; margin-top: 15px; margin-bottom: 15px; }
  .abanil-search-results { width: 100%; right: 0; left: 0; }
}

.abanil-stepper-wrapper { max-width: 800px; margin: 0 auto 40px auto; padding-top: 30px; width: 100% !important; clear: both;}
.abanil-stepper { display: flex; align-items: center; justify-content: space-between; }
.abanil-stepper .step { display: flex; flex-direction: column; align-items: center; gap: 10px; color: #ccc; position: relative; z-index: 2; }
.abanil-stepper .step.active, .abanil-stepper .step.completed { color: #000; }
.abanil-stepper .step-num { width: 35px; height: 35px; display: flex; align-items: center; justify-content: center; background: #fff; border: 2px solid #ddd; border-radius: 50%; font-weight: 600; font-size: 14px; transition: all 0.3s; }
.abanil-stepper .step.active .step-num { border-color: #000; background: #000; color: #fff; }
.abanil-stepper .step.completed .step-num { border-color: #000; background: #fff; color: #000; }
.abanil-stepper .step-text { font-size: 13px; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; }
.abanil-stepper .step-line { flex: 1; height: 2px; background: #ddd; margin: -25px 15px 0 15px; transition: all 0.3s; }
.abanil-stepper .step-line.completed { background: #000; }

.woocommerce .woocommerce-cart-form, .woocommerce .cart-collaterals, .woocommerce-checkout #customer_details, .woocommerce-checkout #order_review { float: none !important; margin: 0 auto 50px auto !important; padding: 0 !important; clear: both !important; width: 100% !important; }
.woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce { max-width: 1200px !important; margin: 0 auto !important; padding: 0 20px !important; display: block; }
.woocommerce-notices-wrapper, .woocommerce-form-coupon-toggle { width: 100% !important; margin-bottom: 30px !important; clear: both; }
.woocommerce-checkout #order_review_heading { display: none !important; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { width: 100% !important; max-width: 100% !important; float: none !important; padding: 0 !important; }

.woocommerce table.shop_table { width: 100% !important; border-collapse: collapse !important; table-layout: fixed !important; border: none !important; margin-bottom: 30px !important; }
.woocommerce table.shop_table th.product-remove, .woocommerce table.shop_table td.product-remove { width: 5% !important; padding: 0 !important; text-align: center !important; }
.woocommerce table.shop_table th.product-thumbnail, .woocommerce table.shop_table td.product-thumbnail { width: 15% !important; padding: 0 !important; text-align: center !important; }
.woocommerce table.shop_table th.product-name, .woocommerce table.shop_table td.product-name { width: 35% !important; text-align: left !important; padding-left: 10px !important; }
.woocommerce table.shop_table th.product-price, .woocommerce table.shop_table td.product-price, .woocommerce table.shop_table th.product-quantity, .woocommerce table.shop_table td.product-quantity, .woocommerce table.shop_table th.product-subtotal, .woocommerce table.shop_table td.product-subtotal { width: 15% !important; text-align: center !important; }
.woocommerce table.shop_table td.product-thumbnail img { width: 80px !important; max-width: 100% !important; height: auto !important; border-radius: 8px !important; box-shadow: 0 4px 15px rgba(0,0,0,0.06) !important; margin: 0 auto !important; display: block !important; }
.woocommerce table.shop_table th { border: none !important; border-bottom: 2px solid #000 !important; text-transform: uppercase !important; font-size: 12px !important; letter-spacing: 1.5px !important; padding-top: 15px !important; padding-bottom: 15px !important; color: #333 !important; }
.woocommerce table.shop_table td { border: none !important; border-bottom: 1px solid #f5f5f5 !important; padding-top: 25px !important; padding-bottom: 25px !important; vertical-align: middle !important; }
.woocommerce .quantity .qty { width: 60px !important; height: 45px !important; border-radius: 8px !important; border: 1px solid #ddd !important; text-align: center !important; background: #fafafa !important; margin: 0 auto !important; padding: 0 !important; font-weight: 600 !important; -moz-appearance: textfield !important; }
.woocommerce a.remove { color: #ccc !important; font-weight: 300 !important; font-size: 24px !important; display: inline-block !important; line-height: 1 !important; }
.woocommerce a.remove:hover { color: #d9534f !important; background: transparent !important; }
.woocommerce-cart table.cart td.actions { padding: 40px 0 !important; text-align: center !important; }
.woocommerce-cart table.cart td.actions .coupon { display: flex !important; flex-wrap: wrap !important; gap: 15px !important; align-items: center !important; justify-content: center !important; margin-bottom: 30px !important; width: 100% !important; }
.woocommerce-cart table.cart td.actions .coupon input.input-text { margin: 0 !important; width: 250px !important; max-width: 100% !important; }
.woocommerce-cart table.cart td.actions .coupon button.button { width: auto !important; padding: 16px 35px !important; flex-shrink: 0 !important; }
.woocommerce-cart table.cart td.actions > .button { display: inline-block !important; width: auto !important; padding: 16px 40px !important; margin: 0 auto !important; }

.woocommerce-cart .cart-collaterals, .woocommerce-checkout #order_review { width: 100% !important; display: flex !important; justify-content: center !important; margin-top: 20px !important; }
.cart-collaterals .cart_totals, .woocommerce-checkout #order_review { background: #fff !important; padding: 40px !important; border-radius: 16px !important; box-shadow: 0 10px 40px rgba(0,0,0,0.04) !important; border: 1px solid #f0f0f0 !important; width: 100% !important; max-width: 500px !important; margin: 0 auto !important; box-sizing: border-box !important; }
.cart-collaterals h2, .woocommerce-checkout h3 { font-size: 22px !important; font-weight: 600 !important; margin-top: 0 !important; margin-bottom: 30px !important; padding-bottom: 15px !important; color: #111 !important; text-align: center !important; border-bottom: 1px solid #f2f2f2 !important; }
.cart_totals table.shop_table, .woocommerce-checkout #order_review table.shop_table { width: 100% !important; border: none !important; margin-bottom: 30px !important; }
.cart_totals table.shop_table th, .woocommerce-checkout #order_review table.shop_table th { width: 50% !important; padding: 20px 0 !important; border-bottom: 1px solid #eee !important; font-size: 14px !important; color: #666 !important; text-align: left !important; }
.cart_totals table.shop_table td, .woocommerce-checkout #order_review table.shop_table td { padding: 20px 0 !important; border-bottom: 1px solid #eee !important; text-align: right !important; font-weight: 600 !important; color: #111 !important; }

.woocommerce button.button.alt, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button, .woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { background-color: #000; color: #fff; border-radius: 8px; padding: 18px 30px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; font-size: 13px; transition: all 0.3s ease; border: none; width: 100%; box-sizing: border-box; display: flex; align-items: center; justify-content: center; text-align: center; }
.woocommerce button.button.alt:hover, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover, .woocommerce #respond input#submit:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background-color: #c5a059; color: #fff; box-shadow: 0 8px 20px rgba(197, 160, 89, 0.4); transform: translateY(-2px); }

@media (max-width: 767px) {
  .woocommerce table.shop_table_responsive thead { display: table-header-group !important; }
  .woocommerce table.shop_table_responsive tbody tr { display: table-row !important; }
  .woocommerce table.shop_table_responsive tr td { display: table-cell !important; text-align: center !important; padding: 10px 2px !important; }
  .woocommerce table.shop_table_responsive tr td::before { display: none !important; }
  .woocommerce .product-thumbnail img { width: 45px !important; }
  .woocommerce .quantity .qty { width: 35px !important; min-height: 35px !important; padding: 0 !important; }
}

/* Carrito Eliminado - Reemplazado por solución global desde abajo */

.elementor-menu-cart__main, .elementor-menu-cart__products, .woocommerce-mini-cart { background: #ffffff !important; }
.woocommerce-mini-cart-item { background: #ffffff !important; border-bottom: 1px solid #f5f5f5 !important; padding: 15px !important; }
.elementor-menu-cart__header { background: #ffffff !important; padding: 25px !important; border-bottom: 1px solid #eee !important; }
.elementor-menu-cart__close-button { color: #000000 !important; fill: #000000 !important; }

.elementor-location-header, .elementor-sticky, .elementor-section.elementor-sticky--active { z-index: 999999 !important; }
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger { z-index: 10 !important; }
#paypal-button-container, .paypal-buttons, iframe[title*="paypal"] { z-index: 1 !important; }

.woocommerce div.product .woocommerce-product-gallery, .woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper, .woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__image { opacity: 1 !important; visibility: visible !important; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs { opacity: 1 !important; visibility: visible !important; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img { opacity: 0.6 !important; transition: opacity 0.3s ease !important; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img:hover, .woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active { opacity: 1 !important; }

.woocommerce-checkout #order_review { display: block !important; }
.woocommerce-checkout #order_review table.shop_table { table-layout: auto !important; width: 100% !important; }
.woocommerce-checkout #order_review table.shop_table th.product-name, .woocommerce-checkout #order_review table.shop_table td.product-name { width: 65% !important; text-align: left !important; }
.woocommerce-checkout #order_review table.shop_table th.product-total, .woocommerce-checkout #order_review table.shop_table td.product-total { width: 35% !important; text-align: right !important; }
.woocommerce-checkout #payment { width: 100% !important; display: block !important; margin-top: 30px !important; clear: both !important; }

.elementor-location-header .elementor-menu-cart__toggle { flex-shrink: 1 !important; width: auto !important; max-width: 150px !important; min-width: 50px !important; border: none !important; background: transparent !important; padding: 5px 10px !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.elementor-location-header .elementor-menu-cart__toggle { flex-shrink: 0 !important; width: 100% !important; max-width: 80px !important; min-width: 50px !important; border: none !important; background: transparent !important; padding: 5px !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; justify-content: center !important; }
.elementor-location-header .elementor-menu-cart__toggle .elementor-button-icon { font-size: 24px !important; color: #fff !important; }
.elementor-location-header .elementor-menu-cart__toggle .elementor-button-icon[data-counter]::after { min-width: 20px !important; height: 20px !important; line-height: 20px !important; font-size: 12px !important; background-color: #d9534f !important; color: #fff !important; }
.elementor-menu-cart__container { z-index: 2147483647 !important; }
.elementor-menu-cart__close-button { width: 25px !important; height: 25px !important; fill: #666 !important; color: #666 !important; transition: all 0.3s ease !important; }
.elementor-menu-cart__close-button:hover { fill: #000 !important; color: #000 !important; transform: scale(1.1) !important; }
.woocommerce-mini-cart-item .quantity, .woocommerce-mini-cart-item .quantity .amount, .elementor-menu-cart__product-price { color: #333 !important; font-weight: 600 !important; font-size: 15px !important; }
.woocommerce-mini-cart-item a:not(.remove), .elementor-menu-cart__product-name { color: #000 !important; font-weight: 700 !important; font-size: 14px !important; display: block !important; margin-bottom: 5px !important; text-decoration: none !important; }
.woocommerce-mini-cart-item img, .elementor-menu-cart__product-image img { border-radius: 8px !important; width: 65px !important; height: auto !important; box-shadow: 0 4px 10px rgba(0,0,0,0.06) !important; }
.woocommerce-mini-cart__total, .elementor-menu-cart__subtotal { border-top: 1px solid #eee !important; padding: 20px 0 !important; text-align: center !important; font-size: 16px !important; color: #000 !important; }
.elementor-menu-cart__footer-buttons { display: flex !important; gap: 15px !important; padding: 0 10px 20px 10px !important; justify-content: space-between !important; }
.elementor-menu-cart__footer-buttons a { border-radius: 8px !important; padding: 14px 15px !important; font-weight: 600 !important; font-size: 12px !important; text-transform: uppercase !important; width: 48% !important; text-align: center !important; margin: 0 !important; display: flex !important; justify-content: center !important; align-items: center !important; transition: all 0.3s ease !important; }
.elementor-menu-cart__footer-buttons .elementor-button--view-cart { background-color: #f5f5f5 !important; color: #333 !important; border: 1px solid #ddd !important; }
.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover { background-color: #e5e5e5 !important; color: #000 !important; }
.elementor-menu-cart__footer-buttons .elementor-button--checkout { background-color: #000 !important; color: #fff !important; border: 1px solid #000 !important; }
.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover { background-color: #c5a059 !important; border-color: #c5a059 !important; color: #fff !important; box-shadow: 0 8px 20px rgba(197, 160, 89, 0.4) !important; transform: translateY(-2px) !important; }

.abanil-checkout-layout { display: flex; gap: 40px; align-items: flex-start; margin-top: 20px; }
.abanil-checkout-main { flex: 1; }
.abanil-checkout-sidebar { width: 380px; flex-shrink: 0; position: sticky; top: 100px; z-index: 10; }
@media (max-width: 991px) {
    .abanil-checkout-layout { flex-direction: column; }
    .abanil-checkout-sidebar { width: 100%; position: static; }
}
.abanil-checkout-step { background: #fff; border: 1px solid #eee; border-radius: 8px; margin-bottom: 20px; transition: all 0.3s ease; }
.abanil-checkout-step.active { border-color: #ddd; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
.abanil-checkout-step.completed .step-title { cursor: pointer; color: #666; }
.abanil-checkout-step.completed .step-title:hover { color: #000; }
.abanil-checkout-step .step-title { margin: 0; padding: 20px; font-size: 18px; font-weight: 600; display: flex; align-items: center; gap: 12px; }
.abanil-checkout-step .step-check { display: inline-flex; width: 24px; height: 24px; background: #eee; color: transparent; border-radius: 50%; align-items: center; justify-content: center; font-size: 12px; transition: all 0.3s; }
.abanil-checkout-step.completed .step-check { background: #000; color: #fff; }
.abanil-checkout-step.active .step-check { background: #000; color: transparent; position: relative; }
.abanil-checkout-step.active .step-check::after { content: ""; width: 8px; height: 8px; background: #fff; border-radius: 50%; position: absolute; }
.abanil-checkout-step .step-content { padding: 0 20px 20px; }
.abanil-checkout-step button.abanil-next-step { margin: 0 20px 20px; padding: 12px 30px !important; background: #000 !important; color: #fff !important; border-radius: 4px; font-weight: 600; width: auto !important; border: none; cursor: pointer; transition: background 0.3s; }
.abanil-checkout-step button.abanil-next-step:hover { background: #333 !important; }
.abanil-checkout-layout input.input-text, .abanil-checkout-layout select, .abanil-checkout-layout textarea, .abanil-checkout-layout .select2-selection { background-color: #f9f9f9 !important; border: 1px solid #eee !important; border-radius: 6px !important; padding: 12px 15px !important; font-size: 15px !important; color: #333 !important; transition: all 0.3s !important; box-shadow: none !important; width: 100% !important; }
.abanil-checkout-layout .select2-selection { padding: 4px 15px !important; height: auto !important; }
.abanil-checkout-layout input.input-text:focus, .abanil-checkout-layout select:focus, .abanil-checkout-layout textarea:focus { background-color: #fff !important; border-color: #aaa !important; box-shadow: 0 0 0 2px rgba(0,0,0,0.05) !important; outline: none !important; }
.abanil-checkout-layout label { font-weight: 500 !important; color: #444 !important; margin-bottom: 6px !important; display: block !important; font-size: 14px; }
.abanil-order-summary-widget { background: #f9f9f9; border: 1px solid #eee; border-radius: 8px; padding: 25px; }
.abanil-order-summary-widget .summary-title { margin-top: 0; margin-bottom: 20px; font-size: 20px; font-weight: 600; border-bottom: 2px solid #000; padding-bottom: 10px; }
