/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Description: Tema hijo de Astra
Author: Tu Nombre
Author URI: https://tusitio.com
Template: astra
Version: 1.0.1
Text Domain: astra-child
*/

/* ================================================
   INFRAESTRUCTURA BASE
   ================================================ */
.ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Galería Woo nativa: altura flexible (no fija) */
.woocommerce-product-gallery {
  height: auto;
  max-height: min(70vw, 420px);
}

/* Header siempre visible */
#masthead,
.site-header,
.ast-header-sticky,
.main-header-bar {
  background-color: #111827 !important;
  opacity: 1 !important;
}

.elementor-sticky--effects .ast-header-sticky,
header.transparent-header {
  background-color: #111827 !important;
}

/* Popup catálogo: tamaño fluido en móvil (evita recorte) */
@media (max-width: 767px) {
  #elementor-popup-modal-1583 .dialog-widget-content,
  #elementor-popup-modal-1583 .dialog-message {
    width: min(92vw, 360px) !important;
    max-width: 92vw !important;
    height: auto !important;
    max-height: min(85vh, 520px) !important;
  }
}

/* WhatsApp chat */
/*#ht-ctc-chat { display: none !important; }
@media (min-width: 768px) {
  #ht-ctc-chat { display: block !important; }
}
@media (max-width: 767px) {
  #ht-ctc-chat,
  body [class*="ht-ctc-chat"] {
    display: none !important;
    pointer-events: none !important;
    max-width: 0 !important;
    max-height: 0 !important;
    opacity: 0 !important;
  }
}
*/
/* ================================================
   ELEMENTOR — RESPONSIVE SAFETY NET
   Corrige paddings/margins horizontales excesivos
   y márgenes negativos agresivos en móvil/tablet.
   ================================================ */
@media (max-width: 1024px) {
  /* home */
  .elementor-element.elementor-element-da58fd2 {
    padding: 56px 40px !important;
  }
  .elementor-element.elementor-element-240f615 {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
  .elementor-element.elementor-element-092ab53 {
    padding-top: 49px !important;
    padding-bottom: 49px !important;
  }

  /* archive / blog / renting — laterales 48px */
  .elementor-element.elementor-element-0dadd6c,
  .elementor-element.elementor-element-a71ad85,
  .elementor-element.elementor-element-975a200 {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .elementor-element.elementor-element-7d6937d {
    margin: 52px 32px !important;
  }

  /* blog template — padding-left 130px */
  .elementor-element.elementor-element-07c1fa0 {
    padding-left: 40px !important;
    margin-top: -45px !important;
  }

  /* single-post — padding-right 200px */
  .elementor-element.elementor-element-6380311 {
    padding-right: 40px !important;
    margin-top: 0 !important;
  }

  .elementor-element.elementor-element-1fbe241 {
    margin-top: 49px !important;
    margin-bottom: 49px !important;
  }

  .elementor-element.elementor-element-8532be8 {
    margin-top: 64px !important;
  }

  /* márgenes negativos de hero */
  .elementor-element.elementor-element-02ccb7f,
  .elementor-element.elementor-element-7b863c2,
  .elementor-element.elementor-element-269eeff,
  .elementor-element.elementor-element-dedb3d7,
  .elementor-element.elementor-element-6c01d08,
  .elementor-element.elementor-element-1087a4d,
  .elementor-element.elementor-element-e1e6341,
  .elementor-element.elementor-element-ce69d79,
  .elementor-element.elementor-element-e84e12a {
    margin-top: -45px !important;
  }

  .elementor-element.elementor-element-1b836b3 {
    margin-right: 16px !important;
  }

  .elementor-element.elementor-element-5b38e46,
  .elementor-element.elementor-element-4b135cd {
    margin-left: 24px !important;
    margin-right: 24px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .elementor-element.elementor-element-3232de8a {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
}

@media (max-width: 767px) {
  /* Contenedores Elementor: evita desborde por padding/margin lateral fijo */
  .elementor-section > .elementor-container,
  .e-con > .e-con-inner {
    max-width: 100%;
  }

  .elementor-element.elementor-element-da58fd2 {
    padding: 40px 16px !important;
  }
  .elementor-element.elementor-element-240f615 {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
  .elementor-element.elementor-element-092ab53 {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }
  .elementor-element.elementor-element-8efefe8 {
    padding-bottom: 40px !important;
  }
  .elementor-element.elementor-element-a9a28c5 {
    margin-top: 28px !important;
  }

  .elementor-element.elementor-element-0dadd6c,
  .elementor-element.elementor-element-a71ad85,
  .elementor-element.elementor-element-975a200 {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .elementor-element.elementor-element-7d6937d {
    margin: 32px 16px !important;
  }

  .elementor-element.elementor-element-07c1fa0 {
    padding-left: 16px !important;
    margin-top: -22px !important;
  }

  .elementor-element.elementor-element-6380311 {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .elementor-element.elementor-element-1fbe241 {
    margin-top: 30px !important;
    margin-bottom: 30px !important;
  }

  .elementor-element.elementor-element-8532be8 {
    margin-top: 32px !important;
  }

  .elementor-element.elementor-element-02ccb7f,
  .elementor-element.elementor-element-7b863c2,
  .elementor-element.elementor-element-269eeff,
  .elementor-element.elementor-element-dedb3d7,
  .elementor-element.elementor-element-6c01d08,
  .elementor-element.elementor-element-1087a4d,
  .elementor-element.elementor-element-e1e6341,
  .elementor-element.elementor-element-ce69d79,
  .elementor-element.elementor-element-e84e12a {
    margin-top: -22px !important;
  }

  .elementor-element.elementor-element-1b836b3 {
    margin-right: 10px !important;
  }

  .elementor-element.elementor-element-5b38e46,
  .elementor-element.elementor-element-4b135cd {
    margin-left: 13px !important;
    margin-right: 13px !important;
    padding-left: 13px !important;
    padding-right: 13px !important;
  }

  .elementor-element.elementor-element-3232de8a {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .elementor-element.elementor-element-9480996 {
    margin-bottom: -6px !important;
    padding-top: 35px !important;
    padding-bottom: 35px !important;
  }

  .elementor-element.elementor-element-469b180,
  .elementor-element.elementor-element-38c7926,
  .elementor-element.elementor-element-127ba59,
  .elementor-element.elementor-element-e6d52fd {
    padding-top: 35px !important;
    padding-bottom: 35px !important;
  }

  .elementor-element.elementor-element-4217915 {
    margin-top: 42px !important;
  }

  .elementor-element.elementor-element-7b863c2 {
    margin-top: -24px !important;
  }

  /* Imágenes con altura fija en custom CSS de plantillas producto */
  .elementor-widget-woocommerce-product-images .img-prod,
  .woocommerce div.product div.images .img-prod {
    height: auto !important;
    max-height: min(78vw, 340px) !important;
    width: 100% !important;
  }
}

/* ================================================
   GRID DE PRODUCTOS
   ================================================ */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #dddbd6 !important;
}

@media (max-width: 1024px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
    gap: 1px !important;
  }
}

/* ================================================
   CARD BASE
   ================================================ */
.woocommerce ul.products li.product {
  border: none !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: #f5f4f0 !important;
  box-shadow: none !important;
  transition: background 0.25s ease !important;
  display: flex !important;
  flex-direction: column !important;
  cursor: pointer !important;
  min-height: 1px !important;
}

.woocommerce ul.products li.product:hover {
  background: #edecea !important;
  box-shadow: none !important;
  transform: none !important;
}

.woocommerce ul.products li.product:empty {
  display: none !important;
}

/* ================================================
   IMAGEN
   ================================================ */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
  position: relative !important;
  overflow: hidden !important;
  aspect-ratio: 4 / 3 !important;
  background: #f5f4f0 !important;
  border-radius: 0 !important;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  padding: 20px !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  display: block !important;
  background: #f5f4f0 !important;
  transition: transform 0.5s ease !important;
}

.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img {
  transform: scale(1.05) !important;
}

/* Overlay hover */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap::after {
  content: 'VER PRODUCTO' !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(232, 65, 42, 0.80) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Barlow', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
  opacity: 0 !important;
  transition: opacity 0.3s ease !important;
  pointer-events: none !important;
}

.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap::after {
  opacity: 1 !important;
}

/* Badge oferta */
.woocommerce ul.products li.product .ast-on-card-button.ast-onsale-card {
  background: #e8412a !important;
  color: #ffffff !important;
  border-radius: 0 !important;
  font-family: 'Barlow', sans-serif !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  padding: 4px 8px !important;
  top: 16px !important;
  left: 16px !important;
}

.woocommerce ul.products li.product .ast-on-card-button.ast-select-options-trigger {
  display: none !important;
}

/* ================================================
   INFO INFERIOR
   ================================================ */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #ffffff !important;
  border-top: 2px solid #e8412a !important;
}

.woocommerce ul.products li.product .ast-woo-product-category {
  font-family: 'Barlow', sans-serif !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  color: #e8412a !important;
  text-transform: uppercase !important;
  letter-spacing: 2.5px !important;
  padding: 16px 20px 4px !important;
  margin: 0 !important;
  display: block !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Barlow', sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #111111 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  padding: 4px 20px 8px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.woocommerce ul.products li.product .price {
  font-family: 'Barlow', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #777777 !important;
  margin: 0 !important;
  padding: 0 20px 6px !important;
  display: block !important;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none !important;
}
.woocommerce ul.products li.product .price del {
  font-size: 11px !important;
  color: #bbbbbb !important;
  font-weight: 400 !important;
  margin-right: 4px !important;
}

.woocommerce ul.products li.product .stock {
  font-family: 'Barlow', sans-serif !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  color: #16a34a !important;
  margin: 0 !important;
  padding: 0 20px 14px !important;
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
}
.woocommerce ul.products li.product .stock::before {
  content: '' !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: #16a34a !important;
  display: inline-block !important;
  flex-shrink: 0 !important;
}

/* ================================================
   BOTÓN "Añadir al presupuesto"
   ================================================ */
.woocommerce ul.products li.product .yith-ywraq-add-to-quote {
  margin-top: auto !important;
  padding: 0 !important;
}

.woocommerce ul.products li.product .add-request-quote-button,
.woocommerce ul.products li.product .yith-ywraq-add-to-quote .add-request-quote-button,
.woocommerce ul.products li.product a.button {
  display: block !important;
  width: 100% !important;
  background: #111111 !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: 'Barlow', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  padding: 14px 20px !important;
  margin: 0 !important;
  text-align: center !important;
  transition: background 0.2s ease !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
}

.woocommerce ul.products li.product .add-request-quote-button:hover,
.woocommerce ul.products li.product .yith-ywraq-add-to-quote .add-request-quote-button:hover,
.woocommerce ul.products li.product a.button:hover {
  background: #e8412a !important;
  color: #ffffff !important;
}

.woocommerce ul.products li.product .clear {
  display: none !important;
}

/* ================================================
   RESPONSIVE MÓVIL
   ================================================ */
@media (max-width: 767px) {

  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
    padding: 14px !important;
  }

  .woocommerce ul.products li.product .ast-woo-product-category {
    font-size: 8px !important;
    padding: 12px 14px 3px !important;
    letter-spacing: 2px !important;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 13px !important;
    padding: 3px 14px 6px !important;
  }

  .woocommerce ul.products li.product .price {
    font-size: 12px !important;
    padding: 0 14px 4px !important;
  }

  .woocommerce ul.products li.product .stock {
    font-size: 9px !important;
    padding: 0 14px 10px !important;
  }

  .woocommerce ul.products li.product .add-request-quote-button,
  .woocommerce ul.products li.product .yith-ywraq-add-to-quote .add-request-quote-button,
  .woocommerce ul.products li.product a.button {
    font-size: 9px !important;
    padding: 12px 8px !important;
    letter-spacing: 1.5px !important;
  }

  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap::after {
    display: none !important;
  }
}

/* ================================================
   POPUP CATÁLOGO (ID 1583)
   ================================================ */
.elementor-popup-modal .elementor-heading-title,
.elementor-popup-modal h1,
.elementor-popup-modal h2,
.elementor-popup-modal h3 {
  font-family: 'Barlow', sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #111111 !important;
  padding: 16px 20px !important;
  margin: 0 !important;
  border-bottom: 1px solid #E5E7EB !important;
  background: #F9FAFB !important;
}

.elementor-popup-modal .dialog-close-button {
  top: 12px !important;
  right: 16px !important;
  color: #6B7280 !important;
  font-size: 14px !important;
}

/* ================================================
   LENIS SMOOTH SCROLL
   ================================================ */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

body {
  overflow-x: hidden;
}